我的文档是一本(scr)书,我在这里谈论的是部分和章节,但我认为潜在的问题非常普遍。
我希望书中的表格以 chapter.table 的方式连续枚举。
我
chapter
使用定制的命令重置了书中每个部分的计数器MyPart
,这对于这里未提及的其他几个原因是必要的。然而,我愿意不是想要重置表格编号. (即,表格编号中的“章节”部分应保持跨部分边界的章节总数。)
tabchapter
我通过定义一个计数器,并在声明 new 时手动触发该计数器来使其工作\chapter
。我想避免必须声明类似的东西 \MyChapter
仅为此目的而声明类似的东西,但我不是对我的解决方案感到满意:
\documentclass[open=any]{scrbook}
\usepackage{titlesec}
\newcounter{tabchapter}
\renewcommand*{\thetable}{\arabic{tabchapter}.\arabic{table}}
\renewcommand*{\tableformat}{Tab. \thetable}
%% Ugly hijacking of a formatting command to follow...
\titleformat{\chapter}
{\addtocounter{tabchapter}{1}\Huge\bfseries} %% <<---- *COUGH*...
{}
{0pt}
{}
\newcommand{\MyPart}[1]{
\setcounter{chapter}{0}
\refstepcounter{part}
}
\newcommand{\exampletable}[1]{
\begin{table}
\caption{#1}
\begin{tabular}{c}
Nothing much.
\end{tabular}
\end{table}
}
\begin{document}
\MyPart{Book One}
\chapter{The First}
\exampletable{Some Table}
\chapter{The Second}
\exampletable{Other Table}
\MyPart{Book Two}
\chapter{The First of the Second}
\exampletable{Yet Another Table}
\end{document}
有没有其他方法可以让某个计数器在标准分段命令被调用(即以某种方式将其“链接”到标准计数器)?其他而不是用自定义命令来包装凸起\MyChapter
?
答案1
不需要标题安全
\usepackage{etoolbox}
\preto{\chapter}{\stepcounter{tabchapter}}
\newcounter{tabchapter}
\renewcommand*{\thetable}{\arabic{tabchapter}.\arabic{table}}
\renewcommand*{\tableformat}{Tab. \thetable}
答案2
这chngcntr
包裹提供\counterwithin
并可\counterwithout
用于添加/删除强制计数器重置的元素。你可能想要
\usepackage{chngcntr}% http://ctan.org/pkg/chngcntr
...
\counterwithout{table}{chapter}%
\counterwithout{table}{part}%