Class A4paper 和 Geometry A4paper 中的边距差异

Class A4paper 和 Geometry A4paper 中的边距差异

我目前正在写一篇论文,其课程设置如下。

\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 纸、报告文档的边距的精确尺寸是多少?

它们位于 和 表格的第二列和第三列onesidetwoside(分配给边距的 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报告的值,同时保留“标题页几何形状”(第四列)的值。这是所需的结果。twosideoneside

这是代码

%\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诸如、之类的软件包确实确定了所使用的后端系统graphicxhyperref它们都规范化了设置,以便根据 和 的值设置 、或等效特殊或 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的尺寸。然后使用 但使用环境作为第一个标题页,然后移动到文档的其余部分。a4papera4paper,twoside\documentclass[12pt,a4paper,twoside]{report}adjustwidth

相关内容