From: Michael S. <m-s...@us...> - 2005-04-14 10:01:21
|
Hi André, On 14.04.05, Andre Wobst wrote: > Right. In PyX we do not use such paragraph breaking tricks to alter > the horizontal alignment of the whole box which we prepare for > shipout. We just shift this final box to the left when needed. There > is a PyXHAlign macro, which storres a alignment number as a float (0 > to 1 for left to right) and its used later on. Just to get things clear: PyXHAling has nothing to do with the box-aligning, only with the relative alignment of lines inside a box? > Right, and the text.halign.XXX does the same with the x-coordinate, > but, at least by default, we could have it altering the paragraph > alignment as well. I think, this would be quite natural (especially > for the center alignment). The following example does that and it > works in TeX and LaTeX: > > from pyx import * > > text._textattrspreamble += r"""\newdimen\PyXraggedskipplus > \PyXraggedskipplus=80pt nice. But I would rather believe Knuth and say 4em here. > Note that text.halign.left now becomes different from > text.halign.clear! Can we start to discuss whether I should make that > to be the default behaviour. I would propose to make two other sets of > halign attributes, which separate the two tasks of aligning the box > and the content within the box. We could name it text.halign.parleft, > parcenter, parright and text.halign.boxleft, boxcenter, boxright. Other name suggestion: In TeX there are macros like \raggedright. In LaTeX, I think, also \raggedleft and the environments flusright, flushleft have been defined. Why not stick to this notation which is mostly what we do? I propose text.halign.raggedright = text.halign.flushleft text.halign.raggedcenter = text.halign.flushcenter text.halign.raggedleft = text.halign.flushright The box-alignment stuff is well-named with text.halign.boxright text.halign.boxcenter text.halign.boxleft I would like to see the box-aligning and the line-aligning separated. Then, a user has to say [text.halign.boxright, text.halign.flushright] but _can_ say something like the following without explicitly moving the textbox, which takes some time to learn how it works. [text.halign.boxright, text.halign.raggedcenter] > Still, all these technically different things should go into > text.halign, because people searching for that feature will find it > most easiest that way. At least I guess ... and we should discuss that > now! I would also expect it first in text.halign. After a closer look I would rather tend to text.halign and text.valign for the box-aligning business For text-aligning, valign makes no sense, unless we also provide a height to a parbox (which is something we _should_ think of). In this case I would say that this is more natural: text.ragged.left = text.flush.right etc. this may be extended to text.flush.top text.flush.middle text.flush.bottom when a box-height is available. > > Therefore, we should find two different names for the different > > alignments -- your solution with a \PyXcentering macro is also not bad, > > because it will live in the (La)TeX world and not in the python world. > > I think it should work without any necessary text.parbox() which at > > least I forget quite often. > > Well, that last point is a general problem arising from the fact, that > you do need a *width* to use paragraphs. It is absolutely natural, > that PyX uses TeX in lr-mode by default. We should not be too fancy. In principle, you are right, because PyX does not know of any widths for the text ... But: When you simply start TeX by saying "tex" to a shell -- then you have an \hsize predefined as 469.75499pt (this is a4, I think, and you can redefine the format file for letter). Thus, the user is in outer vertical mode and_can_ use \par wherever he wants. _This_ is the functionality I would expect from TeX called by PyX, with the difference, that the \hsize is somehow infinity. Remind, that not many PyX users even _know_ what lr-mode is and what it means for the TeX-commands that can be used. Michael. -- Michael Schindler Theoretische Physik I Tel: +49 (0)821 598-3230 Universität Augsburg Fax: +49 (0)821 598-3222 86135 Augsburg http: www.physik.uni-augsburg.de/~schindmi "A mathematician is a device for turning coffee into theorems" Paul Erdös. |