[tex-eplain] btxmac.tex causes Runaway definition andForbiddencontrol sequence on compile.

terry.s at Safe-mail.net terry.s at Safe-mail.net
Wed Oct 11 12:37:25 CEST 2023


Hi Laurence,

Thank you so much for your explanation. I did download your "glyph" examples but haven't had a chance to review them yet. (I was focused on a new compile error, which was caused by an oversight in my .bib file, mentioned in another email.)

You've been using plain TeX longer than me and I just started, so your help is very instructive. It seems we come at this from different angles. You never did much with LaTeX, I used LaTeX exclusively (well, everyone throws some plain TeX in there), tested OpTeX somewhat, and am motivated to learn plain TeX by certain limitations in both, so it seems we can share experiences from those perspectives.

> > Links already worked, but this turns the borders black instead of blue, which shows that changes are being applied to the driver.
> 
> I'm not sure what you mean by this.  The option `dvipdfm' is only for use when using dvipdfm or dvipdfmx.

I'm using *dvipdfmx*, but without the option to \enablehyperlinks, link borders are automatically blue because of stuff loaded by *eplain* (see below). When I passed the "dvipdfm" option to \enablehyperlinks, they turned black (probably the default of some driver-related macros you mention):
\enablehyperlinks[dvipdfm]

> 
> > > \hlstart{}{bwidth=0}{instructions}\Blue{General Instructions}\hlend
> > > [...]
> > > \hldest{fit}{}{instructions}
> 
> \hlstart ... \hlend create the link.  \Blue is a macro from the the dvips package and only works when you're using dvips, dvipdf, dvipdfmx or some other program from the dvips package, if there are any.  If you want to use it, and the other color commands, you need to include `colordvi.tex' (/usr/share/texlive/texmf-dist/tex/generic/dvips/colordvi.tex on my system)
> or, equivalently, `colordvi.sty'. 
...
>  \hldest goes where you want the link to point, i.e., where you're supposed to jump to when you click the link.  It might be in the same document or somewhere else.  "General Instructions" is the text of link, printed in blue.  "instructions" is the identifier for the link.  "fit" determines the behavior when you click on the link, i.e., how page is displayed in the browser or PDF viewer.

A few colors like \Blue are also defined in LaTeX's *color* package. So eplain not only adds functonality to plain TeX, it also allows some LaTeX packages because of the package *miniltx* (per Karl Berry). If you use *eplain*, it loads *miniltx* + *color* automatically. So if you're using *eplain* with TeX, that command is already defined.. I used \url{} for external links because I loaded the *url* package (which is not repsonsible for color), which handles line-breaks in url very well.

I hadn't gotten far enough to learn about \hlstart and \hldest. In fact, I don't think I've ever tried creating manual cross-references in LaTeX. I always used the *hyperref* package with LaTeX which handles (and styles) all the links created by LaTeX and packages. I have so much to learn!

I always used *pdfLaTeX* when I was using LaTeX. Now I'm using *dvipdfmx* although it seems you can use *pdfTeX* with *eplain* and BibTeX (but there may be caveats to that).

So, *btxmac* is all bilbiography-related stuff. If one uses BibTeX but not *eplain*, you need to hand-load it. Conversely, if you're using *eplain* but not doing bilbiographies, you can speed up compile by blocking *eplain* from loading it with "\let\nobibtex=t" before you load *eplain*. (I first moved *btxmac* to the top as you suggested, which resolved the error, but now it's commented out with a note about when it might be needed.)

Thank you for your help and examples,
Terry S.


More information about the tex-eplain mailing list.