私が使用しているパッケージによって自動的に作成された以前の文字を上書きまたは削除する LaTeX のコマンドを探しています。
私はジュラビブパッケージ引用用です。たとえば、次のコマンドを使用します。
\cite[Pages 3-5]{key}
ページ範囲の前にカンマを自動的に作成するオプションがあります ( commabeforerest
)。これはほとんどの引用に必要なものです。次のようになります。
Author, Title, Pages 1-3.
カンマが必要ない引用が 1 つあります。そのため、前の 2 つの文字 (自動的に作成されたスペースとカンマ) を上書きして、特別な引用に次のコマンドのようなものを使用できる方法を知りたいです。
\cite[\OverwritePreviousChars{2} Pages 4-6]{key}
すると次のようになります:
Author, Title Pages 4-6.
答え1
commebeforerest で使用されるスイッチをリセットできます。ただし、当然ながら、\cite の後に Pages 情報を入力する方がはるかに簡単です。
\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がこの件について語っています。記事面白いことに、書誌的な情報を扱うという同じ目的のためです。