未定义的控制序列:\undefinedpagestyle 在 \end{macrocode}

未定义的控制序列:\undefinedpagestyle 在 \end{macrocode}

完整源代码可以在这里找到这里(静态链接),但相关部分如下:

...
%    \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

相关内容