输出 pdf 中的连续行号

输出 pdf 中的连续行号

我正在使用以下代码:

   \documentclass[11pt]{amsart}
   \setlength{\textheight}{23cm}
    \setlength{\textwidth}{16cm}
     \setlength{\topmargin}{-0.8cm}
     \setlength{\parskip}{0.3\baselineskip}
     \hoffset=-1.4cm
     \usepackage{amsmath,amscd,amssymb}
     \usepackage{hyperref}
      \usepackage[running, pagewise]{lineno}
      \linenumbers
      \newtheorem{theorem}{Theorem}[section]
      \newtheorem{conjecture}[subsection]{Conjecture}
      \newtheorem{lemma}[theorem]{Lemma}
      \newtheorem{proposition}[theorem]{Proposition}
      \newtheorem{remark}[theorem]{Remark}
      \numberwithin{equation}{section}
      \newtheorem{definition}[theorem]{Definition}
      \newtheorem{example}[theorem]{Example}
       \newtheorem{corollary}[theorem]{Corollary}
       \renewcommand{\thefootnote}{\arabic{footnote}}
     \input xy
    \xyoption{all}
     \begin{document}
     la la la \\
    \begin{theorem}
    If this is true, then that is true.\
    \end{theorem}
    \begin{proof}
    It's always true
    \end{proof}
    la la la 
    \end{document}

在 \begin{document} 之前,使用 lineno 包的输出是离散的。我想要所有行(包括段落之间的间隙)的行号(在左侧)。如果有办法解决这个问题,请告诉我。

输出如下:在此处输入图片描述

我希望第 2、3 行和第 3、4 行和第 4、5 行之间以及第 5 行之后没有内容的每一行之间都有行号。有没有办法让它密集编号?这是期刊排版格式。由于论文很长,在我的代码或其他代码框架中使用类似于期刊样式的行号会很有用(不会妨碍编译)

答案1

以我在问题下的评论为例:计算机协会对正在审查的论文使用连续行号。这些行号与论文中的实际行无关,因此可能在垂直方向上错位。

在下面的代码中,我将 的相关部分添加acmart.cls到问题的示例文档中。基本上,通过反复添加下一个数字直到框达到 ,可以构建一个带有行号的框\textheight。然后使用 将此框添加到页面的左上角。通过使用 在标题规范中\put添加命令,对每个页面重复此操作。\put\fancyhdr

梅威瑟:

\documentclass[11pt]{amsart}
\usepackage{xcolor}
\setlength{\textheight}{23cm}
\setlength{\textwidth}{16cm}
\setlength{\topmargin}{-0.8cm}
\setlength{\parskip}{0.3\baselineskip}
\hoffset=-1.4cm
\usepackage{amsmath,amscd,amssymb}
\usepackage{hyperref}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{conjecture}[subsection]{Conjecture}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{remark}[theorem]{Remark}
\numberwithin{equation}{section}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Example}
\newtheorem{corollary}[theorem]{Corollary}
\renewcommand{\thefootnote}{\arabic{footnote}}
\input xy
\xyoption{all}
\usepackage{fancyhdr}
\makeatletter
% the code below is modified from acmart.cls
% source: https://ctan.org/pkg/acmart
% licensed under LPPL 1.3
\newsavebox{\ACM@linecount@bx}
\newlength\ACM@linecount@bxht
\newcount\ACM@linecount
\ACM@linecount\@ne\relax
\def\ACM@mk@linecount{%
    \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{\normalfont
        \normalsize
        \setlength{\ACM@linecount@bxht}{0pt}%
        \loop{\color{red}\scriptsize\the\ACM@linecount}\\
        \global\advance\ACM@linecount by \@ne
        \addtolength{\ACM@linecount@bxht}{\baselineskip}%
        \ifdim\ACM@linecount@bxht<\textheight\repeat
        {\color{red}\scriptsize\the\ACM@linecount}\hfill
        \global\advance\ACM@linecount by \@ne}}}
\def\ACM@linecountL{%
  \ACM@mk@linecount
  \begin{picture}(0,0)%
    \put(-26,-18){\usebox{\ACM@linecount@bx}}%
  \end{picture}%
}
\pagestyle{fancy}
\fancyhead[L]{\ACM@linecountL}
% end of code modified from acmart.cls
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{plain}{}
\makeatother
\begin{document}
la la la \\
\begin{theorem}
If this is true, then that is true.\
\end{theorem}
\begin{proof}
It's always true
\end{proof}
la la la 
\end{document}

结果:

在此处输入图片描述


有多种参数可供修改。

  • 在第一行之前开始数字:调整\put(x,y)。在下面的代码中,\put(-26,-10)将数字 1 放在第一行上方。
  • 数字范围:由盒子的总高度决定。代码不使用实际高度,而是通过长度变量模拟,该变量在盒子开始时\ACM@linecount@bxht初始化为,并在每增加一个数字后增加。通过减少模拟的增加,您可以在盒子达到之前容纳更多数字。反复试验可得出数字 1-60。0pt\baselineskip\textheight0.855\baselineskip
  • 数字之间的距离:可以通过在每个数字后添加换行符的长度来设置\\。反复试验后,我们终于\\[-1.5pt]将数字 60 放在了页面底部附近。
  • 重置每页的数字:这可以通过将数字计数器初始化放在\ACM@linecount\@ne\relax为每个页眉调用的宏内来完成(\ACM@mk@linecountmk表示“make”)。
  • 第一页的行号:这些数字由页眉生成。仅当\pagestyle{fancy}有效时才显示此页眉。许多文档类\pagestyle{plain}为第一页和/或整个文档设置。您可以重新定义plain使用fancy定义(即打印页眉并因此打印行号)\fancypagestyle{plain}{}(注意:这已包含在上面第一个版本的答案中)。文档类还可能将页面样式设置为,empty在这种情况下您应该相应地修改页眉设置。

修改后的代码:

\documentclass[11pt]{amsart}
\usepackage{xcolor}
\setlength{\textheight}{23cm}
\setlength{\textwidth}{16cm}
\setlength{\topmargin}{-0.8cm}
\setlength{\parskip}{0.3\baselineskip}
\hoffset=-1.4cm
\usepackage{amsmath,amscd,amssymb}
\usepackage{hyperref}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{conjecture}[subsection]{Conjecture}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{remark}[theorem]{Remark}
\numberwithin{equation}{section}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Example}
\newtheorem{corollary}[theorem]{Corollary}
\renewcommand{\thefootnote}{\arabic{footnote}}
\input xy
\xyoption{all}
\usepackage{fancyhdr}
\usepackage{lipsum}
\makeatletter
% the code below is modified from acmart.cls
% source: https://ctan.org/pkg/acmart
% licensed under LPPL 1.3
\newsavebox{\ACM@linecount@bx}
\newlength\ACM@linecount@bxht
\newcount\ACM@linecount
%\ACM@linecount\@ne\relax
\def\ACM@mk@linecount{%
    \ACM@linecount\@ne\relax % reset counter each page
    \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{\normalfont
        \normalsize
        \setlength{\ACM@linecount@bxht}{0pt}%
        \loop{\color{red}\scriptsize\the\ACM@linecount}\\[-1.5pt] % vertical distance between numbers
        \global\advance\ACM@linecount by \@ne
        \addtolength{\ACM@linecount@bxht}{0.855\baselineskip}% reduce similated box height increase
        \ifdim\ACM@linecount@bxht<\textheight\repeat
        {\color{red}\scriptsize\the\ACM@linecount}\hfill
        \global\advance\ACM@linecount by \@ne}}}
\def\ACM@linecountL{%
  \ACM@mk@linecount
  \begin{picture}(0,0)%
    \put(-26,-10){\usebox{\ACM@linecount@bx}}% x,y coordinates of line number 1
  \end{picture}%
}
\pagestyle{fancy}
\fancyhead[L]{\ACM@linecountL}
% end of code modified from acmart.cls
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{plain}{} % add numbers to plain pages (e.g., first page)
\makeatother
\begin{document}
la la la \\
\begin{theorem}
If this is true, then that is true.\
\end{theorem}
\begin{proof}
It's always true
\end{proof}
la la la 
\lipsum[1-8]
\end{document}

结果(第 1 页结束,第 2 页开始):

在此处输入图片描述

相关内容