我正在使用该cleveref
包引用memoir
类中的浮点数(在本例中为子图)。目前输出如下所示(抱歉,丹麦语,我认为这并不重要):
使用以下输入(当然不包括所有包):
\documentclass[oneside,article,12pt,danish]{memoir}
\usepackage{graphicx}
\newsubfloat{figure}
\captiontitlefont{\slshape}
\subcaptionfont{\slshape}
\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
\begin{figure}[h!]
\centering
\subbottom[Subfigure 1 caption]{\rule{3cm}{1cm}\label{sub1}}
\hspace{1cm}
\subbottom[Subfigure 2 caption]{\rule{3cm}{1cm}\label{sub2}}
\caption{Figure text.}
\label{fig:secondfig}
\end{figure}
\cref{sub1,sub2}
\end{document}
我喜欢图形/子图的设置方式,但我希望引用说5a
或5.a
而不是5(a)
而不更改图形/子图标题。有没有一种通用方法可以在整个文档中执行此操作,以便可以轻松将其更改为某种随机符号?
答案1
此解决方案避免了加载的需要caption
,从而保留了 的功能memoir
。至少,看起来是这样,尽管我的测试有些少。取消注释/注释相应的行以实现带或不带点的格式化,这取决于您的心情。
\documentclass[oneside,article,12pt,danish]{memoir}
\newsubfloat{figure}
\captiontitlefont{\slshape}
\subcaptionfont{\slshape}
% \renewcommand{\thesubfigure}{\alph{subfigure}}% plain version
\renewcommand{\thesubfigure}{.\alph{subfigure}}% dotted version
\makeatletter
\renewcommand{\@thesubfigure}{(\alph{subfigure})%
\if@tightsubcap\hskip\subfloatlabelskip\else\space\fi}
\makeatother
\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
\begin{figure}[h!]
\centering
\subbottom[Subfigure 1 caption]{\rule{3cm}{1cm}\label{sub1}}
\hspace{1cm}
\subbottom[Subfigure 2 caption]{\rule{3cm}{1cm}\label{sub2}}
\caption{Figure text.}
\label{fig:secondfig}
\end{figure}
\cref{sub1,sub2}
\end{document}
如果你要加载xcolor
,那么你可以(反常地)只将对子图位的引用排版为巨大的蓝色小写字母,而不会影响标题或其他引用:
\renewcommand{\thesubfigure}{\Huge\color{blue}.\alph{subfigure}}% dotted version
显然,这将是一个糟糕的选择,但它表明格式可以轻松地“改变为有点随机的符号”,同时保留子字幕的格式和界面memoir
。
答案2
subfig
好的,这是使用和的部分建议caption
。我以前没有使用过 memoir 类。如果我使用 article,则图标记为“1.a”,当我切换到 memoir 时,我得到的是“0.1.a”。您的某些代码无法编译。我已将其注释掉。我已将图更改为看起来更像我自己的代码(即不是subfloat
)subbottom
,因为我以前没有使用过后者。我已将我之前链接到的问题的答案纳入其中。
因此,除了上面关于非编译代码的警告之外,我这里的示例在图形标签方面可以满足您的要求(我认为)。
可能还有更好的解决方案。
\documentclass[12pt]{memoir}
\usepackage{graphicx}
%%%%These do not work for me - is there a missing package?
%\newsubfloat{figure}
%\captiontitlefont{\slshape}
%\subcaptionfont{\slshape}
%%%%
\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage[font=sl,labelfont=up]{caption}
\usepackage[font=sl,labelfont=up]{subfig}
\renewcommand\thesubfigure{\alph{subfigure}} % default: "(\alph{subfigure})"
\makeatletter
\renewcommand{\p@subfigure}{\thefigure.} % default: "\thefigure" (without the ".")
\makeatother
\begin{document}
\begin{figure}
\centering
\subfloat[Subfigure 1 caption]{\rule{3cm}{1cm}\label{sub1}}
\hspace{1cm}
\subfloat[Subfigure 2 caption]{\rule{3cm}{1cm}\label{sub2}}
\caption{Figure text.}
\label{fig:secondfig}
\end{figure}
\cref{sub1,sub2}
\end{document}