我正在使用带有多个子图的乳胶撰写文章,每当我引用子图时\ref
它都会显示为1a
。
我怎样才能改变子图的样式,使其\ref
看起来像1-a
答案1
我首先将每个子图的标题标签从默认情况重新格式化为(subfigureNumber)
。
\renewcommand{\thesubfigure}{\arabic{subfigure}}
然后,标签可以根据您的需要进行调整,例如(figureNumber-subfigureNumber)
。
\renewcommand\p@subfigure{\thefigure-\arabic{subfigure}\expandafter\@gobble}
因此,完整的组装如下
\documentclass{article}
\usepackage{graphicx}
\usepackage{subcaption}
\renewcommand{\thesubfigure}{\arabic{subfigure}}
\makeatletter
\renewcommand\p@subfigure{\thefigure-\arabic{subfigure}\expandafter\@gobble}
\makeatother
\begin{document}
\begin{figure}
\begin{subfigure}[t]{0.5\textwidth}
\includegraphics[width=\textwidth]{example-image-a}
\caption{Caption 1}\label{a}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.5\textwidth}
\includegraphics[width=\textwidth]{example-image-b}
\caption{Caption 2}\label{b}
\end{subfigure}
\caption{Caption}
\end{figure}
Subfigures are \ref{a} and \ref{b}.
\end{document}
产量
答案2
根据 Roboticist 的回答,我需要修改他添加的命令以满足我的需求,因为我在问题中没有提到我正在使用polyglossia
阿拉伯语
\makeatletter
\renewcommand\p@subfigure{\thefigure - \thesubfigure\@gobble}
\makeatother
而且
\renewcommand{\thesubfigure}{\arabic{subfigure}}
不需要该线,因为我需要字母而不是数字来表示子图。