根据文档版本使用备用引用键

根据文档版本使用备用引用键

我最大的敌人是页数限制。我使用 BibTeX 条目的短版本,以便将参考文献列表保持简短。现在我遇到的情况是,我将文件包含在期刊文章和书中。我想在书中使用长引用,在期刊中使用短引用。我定义了一个布尔值,如果我们在期刊 tex 文件中,则将其设置为 true,然后定义了一个命令,该命令应该根据布尔值的值返回短键或长键。但不知何故,这不起作用。有办法实现我的目标吗?

\documentclass{article}

\usepackage{natbib}

\usepackage{ifthen}
\provideboolean{jl}
\setboolean{jl}{true}


% cite alternate between the long and short citation key
\newcommand{\citekeyshortlong}[2]{\ifthenelse{\boolean{jl}}{#1}{#2}}


\begin{document}

\citet[\page 48]{\citekeyshortlong{XY-short}{XY-long}}

\end{document}

答案1

我建议把条件放在最外层,这样定义\citekeyshortlong条件:

\usepackage{etoolbox}
\newtoggle{jl}
\toggletrue{jl} %% Use short refs

\iftoggle{jl}{%
     \newcommand{\citekeyshortlong}[2]{#1}}{%
     \newcommand{\citekeyshortlong}[2]{#2}}

(按照 Peter Grill 的建议,用 etoolbox 代替 ifthenelse - 尽管这也适用于 ifthenelse)。

相关内容