問題
有沒有辦法自動縮放並將整個文件放在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 字體),但允許數字可以使用其他字體。所以我提交了我的報告,其中我的帕拉蒂諾手稿的每一頁都稍微縮小到整頁的圖形大小,並附有標題“圖xx:第xx頁,正如作者希望的那樣”。當然,標題是 Times Roman 的。唯一的其他 Times Roman 是第 1 頁的 1 段介紹,其中 Times-Roman 要求被嘲笑,並解釋了隨後的佈局
但如果我不嘗試先回答OP的問題,我會感到內疚。所以這是一個由兩部分組成的答案:首先是OP的問題;然後是我的評論的闡述。
第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 的情況下執行相同的操作。儘管您可能需要為其編寫自己的佈局巨集。這並不難。
順便說一句:有趣的想法,當發布它的圖像時,可能看起來很有趣。