乳胶中显示的行号(双面)

乳胶中显示的行号(双面)

是否有可能(在单列文章中)显示两侧(左侧和右侧)的行号?我使用 lineno 包进行单侧编号,但无法同时将其用于左侧和右侧。

\documentclass{article}
\usepackage[left]{lineno}
\usepackage{blindtext}

\begin{document}
\linenumbers
\blindtext
\end{document}

答案1

您可以更新(默认)选项的工作方式left。也就是说,更新\makeLineNumbersLeft并重新发布\leftlinenumbers

在此处输入图片描述

\documentclass{article}
\usepackage{lineno}

\makeatletter
\def\makeLineNumberLeft{%
  \linenumberfont\llap{\hb@xt@\linenumberwidth{\LineNumber\hss}\hskip\linenumbersep}% left line number
  \hskip\columnwidth% skip over column of text
  \rlap{\hskip\linenumbersep\hb@xt@\linenumberwidth{\hss\LineNumber}}\hss}% right line number
\leftlinenumbers% Re-issue [left] option
\makeatother

\usepackage{blindtext}

\begin{document}
\linenumbers

\blindtext
\end{document}

答案2

这种方法无法跨页面边界工作(这就是我赞成 Werner 的答案的原因)。但既然我做到了,我就介绍一下。我设置了\lrlineno[start no]{text}

基本上,我用白色打印出来,使用左行号,然后\vspace对块的开头执行 a ,然后使用黑色重新打印出来,使用右行号。

\documentclass{article}
\usepackage[left]{lineno}
\usepackage{xcolor}
\usepackage{blindtext}
\newlength\tmplen
\newcommand\lrlineno[2][1]{%
\linenumbers%
\setcounter{linenumber}{#1}%
\leftlinenumbers%
\color{white}#2\color{black}%
\par%
\setcounter{linenumber}{#1}%
\setbox0=\vbox{#2}%
\setlength\tmplen{\dimexpr\dp0+\ht0+\the\dp\strutbox}%
\vspace*{-\tmplen}%
\rightlinenumbers%
#2%
\par%
\nolinenumbers%
}
\begin{document}

Testing left-right line numbers, beginning at 3

\lrlineno[3]{\blindtext}

Test is complete.
\end{document}

在此处输入图片描述

答案3

解决方案

好吧,默认情况下,标准类为:articleletterreport使用选项oneside同时book使用twoside。我们需要在之前的类中添加该选项。如果您希望两个边距都有数字,您可以在文档中使用switch而不是。left

\documentclass[twoside]{article}
\usepackage[switch]{lineno}
\usepackage{blindtext}
\usepackage{lipsum}

\begin{document}
\linenumbers
\blindtext

\section{First Attempt}
\lipsum

\section{Another stuff}
\lipsum

\end{document}

您不需要做更复杂的事情。该包lineno能够做您想做的事情。尝试上面的代码看看。如果您想在同一页的底部边距中获取数字,可以,但请检查包装文档为了那个原因。

相关内容