完整源代码可以在这里找到这里(静态链接),但相关部分如下:
...
% \begin{macrocode}
%<*package>
% \end{macrocode}
% \begin{macro}{\BCSet}
% And stuff
% \begin{macrocode}
\NewDocumentCommand{\BCSet}{m}
{
\keys_set:n { #1 }
}
% \end{macrocode} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ERROR HERE %%%%%%%%%%
% \end{macro}
%\begin{macro}{\examplemacro}
%\changes{v1.0}{2009/10/06}{Some change from the previous version}
% \begin{macrocode}
\newcommand*\examplemacro[2][]{%
Some code here, probably
}
% \end{macrocode}
%\end{macro}
% \begin{macrocode}
\ExplSyntaxOn
...
至于 MWE,我不确定 DTX 文件是否可以比我现在拥有的文件更精简;我只添加了一个简短的说明部分和一个宏定义。我尝试完全遵循示例,因为我对这种dtx
格式还不熟悉。我不知道为什么它会给我以下错误:
ERROR: Undefined control sequence. --- TeX said --- <argument> \undefinedpagestyle l.153 % \end{macrocode} --- HELP --- TeX encountered an unknown command name. You probably misspelled the name. If this message occurs when a LaTeX command is being processed, the command is probably in the wrong place---for example, the error can be produced by an \item command that's not inside a list-making environment. The error can also be caused by a missing \documentclass command.
我相信这是个问题fancyhdr
,因为我从那里认出了这个命令,但我不确定。同样,撰写本文时的完整源代码可以在GitHub。
答案1
文档使用breadcrumb
页面样式但未定义它。这只会使其与页面样式相同plain
。
\documentclass{ltxdoc}
\makeatletter
\let\ps@breadcrumb\ps@plain
\makeatother
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{\jobname}
\usepackage[numbered]{hypdoc}
\usepackage[colorlinks]{hyperref}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
本质上和处理无关dtx
,只是这个文档加载了生成的包。
答案2
在 @egreg 的敦促下,我进一步研究了错误并发现,虽然我没有意识到,但我通过 将自己的包包含到文档中。正如我所说,这导致一个检查我自己的包是否有错误的功能。我确实有一个错误,但它并没有抛出我认为应该抛出的地方;我在文档中\usepackage{\jobname.sty}
使用了未定义的页面样式。breadcrumb