On 17-Mar-2014 13:56:56 Anton Shterenlikht wrote: >>From ted.hard...@wlandres.net Sun Mar 16 01:01:31 2014 >> >>Here is a suggestion (it's a technique I use systematically for >>the purpose you describe). The following is in the context of ms >>macros, though the same (or possibly a slight variant) should work >>for other macro sets. >> >>**I first define an equation numbering and description system: >> >>.nr EQno 0 1 >>.ds EQnxt \Z'\h'0.5m'[\\n+[EQno]\\$1]' >>.ds EQnow \Z'\h'0.5m'[\\n[EQno]\\$1]' >>.ds EQthing \Z'\h'0.5m'[\\$1]' >> >>These define an auto-incrementing equation number \n[EQno], >>so that, for instance (wsaqy we have already got up to equation [4], >> >>.EQ \*[EQnxt] >>phi ( x ) ~=~ exp( - half x sup 2 ) / sqrt{2 pi} >>.EN >>.ds EQnormdist \*[EQnow] >> >>Then the above equation will have its equation number (5) displayed >>to the right as " [5]", since the "\n+[EQno]" when "\n[EQnxt]" is >>read will first increment \n[EQno] from 4 to 5. > > I cannot check with a graphical output right now, > but rendered with ascii, I get strange results: > > $ cat bend.1 > .nr EQno 0 1 > .ds EQnxt \Z'\h'0.5m'(\\n+[EQno]\\$1)' > .ds EQnow \Z'\h'0.5m'(\\n[EQno]\\$1)' > .ds EQthing \Z'\h'0.5m'[\\$1]' > .NH 1 > Some section > .PP > Eqn. \*[mumu] shows that ... > .EQ \*[EQnxt] > phi ( x ) ~=~ exp( - half x sup 2 ) / sqrt{2 pi} > .EN > .ds mumu \*[EQnow] > .ds mumua \*[EQnow a] > .ds mumub \*[EQnow b] > .PP > Eqns. 2"] ... > $ /usr/local/bin/groff -e -ms -Tascii bend.1 | head -n 15 > bend.1:62: warning: can't find special character `*p' > bend.1:69: warning: can't find special character `sqrt' > bend.1:98: warning: can't find special character `sqrtex' > bend.1:107: warning: can't find special character `*f' > > > > > > > 1. Some section > > Eqn. shows that ... > > (x)=exp(-_x2)/2 (1) > > > Eqns. ,1(... > $ > > The last line of output is wrong. > It should've read "Eqns. (1a), (1b) ...". > What am I missing? > > Also, how exactly do I run groff twice > to resolve the first, forward-looking reference? > Should I take care myself that some cross-referencing > information is saved to files? > Or is this done automatically with some > command line options with ms? > > Many thanks > Anton
Apologies -- I had left a little elephant trap in the definitions! Remove the \Z'...' from the definitions of EQnow, and then it should be OK (the effect of \Z'...' is to cause "..." to be printed, followed by a return to where it was previously, i.e. as if it had zero width). So in your output (and it would be similar in PS output), your "\*[mumub]" will over=print your "\*[mumua]". With, instead: $ cat bend.1 .nr EQno 0 1 .ds EQnxt \Z'\h'0.5m'(\\n+[EQno]\\$1)' .ds EQnow \h'0.5m'(\\n[EQno]\\$1) .ds EQthing \h'0.5m'[\\$1] .\".ds EQnow \Z'\h'0.5m'(\\n[EQno]\\$1)' .\".ds EQthing \Z'\h'0.5m'[\\$1]' .NH 1 Some section .PP Eqn. \*[mumu] shows that ... .EQ \*[EQnxt] phi ( x ) ~=~ exp( - half x sup 2 ) / sqrt{2 pi} .EN .ds mumu \*[EQnow] .ds mumua \*[EQnow a] .ds mumub \*[EQnow b] .PP Eqns. \*[mumua], \*[mumub] ... followed by: groff -e -ms -Tascii bend.1 | head -n 15 I get (on the terminal): 1. Some section Eqn. shows that ... (x)=exp(-2x2)/2 (1) Eqns. (1a), (1b) ... The reason for the "can't find special character" warnings is that the font-set for -Tascii is simply the ASCII character set, which does not include Greek characters or mathematical symbols, namely in the case of your example special character `*p' Greek pi special character `sqrt' Square root sign special character `sqrtex' Square root extension [1] special character `*f' Greek phi [1]: The square root extension is a line which can be attached to the top of the vertical part of the square root sign to make it taller (i.e. to match a tall expression to the right of it). Hoping this helps, Ted. ------------------------------------------------- E-Mail: (Ted Harding) <ted.hard...@wlandres.net> Date: 17-Mar-2014 Time: 17:12:02 This message was sent by XFMail -------------------------------------------------