
Ich verwende fancyref und babel zusammen in einem LaTeX-Dokument und definiere die Bezeichnung für die Gleichungsverweise mit neu \renewcommand{\frefeqname}{Eq.}
, so dass sie etwa wie "Gleichung (3.4)" aussehen. Wenn ich jedoch irgendwo einen fremdsprachigen Abschnitt wie habe, wird \begin{otherlanguage}{german} ... \end{otherlanguage}
dann \frefeqname
auf den Standardwert für Englisch zurückgesetzt, nämlich equation
. Natürlich kann ich das \frefeqname
nachträglich noch einmal neu definieren, aber das ist ziemlich hässlich und ich hätte lieber eine saubere Lösung für dieses Problem.
Antwort1
Das babel
Paket verwendet \caption<language>
zum Ändern der Beschriftungstexte. Dieses Makro wird in \selectlanguage
unserer Umgebung aufgerufen otherlanguage
. Daher sollten die Neudefinitionen in diesen Sprachmakros vorgenommen werden. Dies kann mit babel
den folgenden Befehlen erfolgen \addto
:
\addto\captionsenglish{%
\renewcommand*{\frefeqname}{Eq.}%
}
fancyref
Oder Sie nutzen die Schnittstelle des Pakets , die es \fancyrefaddcaptions
für diesen Zweck bereitstellt, sieheDokumentation vonfancyref
.
\documentclass{article}
\usepackage[german,english]{babel,fancyref}
\fancyrefaddcaptions{english}{%
\renewcommand*{\frefeqname}{Eq.}%
}
\fancyrefaddcaptions{german}{%
\renewcommand*{\frefeqname}{Gl.}%
}
\begin{document}
\noindent
\fref{eq:einstein} and \fref{eq:velocity}.
\begin{equation}
E=mc^2 \label{eq:einstein}
\end{equation}
\begin{otherlanguage}{german}
\fref{eq:einstein} und \fref{eq:velocity}.
\begin{equation}
v=\frac st \label{eq:velocity}
\end{equation}
\end{otherlanguage}
\fref{eq:einstein} and \fref{eq:velocity}.
\end{document}