使用 docstrip 实用程序生成文件时,它会添加%
注释行的前言。如果输出文件不是 latex 格式,这很容易违反输出文件的语法。
pdftex
例如,在文件上运行minimal.dtx
(见下文),将产生一个语法不正确的骨架,开头为
%%
%% This is file `minimal.py',
%% generated with the docstrip utility.
%%
%% The original source files were:
%% ...
...
\endinput
%%
%% End of file `minimal.py'.
最小.dtx
%\iffalse -- Ignore driver section when typesetting.
%<*driver>
\iffalse ---- SINGLE-FILE: INS FILE INCLUDED ---- \fi
\begingroup\input{docstrip}
\askforoverwritefalse
\generate{
\file{\jobname.py}{\from{\jobname.dtx}{python}}
}
\endgroup
\documentclass{ltxdoc}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
$</driver>
%\fi
%
%
% \section{Imports}
% \begin{macrocode}
%<*python>
import sys
import os
%</python>
% \end{macrocode}
答案1
解决方案是在调用之前使用\nopreamble
和命令,以抑制此输出。\nopostamble
\generate
如果输出文件对文件开头的空行敏感,则正确注释掉全部空行,未被 docstrip 标签(%<tag>
或%<*tag>...%</tag>
)分隔。
看文档条.pdf有关详细信息,请访问 CTAN。