tex 使用错误的宏

tex 使用错误的宏

出于好奇,我尝试使用源weave代码bibtex.web并编译结果bibtex.textex我得到了一些错误,这促使我进行调查;我确信我的困惑源于我的错误假设。

错误是缺少 $ 类型的,但指出使用了错误的宏。编织的 tex 文件使用样式文件webmac.sty。其中包含诸如\A\As\E\ET之类的宏\ETs。该\E宏应在数学环境中使用。

错误示例如下:

! Missing $ inserted.
<inserted text> 
                $
<to be read again> 
                   \cdot 
\E->\cdot 
          10^
<argument> 39, 58, 60\E
                       Ts61
\note ...ndent 2em\baselineskip 10pt\eightrm #1~#2
                                                  .\par }
l.1135 \As39, 58, 60\ETs61.

这表明\ETs宏只被读取到该\E部分。为什么会发生这种情况?为什么名称和用法相似的宏不会发生这种情况\As

编辑:我应该补充一点,在有问题的宏后添加空格时行为保持不变。

答案1

在关于最近更改的初始行之后,该bibtex.ch文件有

% [0] Let bibtex.tex work with latest webmac (which defines \ET, hence
% making E active loses).
@x
\catcode`E=13 \uppercase{\def E{e}}
\def\\#1{\hbox{\let E=\drop\it#1\/\kern.05em}} % italic type for identifiers
@y
\let\maybe = \iffalse % process only changed sections
@z

所以你需要同时bibtex.web拥有bibtex.ch我从http://tug.org/svn/texlive/trunk/Build/source/texk/web2c/)并调用

weave bibtex.web bibtex.ch

然后,在生成的文件上运行pdftex或将产生正确的输出而没有错误。texbibtex.tex

相关内容