我想在主体中写入规则,如何编写正确的 TeX 代码以保证规则前后有稍大一点的空间。
答案1
对于这样的“规则”的从头定义很简单:
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\newcounter{rules}
\newenvironment{rules}
{\par\medskip\refstepcounter{rules}%
\normalfont RULE~\therules.\quad\itshape\ignorespaces}
{\par\medskip}
\begin{document}
\begin{rules}
\lipsum*[1]
\end{rules}
\lipsum*[2]
\begin{rules}
\lipsum*[3]
\end{rules}
\lipsum*[4]
\end{document}
环境rules
在相当于\medskip
(即6pt plus 2pt minus 2pt
或)的上方和下方插入一个间隙。在和起始之间插入(或)\medskipamount
的间隙\quad
1em
RULE #.
斜体文本。如果需要,也可以使用\label
-来引用\ref
。
lipsum
提供虚拟文本,乱数风格。
rule
可以使用以下方法避免环境第一段的缩进\noindent
:
%...
\newenvironment{rules}
{\par\medskip\refstepcounter{rules}%
\noindent\normalfont RULE~\therules.\quad\itshape\ignorespaces}
{\par\medskip}
%...
对于更精细的段落缩进管理,请考虑使用parskip
包裹。
答案2
有\newtheorem
,借助amsthm
可以轻松自定义。这似乎比“手动”定义环境更复杂,但它可以更好地确保文档各个部分之间的一致性;\topsep
例如,LaTeX 在列表环境之前使用的空间。
\documentclass{article}
\usepackage{lipsum} % for mock text
\usepackage{amsthm}
\newtheoremstyle{rule}
{\topsep} % space above
{\topsep} % space below
{\itshape} % body font
{} % indent amount (empty = no indent)
{} % theorem head font (empty = normal font)
{.} % punctuation after theorem head
{ } % space after theorem head
{} % theorem head spec (empty = normal)
\theoremstyle{rule}
\newtheorem{RULE}{RULE}
\begin{document}
\lipsum[1]
\begin{RULE}\label{periscope}
\lipsum[2]
\end{RULE}
Here's the number:~\ref{periscope}. \lipsum[3]
\end{document}
之后的所有\newtheorem
声明\theoremstyle{rule}
都将继承样式中定义的相同参数。预定义样式为plain
、definition
(直立字体)和remark
,但可以创建新样式,如下所示。