我使用 lineno 包在双面文档上添加行号。但是,我有一个限制,必须留出 2.5 厘米内边距和 4 厘米外边距。这必须是完全自由的空间。
但是 lineno 包的行号被添加到这两个边距中。
- 我能否以某种方式指定将行号添加到文档主体而不是页边距?
- 如果不是,我该如何设置文档的边距,以便有正确的空间容纳内容?
我曾经想过只将行号宽度添加到边距,但是由于行号始终位于偶数页和奇数页的左边距,因此我不得不为双面文档交替使用这个额外的边距。
这是一个简单的例子:
\documentclass[12pt,twoside,ngerman]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{verbose,
tmargin=2.5cm,
bmargin=2.5cm,
lmargin=4cm,
rmargin=2.5cm,
nomarginpar,
showframe}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{lineno}
\usepackage{lipsum}
\renewcommand{\linenumberfont}{\footnotesize}
\begin{document}
\linenumbers
\lipsum
\end{document}
该截图说明了我的问题:
橙色线显示 4cm / 2.5cm 走了多远,蓝色线显示它们实际上应该走多远。线号应该更靠右。
答案1
重新定义\makeLineNumber
左边距并留出更多空间:
\documentclass[12pt,twoside,ngerman]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{verbose,
tmargin=2.5cm,
bmargin=2.5cm,
lmargin=5cm,
rmargin=2.5cm,
nomarginpar,
headheight=14.5pt,
heightrounded,
showframe}
\AtBeginDocument{\addtolength{\evensidemargin}{1cm}}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{lineno}
\usepackage{lipsum}
\renewcommand{\makeLineNumber}{\llap{\linenumberfont\rlap{\LineNumber}\hspace{1cm}}}
\renewcommand{\linenumberfont}{\footnotesize}
\begin{document}
\linenumbers
\noindent% just to make a rule
\llap{\vrule height 1pt width 3.9cm\hskip1cm}%
\lipsum[1-6]
\noindent% just to make a rule
\llap{\vrule height 1pt width 2.4cm\hskip1cm}%
\lipsum[7]
\end{document}
这两个规则只相差 1 毫米,因此我们可以看到测量是准确的。我headheight
还为 和添加了设置heightrounded
;第一个是 所需的fancyhdr
,第二个使文本高度包含整数行数。
第 1 页顶部
第 2 页顶部
答案2
但因为行号总是在偶数页和奇数页的左边距
该假设不成立。您可以使用包switch
的选项lineno
。请参阅双面文档中不同边距上的行号对于 MWE。