![使用 Ghostscript](https://linux22.com/image/278750/%E4%BD%BF%E7%94%A8%20Ghostscript.png)
我所要求的可能超出了我的能力范围,但我试图将文档打印在 74 页 A5 纸上,而不是 74 页 A4 纸上。我已设法将纸张尺寸更改为 A5,但它打印在 146 页上,因为字体仍为原始大小!
我不知道如何将所有字体“缩放” 0.5(IE使每个字符的每个实例都变成其原始大小的 50%。我发现一些线索表明添加[scaled=0.5]
到字体包是一种解决方案,但它不适用于我试图更改的文档。将 from 更改\documentclass
为10pt
没有5pt
任何作用(也许不会 - 我一无所知)
标题如下,希望可以全部发布。
我可以遵循简单的指示,但这是我第一次接触这个世界!
\documentclass[10pt,a5paper,twoside]{article}
\usepackage[latin1]{inputenc}
\usepackage[german,english]{babel}
\usepackage[textwidth=11.3cm,textheight=18.0cm,includehead]{geometry}
\usepackage{multicol}
\usepackage{ifthen}
\newboolean{germanorder}
\setboolean{germanorder}{false}
\newboolean{usepdflinks}
\setboolean{usepdflinks}{true}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RO,LE]{\textbf\thepage}
\fancyhead[RE]{\textbf{\nouppercase{\leftmark}}}
\fancyhead[LO]{\textbf{\nouppercase{\rightmark}}}
\renewcommand{\sectionmark}[1]{\markboth{test}{\thesection.\ #1}}
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[R]{\textbf{\thepage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}
\ifthenelse{\boolean{usepdflinks}}
{\usepackage[pdftex,pdfborder={0 0 0}]{hyperref}}
{
\newcommand{\hyperlink}[2]{#2}
\newcommand{\hypertarget}[2]{#2}
}
\newcommand{\comment}[1]{} % Remove comments
\newcommand{\explanation}[1]{} % Remove comments
\newcommand{\cardtext}[2][]{#2}
\newcommand{\apx}[2][]{#2}
\newcommand{\ruling}[2][]{#2}
\newcommand{\notenglish}[1]{#1$^\dagger$}
\newcommand{\changed}[2][]{#2}
\newcommand{\MOOR}{\textsc{MOOR}}
\newcommand{\de}[1]{(\textsl{\foreignlanguage{german}{#1}})}
\newcommand{\numberref}[1]{\textbf{\small #1}}
\newcommand{\cardref}[3]{\hyperlink{#3}{#1 %
\ifthenelse{\boolean{germanorder}}{\de{#2}}{\numberref{#3}}}}
%\newcommand{\card}[5]{\hypertarget{#3}{}%
%\ifthenelse{\boolean{germanorder}}{% German and other languages
%\noindent\textbf{\textsl{#2}}\hfill\numberref{#3}\nopagebreak
%\noindent\textbf{#1}\hfill{\tiny#4}}{% English
%\noindent\textbf{#1}\hfill{\tiny#4\hspace{0.5em}}\numberref{#3}}%
%\nopagebreak
%\noindent#5\vspace{0.3\baselineskip} }
\newcommand{\card}[5]{\hypertarget{#3}{}%
\noindent\parbox[b]{5.24cm}{\noindent\textbf{#1}\\[-1ex]{\tiny#4}}%
\hfill{\hfill\raisebox{4pt}{\textbf{\Large #3}}}%
\nopagebreak
\noindent#5\vspace{0.5\baselineskip} }
\newcommand{\action}[3]{\noindent\hypertarget{#2}{\textbf{#1}}\hfill%
\nopagebreak
\noindent#3\vspace{0.3\baselineskip}}
\newcommand{\actionref}[2]{\hyperlink{#2}{``#1''}}
\newlength{\guessheight}
\settoheight{\guessheight}{I}
\newlength{\guessdepth}
\settodepth{\guessdepth}{g}
\addtolength{\guessheight}{0.6\guessdepth}
\addtolength{\guessdepth}{0.2\guessdepth}
\newlength{\guesswidth}
\settowidth{\guesswidth}{I}
\newcommand{\ecp}[2][]{\makebox[2pt][l]{\rule{\fboxrule}{\guessheight}\rule[\guessheight]{\guesswidth}{\fboxrule}}#2\makebox[2pt][r]{\rule[-\guessdepth]{\guesswidth}{\fboxrule}\rule[-\guessdepth]{\fboxrule}{\guessheight}}}
\newcommand{\english}[1]{%
\ifthenelse{\boolean{germanorder}}{}{\item \textsl{#1}}
}
\newenvironment{explanationlist}{\small\begin{list}{$\Rightarrow$}{\setlength{\topsep}{0pt}\setlength{\itemsep}{0pt}}}{\end{list}}
\newcommand{\sectionline}{\begin{center}\rule{4cm}{0.2mm}\end{center}}
\addtolength{\columnsep}{1mm}
\begin{document}
答案1
也许您可以使用该pdfpages
包来执行此操作。创建一个.tex
包含以下内容的新文件:
\documentclass[a5paper]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{originalfile}
\end{document}
您的原始 A4 文档在哪里originalfile.pdf
?编译此文档pdflatex
,您将获得原始文档的 A5 版本。
(回复评论:)使用环境,filecontents
您可以将上述代码保存在与主文件相同的文件中,并且arara
可以自动执行编译。代码示例:
% arara: pdflatex
% arara: pdflatex: { files: [a5version.tex]}
% arara: clean: { files: [a5version.tex, a5version.aux,a5version.log]}
\documentclass[a4paper]{article}
\usepackage{kantlipsum} % for dummy text
% create the file for a5 version
\usepackage{filecontents}
\begin{filecontents}{a5version.tex}
\documentclass[a5paper]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{originalfile} % insert filename of main file here
\end{document}
\end{filecontents}
\begin{document}
\kant
\end{document}
答案2
一个更简单的解决方案是pgfpages
(部分pgf
包裹)。
您只需使用以下设置,您的文档就会调整为 A5 纸张大小。
\pgfpagesuselayout{resize to}[a5paper]
平均能量损失
\documentclass[a4paper]{article}
\usepackage{pgfpages}
\pgfpagesuselayout{resize to}[a5paper]
\usepackage{blindtext} % just for the example
\begin{document}
\blinddocument % just for the example
\end{document}
输出(A5 格式)
答案3
使用 Ghostscript
这是一个小脚本,它可以将您的 PDF 重新缩放为任何纸张格式。该脚本使用第一个参数作为 -file 的输入.pdf
,第二个参数是所需的纸张格式。它将输出写入同名文件,并将新的纸张格式附加到名称中。
请记住,缩放仅适用于 DIN A� 格式,因为无论尺寸如何,它们的长边/短边比都是√2。
用 运行bash
。
#!/bin/sh
# Usage: First argument is PDF file
# Second argument is paper format (e.g. a4)
gs -q -dNOPAUSE -dBATCH \
-sDEVICE=pdfwrite \
-sPAPERSIZE=$3 \
-dFIXEDMEDIA \
-dPDFFitPage \
-sOutputFile="${1%%.*}-$2.pdf" \
"$1"
echo "Output written to ${1%%.*}-$2.pdf"
exit 0