![tex 使用错误的宏](https://linux22.com/image/273739/tex%20%E4%BD%BF%E7%94%A8%E9%94%99%E8%AF%AF%E7%9A%84%E5%AE%8F.png)
出于好奇,我尝试使用源weave
代码bibtex.web
并编译结果bibtex.tex
。tex
我得到了一些错误,这促使我进行调查;我确信我的困惑源于我的错误假设。
错误是缺少 $ 类型的,但指出使用了错误的宏。编织的 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
或将产生正确的输出而没有错误。tex
bibtex.tex