我想创建一个新的部分,比如使用自定义全局计数器进行标题。 预期的行为是使用\ rule命令定义规则,该命令可以在几个部分和子部分中使用,但使用自定义全局计数器。
示例:
1. Section
1.1 SubSection
Rule 1: bla
Rule 2: foo
2. Section
Rule 3: foobar
2.1 subsection
Rule 4: yet another one
我尝试了两件不同的事情:
1。)从头开始创建自定义命令
\newcounter{rule}
\addtocounter{rule}{0} % set them to some other numbers than 0
\renewcommand{\rule}[1]{{\noindent\normalfont\Large\bfseries{Rule \arabic{rule}:
#1 \addcontentsline{toc}{section}{Rule \arabic{rule}: #1}\newline\stepcounter{rule}}}}
这里的问题是我不知道如何格式化标题以使其行为像一个部分。特别是当线被包裹时。
应该是:
Rule 1: very long header line
correctly wrapped
但它看起来像这样:
Rule 1: very long header line
correctly wrapped
标题和下一个文本之间的空格也应该正确配置。
2。)我试图改变我的使用范围。
\renewcommand{\rule}[1]{\subsection{#1}}
\renewcommand{\thesubsection}{Rule \arabic{subsection}:}
这很容易且有效,但显然有几个缺点:
我认为只有第一种选择是要走的路,但我不知道如何做。 我希望有人可以在这里提供帮助。
THX。
答案 0 :(得分:1)
首先,不要重新定义\rule
,因为它构成了其他核心(La)TeX功能的组成部分。而是使用像\Rule
这样的东西。
这是针对您的要求的直接实施:
\documentclass{article}
\makeatletter
\newcommand\Rule{\@startsection {Rule}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\bfseries}}
\newcommand{\Rulemark}[1]{}
\newcounter{Rule}
\let\l@Rule\l@section
\begin{document}
\tableofcontents
\section{Section}
\subsection{Subsection}
\Rule{bla}
\Rule{foo}
\section{Section}
\Rule{foobar}
\subsection{Subsection}
\Rule{yet another one}
\end{document}
\Rule
的上述设置是\section
的副本,包含所有必需的便利设施。