如何在LaTeX中编号段落?

时间:2009-02-12 20:56:55

标签: latex paragraph

给出了一堆段落:

Para. A ...

Para. B ...

Para. C ...

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

1. Para. A. ...

2. Para. B. ...

3. Para. C. ...

我见过以下建议:

\newcounter{parnum}
\newcommand{\N}{%
   \noindent\refstepcounter{parnum}%
    \makebox[\parindent][l]{\textbf{\arabic{parnum}.}}}
% Use a generous paragraph indent so numbers can be fit inside the
% indentation space.
\setlength{\parindent}{2em}

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

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

\N Para. A. ...

\N Para. B. ...

\N Para. C. ...

我也看到了Sarovarnumberpar的引用,但两者都被称为“不稳定”或“不可预测”,以及“随机中断”之类的内容,这让我很谨慎。< / p>

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

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

编辑:我尝试了以下

\begin{enumerate}
\item Para No. 1
\item Para No. 2
...
\end{enumerate}

然而,它会导致排版问题,特别是因为我在散布章节标题ala。

\begin{enumerate}
\item Para No. 1
\item Para No. 2
\section{Part II}
\item Para No. 5
\item Para No. 6
...
\end{enumerate}

,标题“第二部分”的部分有时会在页面的最底部结束(即它不与以下文字保持一致)。

4 个答案:

答案 0 :(得分:17)

我认为有三种可能的解决方案(至少!)不涉及滚动自己或其他人的宏,具体取决于你想要做什么。

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

有关详细信息,请参阅LaTeX wikibook

\setcounter{secnumdepth}{5}
...
\paragraph{If we want to} do something ... 

(你可能会发现这个过度/丑陋,因为它需要一个正确嵌套的部分和子部分结构)

请注意,如果您使用回忆录文档类(我毫不犹豫地推荐),\setcounter行将变为\maxsecnumdepth{paragraph}

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

\begin{enumerate}
\item Para No. 1
\item Para No. 2
...
\end{enumerate} 

3如果要调整格式,可以使用通用列表(\begin{list}...\end{list{})。除了A Guide to LaTeX

中的文章之外,我还没有立即找到一个好的在线参考

答案 1 :(得分:4)

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

\newcounter{paranum}
\newcommand{\P}{\vspace{10pt}\noindent\textbf{\refstepcounter{paranum}\theparanum}\textbf}

写一个新的“段落”我做

\P{Paragraph title No. 1} ...text...
...
\P{Paragraph title No. 2} ...text...

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

\newcounter{paranum}[section]
\newcommand{\P}{\vspace{10pt}\noindent\textbf{\thesection.\refstepcounter{paranum}\theparanum}\textbf}

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

答案 2 :(得分:2)

我认为另一种选择是ledmac包。以下是文档中的引用:

  

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

\newcounter{para} \setcounter{para}{0}
\newcommand{\newpara}{%
  \refstepcounter{para}%
  \noindent\llap{\thepar. }\quad}
\newcommand{\oldpara}[1]{%
  \noindent\llap{\ref{#1}. }\quad}
  

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

\linenummargin{right}
\beginnumbering
\pstart
\newpara\label{P1} A paragraph about \ldots
\pend
  In paragraph~\ref{P1} the author \ldots
\pstart
\oldpara{P1} This has the same
             \edtext{number}{\Afootnote{\ref{P1} is the paragraph, not line}}
  as the first paragraph.
\pend
\endnumbering

然而,我自己从未尝试过这个。

答案 3 :(得分:2)

解决这个问题的方法是使用由印度特里凡得琅River Valley Technologies的CV Radhakrishnan编写的 parano 软件包。

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