在页边距中插入段落编号

在页边距中插入段落编号

我想在段落旁边的边距中插入数字,但数字不会影响文档的文本。我希望每行的第一个字母在左侧齐平。我正在这样做

\usepackage{type1cm}
\usepackage{lettrine}
\newcommand*{\DefaultLhang}{1.34}

...

\lettrine{1}{} Here is the text of the paragraph

问题是 1.34 的挂起对小于 10 的数字有效,但对大于 10 的数字无效。有没有办法让 lettrine 将数字完全放入边距而不影响文本本身。或者有没有更好更简单的方法来解决这个问题?

答案1

没有 你也可以做到lettrine

\documentclass{article}
\usepackage{fix-cm}
\usepackage[T1]{fontenc}
\usepackage{adjustbox}

\usepackage{lipsum}

\newcounter{numpar}
\newcommand{\numpar}{%
  \par
  \ifnum\value{numpar}>0 % not the first paragraph
    \ifnum\prevgraf<2
      \addvspace{\baselineskip}%
    \fi
  \fi
  \stepcounter{numpar}%
  \noindent
  \raisebox{\dimexpr-\height+\fontcharht\font`T}[0pt][0pt]{%
    \makebox[0pt][r]{{\fontsize{2.5\baselineskip}{0}\selectfont\thenumpar} }%
  }\ignorespaces
}


\begin{document}

\numpar\lipsum[1][1-4]

\numpar\lipsum[1][1]

\numpar\lipsum[2][1-4]

\setcounter{numpar}{9}

\numpar\lipsum[3][1-4]

\end{document}

如果前一段少于两行,则会自动添加一个空行。

在此处输入图片描述

答案2

\lettrine这是(称为)的精简版\hangnum,它将数字放在边距上,而不管其宽度是多少。它使用 的lettrine机制来计算字体大小,因此需要加载包:

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{type1cm}
\usepackage{lettrine}
\newcommand*{\DefaultNhang}{1.34}% controls the spacing

\makeatletter
\DeclareRobustCommand\hangnum[1]{%
  \def\l@initial{#1\kern\DefaultNhang pt}%
  \setcounter{L@lines}{\value{DefaultLines}}%
  \renewcommand*{\L@oversize}{\DefaultLoversize}%
  \sbox{\L@tbox}{\LettrineTextFont{\LettrineSecondString}}%
  \setupL@lbox
  \setlength{\L@lraise}{\DefaultLraise\L@target@tht}%
  \ifnum\value{L@lines}=1 \else\addtolength{\L@lraise}{-\L@target@dp}\fi
  \par \noindent
  \smash{\llap{\raisebox{\L@lraise}{\usebox{\L@lbox}}}}%
  \ignorespaces}
\makeatother

\begin{document}

\hangnum{1} Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\hangnum{11} Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\end{document}

相关内容