问题
有没有办法自动缩放并将整个文档放在 A0 页面上?要执行此操作的论文以 LaTeX 代码和 PDF 输出形式提供。当然我知道可以手动执行此操作,但我更喜欢 LaTeX 解决方案。
小背景
我们大学对硕士论文实行了新的页数限制。教职员工和学生都不太喜欢这个规定。为了开个小玩笑,我们决定尝试将整篇论文(约 200 页)排在 A0 海报上,贴在走廊上,旁边放了一个放大镜,上面写着:“实行新的页数限制:所有即将发表的论文最多 1 页!”
最终结果
正如你们中的一些人所要求的那样:下面你可以看到最终结果的图片。(我“专业地删除”了一些敏感信息。)
我们在我的期末演讲中展示了这张海报,每个人都非常喜欢它!现在,它就在我的办公室旁边展示,偶尔还是会吸引一些人的注意。
答案1
您可以使用pdfpages
。在下面的例子中,test2.pdf
有 178 页,并且 ceil(sqrt(178)) = 14。
该选项的目的delta
实际上是在每页之间添加额外的空白。通过将其设置为负值,我猜效果是每页重叠一点。因此它实际上并没有裁剪任何东西,但可以得到相同的效果——更少的空白。需要反复试验才能找到合适的值,这将取决于原始 PDF 的边距。
\documentclass{article}
\usepackage[a0paper,margin=0cm]{geometry}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-,nup=14x14,delta=-2cm -3cm]{test2.pdf}
\end{document}
答案2
根据评论部分的要求,我被敦促分享我的评论的具体内容:
我在我们组织中也遇到过类似的情况,有一天他们坚持要求每份报告都必须使用 Times-Roman 字体(不是我心爱的 Palatino),但允许图表使用其他字体。所以我提交了我的报告,其中 Palatino 手稿的每一页都略微缩小到整页图表大小,标题为“图 xx:第 xx 页,作者希望它出现”。标题当然是 Times Roman。唯一的另一个 Times Roman 是第 1 页的一段介绍,其中 Times-Roman 的要求受到嘲笑,随后的布局得到了解释
但如果我不先尝试回答原帖者的问题,我会感到内疚。所以这是一个由两部分组成的答案:首先是原帖者的问题;然后是我的评论的详细说明。
第1部分
虽然它需要相当多的调整,因为它不接受浮点数,但是使文本适合 Latex 中的特定空间可以在这方面进行调整:
\documentclass{article}
\usepackage{scalerel}
\usepackage{caption}
\usepackage[a0paper,margin=0.5cm]{geometry}
\usepackage{fp}
\usepackage{lipsum}
\usepackage{stackengine}
\newcount\boxheight
\newcount\boxwidth
\newlength\constrainedwidth
\newsavebox\testbox
\newlength\currentwidth
\newcommand\aspect[1]{%
\boxheight=\ht#1\relax%
\boxwidth=\wd#1\relax%
\FPdiv\testaspect{\the\boxheight}{\the\boxwidth}%
%\testaspect\\% COMMENT THIS LINE TO REMOVE ASPECT-RATIO PRINTS
}
% TARGET-HEIGHT, TARGET-WIDTH, CONTENT, GUESS>NATURAL-WIDTH, dWIDTH
\newcommand\constraintext[5]{%
\def\svfboxsep{\the\fboxsep}%
\setlength\fboxsep{0pt}%
\setlength\constrainedwidth{#2}%
\sbox\testbox{\rule{#2}{#1}}%
%TARGET ASPECT RATIO\\% COMMENT THIS LINE TO REMOVE COMMENT
%V\\% COMMENT THIS LINE TO REMOVE COMMENT
\aspect{\testbox}%
\edef\aspectratio{\testaspect}%
\constrainsize{#1}{\aspectratio}{#3}{#4}{#5}%
\setlength\fboxsep{\svfboxsep}%
}
\newcommand\constrainsize[5]{%
\sbox{\testbox}{\fbox{\begin{minipage}[b]{#4}{#3}\end{minipage}}}%
\aspect{\testbox}%
\FPiflt{\testaspect}{#2}%
\setlength{\currentwidth}{#4}%
\addtolength{\currentwidth}{-#5}%
\constrainsize{#1}{#2}{#3}{\currentwidth}{#5}%
\else
\setlength\constrainedwidth{#1}%
\FPdiv\result{1.0}{#2}%
%RESET ANY OTHER COUNTERS, TO AVOID ITERATION CREEP
\setcounter{section}{0}%
\setcounter{figure}{0}%
% CHANGE \framebox TO \makebox TO REMOVE FRAME
\makebox[\result\constrainedwidth]{\hfill%
\scaleto{\begin{minipage}[b]{\currentwidth}{#3}\end{minipage}}{#1}%
\hfill%
}%
\fi%
}
\parindent 0in
\begin{document}
\centering\constraintext{46in}{32in}{%
\section{Test Section}
\lipsum[1-10]
\section{The Next Section}
\lipsum[11-17]
{\centering\par\rule{2in}{2in}\captionof{figure}{My caption}\par}
\lipsum[1-25]
{\centering\par\rule{3in}{1in}\captionof{figure}{My caption}\par}
\lipsum[1-15]
\section {Conclusions}
\lipsum[16-20]
}{60in}{.2in}
\end{document}
第2部分
无需列出整个文档,完成这部分任务所需的代码很简单。我在 Palatino 中创建了我想要的文档,让 Adobe 将其每一页拆分成自己的文件,并命名为f2_1.pdf
、f2_2.pdf
等。以下代码抓取正确的页面并用图形包装器包裹它们(使用我的boxhandler
包的\bxfigure
)。代码似乎重复了两次,因为第一个块用于用罗马数字为页面添加字幕,第二个块用于用阿拉伯数字为图形添加字幕。
\section{A Meta-Report in Times-Roman Font}
This report is composed, by bureaucratic decree, in 12-point Times-Roman
font. The author has been informed that Palatino font, despite its
increased legibility, does not possess ``curly'' quotes and, therefore,
``is just too different in appearance from the standard font'' that ARL
employs. Efforts to obtain a local variance to this standard, though
granted regularly in the past to a number of authors, have been
presently denied to this author
[文本已删除]
\newcounter{pnum}\newcounter{fnum}\newcounter{countindex}
\setcounter{pnum}{\thefigure}\addtocounter{pnum}{3}
\setcounter{fnum}{\thefigure}\addtocounter{fnum}{5}
\setcounter{countindex}{0}
\def\blahblah{, as the author would have liked it to appear, in Palatino font}
\whiledo{\value{countindex} < 2}{
\bxfigure[h] {Page \roman{pnum}\blahblah}
{\fbox{\includegraphics[scale=0.89,trim=47 36 46 60]{f2_\arabic{fnum}}}}
\clearpage
\addtocounter{pnum}{1}
\addtocounter{fnum}{1}
\addtocounter{countindex}{1}
}
\addtocounter{pnum}{-4}
\setcounter{countindex}{0}
\whiledo{\value{countindex} < 40}{
\bxfigure[h] {Page \arabic{pnum}\blahblah}
{\fbox{\includegraphics[scale=0.89,trim=48 36 46 60]{f2_\arabic{fnum}}}}
\clearpage
\addtocounter{pnum}{1}
\addtocounter{fnum}{1}
\addtocounter{countindex}{1}
}
不用说,虽然编辑觉得很有趣,但是未经修改就不会被接受出版。
答案3
您可以调整论文的 LaTeX 源代码,将其排版在 A0 纸上,分为四栏,每栏的宽度相当于一张 A4 纸。为了排版效果更好,即每行的字符数更少,您甚至可以增加栏数。
\documentclass{article}
\usepackage[a0paper, margin = 2.5cm]{geometry}
\usepackage[english]{babel}
\usepackage{microtype}
\usepackage{multicol}
\setlength{\columnsep}{1.5cm}
\usepackage[math]{blindtext}
\title{I Like Big Sheets of Paper}
\author{Zw\"ahnia}
\begin{document}
\maketitle
\begin{multicols}{4}
\tableofcontents
\Blinddocument
\Blinddocument
\end{multicols}
\end{document}
答案4
除了 Torbjørns 的解决方案之外,还有一个pgfpages
解决方案应该能够在不使用外部 PDF 的情况下实现相同的功能。不过您可能需要为其编写自己的布局宏。这并不难。
顺便说一句:有趣的想法,发布完图片后可能会看起来很有趣。