![子图 \autoref](https://linux22.com/image/261128/%E5%AD%90%E5%9B%BE%20%5Cautoref.png)
我正在尝试重新定义子图\autoref
,但没有成功。下面是该图的示例代码。我正在使用 documentclassacticle
和subcaption
包。
\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
我想到两种可能性:
- 重新定义
\p@subref
将被添加到每个引用排版中\subref
- 定义并使用您自己的
\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}
附言:下次请发布一个最小但可编译的示例,以便潜在的帮助者有文档可以参考。如果你不这样做,每个潜在的帮助者都必须先这样做。