如何仅当引文符合特定条件时才将其纳入?请考虑以下示例,使用即兴命令:
\citationlevel{1}
\citeif{1, something}
\citeif{2, something}
第一个命令citationlevel
将出现在序言中,并定义整个文档的引用级别。如果级别低于该级别,则会出现引用,否则不会出现。在上一个示例中,只会出现第一个引用。有什么建议吗?
答案1
另一种解决方案是,它的语法与提出的问题更相似。
\documentclass{article}
\def\citationlevel#1{\def\citelevel{#1}}
\def\citeif#1{\expandafter\citeiff#1\relax}
\def\citeiff#1,#2\relax{\ifnum\numexpr#1-1<\citelevel\relax\cite{#2}\fi}
\citationlevel{2}
\begin{document}
\citeif{1, something1}
\citeif{2, something2}
\end{document}
答案2
如果给定级别小于,则打印引用citationlevel
。
代码:
\documentclass{article}
\newcommand{\citationlevel}{1}
\newcommand{\citeif}[2]{
\ifnum \numexpr#1-1 < \citationlevel
\cite{#2}
\fi
}
\begin{document}
\citeif{1}{abramowitz}
\citeif{2}{einstein}
\bibliographystyle{unsrt}
\bibliography{literature}
\end{document}