Using \startalign outside of math mode?
Hi, I'm using a custom pretty printer to apply some formatting to a buffer. However, I'm not using a monospaced font, but some sans serif font to display the result. In the original text, I have some lines that are nicely aligned using leading spaces. For example: foo = bar | baz Obviously, when using a non monospaced font for this, the alignment is lost. When in math mode, I can use \startalign to force alignment, like: \startalign foo \NC= bar \NC| baz \stopalgin However, I haven't manage to switch to math mode inside pretty printed text. Also, even if I would, I would get my text rendered in math mode, which probably won't work. So, I'm wondering if there is anything like \startalign to use outside of math mode? I've been looking at the implementation of \startalign, but couldn't find it... Some way to insert spacing until some fixed point (e.g. tab-stop like) would probably work, if I can define the tabstop on a case by case basis? Gr. Matthijs
Hi all,
foo = bar | baz
it seems I found some sort of a solution. Using the \setwidthof I found at [1], I wrote the following: \def\setwidthof#1\to#2% {\bgroup \setbox\scratchbox\hbox{#1}% \expanded{\egroup\def\noexpand#2{\the\wd\scratchbox}}} foo = bar \setwidthof{foo }\to\alignwidth \hskip\alignwidth| baz This works, but is not so pretty, obviously. Since I'm using a custom pretty printer, I can probably hack something up that generates this from the more natural form automatically. Still, I'm wondering if there are more pretty methods to do this. In particular, this method is completely limited to indents at the start of a line (e.g., aligning the b's of bar and baz isn't possible, though I could perhs do more complicated math using the width of "| ", but that will become even more hideous... Any other suggestions? Gr. Matthijs [1]: http://www.ntg.nl/pipermail/ntg-context/2009/037404.html
On Fri, 28 Aug 2009, Matthijs Kooijman wrote:
Hi,
I'm using a custom pretty printer to apply some formatting to a buffer. However, I'm not using a monospaced font, but some sans serif font to display the result. In the original text, I have some lines that are nicely aligned using leading spaces. For example:
foo = bar | baz
Obviously, when using a non monospaced font for this, the alignment is lost. When in math mode, I can use \startalign to force alignment, like:
\startalign foo \NC= bar \NC| baz \stopalgin
However, I haven't manage to switch to math mode inside pretty printed text. Also, even if I would, I would get my text rendered in math mode, which probably won't work.
So, I'm wondering if there is anything like \startalign to use outside of math mode? I've been looking at the implementation of \startalign, but couldn't find it...
Startalign is essentially a table with some predefined defaults. You can try something like (untested) \starttable[|rs(0.2em)|cs(0.2em)|l|] \NC foo \NC = \NC bar \NC \AR \NC \NC | \NC baz \NC \AR \stoptable Aditya
participants (2)
-
Aditya Mahajan
-
Matthijs Kooijman