![自动和复杂枚举](https://linux22.com/image/446791/%E8%87%AA%E5%8A%A8%E5%92%8C%E5%A4%8D%E6%9D%82%E6%9E%9A%E4%B8%BE.png)
我正在尝试创建一本结构如下的规则手册:
第1章
规则 1 - 规则名称
规则 2 - 规则名称
第2章
规则 3 - 规则名称
对于这本规则书来说,重要的是我可以稍后在其他规则/章节之间添加新规则和章节,或者只是重新排序它们。目前我只使用普通的文本编辑器(如 Word/Google Docs)。这意味着每次我添加新内容或重新排序时,我都必须手动调整所有数字。此外,如果引用了其中一章/文章,我也必须调整它们。这是一项艰巨的工作。
我想知道使用 LaTeX 是否能解决其中一些问题,但我不是专家,所以我希望你们中的一些人能帮助我。是否可以:
- 像我上面展示的那样,有一个自动枚举。这将是一个枚举,其中数字不是第一个(即数字前始终有单词“规则”),并且枚举会持续到各个章节(即它不会重置)。
- 能够以与通常使用
\label
和类似的方式引用这些规则/章节\ref
。当添加/更改某些内容时,这些引用也会自动调整。
非常感谢您的帮助!
答案1
我的印象是您想要章节标题。为了输入清晰,我提供了一个\Rule
命令,它只是\section
。
该oneside
选项只是制作一张独立的图片
\documentclass[a4paper,oneside]{book}
\usepackage{titlesec}
\titleformat{\section}[block]
{\large\bfseries}
{Rule \thesection\ --- }
{0pt}
{}
\newcommand{\Rule}{\section}
\newcommand{\Ruleref}[1]{Rule~\ref{#1}}
\counterwithout{section}{chapter}
\begin{document}
\chapter{Basic rules}
\Rule{Very basic rule}\label{rule:basic}
This is the first and basic rule.
\Rule{Less basic rule}
This is a less basic rule.
\chapter{Advanced rules}
\Rule{Difficult rule}
This is a difficult rule.
\Rule{Awkward rule}
Following this rule is unintuitive, see~\Ruleref{rule:basic}
for confirmation.
\end{document}
答案2
以下是如何使用 明确执行此操作enumitem
,定义一个新列表:
\documentclass{report}
\usepackage{enumitem}
\newlist{rules}{enumerate}{1}
\setlist[rules,1]{wide = 0pt, label=Rule \arabic* – , font=\sffamily, leftmargin=*}
\usepackage{lipsum}
\begin{document}
\chapter{Foo}
\lipsum[11]
\begin{rules}
\item Blah blah blah!
\item Meow!
\end{rules}
\chapter{A chapter on chapters}
\begin{rules}[resume*]
\item Bleh bleh bleh!
\end{rules}
\end{document}
答案3
有多种方法可以实现这一点,这里是使用
amsthm
定理包的替代方法。您也可以使用,thmtools
这样您就可以按照自己喜欢的方式进行设计。
\documentclass{book}
\usepackage{amsmath, amsthm, lipsum}
%\usepackage{thmtools}
\newtheoremstyle{note}% name
{3pt}% Space abovei1
{3pt}% Space belowi1
{\upshape}% Body font
{}% Indent amounti2
{\bfseries}% Theorem head font
{}% Punctuation after theorem head
{.5em}% Space after theorem headi
{}% Theorem head spec (can be left empty, meaning `normal' )
\theoremstyle{note}
\newtheorem{Rule}{Rule}
\usepackage{hyperref}
\begin{document}
\chapter{First}
\begin{Rule}[Some Test]
\lipsum[1]\label{1}
\end{Rule}
\begin{Rule}
\lipsum[3] \label{2}
\end{Rule}
\ref{1}\ref{2}
\end{document}