我尝试使用versions.sty(0.55)在文档的不同版本中使用不同的节标题。我在编译时遇到错误;这是MWE:
%!TEX encoding = UTF-8 Unicode
%!TEX TS-program = pdflatexmk
\documentclass{article}
\usepackage{versions}
\includeversion{draft}
\begin{document}
\section{\begin{draft}This is a draft of\end{draft} Introduction}
Some text
\end{document}
错误是:
Argument of \@sect has an extra }.
<inserted text>
\par
l.9 ...This is a draft of\end{draft} Introduction}
有什么建议吗?谢谢!
答案1
适用\section{\protect\begin{draft}This is a draft of\protect\end{draft} Introduction}
于标题和目录,但不适用于页眉。
该versions
软件包还提供了可以在此处使用的宏\processifversion
。它适用于所有三个,即标题、目录和页眉。
编辑:
之间的空间的和介绍\excludeversion
必须是可选内容的一部分。否则,如果使用,它将出现在标题中。并且\protect
。并且不能使用,因为使用它,这是不管怎样都会出现在标题中\excludeversion
。这在源代码中看起来不太好,但该空间在逻辑上属于草稿内容。
\documentclass{article}
\usepackage{versions}
\includeversion{draft}
\pagestyle{headings}
\begin{document}
\tableofcontents
\newpage
\section{\protect\processifversion{draft}{This is a draft of }Introduction}
% watch the space -----------------------------------------^
Some text
\end{document}