我有一个悬垂在文本上方的标题,但我希望它的长度与文本相同,并与文本对齐。当包含 PDF 而不是将其作为同一文档的一部分时,似乎会出现错位。以下是左页和右页示例。
无论我在包含的文档中设置了什么边距/分页,似乎都会发生错位。我一直将此视为一个fancyhdr
问题,并尝试通过设置更短的页眉\headwidth
和添加\fancyheadoffset
以将其全部移至右侧/左侧来调整页眉,但我无法弄清楚实现此目的的语法。如果我只使用\headwidth
,规则会更短但仍然错位。如果我\fancyheadoffset
在它后面添加,\headwidth
则会被忽略。如果我把放在\headwidth
后面\fancyheadoffset
,它会出现编译错误。我的尝试包含在示例中的注释中。
但是,这也可能被视为一个pdfpages
问题,我需要以不同的方式包含 PDF,以便内容不会发生偏移。(注意:在我的实际文档中,外部文件也有内容,因此需要在其中设置边距。)
这是产生包含内容的最小示例(将输出保存为Include.pdf
):
\documentclass[twoside,12pt,openany]{article}
\usepackage{setspace}
\usepackage{lipsum}
\setlength{\oddsidemargin}{1.5cm}
\setlength{\evensidemargin}{0 cm}
\setlength{\topmargin}{1mm}
\setlength{\headheight}{1.36cm}
\setlength{\headsep}{1.00cm}
\setlength{\textheight}{20.84cm}
\setlength{\textwidth}{14.5cm}
\setlength{\marginparsep}{1mm}
\setlength{\marginparwidth}{3cm}
\setlength{\footskip}{2.36cm}
\begin{document}
\doublespacing
\lipsum
\end{document}
以下是使用它来生成上述示例图像的代码:
\documentclass[twoside,12pt,openany]{book}
\usepackage{pdfpages}
\usepackage{fancyhdr}
\setlength{\oddsidemargin}{1.5cm}
\setlength{\evensidemargin}{0 cm}
\setlength{\topmargin}{1mm}
\setlength{\headheight}{1.36cm}
\setlength{\headsep}{1.00cm}
\setlength{\textheight}{20.84cm}
\setlength{\textwidth}{14.5cm}
\setlength{\marginparsep}{1mm}
\setlength{\marginparwidth}{3cm}
\setlength{\footskip}{2.36cm}
\fancypagestyle{papertwostyle}
{
\fancyhf{}
\renewcommand{\headrulewidth}{1pt}
\fancyhead[RO]{\bfseries{\MakeUppercase{Chapter title}}}
\fancyhead[LE]{\bfseries{Chapter 3}}
\fancyfoot[C]{\thepage}
}
% \renewcommand{\headwidth}{3in}
% \fancyheadoffset[ORH]{-2.1em}
% \fancyheadoffset[ELH]{-2.1em}
\begin{document}
\pagestyle{papertwostyle}
\includepdf[pages={1-3}, pagecommand={}]{Include}
\end{document}
答案1
简短回答
您的两个 PDF 文件的纸张尺寸不一样,解决这个问题之后问题就会消失。
长答案
通过将draft
选项传递给pdfpages
包,您可以看到与包含的 PDF 文件相对应的框架,并从那里猜测问题是纸张尺寸不匹配。如果我运行pdfinfo Include.pdf
(在 Linux 上),它会告诉我 Include.pdf 是 A4 格式:
$ pdfinfo Include.pdf
Creator: TeX
Producer: pdfTeX-1.40.19
CreationDate: Sat Apr 6 14:54:05 2019 CEST
ModDate: Sat Apr 6 14:54:05 2019 CEST
Tagged: no
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 3
Encrypted: no
Page size: 595.276 x 841.89 pts (A4)
(...)
然而,令人惊讶的是,您的主文档(包含 Include.pdf 的文档)是信件格式。这似乎是由该\usepackage{pdfpages}
行触发的。不要问我为什么,但是如果您注释掉该行以及\includepdf
调用,并在后面添加一个\null
框\begin{document}
以确保至少有一页输出,那么您的主文档将为 A4 格式(至少,TeX Live 2018 的情况就是如此)。
为了解决您的问题,您必须确保两个 PDF 文件的纸张大小相同。我建议使用软件包geometry
来实现这一点。您可以\usepackage{geometry}
在行后插入\documentclass
,对于主文档,可以在行前插入\usepackage{fancyhdr}
在行前插入。确保加载geometry
后任何字体更改(特别是如果您使用它的lines
选项)和前 fancyhdr
(看这里以获取有关包裹装载顺序的建议)。
例如,如果您想要 A4 文档,您可以像这样启动 Include.tex:
\documentclass[twoside,12pt,openany]{article}
\usepackage[paper=a4paper]{geometry}
\usepackage{setspace}
\usepackage{lipsum}
您的主文档如下:
\documentclass[twoside,12pt,openany]{book}
\usepackage[paper=a4paper]{geometry}
\usepackage{pdfpages}
\usepackage{fancyhdr}
\usepackage{lipsum}
如果您想要信纸大小,只需将其替换a4paper
为letterpaper
。完成此操作后,您应该会得到预期的结果,但我建议您使用软件包提供的选项进行所有页面几何设置geometry
(我担心像您那样手动设置参数并不真正支持geometry
)。您可以找到其手册这里。寻找类似 或 的选项inner
来left
替换lmargin
等\evensidemargin
。