Difference between revisions of "Right and left"

From Wiki
Jump to navigation Jump to search
m (moved right and left to Right and left: move to Uppercase)
(7 intermediate revisions by 6 users not shown)
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 alignment option. For instance,
  
That's not a bug, but a backward compatibility feature, says Hans.
+
<context source="yes" text="produces">
 +
\setuppapersize[A5]
 +
\startalignment[left]
 +
This is some aligned text, with \type{left} alignment.
 +
\stopalignment
  
Think of "ragged right/left" instead of "right/left aligned".
+
\framed[align=right,width=\textwidth]{Some framed text, with \type{align=right}.}
 +
</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:
 +
 
 +
<context source="yes" text="produces">
 +
\setuppapersize[A5]
 +
\startalignment[flushleft]
 +
This is some aligned text, with \type{flushleft} alignment.
 +
\stopalignment
 +
 
 +
\framed[align=flushright,width=\textwidth]{Some framed text, with \type{align=flushright}.}
 +
</context>
 +
 
 +
Incidentally, note that <cmd>leftaligned</cmd> and <cmd>rightaligned</cmd> produce flush-left and flush-right alignment, with
 +
 
 +
<context source="yes" text="producing">
 +
\setuppapersize[A5]
 +
\leftaligned{This is some \type{leftaligned} text.}
 +
\rightaligned{This is some \type{rightaligned} text.}
 +
</context>

Revision as of 16:28, 10 September 2012

< Bugs and workarounds | FAQ >

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

\setuppapersize[A5]
\startalignment[left]
This is some aligned text, with \type{left} alignment.
\stopalignment

\framed[align=right,width=\textwidth]{Some framed text, with \type{align=right}.}

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:

\setuppapersize[A5]
\startalignment[flushleft]
This is some aligned text, with \type{flushleft} alignment.
\stopalignment

\framed[align=flushright,width=\textwidth]{Some framed text, with \type{align=flushright}.}

produces

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

\setuppapersize[A5]
\leftaligned{This is some \type{leftaligned} text.}
\rightaligned{This is some \type{rightaligned} text.}

producing