
Estou usando o cleveref
pacote para fazer referência a carros alegóricos (neste caso, subfiguras) na memoir
classe. Atualmente a saída está assim (desculpe pelo dinamarquês, não acho que isso importe):
Usando a seguinte entrada (nem todos os pacotes incluídos, claro):
\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}
Gosto da forma como as figuras/subfiguras são configuradas, mas gostaria que a referência dissesse 5a
ou 5.a
em vez de 5(a)
sem alterar as legendas das figuras/subfiguras. Existe uma maneira geral de fazer isso em todo o documento, para que possa ser facilmente alterado para uma notação um tanto aleatória?
Responder1
Esta solução evita a necessidade de carregar caption
e assim mantém as facilidades do memoir
. Pelo menos parece que sim, embora meus testes tenham sido mínimos. Remova o comentário/comente a linha apropriada para obter a formatação com ou sem o ponto, conforme desejar.
\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}
Se você carregasse xcolor
, poderia (perversamente) ter apenas as referências aos bits da subfigura digitadas em letras minúsculas azuis enormes, sem afetar as legendas ou outras referências:
\renewcommand{\thesubfigure}{\Huge\color{blue}.\alph{subfigure}}% dotted version
Obviamente, esta seria uma escolha terrível, mas demonstra que o formato pode ser facilmente 'alterado para uma notação um tanto aleatória', mantendo o formato das sublegendas e a interface do memoir
.
Responder2
OK, aqui está uma sugestão parcial usando subfig
e caption
. Eu não usei a classe de memórias antes. Se eu usar o artigo, as figuras serão rotuladas como "1.a", quando mudo para o livro de memórias, recebo "0.1.a". Parte do seu código não compila para mim. Eu comentei isso. Alterei a figura para se parecer mais com meu próprio código (ou seja, subfloat
não subbottom
) porque nunca usei o último antes. Incorporei a resposta à pergunta que vinculei antes.
Portanto, com as advertências acima sobre o código não compilável, meu exemplo aqui faz o que você deseja em termos de rotulagem de figuras (eu acho).
Provavelmente existe uma solução melhor.
\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}