OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[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]