我目前正在写一篇论文,其课程设置如下。
\documentclass[12pt, a4paper]{report}
很快我将需要将其打印为双面文档。当我添加选项时,twoside
整个文档都会受到影响,包括“封面”。如果我没有记错的话,唯一简单的方法是使用包geometry
,然后在\newgeometry{twoside}
封面后添加,从而将文档变成双面文档。不幸的是,geometry
包会修改文档的边距。我更喜欢默认的边距, a4paper
所以我尝试通过以下选项来更改它们。
\usepackage[a4paper, centering, total={5.4in, 8.18in}, twoside, bindingoffset=1cm]{geometry}
a4paper, report
对于没有几何图形的文档,页边距的精确尺寸是多少?我5.4in, 8.18in
通过反复试验得出了近似值,但它们并不正确。
编辑
第一张图没有geometry
包装,a4paper
。第二张图geometry
有包装,a4paper
。
答案1
没有几何图形的 A4 纸、报告文档的边距的精确尺寸是多少?
它们位于 和 表格的第二列和第三列oneside
。twoside
(分配给边距的 62pt 以不同的方式分割)。代码显示了如何获取这些值。
但更重要的是,您还希望在将文档更改为 时保留封面的原始布局twoside
。正如您所建议的那样,可以使用包 来完成geometry
,使用 的适当参数加载report
oneside
,然后使用twoside
恢复\newgeometry
。
使用提供的代码进行测试:
(1)使用\documentclass[12pt,a4paper]{report}
并注释\usepackage[...]{geometry}
和\newgeometry[...]
(放在之前\chapter
)。
您应该获得表格(报告)第二列的值oneside)
,包括“标题页的几何形状”和“文档的几何形状”。
(2)现在\documentclass[12pt,a4paper, twoside]{report}
保留注释的两行。您将获得第三列 report 的值twoside
,包括封面和文档的其余部分。
这是不可取的,因为它改变了封面的布局。
(3)仅取消注释\usepackage[...]{geometry}
。您将恢复所有内容的值oneside
。表格的第四列。还有一步。
(4)取消注释也\newgeometry[...]
放在前面。现在您将获得“文档几何形状”(第五列)中\chapter
报告的值,同时保留“标题页几何形状”(第四列)的值。这是所需的结果。twoside
oneside
这是代码
%\documentclass[12pt,a4paper]{report} % used to write the document
\documentclass[12pt,a4paper,twoside]{report} % required to print the document
\usepackage[textwidth= 390.0pt,
textheight =592.0pt,
left= 103.27pt, % 1in + 31pt
top= 92.27pt, % 1in + 20pt
marginparwidth= 85pt,
includemp,
includehead]{geometry} % reproduce report oneside layout
\title{Draft title of the report}
\author{Only one}
\begin{document}
\setlength{\parindent}{0pt}
\textbf{\large Geometry of the title page}
\medskip
textwidth= \the\textwidth
textheight= \the\textheight
oddsidemargin= \the\oddsidemargin
evensidemargin= \the\evensidemargin
topmargin= \the\topmargin
headheight= \the\headheight
headsep= \the\headsep
topskip= \the\topskip
footskip= \the\footskip
marginparwidth= \the\marginparwidth
marginparsep= \the\marginparsep
\maketitle
\newgeometry{twoside, % recover report twoside layout
textwidth= 390.0pt,
textheight= 592.0pt,
left= 82.27pt, % 1in + 10pt
top= 92.27pt, % 1in + 20pt
marginparwidth= 85pt,
includemp,
includehead}
\chapter{Measurements}
\textbf{\large Geometry of the document}
\medskip
\setlength{\parindent}{0pt}
textwidth= \the\textwidth
textheight= \the\textheight
oddsidemargin= \the\oddsidemargin
evensidemargin= \the\evensidemargin
topmargin= \the\topmargin
headheight= \the\headheight
headsep= \the\headsep
topskip= \the\topskip
footskip= \the\footskip
marginparwidth= \the\marginparwidth
marginparsep= \the\marginparsep
\bigskip
\begin{tabular}{lcccc}
\hline
& report 1s & report 2s & geometry \& 2s & +newgeometry \& 2s \\
& cover + pages & cover + pages & cover + pages & only pages \\ \hline
textwidth & 390.0pt & 390.0pt & 390.0pt & 390.0pt \\
textheight & 592.0pt & 592.0pt & 592.0pt & 592.0pt \\
oddsidemargin & 31.0pt & 10.0pt & 31.0pt & 10.0pt \\
evensidemargin & 31.0pt & 52.0pt & 31.97pt & 52.97pt \\
topmargin & 20.0pt & 20.0pt & 20.0pt & 20.0pt \\
headheight & 12.0pt & 12.0pt & 12.0pt & 12.0pt \\
headsep & 25.0pt & 25.0pt & 25.0pt & 25.0pt \\
topskip & 12.0pt & 12.0pt & 12.0pt & 12.0pt \\
footskip & 30.0pt & 30.0pt & 30.0pt & 30.0pt \\
marginparwidth & 85.0pt & 85.0pt & 85.0pt & 85.0pt \\
marginparsep & 10.0pt & 10.0pt & 10.0pt & 10.0pt \\ \hline
\end{tabular}
\end{document}
答案2
我之前在某处回答过这个问题但我找不到重复的答案所以......
这两个选项的作用截然不同。
传统的 TeX 没有纸张大小或边距的概念,它仅设置文本块的大小,而边距是文本块的大小与您打印的纸张尺寸之间的差异。
与左上角的标称偏移量为 1 英寸,但这通常是在 dvi 驱动程序中而不是在 TeX 中调整的,并且根本没有与右边距相对应的 TeX 基元。
大多数 dvi 驱动程序(以及具有内置后端的 tex 变体,例如 pdftex 和 luatex)都有一种指定媒体大小的方法,可用于设置 PDF 中的页面尺寸。
在设计 LaTeX2e 时,pdflatex 非常新,并且几乎所有 tex 的使用都是通过经典 dvi tex 和大量 dvi 驱动程序进行的,因此默认情况下 latex 对正在使用的后端没有任何假设。
因此,a4paper
标准类中的选项设置了一个适合 A4 的文本块,并将 latex\paperwidth
和\paperheight
尺寸寄存器设置为 A4 的大小。但它没有设置任何 dvi 驱动程序\special
或 pdflatex 基元\pdfpagewidth
,并且\pdfpageheight
实际上强制 PDF 为 A4。PDF 页面尺寸通常由安装 texlive 时的安装默认值设置,可能是美国信纸大小。
geometry
诸如、之类的软件包确实确定了所使用的后端系统graphicx
,hyperref
它们都规范化了设置,以便根据 和 的值设置 、或等效特殊或 luatex 原语,\pdfpagewidth
从而强制 PDF 页面的尺寸与 latex 指定的纸张大小相匹配。因此,即使您根本不使用任何选项,边距(尤其是隐式右边距和下边距)也可能会发生变化。\pdfpageheight
\paperwidth
\paperheight
答案3
您可以使用该layouts
包报告当前页面布局值(还可以查看更改它们时会发生什么)。您可以使用该changepage
包的adjustwidth
环境临时更改当前的左右边距。以下是示例。
% marginsprob.tex SE 591067
\documentclass[12pt, a4paper]{report}
\usepackage{layouts}
\usepackage{changepage}
\usepackage{lipsum}
\begin{document}
% The current page layout lengths
\begin{figure}
\currentpage
\pagedesign
\caption{This page layout values}
\end{figure}
% The general page layout length commands
\begin{figure}
\pagediagram
\caption{Page layout parameters}
\end{figure}
\clearpage
\lipsum[1]
\begin{adjustwidth}{-1cm}{1cm}
\textbf{Adjusted} \lipsum[2]
\end{adjustwidth}
\lipsum[3]
\end{document}
我建议您使用来查找和layouts
的尺寸。然后使用 但使用环境作为第一个标题页,然后移动到文档的其余部分。a4paper
a4paper,twoside
\documentclass[12pt,a4paper,twoside]{report}
adjustwidth