我正在寻找 LaTeX 中的命令,它可以覆盖或删除我使用的包自动创建的前一个字符。
我正在使用jurabib 包用于我的引用。例如使用以下命令:
\cite[Pages 3-5]{key}
它有一个选项可以在页码范围前自动创建一个逗号 ( commabeforerest
)。这正是我大多数引用所需要的。它看起来像:
Author, Title, Pages 1-3.
有一个引用不需要逗号。所以我想知道是否有办法覆盖前两个字符(自动创建的空格和逗号),这样我就可以为我的特殊引用使用类似这样的命令:
\cite[\OverwritePreviousChars{2} Pages 4-6]{key}
这将创建以下内容:
Author, Title Pages 4-6.
答案1
您可以重置 commebeforerest 使用的开关。但在 \cite 之后直接输入页面信息自然要简单得多。
\documentclass{article}
\usepackage{jurabib}
\bibliographystyle{jurabib}
\jurabibsetup{ commabeforerest,}
\begin{document}
\cite[Pages 3-5]{doody}
{\makeatletter\jb@comma@before@restfalse\makeatother
\cite[Pages 3-5]{doody}}
\cite{doody} Pages 3-5
\bibliography{biblatex-examples}
\end{document}
答案2
我没有资格发表评论,因此我以答案的形式发布。在 LuaTeX 中,你确实可以删除 TeX 见过的上一个字符!Hans 曾在这篇文章中谈到过这个问题文章,有趣的是,其目的同样是处理书目零碎信息。