Difference between revisions of "Right and left"

From ConTeXt wiki
(Expanded, with examples and the new "flushleft" and "flushright".)
Line 1: Line 1:
< [[Bugs and workarounds]]
+
< [[Bugs and workarounds]] | [[FAQ]] >
  
It seems that ''right'' and ''left'' are swapped in all commands that accept an <tt>align=</tt> option.
+
The <tt>right</tt> and <tt>left</tt> alignments are backwards from the usual directions in all commands that accept an <tt>align=</tt> option. For instance,
  
That's not a bug, but a backward compatibility feature, says Hans.
+
<texcode>
 +
\startalignment[left]
 +
This is some aligned text, with \type{align=left}.
 +
\stopalignment
  
Think of "ragged right/left" instead of "right/left aligned".
+
\startalignment[right]
 +
This is some aligned text, with \type{align=right}.
 +
\stopalignment
 +
</texcode>
 +
 
 +
produces
 +
 
 +
<context>
 +
\startalignment[left]
 +
This is some aligned text, with \type{align=left}.
 +
\stopalignment
 +
 
 +
\startalignment[right]
 +
This is some aligned text, with \type{align=right}.
 +
\stopalignment
 +
</context>
 +
 
 +
Unfortunately, when Hans was first writing this part of ConTeXt, he was thinking of "ragged right" and "ragged left" alignment, rather than "flush left" and "flush right".  And now that it's been this way a while, it's impossible to change it, because changing it would break backward compatibility with all of the existing documents that use it.
 +
 
 +
If you'd rather not try to remember that it's backwards, ConTeXt now supports <tt>flushleft</tt> and <tt>flushright</tt> options, which do exactly the same thing, but in the "correct" direction.  Thus:
 +
 
 +
<texcode>
 +
\startalignment[flushleft]
 +
This is some aligned text, with \type{align=flushleft}.
 +
\stopalignment
 +
 
 +
\startalignment[flushright]
 +
This is some aligned text, with \type{align=flushright}.
 +
\stopalignment
 +
</texcode>
 +
 
 +
produces
 +
 
 +
<context>
 +
\startalignment[flushleft]
 +
This is some aligned text, with \type{align=flushleft}.
 +
\stopalignment
 +
 
 +
\startalignment[flushright]
 +
This is some aligned text, with \type{align=flushright}.
 +
\stopalignment
 +
</context>
 +
 
 +
Incidentally, note that <cmd>leftaligned</cmd> and <cmd>rightaligned</cmd> also produce flush-left and flush-right alignment, with
 +
 
 +
<texcode>
 +
\leftaligned{This is some \type{leftaligned} text.}
 +
\rightaligned{This is some \type{rightaligned} text.}
 +
</texcode>
 +
 
 +
producing
 +
 
 +
<context>
 +
\leftaligned{This is some \type{leftaligned} text.}
 +
\rightaligned{This is some \type{rightaligned} text.}
 +
</context>

Revision as of 02:08, 6 September 2005

< Bugs and workarounds | FAQ >

The right and left alignments are backwards from the usual directions in all commands that accept an align= option. For instance,

\startalignment[left]
This is some aligned text, with \type{align=left}.
\stopalignment

\startalignment[right]
This is some aligned text, with \type{align=right}.
\stopalignment

produces

Unfortunately, when Hans was first writing this part of ConTeXt, he was thinking of "ragged right" and "ragged left" alignment, rather than "flush left" and "flush right". And now that it's been this way a while, it's impossible to change it, because changing it would break backward compatibility with all of the existing documents that use it.

If you'd rather not try to remember that it's backwards, ConTeXt now supports flushleft and flushright options, which do exactly the same thing, but in the "correct" direction. Thus:

\startalignment[flushleft]
This is some aligned text, with \type{align=flushleft}.
\stopalignment

\startalignment[flushright]
This is some aligned text, with \type{align=flushright}.
\stopalignment

produces

Incidentally, note that \leftaligned and \rightaligned also produce flush-left and flush-right alignment, with

\leftaligned{This is some \type{leftaligned} text.}
\rightaligned{This is some \type{rightaligned} text.}

producing