有条件引用同意参数化标准

有条件引用同意参数化标准

如何仅当引文符合特定条件时才将其纳入?请考虑以下示例,使用即兴命令:

\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}

相关内容