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