我正在写一章,想控制最后是否出现引用。
类似于全局变量:
CITATIONS_APPEAR = TRUE
if TRUE:
citations will appear
if FALSE:
citations will not appear
换句话说,我将像往常一样使用 \cite(或修改后的 \cite)命令编写文档,但引用是否出现由 CITATIONS_APPEAR 控制。
答案1
当您不需要引用时,您可以覆盖该\cite
命令,或者在需要时设置常规。我们使用\unskip
\cite
letltxmacro
正确存储可选参数启用\cite
,\oldcite
然后通过以下方式将其重新定义为条件\ifcitation
:
\documentclass{book}
\usepackage{xparse,letltxmacro}
\newif\ifcitation
\LetLtxMacro\oldcite\cite
\RenewDocumentCommand{\cite}{o m}{%
\ifcitation
\IfValueTF{#1}
{\oldcite[#1]{#2}}% \cite[.]{..}
{\oldcite{#2}}% \cite{..}
\else
\unskip
\fi
}
\begin{document}
\nocite{*}
\chapter{A chapter}
\citationfalse
\noindent Some citation \cite{abc, def}. In \cite[p.~56]{abc} it is mentioned that \ldots
\citationtrue
\noindent Some citation \cite{abc, def}. In \cite[p.~56]{abc} it is mentioned that \ldots
\let\cleardoublepage\relax% Just for this example
\begin{thebibliography}{x}
\bibitem{abc} Abc.
\bibitem{def} Def.
\end{thebibliography}
\end{document}
xparse
只是提供了一个简单的界面来指定和限制可选参数的使用。