使用 fontspec 和 polyglossia 进行语言设置(fancyref)

使用 fontspec 和 polyglossia 进行语言设置(fancyref)

fancyref我在使用 fontspec/polyglossia 设置时无法正确使用德语。

这是没有任何语言设置的裸设置:

\documentclass{scrartcl}

\usepackage{fontspec}
\usepackage{fancyref}

\begin{document}
Das ist ein deutscher Text
\begin{figure}
    \centering
    Das soll eine Abbildung sein
    \label{fig:sample}
    \caption{Beispiel-Abbildung}
\end{figure}

\pagebreak

Das ist die zweite Seite mit einem Verweis auf \fref{fig:sample}.
\end{document}

有趣的是,并且将是fref指“上一页”图的结果。

在这个初始阶段,图形编号为“图 1”,引用为“上一页的图形”。

添加

\usepackage{polyglossia}
\setmainlanguage{german}

会将标题更改为“Abbildung 1”(这是正确的),并将引用更改为“上一页的 abbildung”。请注意“abbildung”中的小写字母“a”,这是不正确的,尽管值得注意的是引用中使用的是德语单词。

根据fancyref手册,应该将其设置为德语

\usepackage{german}
\usepackage[german]{fancyref}

然而,这会导致 a) 出现错误消息“!您尚未定义语言 [。” 和 b) 在文档开头包含文本“]german”。

如果我删除\setmainlanguage{german}参考资料,则会显示“figure auf der vorherigen Seite”。

如果我删除\usepackage{german}它,它会显示“上一页的 Abbildung”

我对这一切完全感到困惑。我需要什么才能获得包含 LuaLaTeX 和fontspec德语fancyref参考资料的德语文档?

答案1

第一件事:\label必须走 \caption

“正确”的解决方案是使用语言选项fancyref

\documentclass{scrartcl}

\usepackage{polyglossia}
\usepackage{fontspec}
\usepackage[german]{fancyref}

\setmainlanguage{german}

\begin{document}

Das ist ein deutscher Text
\begin{figure}
    \centering
    Das soll eine Abbildung sein
    \caption{Beispiel-Abbildung}
    \label{fig:sample}
\end{figure}

\pagebreak

Das ist die zweite Seite mit einem Verweis auf \fref{fig:sample}.

\end{document}

在此处输入图片描述

不过,我会使用variorefcleveref

\documentclass{scrartcl}

\usepackage{polyglossia}
\usepackage{fontspec}
\usepackage[german]{varioref}
\usepackage[noabbrev]{cleveref}

\setmainlanguage{german}

\begin{document}

Das ist ein deutscher Text
\begin{figure}
    \centering
    Das soll eine Abbildung sein
    \caption{Beispiel-Abbildung}
    \label{fig:sample}
\end{figure}

\pagebreak

Das ist die zweite Seite mit einem Verweis auf \vref{fig:sample}.

\end{document}

相关内容