带可选标题的编号段落

带可选标题的编号段落

我正在尝试定义\mypar可以接受可选的编号段落<title>。我做了以下事情:

\newcounter{paranum}[section]
\renewcommand{\theparanum}{\thesection.\arabic{paranum}}
\newcommand{\mypar}[1][]{\bigskip%
\noindent%
\refstepcounter{paranum}\textbf{\theparanum\quad#1}}
% Above defines a custom paragraph numbering scheme.

这或多或少完成了工作。唯一的不足是,当我为段落添加标题时,标题后面(和内容之前)的间距只是普通文本中单词之间的正常间距。但是,鉴于这是段落的标题,我希望在标题后面有一些额外的间距,以将其与以下普通文本分开。我尝试添加\quad

\newcounter{paranum}[section]
\renewcommand{\theparanum}{\thesection.\arabic{paranum}}
\newcommand{\mypar}[1][]{\bigskip%
\noindent%
\refstepcounter{paranum}\textbf{\theparanum\quad#1\quad}}
% Above defines a custom paragraph numbering scheme.

当有标题时,这种方法很有效;然而,即使段落没有标题,它也会产生不必要的额外空间。

我如何定义命令以确保\quad段落编号和普通文本内容之间只有一个(而不是两个)不是一个标题;但也有一个标题,一个\quad位于段落编号和标题之间,另一个\quad位于标题和普通文本内容之间?任何帮助表示感谢!

答案1

只需在定义中添加条件。 \@empty在 LaTeX 中是一个空字符串;因为它有,所以用/@将其包围:\makeatletter\makeatoher

\makeatletter
\newcounter{paranum}[section]
\renewcommand{\theparanum}{\thesection.\arabic{paranum}}
\newcommand{\mypar}[1][]{\bigskip%
\noindent%
\refstepcounter{paranum}\textbf{\theparanum\quad\ifx#1\@empty\else#1\quad\fi}}
\makeatother

相关内容