无法使用 xelatex 编译包含 autoref 到图形标签的文档

无法使用 xelatex 编译包含 autoref 到图形标签的文档

当我尝试使用引用图形标签xelatex时构建我的文档\autoref

% !TEX program = xelatex
% !TEX options = -shell-escape -interaction=nonstopmode %DOC%
% !BIB program = biber

\documentclass[corpo=11pt,twoside,tipotesi=magistrale,greek]{toptesi}


\usepackage[T1]{fontenc}
\usepackage{lmodern}


\usepackage[hidelinks]{hyperref}

\usepackage[autostyle]{csquotes}
\usepackage{biblatex}
\addbibresource{\jobname.bib}


\usepackage{geometry}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{svg}
\usepackage[newfloat]{minted}

\usepackage{tikz}
\usepackage{tikz-uml}
\usepackage{adjustbox}
\usetikzlibrary{positioning}
\usetikzlibrary{arrows.meta}
\usepackage{tabularray}


\begin{document}\errorcontextlines=9


\begin{figure}
    \caption{A caption.}
    \label{fig:did-arch}
\end{figure}

\autoref{fig:did-arch}.



\end{document}

错误将是

! Undefined control sequence.
\figureautorefname ...\texteta \textmu \textalpha 
                                                  
\HyRef@currentHtag ->\figureautorefname 
                                        ~
<argument> \HyRef@currentHtag 
                              \expandafter \@firstoffive \r@fig:did-arch \@e...

\hyper@link #1#2#3->\hyper@linkstart {#1}{#2}#3
                                               \Hy@xspace@end \hyper@linkend 
\HyRef@autosetref ...empty \@empty \@empty \null }
                                                  \else \protect \G@refundef...

\HyRef@autoref ... \csname r@#2\endcsname {#2}{#1}
                                                  \endgroup 
l.58 \autoref{fig:did-arch}

使用pdflatex不会产生任何错误,但是对的引用fig:did-arch将未定义。

编辑:显然引用会失败,因为缺少标题。xelatex但使用时仍然会得到相同的错误。

答案1

显示该问题的最小文档是

\documentclass[
  corpo=11pt,
  twoside,
  tipotesi=magistrale,
  greek
]{toptesi}
\usepackage[hidelinks]{hyperref}

\begin{document}

\begin{figure}
  \caption{A caption.}
  \label{fig:did-arch}
\end{figure}

\autoref{fig:did-arch}.

\end{document}

据我所知,没有greek选项。如果使用 处理文档,则选项将传递给,它知道如何处理它;但对于 XeLaTeX,使用的是 ,并且它toptesipdflatexbabelpolyglossia没有真正知道如何利用这个选项。

以适当的方式将希腊语声明为“其他语言”。

\documentclass[
  corpo=11pt,
  twoside,
  tipotesi=magistrale,
]{toptesi}
\usepackage[hidelinks]{hyperref}

\setotherlanguage{greek}


\begin{document}

\begin{figure}
  \caption{A caption.}
  \label{fig:did-arch}
\end{figure}

\autoref{fig:did-arch}.

\end{document}

重要脚注。不要加载fontenclmodern使用 XeLaTeX。

相关内容