質問
ドキュメント全体を自動的に拡大縮小して 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 ページ目の 1 段落の序文だけで、Times-Roman の要件は嘲笑され、その後のレイアウトは説明されました。
しかし、まずは OP の質問に現状のまま答えようとしなかったら、罪悪感を感じるでしょう。したがって、これは 2 部構成の回答です。まず 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
)。最初のブロックはページにローマ数字のキャプションを付けるためのもので、2 番目のブロックは図にアラビア数字のキャプションを付けるためのものであるため、コードは 2 回繰り返されているように見えます。
\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 用紙に 4 列でタイプセットするように調整できます。各列の幅は A4 用紙 1 枚分です。より良いタイプセット、つまり 1 行あたりの文字数を減らすには、列の数を増やすこともできます。
\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 を使用せずに同じことを実行できるソリューションがあります。ただし、独自のレイアウト マクロを作成する必要があるかもしれません。それほど難しくはありません。
ところで: 面白いアイデアですね。完成したら画像を投稿してください。面白そうに見えるかもしれません。