2

在使用以下命令编译的文件 NOWEB

noweave -tex -filter "elide comment:*" adocument.nw > documentation.tex

并尝试使用命令编译生成的文件

xetex -halt-on-error documentation.tex

我收到以下错误消息

! Undefined control sequence.
<argument> ...on}\endmoddef \nwstartdeflinemarkup 
                                              \nwenddeflinemarkup

似乎 \nwstartdeflinemarkup 无法识别。

如果我从文档中删除所有序列

\nwstartdeflinemarkup\nwenddeflinemarkup

文件编译正常。

可能是什么问题?

4

1 回答 1

1

我认为问题在于 noweb 的分发中的一个错误,我认为在对 TeX 和 LaTeX 的支持中应该存在的一些命令实际上仅适用于 LaTeX。

一个简单的解决方法是将两行添加到源文件的开头:

\let\nwstartdeflinemarkup\relax
\let\nwenddeflinemarkup\relax

这方面的一些背景信息。鉴于此源文件:

One line of documentation.  
<<SomeChunkname>>=  
// No real code  
@ %  
Second and last line of documentation.

并运行noweave然后xelatex

noweave -tex adocument.nw > documentation.tex
xetex -halt-on-error documentation.tex

复制错误,这不足为奇,\nwstartdeflinemarkup因为nwmac.tex. 现在,浏览源文件nwmac.tex,即support.nwctan 镜像站点中,会发现它\nwstartdeflinemarkup是为 LaTeX 定义的,但不是为 TeX 定义的。

于 2014-09-24T10:46:00.040 回答