[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [office] proposal for new position and space attributes for thelist level
Hi Thomas, first I want to welcome you on board of the ODF TC - now you are the newest member not me any more ;-) You're right. The main reason for these new attributes are a better compatibility to the list level attributes of Mircosoft Word in OpenOffice.org. But, there are some attribute constellation, which can't be mapped or are hard to map to the existing attributes. Before I give examples, I want to illustrate the current behaviour of the OpenOffice.org Writer. The current interpretation of OpenOffice.org Writer about the existing attributes are: (a) The area for the minimum label width (text:min-label-width) starts at the position by adding text:space-before, paragraph indent (fo:margin-left) and the paragraph first line indent (fo:text-indent). (b) The text of the first line in general starts directly after the minimum label width area. But a minimum label distance (text:minimum-label-distance) has to be hold. Thus, in OOo Writer it's checked, if the space between the actual list label end and the end of the minimum label width area fulfills the value of the minimum label distance. E.g. minimum label width is 1cm, actual label width is 0,5cm, the list label is centered inside the minimum label width area (fo:text-align = "center"). Thus, 0,25cm is the distance between the actual list label end and the start of the text. If the specified minimum label distance is greater than 0,25cm - e.g. it's 0,4cm - an adjustment is needed. The current Writer implementation has the constraint to keep the absolute position of the text in the first line in order to assure that the text of the first line of all list items starts at the same absolute position. Thus, the list label is moved 0,15cm to the left. Another constraint in OOo Writer is that the list label can't be start before the start of the minimum label width area - our interpretation of the ODF specification about attribute text:space-before. Thus, in the following example the start of the text of the first line has to be moved: minimum label width = 1cm, actual label width 0,5cm, the list label is left aligned inside the minimum label width area. Thus, 0,5cm is the distance between the actual list label end and the start of the text. If the specified minimum label distance is greater than 0,5cm, the start of the text of the first line has to be moved accordingly. (c) The text of the text lines following the first line of a list item starts at the position by adding text:space-before, text:minimum-label-width and the paragraph indent (fo:margin-left). (d) The alignment of list label takes place inside the minimum label width area. If the minimum label width area is smaller than the actual list label width, the current OOo Writer implementation applies alignment left regardless of the value of fo:text-align. This is another consequence of the second constaint given in (b). Use cases for the new attributes respectively mapping problems from the new attributes to the existing ones: Example 1: I want to center align the list label of the list items at absolute position 2cm - center of the actual list label is at absolute position 2cm and start of the text of the first line and the following lines at absolute position 3cm. Easy with 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" Hard or even impossible with the existing attributes, if the list labels of the list items doesn't have the same width. Example 2: I want to start the list label at absolute position 2cm, the text of the first line at absolute position 3cm and the text of the following lines at absolute position 4cm. Easy with 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" Hard with the existing attributes, because the text of the first line and the following lines have to start at different positions. Thus, the first line indent and the paragraph indent of the paragraph has to be used to achieve this. The user can't specify it with the list level attributes alone: text:space-before="2cm" text:minimum-label-width="1cm" text:minimum-label-distance="0cm" fo:text-align="left" fo:text-indent="-1cm" - paragraph attribute fo:margin-left="1cm" - paragraph attribute Example 3: I want to right align the list label at absolute position 2cm - list label end at absolute position 2cm -, the text of the first line and the following lines at absolute position 5cm. Easy with the new attributes: text:label-followed-by="listtab" text:list-tab-stop-position="5cm" text:label-aligned-at="2cm" text:indent-at="5cm" fo:text-align="right" Impossible in OOo Writer with the existing attributes, because of the constraints given above. Some one could think of the following attribute values: text:space-before="0cm" text:minimum-label-width="2cm" text:minimum-label-distance="3cm" fo:text-align="right" fo:text-indent="-3cm" - paragraph attribute fo:margin-left="3cm" - paragraph attribute But, this doesn't work in OOo Writer, because the Writer first would move the list label to the left before it moves the text of the first line to the right. Another solution could be: text:space-before="2cm" text:minimum-label-width="0cm" text:minimum-label-distance="3cm" fo:text-align="right" But, this also doesn't work in OOo Writer, because in this case the list label would start at 2cm instead of ending. Here the OOo Writer could be changed, but the above given OOo Writer constraints are consequences of its interpretation of the ODF specification, which doesn't state how the minimum label distance should be hold - moving the list label or moving the text of the first line. Thus, the new attributes are motivated by the way how Microsoft Word specifies its position and space for the list label and the text lines of the list items. But, the new attributes adds additional functionality - see my example 1. Another advantage of the new attributes are, that you've got the possibility to specify the list item layout without using the paragraph indent and the paragraph first line indent - see my example 2. The new attributes provide a new list label alignment. While the existing attributes provides an alignment inside a specified area, the new attributes define an alignment at a position. Thus, the new attributes also makes sense in case that text:label-followed-by equals "space" or "nothing". Another important function of the new attributes lays in its details - see my paragraph about new attribute text:list-tab-stop-position. It's not clear that the text of the first line starts at the given tab stop position. I hope you see the benefit of the new attributes and you will support my proposal. Regards, Oliver. Thomas Zander wrote: > The reason these features are added seem to be limited to "WW has them". > A better reason would be that you have usecases (i.e. things users want to > accomplish) where the proposed solution fits best. > Because if you can't find a usecase that warrents adding this feature then no > user will actually miss these anyway. > > On Friday 26 January 2007 13:27, Oliver-Rainer Wittmann - Software Engineer - > Sun Microsystems wrote: >> The new attributes for the list level style are: >> - text:label-followed-by > > I fail to see how this adds anything. > We already have text:min-label-width which can be used to achieve the tabs > based feature. > Having a trailing space seems to be default already. > I have yet to find a user that wants his text to start without any spacing > following his counter. > >> - text:list-tab-stop-position > > This is just needed for the tabs-based feature. Which we already can do just > fine with text:min-label-width > >> - text:label-aligned-at > > This feature doesn't seem to add anything either. > It just makes things more complex for the user. > Using the paragraph-inset (first line / text indent) you can accomplish all > the things this feature adds already. > >> - fo:margin-left > > If the above are not needed, then this one isn't either. > > Can someone provide real life usecases? > Which, to be clear, does not mean existing documents that use these features, > it means a *goal* a user wants to accomplish that he can't achieve without > these features. > > Thanks.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]