lineno.sty 包没有对我的摘要的行进行编号。有什么建议吗?谢谢。
\documentclass[a4paper,12pt]{amsart}
\usepackage{indentfirst}
\usepackage{hyperref}
\usepackage{showkeys}
\usepackage{lineno}
\hyphenpenalty=5000
\tolerance=1000
\begin{document}
\linenumbers
\title{Lineno in the Abstract}
\begin{abstract}
We do this, do that, ...
\end{abstract}
\maketitle
\section{Introduction}
\end{document}
答案1
lineno
和类之间似乎不兼容amsart
。如果我将最小示例中的文档类更改为article
,摘要的行是编号。
编辑:参见这回答深入的解释。
如果你真的需要行号和类amsart
(我宁愿放弃amsart
),这里有一个快速修复:删除abstract
示例中的环境。相反,在之后立即添加以下内容\maketitle
:
\vspace{-7pt}
\begin{quote}
\footnotesize
\textsc{Abstract.} We do this, do that, ...
\end{quote}
\vspace{21pt}
答案2
第 1 页,第 11-12 行亚麻布状态:
lineno.sty只能在正文中对行进行编号。任何类型的方框中的行都不能进行编号。但请参阅下面的第 7.4 节。
AMS 类文件将摘要排版为标题页的一部分,但摘要是使用环境指定的。因此它必须吸收文本并将其保存以供重复使用。它通过使用框来实现这一点,这正是lineno.sty
我们要避免的情况。
第 7.4 节可能会有所帮助,但它并不是真正的编号:它描述了一种扩展,lineno.sty
只是在左侧排版一串数字,模糊地希望它们能够与框中的线条正确对齐。
所以回答你的问题:不,我没有建议!除了问,你真的你的摘要需要有行号吗?
好的,我确实有一个建议。
\documentclass{amsart}
\usepackage{lipsum}
\usepackage{lineno}
\makeatletter
\let\my@abstract=\relax
\def\abstract#1{%
\def\my@abstract{%
\normalfont\Small
\list{}{\labelwidth\z@
\leftmargin3pc \rightmargin\leftmargin
\listparindent\normalparindent \itemindent\z@
\parsep\z@ \@plus\p@
\let\fullwidthdisplay\relax
}%
\item[\hskip\labelsep\scshape\abstractname.]%
#1
\endlist}}
\def\@setabstracta{%
\ifx\my@abstract\relax
\else
\skip@20\p@ \advance\skip@-\lastskip
\advance\skip@-\baselineskip \vskip\skip@
\my@abstract
\prevdepth\z@ % because \abstractbox is a vtop
\fi
}
\makeatother
\linenumbers
\begin{document}
\title{Line numbering and amsart}
\abstract{%
\lipsum[1]}
\maketitle
\lipsum[2]
\end{document}
我并不特别推荐它,它需要稍微调整一下才能使上下间距正确。基本上,它重新实现了 amsart 摘要处理,而无需使用框。它很丑陋,很老套,而且它可能只是向 AMS 发送了一个编码信号,这将使我在未来几年内被列入他们的黑名单。但它确实对摘要的行进行了编号,除了间距之外,它看起来是正确的。
答案3
我发现了一个使用lineno
包和elsarticle
类的简单解决方案:只需在代码中写入以下脚本:
\begin{abstract}
\begin{linenumbers}
your abstract text...
\end{linenumbers}
\end{abstract}