Latex 如何创建自己的和新奇的\sub<;浮动>;命令

Latex 如何创建自己的和新奇的\sub<;浮动>;命令,latex,label,counter,caption,subfigure,Latex,Label,Counter,Caption,Subfigure,我正在使用包子图形和浮点创建我想要创建的图形和表格,并且我正在尝试创建我自己的环境图形,它有自己的计数器和标题(,感谢dmckee)。现在我想创建一个与\subfigure命令完全相同的\subfigure命令 我尝试使用ProCreate计数器创建自己的命令(,感谢Alexey)。但是使用\ref命令会出现问题。参考\subfigure返回2.1(a),但参考\subgraph返回1 当我试图找出如何解决这个问题时,我阅读了subfig手册,其中我找到了带有示例的\newsubfloat命令。

我正在使用包
子图形
浮点
创建我想要创建的图形和表格,并且我正在尝试创建我自己的环境
图形
,它有自己的计数器和标题(,感谢dmckee)。现在我想创建一个与
\subfigure
命令完全相同的
\subfigure
命令

我尝试使用ProCreate计数器创建自己的命令(,感谢Alexey)。但是使用
\ref
命令会出现问题。参考
\subfigure
返回2.1(a),但参考
\subgraph
返回1

当我试图找出如何解决这个问题时,我阅读了
subfig
手册,其中我找到了带有示例的
\newsubfloat
命令。第一个错误是在
subfigure
中使用
subfig
的命令,我被卡住了。如果我使用
subfigure
我可以访问
\subfigure
但不能强制
\subgraph
工作,当我使用
subfig
时,我可以访问
\subfloat
图形中的
\subfloat
但不在
图形中,并且
\ref
返回1.0a而不是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
之前)和/或强制
子IG
包按我的意愿工作

谢谢你的任何想法,请原谅我的英语

克劳利

改进:

通过使用
标题
包,我可以创建新计数器(
子图
),并在其环境之外使用它。正确引用计数器(子图和图)的唯一方法是在
\subgraph
之前使用
\captionof{graph}

所以,我的新问题是:如何在子图之前执行
\captionof{graph}
,并在子图下面排版?以及如何强制
\ref
显示1.1-a而不是1.1.1

Atachements:

子图的代码:(返回)正确

子图的代码:(返回-1)不正确

\begin{graph2}
\subfloat[sub-caption]{\includegraphics{fig1}\label{fig:2}}
\caption{main caption}
\end{graph2}
\ref{fig:2}
我的代码:(返回
但标题显示相同的“地址”)


我认为您的
subfig
解决方案应该有效(
subfigure
已被弃用)。错误引用的问题可能与您有关。您必须在
\caption
之后使用
\label
命令,或者作为其一部分:

\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。

是的,我同意
\label
命令在
\caption
之后的位置。我对标准浮点没有问题,重点是在
\subfloat
中并引用它。我习惯于使用\subfigure[sub caption]{\includegraphics}\标签{fig:1}}\caption{main caption}\label{fig}嗯。我不确定我是否理解。如果您有一个小的示例文档显示了您的问题,请将其发布在这里。我已经用我的进度和部分代码更新了问题。我的测试
.tex
文件很难阅读,可能我写得不清楚。有没有办法告诉
\label
“忘记章节计数器并存储留声机”?
\begin{figure}
\caption{A Figure%
\label{fig}}
\end{figure}
\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.