如何在 LaTeX 中为段落编号?

Posted

技术标签:

【中文标题】如何在 LaTeX 中为段落编号?【英文标题】:How can one number paragraphs in LaTeX? 【发布时间】:2010-10-07 06:59:29 【问题描述】:

给定一堆段落:

Para. A ...

Para. B ...

Para. C ...

如何让 LaTeX 自动为它们编号,即

1. Para. A. ...

2. Para. B. ...

3. Para. C. ...

我看到了以下建议:

\newcounterparnum
\newcommand\N%
   \noindent\refstepcounterparnum%
    \makebox[\parindent][l]\textbf\arabicparnum.
% Use a generous paragraph indent so numbers can be fit inside the
% indentation space.
\setlength\parindent2em

从这里:comp.text.tex: Re: How do I number paragraphs in LaTeX?

然后在每个要编号的段落前面使用\N,即

\N Para. A. ...

\N Para. B. ...

\N Para. C. ...

我还看到了对Sarovar 和numberpar 的引用,但两者都被称为“不稳定”或“不可预测”,以及诸如“随机中断”之类的东西,这让我很警惕。

我想在这里就什么可能是最好的行动方案提供一些意见,我认为这是一个值得讨论的话题。

感谢您对此的关注和关注。

编辑:我尝试了以下方法

\beginenumerate
\item Para No. 1
\item Para No. 2
...
\endenumerate

但是它会导致排版问题,特别是因为我在散布部分标题 ala。

\beginenumerate
\item Para No. 1
\item Para No. 2
\sectionPart II
\item Para No. 5
\item Para No. 6
...
\endenumerate

标题“第二部分”的部分有时会出现在页面的最底部(即,它与以下文本不一致)。

【问题讨论】:

【参考方案1】:

我认为有三种可能的解决方案(至少!)不涉及滚动您自己或其他人的宏,具体取决于您要执行的操作。

1 如果整个文档都需要编号,请使用\paragraph,这是一个较低级别的分段命令(如\chapter、\section、\subsection等)

请参阅LaTeX wikibook 了解更多信息。

\setcountersecnumdepth5
...
\paragraphIf we want to do something ... 

(你可能会觉得这有点矫枉过正/丑陋,因为它需要一个正确嵌套的节和小节结构)

请注意,如果您使用 memoir 文档类(我毫不犹豫地推荐),\setcounter 行将变为 \maxsecnumdepthparagraph

2 如果只是一小块,用列表:

\beginenumerate
\item Para No. 1
\item Para No. 2
...
\endenumerate 

3 如果您想调整格式,请使用通用列表 (\beginlist...\endlist)。除了A Guide to LaTeX中的那篇文章之外,我还没有立即找到一个好的在线参考资料。

【讨论】:

\setcountersecnumdepth5 + \paragraph 是我正在寻找的功能。谢谢! 有没有办法在段落编号之前抑制前导 sec/subsec 数字?现在我的段落编号为 0.0.0.x &c。 @flamsmark \renewcommand\theparagraph\arabicparagraph【参考方案2】:

在我的例子中,我最终通过重新定义一个像段落一样工作的新宏\P 来解决这个问题。

\newcounterparanum
\newcommand\P\vspace10pt\noindent\textbf\refstepcounterparanum\theparanum\textbf

我要写一个新的“段落”

\PParagraph title No. 1 ...text...
...
\PParagraph title No. 2 ...text...

使枚举链接到我使用的部分

\newcounterparanum[section]
\newcommand\P\vspace10pt\noindent\textbf\thesection.\refstepcounterparanum\theparanum\textbf

我知道这实际上是拙劣的,但最终为我工作。

【讨论】:

这有效,除非你引用一个段落,它没有按预期出现(如“section.paragraph”)。我改用以下内容:\newcounterparanum[section] \renewcommand\theparanum\thesection.\arabicparanum \newcommand\mypar\vspace10pt\noindent\refstepcounterparanum\textbf\theparanum\ 我使用了一个更简单的版本,\newcommand\NP\textbf\refstepcounterparanum\theparanum\textbf【参考方案3】:

我相信另一个选择是ledmac 包。这是文档中的引述:

普通的\label、\ref 和\label \pageref 宏可以在编号文本中使用,并以熟悉的方式操作。例如,这是一种编号方式 编号文本中的段落,然后能够引用段落编号, 除了行号和页码。

\newcounterpara \setcounterpara0
\newcommand\newpara%
  \refstepcounterpara%
  \noindent\llap\thepar. \quad
\newcommand\oldpara[1]%
  \noindent\llap\ref#1. \quad

\newpara 和 \oldpara 的定义将数字放在左边距和 段落的第一行是缩进的。您现在可以编写如下内容:

\linenummarginright
\beginnumbering
\pstart
\newpara\labelP1 A paragraph about \ldots
\pend
  In paragraph~\refP1 the author \ldots
\pstart
\oldparaP1 This has the same
             \edtextnumber\Afootnote\refP1 is the paragraph, not line
  as the first paragraph.
\pend
\endnumbering

不过,我自己从未尝试过。

【讨论】:

【参考方案4】:

解决此问题的方法是使用包 parano,该包由印度特里凡得琅河谷技术公司的 CV Radhakrishnan 编写。

我从以下网页知道此解决方案 http://www.ub-filosofie.ro/~solcan/wt/gnu/n/np.html

【讨论】:

请注意,不鼓励仅链接的答案,因此答案应该是搜索解决方案的终点(相对于另一个参考中途停留,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。

以上是关于如何在 LaTeX 中为段落编号?的主要内容,如果未能解决你的问题,请参考以下文章

LaTeX如何设置段落层次结构

在word中的段落编号中如何进行编号搜索

如何像这样在 LaTeX 中为章节标题着色?

如何在Latex中插入伪代码

LaTeX“ indent”创建段落缩进/标签包要求?

latex如何让文章中SECTION不自动编号