Различия между средой рисунка и таблицы очень незначительны - немногим больше, чем у них, использующих разные счетчики и поддерживаемых в отдельных последовательностях.
То есть ничто не мешает вам поместить вашу {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>
таким же образом.
Моя более ранняя попытка на самом деле полностью сломана, как заметил ОП: ошибка, связанная с ошибкой, вместо того, чтобы быть тривиальной и ее сложно исправить, является абсолютно фундаментальной (хо, гул).
(Для фанатов это происходит потому, что команды \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, но (а) вы говорите, что вам это наплевать, (б) это поправимо, хотя, вероятно, немного неудобно, и (в) жизнь тяжелая! Strike >
person
Norman Gray
schedule
28.06.2010