我正在使用我大学的模板来排版我的文档,但它弄乱了文档中子图标题的一些内容。这是一个 MWE .tex 文件,演示了我的问题:
\documentclass[language=english,stage=alpha]{FRIteza}
\usepackage{graphicx}
\newlength{\colwidth}
\newlength{\rowheight}
\begin{document}
\begin{figure*}
\setlength{\colwidth}{.24\linewidth}
\setlength{\rowheight}{.57\colwidth}
\begin{subfigure}{\colwidth}
\includegraphics[width=\textwidth,height=\rowheight]{example-image-a}
\caption{Image A}
\label{fig:a}
\end{subfigure}\hfill%
\begin{subfigure}{\colwidth}
\includegraphics[width=\textwidth,height=\rowheight]{example-image-b}
\caption{Image B}
\label{fig:b}
\end{subfigure}\hfill%
\begin{subfigure}{2\colwidth}
\includegraphics[width=\textwidth,height=\rowheight]{example-image-c}
\caption{Image C}
\label{fig:c}
\end{subfigure}\hfill%
\caption{3 sample images, specifically \subref{fig:a} an excerpt from A, \subref{fig:b} some stuff from B, and \subref{fig:c} things from C.}
\label{fig:example}
\end{figure*}
Fig.~\ref{fig:example} shows some examples. Note the big letter C in Fig.~\ref{fig:c}.
\end{document}
我还做了一个Overleaf 项目其中包含课程文件和所需字体,可以作为 zip 文件下载。它还设置了正确的软件版本(TeX Live 2019 和 XeLaTeX)。
外观:
我希望它看起来如何:
在我目前完成的项目中,子标题通常默认居中。我也尝试过使用这个建议:
\captionsetup[subfigure]{justification=centering}
我尝试在\documentclass
声明之后、figure
环境内部以及subfigure
环境内部添加此行。这些方法均无效,因为标题仍为左对齐。
此外,当我在文本中引用标题时,\ref
对子图的引用不包含括号。即它们被称为图 0.1c,而不是图 0.1(c)。我在另一个项目中使用以下命令修复了此问题:
\usepackage{caption}
\makeatletter
\DeclareCaptionLabelFormat{mysublabelfmt}{(\alph{sub\@captype})}
\makeatother
\usepackage[labelformat=mysublabelfmt]{subcaption}
\renewcommand\thesubfigure{(\alph{subfigure})}
\renewcommand\thesubtable{(\alph{subtable})}
然而,现在在这个项目中,同样的代码给我在\subref
s 周围加上了双括号。
我在 .cls 中找到的唯一可以改变标题定位和参考格式的代码是:
\RequirePackage[style=base]{caption}
\DeclareCaptionLabelSeparator{br}{\par\vspace*{2\p@}}
\captionsetup{singlelinecheck=off,labelsep=br,labelfont=it,textfont={RaggedRight,scriptsize}}
% subcaptions
\RequirePackage{subcaption}
\captionsetup[sub]{subrefformat=parens}
\captionsetup[sub]{format=plain,labelformat=parens,labelsep=space,font={normalfont,scriptsize},labelfont=up,hypcap=true}
但这似乎对子标题调整没有任何改变。至于引用样式的问题,我尝试过摆弄这些subrefformat
、format
和labelformat
属性以及\renewcommand
前面提到的解决方案中的 s,但我无法让所有引用和标题都像图中所示那样被括起来。
我检查了其他一些学生的已接受的提交内容,他们都有居中的子标题(尽管他们似乎是通过在图像编辑软件而不是在 TeX 中手动为图像添加标题来实现的),因此这些左调整的子标题似乎不是排版要求,它们确实使我的一些图形不清楚且难以阅读。
简而言之:
- 如何将子图标题置于中央,同时保持图标题样式不变?
- 如何将
\ref
子图引用括起来,同时保持\subref
子图引用和\ref
图形引用不变?
答案1
结合评论中的建议,我设法按照我希望的方式放置和引用标题,方法如下:
\DeclareCaptionFormat{centered}{%
\scriptsize\centerline{#1#2\textit{#3}}
}
\captionsetup[sub]{format=centered,labelformat=simple,subrefformat=simple}
\renewcommand{\thesubfigure}{(\alph{subfigure})}