[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [office] renewed proposal for new position and spaceattributesfor the list level
Hi Oliver, thanks for a "readable" Version of the proposal. I have the following questions: a) text:list-tab-stop-position. I think the tab-stop should always be inserted if listtab is given. I don't understand the need for the exception rules. b) I don't understand the need for text:label-aligned-at. Especially I don't understand the reference to "text:minimum-label-width". But I guess I understand the problem you're trying to solve. Let me suggest a different solution: - Remove the text:label-aligned-at and add a text:label-alignment = left | center | right - Specify that the number label is aligned left, centered or right wrt. to the first line indent. ~Florian >>> Oliver-Rainer Wittmann - Software engineer - Sun Microsystems Inc <Oliver-Rainer.Wittmann@Sun.COM> 02/28/07 11:03 AM >>> Dear TC members, To be clear: The renewed proposal doesn't contain any change of its content. I only added a reference to the chapter, in which the new attributes should be inserted, and a couple of use cases. Regards, Oliver. Oliver-Rainer Wittmann - Software engineer - Sun Microsystems Inc wrote: > Dear TC members, > > I want to renew my proposal for new attributes for the list-level style > in order to provide a clear view for the voting process. The new > attributes provide an new possibility to specify the position und > spacing of the list label and the list item itself: > > The new attributes for the list level style are: > - text:label-followed-by > - text:list-tab-stop-position > - text:label-aligned-at > - fo:margin-left > These new attributes plus the existing attribute fo:text-align give the > possibility to specify the position and spacing of the list label and > the list item in a new way, which could be called position and spacing > via label alignment. > The existing attributes text:space-before, text:min-label-width and > text:min-label-distance plus fo:text-align defines somehow the position > and spacing via label size and position. > > The new attributes are grouped together in a new element, named > style:list-level-label-alignment. This element has to contain the > attribute text:label-followed-by. Attributes > text:list-tab-stop-position, text:label-aligned-at and fo:margin-left > are optional. if any of these attributes are missing, its values is > assumed to be 0. > > In order to decide, which group of attributes are used to define the > position and spacing of the list label and the list item the new > attribute text:list-level-position-and-space-mode is introduced. > > - text:list-level-position-and-space-mode: > <define name="style-list-level-properties-attlist" combine="interleave"> > <optional> > <attribute name="text:list-level-position-and-space-mode"> > <choice> > <value>label-width-and-position</value> > <value>label-alignment</value> > </choice> > </attribute> > </optional> > </define> > > Meaning of these values: > - label-width-and-position: > The existing attributes text:space-before, text:minimum-label-width, > text:minimum-label-distance and fo:text-align are used to define the > position and spacing of the list label and the list item. > > - label-alignment: > The new attributes and fo:text-align are used to define the position and > spacing of the list label and the list item. The values of the existing > attributes for text:space-before, text:minimum-label-width and > text:minimum-label-distance are treated as 0. > > If attribute text:list-level-position-and-space-mode is missing, which > is hold for documents conforming previous ODF versions, its value is > assumed to be label-width-and-position. > > > - text:label-followed-by: > <define name="style-list-level-label-alignment-attlist" > combine="interleave"> > <attribute name="text:label-followed-by"> > <choice> > <value>listtab</value> > <value>space</value> > <value>nothing</value> > </choice> > </attribute> > </define> > > Meaning of the values of attribute text:label-followed-by: > - listtab - a tab stop follows the list label before the text starts. > - space - a space character is inserted after the list label before > the text starts. > - nothing - the text starts directly after the list label. > > > - text:list-tab-stop-position: > <define name="style-list-level-label-alignment-attlist" > combine="interleave"> > <optional> > <attribute name="text:list-tab-stop-position"> > <ref name="nonNegativeLength"/> > </attribute> > </optional> > </define> > > Attribute text:list-tab-stop-position is only relevant, if attribute > text:label-followed-by is defined and its value equals "listtab". In all > other cases, attribute text:list-tab-stop-position isn't evaluated. > Attribute text:list-tab-stop-position specifies an additional tab stop, > which is inserted into the list item. Typically, this tab stop is the > one, which is applied after the list label. Thus, the text of the > first line of list item typically starts at this tab stop. In > left-to-right layout environments this tab stop is interpreted as a > left tab. While in right-to-left layout environments its interpreted > as a right tab. > There exists two cases in which this additional tab stop isn't applied > to start the text of the first line of the list item after the list label: > - The position of the additional tab stop is before the end of the > list label. > - Between the end of the list label and the position of the additional > tab stop exists already a tab stop at the list item. > In these cases an existing respectively a default tab stop is applied > after the list label. The additional tab stop can be applied by normal > inserted tab characters in the list item in these cases. > The additional tab stop can also been applied in the text lines, which > follow the first line of the list item. > > > - text:label-aligned-at > <define name="style-list-level-label-alignment-attlist" > combine="interleave"> > <optional> > <attribute name="text:label-align-at"> > <ref name="Length"/> > </attribute> > </optional> > </define> > > The new attribute text:label-aligned-at specifies the alignment position > for the list label. The list label is aligned at this position, because > value of text:minimum-label-width is treated as 0: > - fo:text-align = "left": The list label starts at the alignment position. > - fo:text-align = "center": The center of the list label is positioned > at the alignment position. > - fo:text-align = "right": The list label ends at the alignment position. > > > - fo:margin-left > <define name="style-list-level-label-alignment-attlist" > combine="interleave"> > <optional> > <attribute name="fo:margin-left"> > <ref name="Length"/> > </attribute> > </optional> > </define> > > The new attribute fo:margin-left is only relevant, if attribute > text:label-followed-by is defined. It specifies the indent of the text > lines of the list item following the first line. > > > The new attributes text:label-aligned-at and fo:margin-left for a list > level style are competing with the paragraph indent attributes > fo:text-indent and fo:margin-left. The same is hold for the > corresponding paragraph indent attributes for a paragraph style. > These paragraph indent attributes are used to calculate the indent of > first line of the paragraph and the indent of the following lines: > - first line indent = fo:text-indent + fo:margin-left > - following lines indent = fo:margin-left > > In the following is described how this competition is solved. > > - List style with list level style directly applied to a paragraph via > an automatic paragraph style: > If neither paragraph indent attribute fo:text-indent nor paragraph > indent attribute fo:margin-left are defined, the new list level style > attributes text:label-aligned-at and fo:margin-left are used in order > to determine the indentation of the paragraph. > If one of the paragraph indent attributes are defined - the value of > the missing one is assumed to be 0 -, the given values of list level > style attributes text:label-aligned-at and fo:margin-left are ignored. > For the alignment position for the list label the first line indent is > used. For the indent of the following lines of the list item the > paragraph following line indent is used. > > - List style with list level style applied to a paragraph via an > attribute of a paragraph style: > The new attributes label-aligned-at and indent-at of a certain list > level of a list style are used as indent attributes for a paragraph, > which have such a paragraph style applied, if neither the automatic > paragraph style nor the paragraph style provides own indent attributes > (fo:text-indent and fo:margin-left). If indent attributes are given at > the automatic paragraph style or the paragraph style, these attributes > are used to determine the alignment position and the indent for the text > lines following the first line. > > > The new attributes inclusive its explanations should be inserted into > chapter 15.12 "List-Level Style Properties", referencing to ODF 1.1 > specification document. > > > The new attributes cover the following use cases. These use cases are > hard or even impossible to be expressed with the existing attributes: > (1) Imagine the following list item layout: > - center align the list label of the list items at absolute position 2cm > - center of the actual list label is at absolute position 2cm > - start of the text of the first line and the following lines at > absolute position 3cm. > This list item layout can be expressed using the new attributes: > text:label-followed-by="listtab" > text:list-tab-stop-position="3cm" > text:label-aligned-at="2cm" > text:indent-at="3cm" > fo:text-align="center" > > (2) List item layout > - start the list label at absolute position 2cm > - start of the text of the first line at absolute position 3cm > - start of the text of the following lines at absolute position 4cm. > can be expressed by the new attributes: > text:label-followed-by="listtab" > text:list-tab-stop-position="3cm" > text:label-aligned-at="2cm" > text:indent-at="4cm" > fo:text-align="left" > > (3) Think of the following list item layout: > - right align the list label at absolute position 2cm - list label end > at absolute position 2cm > - start of the text of the first line directly after the list label > separated by a space > - start of the following lines at absolute position 5cm. > This is easy to be expressed with the new attributes: > text:label-followed-by="space" > text:list-tab-stop-position="5cm" > text:label-aligned-at="2cm" > text:indent-at="5cm" > fo:text-align="right" > > > Please support my proposal and vote on it, even when I'm not attending > the TC call, because I'm sick or on vacation. > > > Regards, Oliver.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]