[OS X TeX] MacTeX inputs

Louis S VanSlyck lsv at pce-co.com
Mon Nov 13 10:12:16 EST 2006


Bruno,

You said:

> Here the above works if you load graphicx.tex before color.tex.

Not so for me, typeset fails at "\input color", when the graphic 
commands are written first.

Using

> \input miniltx
> \input color.sty
> \input graphicx.sty

Doesn't work either, maybe because I'm in plainTex.

Lou

On Nov 13, 2006, at 9:48 AM, Bruno Voisin wrote:

> Le 13 nov. 06 à 15:03, Louis S VanSlyck a écrit :
>
>> One can use pen color by:
>>
>> \input color
>> {\color{red} This line is red.}
>>
>> Or one can insert a picture by:
>>
>> \input graphicx
>> \includegraphics[scale=0.5]{Logo}
>>
>> But the two inputs seem to be mutually exclusive.
>> Whichever \input command appears first causes an error at the second, 
>> and typeset fails.
>
> Here the above works if you load graphicx.tex before color.tex.
>
> This seems to be caused by the handling of the "@" character in 
> miniltx.tex, graphicx.tex and color.tex, apparently deficient: 
> miniltx.tex (called by graphicx.tex and color.tex) defines 
> \makeatletter and \makeatother, then uses \makeatletter immediately 
> but neglects to reset \makeatother before closing. There may be some 
> reasoning behind this, but I fail to see it for now.
>
> \makeatletter is the standard LaTeX way of making "@" behave as a 
> letter, such that it can be used in command names, and \makeatother is 
> what makes the opposite, i.e. prohibit "@" to appear in command names. 
> The LaTeX format and the LaTeX packages start with \makeatletter, use 
> "@" in their internal command names, then end up with \makeatother. In 
> this way a LaTeX user won't be able to define commands with an "@" in 
> their names, and hence won't be able to interfere inadvertently with 
> the LaTeX internals.
>
> However, miniltx.tex omits the final \makeatother. graphicx.tex is 
> apparently meant to be called first, as it uses @ in a command name, 
> immediately after calling miniltx.tex, and ends with \makeatother (or, 
> equivalently, \resetatcatcode):
>
>> \input miniltx
>> \def\Gin at driver{dvips.def}
>> \input graphicx.sty
>> \resetatcatcode
>
> color.tex, by contrast, does use \makeatletter immediately after 
> calling miniltx.tex:
>
>> \input miniltx
>> \makeatletter
>> \def\Gin at driver{dvips.def}
>> \input color.sty
>> \resetatcatcode
>
> Hence it looks like graphicx.tex must be called before color.tex.
>
> Actually I would advise to include the code from graphicx.tex and 
> color.tex directly in your TeX input file, and to modify it so as to 
> make it more efficient: nowadays TeX includes a way to determine 
> automagically in which form it is called (pdfTeX, TeX + dvips, or 
> XeTeX), such that you can simply write in your TeX input file:
>
> \input miniltx
> \input color.sty
> \input graphicx.sty
>
> or
>
> \input miniltx
> \input color.sty
> \input graphicx.sty
>
> and the appropriate driver file (pdftex.def, dvips.def or xetex.def) 
> will be selected on-the-fly and the proper graphics file format (.pdf, 
> .eps, .jpg, .tiff, etc.) selected as well. In modern TeX, there is no 
> need to write \def\Gin at driver{[...].def} for selecting the driver file 
> any longer.
>
> Hope this helps,
>
> Bruno Voisin------------------------- Info --------------------------
> Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
>          & FAQ: http://latex.yauh.de/faq/
> TeX FAQ: http://www.tex.ac.uk/faq
> List Archive: http://tug.org/pipermail/macostex-archives/
>
>

------------------------- Info --------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
          & FAQ: http://latex.yauh.de/faq/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/




More information about the MacOSX-TeX mailing list