如何为段落添加边距编号?奇数页和偶数页应该交替(左页和右页)。因此基本上就像lineo
使用切换选项一样,但针对的是段落而不是行。
答案1
更短更原始
\documentclass[twoside]{article}
\usepackage{lipsum}
\newcounter{mypara}
\setcounter{mypara}{0}
\begin{document}
\everypar{\refstepcounter{mypara}
\ifodd\value{page}
\marginpar{\themypara}
\else
\marginpar{\makebox[\marginparwidth][r]{\themypara}}
\fi}%
\lipsum[1-100]
\end{document}
答案2
这利用了\everypar
(利用大卫的回答为什么 \everypar 不起作用?) 使“某事”在每个段落发生。在这种情况下,发生的“某事”是\tabto
移到页边距,其中放置了段落编号,然后返回到原始位置。我使用钩子everypage
在每一页上切换页边距位置。
我将其全部包裹在一个enumpars
环境中,以便您可以随意打开和关闭它。
\documentclass{article}
\usepackage{lipsum,tabto,everypage}
\def\TabMargLeft{-.5in}
\def\TabMargRight{\dimexpr\textwidth+.5in\relax}
\def\TabMargPos{\TabMargRight}
\AddEverypageHook{\ifdim\TabMargPos=\TabMargLeft\relax%
\gdef\TabMargPos{\TabMargRight}\else%
\gdef\TabMargPos{\TabMargLeft}\fi}
\newcounter{parcount}
\let\oldep\everypar%
\newenvironment{enumpars}
{\newtoks\everypar%
\setcounter{parcount}{0}%
\oldep{\the\everypar\stepcounter{parcount}%
\tabto*{\TabMargPos}\makebox[0pt]{(\theparcount)}\tabto*{\TabPrevPos}}%
\par}{\global\let\everypar\oldep\par}
\begin{document}
\begin{enumpars}
\lipsum[1-5]
\end{enumpars}
\lipsum[6-8]
\begin{enumpars}
\lipsum[9-14]
\end{enumpars}
\end{document}