[Scribus] Tabs and alignment

Michael Koren kung42o
Mon Dec 18 22:57:00 CET 2006

Andreas Vox-2 wrote:
> Hi folks!
> I've a question for the users: how should tabs work in justified,  
> right-aligned or centered paragraphs?
> a) do you have any use cases for that?


I think this is a very good question, and having a consistent theory of tabs
and alignment for 1.4 would be very nice. :) I'd been toying with this a bit
before, and after reading your question and everyone's responses, I've tried
to sort through all the possible uses of tabs and come up with a sane way to
support them all, while also avoiding the formatting messes it's easy to get
into using tabs.

[Theoretical aside: All tabs are is a way to organize and align logical
(tab-delimited) divisions in input text against a defined vertical grid in
the document. (I support the idea someone gave of making it visible.) This
can be useful in many contexts, whether for tabular display or simple
indentaion. I disagree that using them as a way to indent paragraphs
(instead of by styles) is wrong, because it allows logical (or semantic)
information to be included in input text, and paragraphs with different
indentation levels can then be formatted using the same style. (I actually
think whole-paragraph indentation should be able to work that way too,
although there's not a standard character for it....)]

The conclusion I came to is (1) a few more options to specify how you want a
tab to behave (notably tab zones and margins, with overflow control and
warnings) would be helpful, and (2), to answer your question, justification
and alignment are fundamentally per-tab-stop properties, and cannot
coherently be thought of as applying to a whole paragraph (with multiple tab
stops defined) at all, because tabs themselves define alignment. Each tab
field really has its own alignment setting anyway, and trying to "mix in" a
separate paragraph alignment will just lead to an unpredictable and not very
useful mess, so we shouldn't try--it's not necessary.

Here's my reasoning: A simple left-aligned paragraph is equivalent to a
single left tab at the left edge of the paragraph, which text is aligned to
automatically in each line as it wraps from the previous line. If you add
more left tab stops, you can get to them from the "default" initial stop by
pressing tab. But you can also add center or right tab stops in the
sequence, or you can use all right tabs and call the paragraph right-aligned
(in which case it could be useful to specify the order in which the stops
are used, as you asked), etc.

Therefore, the basic paragraph alignments _are just tab styles_ with the
ability to define the order and behavior of stops. If you want more complex
behavior, you just use a different tab style, and don't refer to paragraph
alignment at all (it doesn't really make sense then). The one exception
would be if you could define tab "zones" around each tab, in which case the
same alignment style (including justified) could quickly be applied to all
zones to make tables, as someone suggested. Zones would also allow control
over text spilling out of a tab field, which may not be desirable in a table

So to address your questions:

> b) what is more important:
>      - outer shape of the paragraph
>      - exact control which tabstop is used

The latter--that's what tabs are, definite stops. However, if someone really
wants it, a set of tabs could be allowed to "float" inside another field, so
the whole unit could be aligned within the outer field, giving more control
over the outer shape (this seems to be the way scribus works now). This
would give the last iota of precise control over how tabs work. :)

> c) consider right-aligned text with a left tab: should there be some  
> minimum space where the tab is?

There shouldn't be anything but what the tab itself requests, regardless of
its alignment. Otherwise, you never know precisely what you're getting. I
think a tab itself should have a margin associated with its zone that can be
used to provide such a space if desired, and you could set a default tab
margin for a whole paragraph as well.

> d) consider typing a right-aligned paragraph: which tabstop should  
> the first TAB key use, the leftmost one or some other?

That should be selectable in the tab configuration, which is all a
right-aligned paragraph is. :) There are actually two relevant properties, I
think: (1) where text starts out before pressing tab (which zone, such as
far left or far right), and  (2) how it flows when you hit tab. E.g., you
might want to start typing in the far right zone, but have the first text
move left one stop when you press tab, so you're always typing in the
rightmost zone. I doubt one configuration will be suitable in all cases....

> Currently my ideas go to supporting tabs in justified text by  
> restricting justification to the part after the last tab stop (does  
> anyone want justification between tabs?).

Yes, as discussed, I think that should be a property of each field (zone).

> When using tabs in right-aligned text I'd choose in the same order as  
> I would in left-aligned text, just flushing the text before ther  
> first tab right and justifying the text after the last tabstop.
> I dont plan to support tabs in centered text.

Ditto, this isn't really a property of the whole paragraph anyway in this
case, so why make up arbitrary rules? You can define the alignment you want
in each field directly with the type of tab or zone.

> /Andreas

I know that was a bit long :) , but I hope it's found to be useful. Can
anyone think of a case that doesn't fit this approach? I'll file requests
for some of the extra features I mentioned on the bugtracker.


View this message in context: http://www.nabble.com/-Scribus--Survey%3A-using-tabs-when-alignment-is-other-than-%27left%27-tf2808855.html#a7937359
Sent from the Scribus mailing list archive at Nabble.com.

More information about the scribus mailing list