简短回答

简短回答

我有一个悬垂在文本上方的标题,但我希望它的长度与文本相同,并与文本对齐。当包含 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}

如果您想要信纸大小,只需将其替换a4paperletterpaper。完成此操作后,您应该会得到预期的结果,但我建议您使用软件包提供的选项进行所有页面几何设置geometry(我担心像您那样手动设置参数并不真正支持geometry)。您可以找到其手册这里。寻找类似 或 的选项innerleft替换lmargin\evensidemargin

相关内容