子图 \autoref

子图 \autoref

我正在尝试重新定义子图\autoref,但没有成功。下面是该图的示例代码。我正在使用 documentclassacticlesubcaption包。

\begin{figure}[H]
  \centering
  \begin{subfigure}{.48\linewidth}\centering
    \includegraphics{figa.eps}
    \caption{atest}
    \label{a}
  \end{subfigure}\hspace{3mm}
  \begin{subfigure}{.48\linewidth}\centering
    \includegraphics{figb.eps}
    \caption{btest}
    \label{b}
  \end{subfigure}
\end{figure}

我尝试使用以下命令重新定义自动引用

\let\orgautoref\autoref
\providecommand{\Autoref}
        {\def\figureautorefname{Figure}%
         \def\subfigureautorefname{Panel}%
         \orgautoref}
\renewcommand{\autoref}
        {\def\figureautorefname{figure}%
         \def\subfigureautorefname{panel}%
         \orgautoref}

但它不起作用。如何将自动引用从显示“图 1a”更改为“面板 a”?

答案1

在没有看到您的 .tex 文件的情况下,我建议使用\usepackage{subfig},然后您可以使用\newcommand{\subfigureautorefname}{\figureautorefname}使 \autoref 与 \subfloat 一起工作。我不记得我从哪里得到这个片段(可能是从 tex.SE),但无论如何;它对我来说效果很好。

答案2

我想到两种可能性:

  1. 重新定义\p@subref将被添加到每个引用排版中\subref
  2. 定义并使用您自己的\subref格式

下面是一个显示这两种方法的示例代码:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage{hyperref}

\DeclareCaptionLabelFormat{panel}{panel~#2}
\DeclareCaptionLabelFormat{Panel}{Panel~#2}

\begin{document}

\begin{figure}
  \centering
  \begin{subfigure}{.48\linewidth}\centering
    \includegraphics{figa}
    \caption{atest}
    \label{a}
  \end{subfigure}\hspace{3mm}
  \begin{subfigure}{.48\linewidth}\centering
    \includegraphics{figb}
    \caption{btest}
    \label{b}
  \end{subfigure}
\end{figure}

\makeatletter
\renewcommand\p@subref{Panel}
\subref{a}
\makeatother

\captionsetup{subrefformat=Panel}
\subref{a}

\captionsetup{subrefformat=panel}
\subref{a}

\end{document}

附言:下次请发布一个最小但可编译的示例,以便潜在的帮助者有文档可以参考。如果你不这样做,每个潜在的帮助者都必须先这样做。

相关内容