如何在LaTeX中始终对浮点数进行编号?

时间:2010-06-26 20:23:49

标签: layout latex figure

我有一个LaTeX文档,我希望浮点数(表格和图形)的编号在1到x的一个数字序列中,而不是根据类型的两个序列。我也没有使用数字或表格列表,也不需要。

我的文档类是报告,通常我的浮点数有这样的标题:

\caption{Breakdown of visualisations created.}
\label{tab:Visualisation_By_Types}

4 个答案:

答案 0 :(得分:3)

快速执行此操作的方法是在每个数字后添加\addtocounter{table}{1},在每个数据后添加\addtocounter{figure}{1}

它并不漂亮,在较长的文档中,您可能希望在样式表或模板中包含该文档,或者使用cristobalito连接计数器的解决方案。

答案 1 :(得分:2)

图形和表格环境之间的差异非常小 - 比使用不同计数器的情况稍微多一点,并且以不同的顺序进行维护。

也就是说,没有什么可以阻止你将{tabular}环境放在{figure}中,或将图形放在{table}中,这意味着它们最终会以相同的顺序排列。这种情况的问题(正如约瑟夫赖特指出的那样)是你必须调整\caption,这样才能完美地运作。

在序言中尝试以下内容:

\makeatletter
\newcounter{unisequence}
\def\ucaption{%
   \ifx\@captype\@undefined
     \@latex@error{\noexpand\ucaption outside float}\@ehd
     \expandafter\@gobble
   \else
     \refstepcounter{unisequence}% <-- the only change from default \caption
     \expandafter\@firstofone
   \fi
   {\@dblarg{\@caption\@captype}}%
}
\def\thetable{\@arabic\c@unisequence}
\def\thefigure{\@arabic\c@unisequence}
\makeatother

然后在表格和数字中使用\ucaption,而不是\caption(更改名称为ad lib)。如果你想在其他环境中使用相同的序列(例如,列表?),那么以相同的方式定义\the<foo>

我早先对此的尝试实际上完全被破坏了,正如OP所发现的那样:犯错误的是,而不是微不足道,只是很难修复,绝对基本(ho,hum)。

(对于afficionados,它的出现是因为\advance命令在TeX的内部处理,但.lof,.lot,和.aux 文件的内容在TeX中得到修复嘴,在扩展时,因此写入文件的是\@tempcnta在调用点\caption时所具有的任何值,忽略\advance计算,然后将其尽职尽责地写入文件,然后被忽略。多哈:我知道多长时间但从未内化过它!?)

尽职尽责地保留早先的尝试(理由是这可能是有益的):

没问题:尝试在序言中加入以下内容:

\makeatletter
\def\tableandfigurenum{\@tempcnta=0
    \advance\@tempcnta\c@figure
    \advance\@tempcnta\c@table
    \@arabic\@tempcnta}
\let\thetable\tableandfigurenum
\let\thefigure\tableandfigurenum
\makeatother

...然后正常使用{table}{figure}环境。字幕将具有正确的“表格/图形”文本,但它们将共享一个编号序列。

请注意,这个例子在listoffigures / listoftables中得到错误的数字,但是(a)你说你不关心它,(b)它是可修复的,虽然可能是温和的,但是(c)生活艰难!

答案 2 :(得分:1)

我不记得语法,但你基本上是在寻找计数器。在自定义浮动部分下查看here。将表和数字的计数器分配给同一个东西,它应该可以工作。

答案 3 :(得分:0)

我只使用一种浮动(让我们说'数字'),然后使用标题包从标题中删除自动添加的“图”文本并手动处理。