Как создать собственную и необычную команду \sub<float>
Я использую пакеты subfigure
а также float
создавать рисунки и таблицы, которые я хочу создать, и я пытаюсь создать свою собственную среду graph
со своим счетчиком и подписью ( решено там, благодаря dmckee). Теперь я хотел бы создать \subgraph
команда, которая будет делать точно так же, как \subfigure
команда.
Я попытался создать свою собственную команду со счетчиком пропреата (Помогли здесь, спасибо Алексею). Но проблема возникает с использованием \ref
команда. Ссылка на \subfigure
возвращает 2.1(а), но ссылка на \subgraph
возвращает 1.
Как я пытался выяснить, как решить эту проблему, я прочитал subfig
мануал, где я нашел \newsubfloat
Команда с примером. Первая ошибка была в использовании subfig
Команды в subfigure
и я застрял там. Если я использую subfigure
Я могу получить доступ \subfigure
но не может заставить \subgraph
работает, когда я использую subfig
Я могу получить доступ \subfloat
в graph
но не в figure
а также \ref
возвращает 1.0a вместо 1.1 (a).
определение по subfig
пакет:
\newfloat{graph2}{tbph}{lom}[chapter]
\restylefloat*{graph2}
\floatstyle{plain}
\floatname{grap2}{Graph2}
\captionsetup[graph2]{position=top}
\newcommand{\listofGraphs}{\listof{Graph2}{List of Graphs}}
\newsubfloat[position=bottom,listofformat=subsimple]{graph2}
определение мое собственное \subgraph
\newfloat{graph1}{H}{lop}[chapter]
\floatname{graph1}{Graph1}
\newcounter{GraphOne}[graph1]
\def\theGraphOne{\alph{GraphOne}}
\newcommand{\subgraph}[2][]{
\captionof{subGraph}{#1} #2
}
\newfloat{subGraph}{H}{lop}[graph1]
\floatname{subGraph}{}
Пожалуйста, помогите мне понять, как \label
а также \ref
команды работают (я думаю, что мое решение рушится, потому что \label
раньше \caption
) и / или с принуждением subfig
пакет на работу, как я хочу.
Спасибо за любую идею и будь милостив к моему английскому.
Crowley
Улучшение:
Используя caption
Пакет я могу создать новый счетчик (subGraph
) и использовать его вне окружающей среды. Единственный способ, как правильно соотнести счетчик (подграф и график), - \captionof{graph}
до \subgraph
,
Итак, мой новый вопрос: как выполнить \captionof{graph}
перед подграфами и набранными под ними? И как заставить \ref
показать 1.1-а вместо 1.1.1
Atachements:
Код для subfigure
: (Возвращает <chapter>
,<figure>
(<subfigure>
) правильный.
\begin{figure}
\subfigure[sub-caption]{\includegraphics{fig1}\label{fig:1}}
\caption{main caption}
\end{figure}
\ref{fig:1}
Код для subfig
: (Возвращает <chapter>
,<graph2>-1<subfigure>
) неверно.
\begin{graph2}
\subfloat[sub-caption]{\includegraphics{fig1}\label{fig:2}}
\caption{main caption}
\end{graph2}
\ref{fig:2}
Мой код: (возвращает <chapter>
,<graph1>
,<subgraph>
но подпись показывает тот же "адрес")
\begin{graph1}
\captionof{graph1}{main caption}
\subgraph[sub-caption]{\includegraphics{fig1}\label{fig:3}}
\end{graph1}
\ref{fig:3}
2 ответа
Я думаю твой subfig
решение должно работать (subfigure
все равно не рекомендуется). Проблема с неправильными ссылками может быть связана с тем, что вы используете \label
неправильно. Вы должны иметь \label
команда после \caption
или как часть этого:
\begin{figure}
\caption{A Figure}
\label{fig}
\end{figure}
или же
\begin{figure}
\caption{A Figure%
\label{fig}}
\end{figure}
Изменить: следующее "работает для меня". Как я уже сказал, \label
после \caption
:
\documentclass{report}
\usepackage{float}
\usepackage{subfig}
\newfloat{graph2}{tbph}{lom}[chapter]
\restylefloat*{graph2}
\floatstyle{plain}
\floatname{grap2}{Graph2}
\captionsetup[graph2]{position=top}
\newcommand{\listofGraphs}{\listof{Graph2}{List of Graphs}}
\newsubfloat[position=bottom,listofformat=subsimple]{graph2}
\begin{document}
\chapter{Test}
\section{Test s}
\begin{graph2}
\subfloat[sub-caption]{\fbox{Fig 1}}
\caption{main caption}
\label{fig:1}
\end{graph2}
\begin{graph2}
\subfloat[sub-caption]{\fbox{Fig 2}}
\caption{main caption}
\label{fig:2}
\end{graph2}
Graph~\ref{fig:1} is the first graph, and~\ref{fig:2} is the second.
\end{document}
Это производит:
Graph 1.1 is the first graph, and 1.2 is the second.
Я не могу сейчас уточнить, но вы хотите использовать \refstepcounter вместо \addtocounter.