帶有 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 on the previous page”。請注意“abbildung”中的小寫“a”,這是不正確的,儘管值得注意的是該參考文獻完全使用了德語單字。

根據fancyref手冊,應將其設定為德語

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

但是,這會導致 a) 錯誤訊息“!您尚未定義語言 [ ”。 b) 文字「]德文」包含在文件的開頭。

如果我刪除\setmainlanguage{german}參考文獻“figure auf der vorherigen Seite”。

如果我刪除\usepackage{german}它,它會顯示“Abbildung on the previous page”

我對這一切完全感到困惑。對於包含 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}

在此輸入影像描述

不過,我會使用variorefand cleveref

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

相關內容