
LaTeX 문서에서 fancyref와 babel을 함께 사용하고 방정식 참조에 대한 레이블을 로 재정의하여 \renewcommand{\frefeqname}{Eq.}
"Eq. (3.4)"와 같이 보이도록 했습니다. 그러나 \begin{otherlanguage}{german} ... \end{otherlanguage}
그런 곳에 외국어 섹션이 있으면 \frefeqname
영어의 기본값, 즉 equation
. 물론 \frefeqname
나중에 다시 정의할 수 있지만 상당히 보기 흉하며 이 문제에 대한 깔끔한 해결책을 선호합니다.
답변1
패키지 는 캡션 텍스트를 변경하는 데 babel
사용됩니다 . 이 매크로는 또는 환경 \caption<language>
에서 호출됩니다 . 따라서 재정의는 이러한 언어 매크로에 배치되어야 합니다. 이는 다음을 통해 수행할 수 있습니다 .\selectlanguage
otherlanguage
babel
\addto
\addto\captionsenglish{%
\renewcommand*{\frefeqname}{Eq.}%
}
또는 패키지의 인터페이스를 fancyref
사용할 수 있습니다.\fancyrefaddcaptions
이 목적을 위해 제공됩니다.문서화fancyref
.
\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}