从 A5 缩放到 A4:几何包的 mag 选项破坏了输出维度

从 A5 缩放到 A4:几何包的 mag 选项破坏了输出维度

我的论文是用 A5 格式撰写的,这是最终的出版格式,但为了审阅,我需要用 A4 打印。这是一个常见问题,我在这里见过很多次。但是,我有一些特殊问题,我以前找不到任何答案。

不仅在 A4 上打印(字体太大),也不将 A5 内容放在 A4 页面上居中(像这儿,字体调小)是选项。我更喜欢将整个文档内容放大因子,这是字体大小(A5)和(A4 所需)1.324 = 1324/1000 = 1000/755之间的缩放因子。9pt12pt

我找到了一个使用\geometry和参数的解决方案paperlayoutmag给了我我想要的确切构图,但打印机看到的输出纸张尺寸并不正确 - 并且根据我使用“pdflatex”(首选)还是进行编译而出人意料地不同lualatex


我们称这个解决方案为情况1

\geometry{paper=a4paper, layout=a5paper, mag=755,  layouthoffset=7.0135mm, layoutvoffset=9.4651mm}
  • 构图如您所愿
  • \layout显示158.6mm x 224.3mm的是使用 缩小的 A4 尺寸1.324,不应该缩小,但我实际上并不关心
  • 如果使用 lualatex 编译,PDF 属性中的尺寸也会158.6mm x 224.3mm
  • 如果使用 pdflatex 进行编译,则 PDF 属性中的尺寸为119.7mm x 169.3mm,即使用 缩小的 A5 尺寸1.324这里我需要修复,因为它应该是210mm x 297mm

我在手册中读到了关于truedimen选项的信息geometry,所以我们称之为案例 2

\geometry{paper=a4paper, layout=a5paper, mag=1324, layouthoffset=7.0135mm, layoutvoffset=9.4651mm, truedimen} 
  • 我需要的倒数mag,这似乎更合乎逻辑
  • 的输出\layout158.6mm x 224.3mm,因此仍然是错误的(不重要)
  • 如果使用 lualatex 编译,PDF 属性中的尺寸也是如此158.6mm x 224.3mm,因此它们仍然同意\layout并且仍然是错误的。
  • 如果使用 pdflatex 编译,PDF 属性中的尺寸是210mm x 297mm,是的,这是正确的。
  • 但是。内容大小是正确的,但只有偶数页的边距完全乱了。我怎样才能解决这个问题?

我还读到hyperref应该在之前加载geometry,但这肯定会造成更多问题。设置pdftexluatex选项geometry似乎没有任何效果。

概括:我想要一个 pdflatex 解决方案,具有正确的组成和 pdf 属性中正确的 A4 纸张尺寸,这样我就不会遇到任何与印刷店有关的麻烦,如果一切都正确的话,那就太好了。

我很高兴你能帮助我,提前谢谢你。

完整 MWE

\PassOptionsToPackage{usegeometry, paper=a5, pagesize, BCOR = 12mm, DIV = 16}{typearea}
\documentclass[fontsize=9pt, twoside=true]{scrbook}

\usepackage{etoolbox}
\usepackage{blindtext}

% Translate to A4 - Scale content according to fontsize
% 9pt -> 12pt => Factor 1.324142 => mag = 755 => layoutvoffset = (a4-a5*Faktor) / 2 = 9.4651mm
%                                             => layouthoffset = (a4-a5*Faktor) / 2 = 7.0135mm
\usepackage{geometry}
\geometry{paper=a4paper, layout=a5paper, mag=755,  layouthoffset=7.0135mm, layoutvoffset=9.4651mm}            % Case 1        
%\geometry{paper=a4paper, layout=a5paper, mag=1324, layouthoffset=7.0135mm, layoutvoffset=9.4651mm, truedimen} % Case 2

\usepackage{layout}
\makeatletter
\renewcommand*{\lay@value}[2]{\strip@pt\dimexpr0.351459\dimexpr\csname#2\endcsname\relax\relax mm}
\makeatother

\AtEndPreamble{\usepackage{hyperref}}

\begin{document}

\layout
\blindmathpaper

\end{document}

答案1

您可以尝试将其放大 1.4142 倍,然后使用该包crop

\mag=1414a 对应的尺寸比率为A4/A5 =2(或者如果您愿意,可以使用您自己的因子 = 1324)

A5 格式(原来的)

a5

A4 格式 (A5 文件放大并裁剪)

a4xx

这是 A4 的代码

% !TeX TS-program = pdflatex

\mag=1414 % added <<<<<

\PassOptionsToPackage{usegeometry, paper=a5, pagesize, BCOR = 12mm, DIV = 16}{typearea}
\documentclass[fontsize=9pt, twoside=true]{scrbook}

\usepackage{etoolbox}
\usepackage{blindtext}  

\usepackage{layout}

\makeatletter
\renewcommand*{\lay@value}[2]{\strip@pt\dimexpr0.351459\dimexpr\csname#2\endcsname\relax\relax mm}
\makeatother

\usepackage[cross, a4,center,noinfo,horigin=-1in, vorigin=-1in]{crop} % <<<<<<<<< added

%   \usepackage{geometry}
%   \geometry{paper=a4paper, layout=a4paper,  layouthoffset=7.0135mm, layoutvoffset=9.4651mm}            % Case 1 

%\AtEndPreamble{\usepackage{hyperref}}  

\usepackage{hyperref}

\begin{document}

\layout
\blindmathpaper

\end{document

使用包装pgfpages和插入可以获得类似的结果

\pgfpagesuselayout{resize to}[a4paper]

\begin{document}

不相关的:

通过使用\AtEndPreamble{\usepackage{hyperref}}

你得到(日志文件)

Class scrbook Warning: seems someone has broken package `auxhook'.
(scrbook)              Usually this happens, if `auxhook' is loaded or used
(scrbook)              implicitly or explicitly by patching \document
(scrbook)              or via etoolbox command \AtEndPreamble.
(scrbook)              Trying an emergency workaround.
(scrbook)              You can avoid this warning adding:
(scrbook)                \usepackage{auxhook}
(scrbook)              before \begin{document} on input line 23.

为什么不是就\usepackage{hyperref}在之前\begin{document}

答案2

如果仅需打印 A4 文档(并且不需要链接),则可以使用包pdfpages来缩放原始文档:

\documentclass{scrbook}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-,noautoscale,scale=1.324142]{a5document.pdf}
\end{document}

答案3

使用 pdflatex 您只需在 \begin{document} 之后设置 pdf 页面大小(然后所有其他在这里乱搞的软件包将不再干扰。由于 pdflatex 显然在这里考虑了 mag,因此您需要将页面设置得比计划的更小。

luatex mag 不受支持,如 luatex 文档中所述:

放大(\mag)仅在 dvi 输出模式下受支持。

\PassOptionsToPackage{usegeometry, paper=a5, pagesize, BCOR = 12mm, DIV = 16}{typearea}
\documentclass[fontsize=9pt, twoside=true]{scrbook}

\usepackage{etoolbox}
\usepackage{blindtext}

% Translate to A4 - Scale content according to fontsize
% 9pt -> 12pt => Factor 1.324142 => mag = 755 => layoutvoffset = (a4-a5*Faktor) / 2 = 9.4651mm
%                                             => layouthoffset = (a4-a5*Faktor) / 2 = 7.0135mm
\usepackage{geometry}

\geometry{paper=a4paper,
layout=a5paper, mag=1324,  layouthoffset=7.0135mm, layoutvoffset=9.4651mm}            

\usepackage{layout}
\makeatletter
\renewcommand*{\lay@value}[2]{\strip@pt\dimexpr0.351459\dimexpr\csname#2\endcsname\relax\relax mm}
\makeatother

\usepackage{hyperref}

\usepackage{xfp}
\begin{document} 
\pdfpagewidth=\fpeval{210*755/1000}mm \pdfpageheight=\fpeval{297*755/1000}mm

\layout
\blindmathpaper

\end{document}

相关内容