页边距中的段落自动编号

页边距中的段落自动编号

我想要一种自动对段落进行编号的方法,这种方法不需要在基于 LaTeX3 构建的文档的每个段落末尾添加额外的代码。我希望段落编号出现在左边距,或者如果是双面文档,则出现在外边距。理想情况下,我希望有一种机制来开始、暂停、恢复、停止和重置编号。最好有一种方法来控制数字的显示,可能在其前面加上段落标记。基本上类似于lineno 包装

我觉得这应该是一个已经解决的问题,但我找不到任何合适的软件包。tex stackexchange 上最近的似乎是但我不确定该如何适应它。

平均能量损失

\documentclass[11pt]{article}

\usepackage{lipsum}

% This part needs replacing
\usepackage{marginnote}\reversemarginpar

\begin{document}

\marginnote{\P1}First paragraph.

\marginnote{\P2}Second paragraph.

The above two paragraphs illustrate the desired outcome but have to be done explicitly in the source. The aim is for paragraphs like this and subsequent ones to be numbered automatically.

\lipsum[1-2]

\end{document}

接近预期效果

答案1

嗯,您可以使用新的 para 钩子。但主要问题不是添加某些内容,而是防止它被添加到您不想要的地方,段落出现在比您预期的更多的地方。使用一些布尔值,例如来自 etoolbox 包的可以打开和关闭的布尔值。

\documentclass[11pt]{article}

\usepackage{lipsum,etoolbox}

\newbool{myparbool}
\booltrue{myparbool}
\newcounter{mypar}
\AddToHook{para/begin}
  {\ifbool{myparbool}{\stepcounter{mypar}\llap{\P\themypar\quad}}{}}
\begin{document}

\boolfalse{myparbool}
\section{Section}
\booltrue{myparbool}

First paragraph.

Second paragraph.

The above two paragraphs illustrate the desired outcome but have to be done explicitly in the source. The aim is for paragraphs like this and subsequent ones to be numbered automatically.

\lipsum[1-2]

\end{document}

在此处输入图片描述

答案2

另一种选择是,如果您不将其用于其他任何用途,则使用“段落”分段命令:

\documentclass[12pt]{article}
\usepackage{titlesec}
\setcounter{secnumdepth}{5}
\titleformat{\paragraph}[leftmargin]{\bfseries}{\llap{\P\arabic{paragraph}\quad}}{2em}{}
\titlespacing{\paragraph}{0pt}{0pt}{0pt}
\usepackage{lipsum}
\begin{document}

\paragraph{} \lipsum[5]
\paragraph{} \lipsum[6]
\paragraph{} Another paragraph.

No longer numbered.

\end{document}

编号段落

相关内容