当我尝试使用引用图形标签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,使用的是 ,并且它toptesi
pdflatex
babel
polyglossia
没有真正知道如何利用这个选项。
以适当的方式将希腊语声明为“其他语言”。
\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}
重要脚注。不要加载fontenc
和lmodern
使用 XeLaTeX。