Como criar e Fancy sub comando
Pergunta
Estou usando pacotes subfigure
e float
Para criar figuras e tabelas que quero criar e estou tentando criar meu próprio ambiente graph
com seu próprio contador e legenda (resolvido lá, graças ao dmckee). Agora eu gostaria de criar \subgraph
comando que fará exatamente o mesmo que \subfigure
comando.
Eu tentei criar meu próprio comando com o contador de propreados (Assistido aqui, graças a Alexey). Mas o problema aparece com o uso \ref
comando. Referência a \subfigure
retorna 2.1 (a) mas referência a \subgraph
retorna 1.
Enquanto eu tentava descobrir como resolver isso, eu leio subfig
manual, onde encontrei \newsubfloat
comando com um exemplo. O primeiro erro foi em uso de subfig
comandos em subfigure
E fiquei preso lá. Se eu usar subfigure
Eu posso acessar \subfigure
mas não pode forçar \subgraph
trabalhando quando eu uso subfig
Eu posso acesos \subfloat
dentro graph
mas não em figure
e \ref
retorna 1.0a ao invés de 1.1 (a).
definição por subfig
pacote:
\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}
definição minha própria \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}{}
Por favor me ajude a entender como \label
e \ref
comandos funcionam (acho que minha solução entra em colapso porque \label
\caption
) e/ou com forçar subfig
pacote para trabalhar como eu quero.
Obrigado por alguma ideia e seja misericordioso com o meu inglês.
Crowley
Melhoria:
Usando caption
pacote eu posso criar um novo contador (subGraph
) e use -o fora de seu ambiente. A única maneira de como fazer com que o contador (subgrafias e gráficos) seja referido correndo está usando \captionof{graph}
antes da \subgraph
.
Então, minha nova pergunta é: como executar \captionof{graph}
Antes de subgrafos e compensar abaixo deles? E como forçar \ref
para mostrar 1.1-a em vez de 1.1.1
ATACHEMENTS:
Código para subfigure
: (Retorna <chapter>
.<figure>
(<subfigure>
) correto.
\begin{figure}
\subfigure[sub-caption]{\includegraphics{fig1}\label{fig:1}}
\caption{main caption}
\end{figure}
\ref{fig:1}
Código para subfig
: (Retorna <chapter>
.<graph2>-1<subfigure>
) incorreta.
\begin{graph2}
\subfloat[sub-caption]{\includegraphics{fig1}\label{fig:2}}
\caption{main caption}
\end{graph2}
\ref{fig:2}
Meu código: (retorna <chapter>
.<graph1>
.<subgraph>
Mas a legenda mostra o mesmo "endereço")
\begin{graph1}
\captionof{graph1}{main caption}
\subgraph[sub-caption]{\includegraphics{fig1}\label{fig:3}}
\end{graph1}
\ref{fig:3}
Solução
Penso que a sua subfig
A solução deve funcionar (subfigure
é descontinuado de qualquer maneira). O problema com as referências erradas pode ter a ver com você usando \label
incorretamente. Você deve ter o \label
comando depois a \caption
, ou como parte disso:
\begin{figure}
\caption{A Figure}
\label{fig}
\end{figure}
ou
\begin{figure}
\caption{A Figure%
\label{fig}}
\end{figure}
Editar: o seguinte "funciona para mim". Como eu disse, o \label
está depois do \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}
Isso produz:
Graph 1.1 is the first graph, and 1.2 is the second.
Outras dicas