Fancyref 和不同语言的一个章节

Fancyref 和不同语言的一个章节

我正在使用fancyrefTexmaker 和 PdfLaTeX 中的包,但语言设置出现了问题。

有一章是英文的,其余内容是德文的。

一旦我在我的babel包中添加英语语言,创建的文本fancyref就是英语。

但是,参数中的最后一种语言应该是主要语言。我的错误在哪里?

\documentclass[fontsize=11pt, paper=a4, DIV=10, BCOR=8mm, oneside]{scrreprt}
\usepackage{blindtext}
\usepackage[english,ngerman]{babel}
\usepackage[english,german]{fancyref}


\begin{document}
\chapter{Chapter 1}
\blindtext
Test of \fref{eq:reaction1} and of \fref{tab:table1}.
\begin{equation}
A
\label{eq:reaction1}
\end{equation}

\begin{table}
    \centering
    \caption{One}
    \begin{tabular}{cc}
    1 & 2 \\
    3 & 4 \\
    \end{tabular}
\label{tab:table1}
\end{table}

\chapter{Chapter 2}
\selectlanguage{english}

\begin{table}
    \centering
    \caption{Two}
    \begin{tabular}{cc}
    1 & 2 \\
    3 & 4 \\
    \end{tabular}
\label{tab:table2}
\end{table}

Test of reference with \fref{eq:reaction1} and \fref{tab:table2}.

\end{document}

答案1

这里的问题是,你选择了 Babel 选项ngerman,并且fancyref只支持germanenglish。它自上个世纪以来就没有更新过,所以它不知道新法律文书

您可以使用较新的软件包,例如cleveref,或者可能hyperref与 一起varioref。以下是重写后的同一篇文档cleveref(使用 和 的搜索和替换\fref\cref

\documentclass[
  fontsize=11pt,
  paper=a4,
  DIV=10,
  BCOR=8mm,
  oneside,
  english,
  ngerman]{scrreprt}
\usepackage{blindtext}
\usepackage{babel,cleveref}


\begin{document}
\chapter{Chapter 1}
\blindtext
Test of \cref{eq:reaction1} and of \cref{tab:table1}.
\begin{equation}
A
\label{eq:reaction1}
\end{equation}

\begin{table}
    \centering
    \caption{One}
    \begin{tabular}{cc}
    1 & 2 \\
    3 & 4 \\
    \end{tabular}
\label{tab:table1}
\end{table}

\selectlanguage{english}
\chapter{Chapter 2}

\begin{table}
    \centering
    \caption{Two}
    \begin{tabular}{cc}
    1 & 2 \\
    3 & 4 \\
    \end{tabular}
\label{tab:table2}
\end{table}

Test of reference with \cref{eq:reaction1} and \cref{tab:table2}.

\end{document}

如果你希望继续使用fancyref,你可以改为ngermangerman另一个临时解决方法是将创建新的 Babel “字幕” 的代码从 复制germanngerman

\documentclass[fontsize=11pt, paper=a4, DIV=10, BCOR=8mm, oneside]{scrreprt}
\usepackage{blindtext}
\usepackage[english,ngerman]{babel}
\usepackage[english,german]{fancyref}

  \fancyrefaddcaptions{ngerman}{%
    \providecommand*{\chaptername}{Kapitel}%
    \providecommand*{\figurename}{Abbildung}%
    \providecommand*{\pagename}{Seite}%
    \providecommand*{\tablename}{Tabelle}%
    \renewcommand*{\Frefchapname}{\chaptername}%
    \renewcommand*{\Frefenumname}{Punkt}%
    \renewcommand*{\Frefeqname}{Gleichung}%
    \renewcommand*{\Freffigname}{\figurename}%
    \renewcommand*{\Freffigshortname}{Abb.}%
    \renewcommand*{\Freffnname}{Fu\ss note}%
    \renewcommand*{\Frefonname}{Auf}%
    \renewcommand*{\Frefpgname}{\pagename}%
    \renewcommand*{\Frefpgshortname}{S.}%
    \renewcommand*{\Frefsecname}{Abschnitt}%
    \renewcommand*{\Frefseename}{Siehe}%
    \renewcommand*{\Freftabname}{\tablename}%
    \renewcommand*{\Freftabshortname}{Tab.}%
    \renewcommand*{\frefchapname}{\Frefchapname}%
    \renewcommand*{\frefenumname}{\Frefenumname}%
    \renewcommand*{\frefeqname}{\Frefeqname}%
    \renewcommand*{\freffigname}{\Freffigname}%
    \renewcommand*{\freffigshortname}{\Freffigshortname}%
    \renewcommand*{\freffnname}{\Freffnname}%
    \renewcommand*{\frefonname}{%
      \MakeLowercase{\Frefonname}%
    }%
    \renewcommand*{\frefpgname}{\Frefpgname}%
    \renewcommand*{\frefpgshortname}{\Frefpgshortname}%
    \renewcommand*{\frefsecname}{\Frefsecname}%
    \renewcommand*{\frefseename}{%
      \MakeLowercase{\Frefseename}%
    }%
    \renewcommand*{\freftabname}{\Freftabname}%
    \renewcommand*{\freftabshortname}{\Freftabshortname}%
  }%

\begin{document}
\chapter{Chapter 1}
\blindtext
Test of \fref{eq:reaction1} and of \fref{tab:table1}.
\begin{equation}
A
\label{eq:reaction1}
\end{equation}

\begin{table}
    \centering
    \caption{One}
    \begin{tabular}{cc}
    1 & 2 \\
    3 & 4 \\
    \end{tabular}
\label{tab:table1}
\end{table}

\selectlanguage{english}
\chapter{Chapter 2}

\begin{table}
    \centering
    \caption{Two}
    \begin{tabular}{cc}
    1 & 2 \\
    3 & 4 \\
    \end{tabular}
\label{tab:table2}
\end{table}

Test of reference with \fref{eq:reaction1} and \fref{tab:table2}.

\end{document}

Monkey-patching 远非理想的解决方案,因为如果软件包确实得到更新,该代码仍然依赖于 20 世纪 90 年代的版本。

相关内容