在 LaTeX 中覆盖/删除前一个字符

在 LaTeX 中覆盖/删除前一个字符

我正在寻找 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 曾在这篇文章中谈到过这个问题文章,有趣的是,其目的同样是处理书目零碎信息。

相关内容