Vorheriges Zeichen in LaTeX überschreiben/entfernen

Vorheriges Zeichen in LaTeX überschreiben/entfernen

Ich suche nach einem Befehl in LaTeX, der die vorherigen Zeichen überschreibt oder entfernt, die von einem von mir verwendeten Paket automatisch erstellt wurden.


Ich verwende dieJurabib-Paketfür meine Zitate. Zum Beispiel mit diesem Befehl:

\cite[Pages 3-5]{key}

Es gibt eine Option, die automatisch ein Komma vor dem Seitenbereich einfügt ( commabeforerest). Das ist, was ich für die meisten Zitate brauche. Das würde so aussehen:

Author, Title, Pages 1-3.

Es gibt eine Quelle, bei der ich das Komma nicht brauche. Ich möchte also wissen, ob es eine Möglichkeit gibt, die beiden vorherigen Zeichen (das automatisch erstellte Leerzeichen und das Komma) zu überschreiben, sodass ich für meine spezielle Quelle etwa diesen Befehl verwenden kann:

\cite[\OverwritePreviousChars{2} Pages 4-6]{key}

Das würde Folgendes ergeben:

Author, Title Pages 4-6.

Antwort1

Sie können den von commebeforerest verwendeten Schalter zurücksetzen. Aber es ist natürlich viel einfacher, die Seiteninformationen einfach nach \cite einzugeben.

\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}

Bildbeschreibung hier eingeben

Antwort2

Ich habe nicht den Ruf, einen Kommentar abzugeben, also poste ich stattdessen eine Antwort. In LuaTeX kann man tatsächlich das vorherige Zeichen entfernen, das TeX gesehen hat! Hans hat darüber in diesem Artikel gesprochen.Artikel, lustigerweise für den gleichen Zweck, nämlich die Handhabung bibliographischer Kleinigkeiten.

verwandte Informationen