3

I have a LaTeX document where I'd like the numbering of floats (tables and figures) to be in one numeric sequence from 1 to x rather than two sequences according to their type. I'm not using lists of figures or tables either and do not need to.

My documentclass is report and typically my floats have captions like this:

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

4 回答 4

3

一个快速的方法是\addtocounter{table}{1}在每个图形和\addtocounter{figure}{1}每个表格之后放置。

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

于 2010-06-27T08:03:48.757 回答
2

figure 和 table 环境之间的差异非常小——只不过它们使用不同的计数器,并以不同的顺序进行维护。

也就是说,没有什么能阻止您将{tabular}环境放在 a 中{figure},或者将图形放在 a{table}中,这意味着它们将以相同的顺序结束。这种情况的问题(正如 Joseph Wright 指出的那样)是您必须调整\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(更改名称即兴发挥)。如果您想在其他环境中使用相同的序列(例如,列表?),那么定义\the<foo>相同的方式。

正如 OP 所发现的那样,我之前在这方面的尝试实际上已经完全失败了:错误是绝对基础的,而不是微不足道的,而且只能很费力地修复。

(对于爱好者来说,它的出现是因为\advance命令是在 TeX 的肠道中处理的,但是 .lof、.lot和 .aux文件的内容在 TeX 的嘴里是固定的,在扩展时,因此写入文件的内容是什么随机值\@tempcnta当时\caption被调用,忽略\advance计算,然后尽职尽责地写入文件,然后被忽略。Doh:我知道多久了,但从未内化它!?)

尽职尽责地保留先前的尝试(理由可能是指导性错误):

没问题:尝试将以下内容放在序言中:

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

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

请注意,此示例在 listoffigures/listoftables 中的数字是错误的,但是 (a) 你说你不关心这个,(b) 它是可以修复的,尽管可能有点繁琐,并且 (c) 生活很艰难!

于 2010-06-28T16:36:56.703 回答
1

我不记得语法,但你基本上是在寻找计数器。看看这里,在自定义浮动部分下。将表格和图形的计数器分配给同一事物,它应该可以工作。

于 2010-06-26T21:24:55.813 回答
0

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

于 2010-06-27T07:42:32.187 回答