使用 polyglossia 和“英语”环境时自动引用名称错误

使用 polyglossia 和“英语”环境时自动引用名称错误

有关的:

梅威瑟:

\documentclass{memoir}

\usepackage{hyperref}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
\setotherlanguage[variant=british]{english}

\begin{document}
  \begin{figure}
    \caption{Demo}
    \label{fig:demo}
  \end{figure}

  \begin{english}
    \autoref{fig:demo}
  \end{english}

  \begin{spanish}
    \autoref{fig:demo}
  \end{spanish}
\end{document}

MWE 图像:两个参考资料都是英文的,尽管西班牙语是主要语言

我尝试了babel宏,但是它不起作用;添加spanishhyperref的加载选项只会改变问题语言。

我怎样才能解决这个问题?

答案1

您必须\figureautorefname为西班牙语添加的重新定义,同时也要对其进行更改\blockextras@english

\documentclass{memoir}

\usepackage{polyglossia}
\usepackage{hyperref}

\setdefaultlanguage{spanish}
\setotherlanguage[variant=british]{english}

\appto\captionsspanish{\renewcommand\figureautorefname{Figura}}
\makeatletter
\appto\blockextras@english{\renewcommand\figureautorefname{Figure}}
\makeatother

\begin{document}

\begin{figure}
\caption{Demo}
\label{fig:demo}
\end{figure}

\begin{english}
\autoref{fig:demo}
\end{english}

\begin{spanish}
\autoref{fig:demo}
\end{spanish}

\end{document}

在此处输入图片描述

另一方面,cleveref开箱即可工作。

\documentclass{memoir}

\usepackage{polyglossia}
\usepackage{hyperref}
\usepackage[spanish]{cleveref}

\setdefaultlanguage{spanish}
\setotherlanguage[variant=british]{english}

\begin{document}

\begin{figure}
\caption{Demo}
\label{fig:demo}
\end{figure}

\begin{english}
\Cref{fig:demo}
\end{english}

\begin{spanish}
\Cref{fig:demo}
\end{spanish}

\end{document}

相关内容