我用过
\section*{\centerline{3. abc}}
\setcounter{section}{3}
命令。它将章节标题设置在页面的中心。但是我对第 3 节的第一个定义编号为 3.8 而不是 3.1。第 2 节的最后一个定义编号为 2.7。我想重置每个章节的定义、定理、示例的计数器。我该怎么做?请帮忙!!!
答案1
看起来你正在对文档进行大量低级的“视觉”格式化。而这正是 LaTeX 想要消除的。我想起了下面这个非常古老的笑话:“优秀的 Fortran 程序员可以用任何语言编写 Fortran 程序。”
例如,通过发布指令
\section*{\centerline{3. abc}}
(a)将节标题居中设置(此处为“abc”),同时(b)在(c)手动设置的节号后放置一个“点”(又称“句号”),同时使用,\section*
您将进行三种不同的手动低级格式化操作。正如您所知道的,\section*
不增加计数器名为section
。然后你会惊奇地发现下一个定义的计数器显示的是“3.8”而不是“3.1”。
如果您养成区分低级格式相关问题(理想情况下,应在文档的序言中处理)和内容及高级结构说明(文档主体部分应涉及的内容)的习惯,您会发现用 LaTeX 编写文档更加有趣,而且您的工作效率肯定会提高很多。
例如,下面的内容可能对您有用。
\documentclass{article} % or some other suitable document class
%% 1. define a 'defn' environment
\usepackage{amsthm} % or 'ntheorem'
\newtheorem{defn}{Definition}[section] % subordinate 'defn' counter to 'section' counter
%% 2. place a dot after section number in section header
\makeatletter
\def\@seccntformat#1{\@ifundefined{#1@cntformat}%
{\csname the#1\endcsname\space}% default
{\csname #1@cntformat\endcsname}}% enable individual control
\def\section@cntformat{\thesection.\space} % section-level
\makeatother
%% 3. center-set section-level headers
\usepackage{sectsty}
\sectionfont{\centering}
\begin{document}
\setcounter{section}{2} % just for this example
\setcounter{defn}{7}
\begin{defn} \dots \end{defn}
\section{abc}
\begin{defn} \dots \end{defn}
\end{document}