
Я использую cleveref
пакет для ссылки на float (в данном случае на subfigures) в 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}