新的段落编号命令(相关计数器)

新的段落编号命令(相关计数器)

我使用 KOMA 类 (scrbook)。我的目标是:我尝试创建一个命令(比如说 \verset),每次都会显示一个数字,并缩进。标题应该作为参数。例如:

\verset \lipsum

\verset{描述} \lipsum

将显示(Microsoft Word 示例)

在此处输入图片描述

问题是我不希望这些数字出现在每个段落的开头,只有当我调用 \verset 时才需要。

另一个困难是,我希望我的参考书目和索引不要发送出现的页码,而是发送诗集的编号。

我对 renewcommand 和 setcounter 的东西确实不太了解。如果能得到一点帮助我将非常感激 :)

答案1

这个要求很容易满足:

\documentclass{article}
\usepackage[nopar]{lipsum} % just for the example

\newcommand{\verset}[1][]{\stepcounter{verset}%
  \textbf{\theverset.
    \if\relax\detokenize{#1}\relax
    \else
      #1
    \fi
  }%
}
\newcounter{verset}

\begin{document}

\lipsum[1]

\verset \lipsum[2]

\verset[Description] \lipsum[3]

\lipsum[4]

\end{document}

在此处输入图片描述

如果你只需要一个索引,下面将使用verset编号而不是页码

\documentclass{article}
\usepackage[nopar]{lipsum} % just for the example

\usepackage{imakeidx}
\makeindex

\makeatletter
\AtBeginDocument{\xpatchcmd{\@wrindex}{\thepage}{\theverset}{}{}}
\makeatother

\newcommand{\verset}[1][]{\stepcounter{verset}%
  \textbf{\theverset.
    \if\relax\detokenize{#1}\relax
    \else
      #1
    \fi
  }%
}
\newcounter{verset}

\begin{document}

\lipsum[1]

\verset \lipsum[2]\index{horse}

\verset[Description] \lipsum[3]\index{elephant}

\lipsum[4]\index{lion}

\printindex

\end{document}

在此处输入图片描述


如果诗句标题未以标点符号结尾,则添加句点到诗句标题的版本。该amsthm软件包具有一项\@addpunct可方便完成此工作的功能。

\documentclass{article}
\usepackage[nopar]{lipsum} % just for the example
\usepackage{imakeidx}
\usepackage{amsthm} % for \@addpunct
\makeindex
\makeatletter
\AtBeginDocument{\xpatchcmd{\@wrindex}{\thepage}{\theverset}{}{}}

\newcommand{\verset}[1][]{\stepcounter{verset}%
  \textbf{\theverset.%
    \if\relax\detokenize{#1}\relax
    \else
      \space #1\@addpunct{.}%
    \fi
  }%
  \hspace{0.5em}\ignorespaces
}
\makeatother
\newcounter{verset}

\begin{document}

\lipsum[1]

\verset \lipsum[2]\index{horse}

\verset[Description] \lipsum[3]\index{elephant}

\verset[Period.] Short

\verset[Question?] Short

\lipsum[4]\index{lion}

\printindex

\end{document}

\@addpunct{.}宏检查当前空间因子,该因子在标点符号后较大(即使\frenchspacing有效),并有条件地添加一个句点。

在此处输入图片描述

相关内容