Перезаписать/удалить предыдущий символ в LaTeX

Перезаписать/удалить предыдущий символ в LaTeX

Я ищу команду в LaTeX, которая перезаписывает или удаляет предыдущие символы, которые были автоматически созданы используемым мной пакетом.


Я используюпакет джурабибадля моих цитат. Например, с помощью этой команды:

\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 видел! Ганс говорил об этом в этомстатья, как ни странно, с той же целью — обработки библиографической информации.

Связанный контент