Вопрос
Есть ли способ автоматически масштабировать и поместить весь документ на страницу A0? Диссертация, для которой это нужно сделать, доступна в виде кода LaTeX, а также в виде PDF-вывода. Конечно, я знаю, что это можно сделать вручную, но я бы предпочел решение LaTeX.
Небольшой фон
Наш университет ввел новый лимит страниц для магистерских диссертаций. Это не совсем понравилось ни преподавательскому составу, ни студентам. Чтобы немного пошутить, мы решили попробовать разместить целую диссертацию (примерно 200 страниц) на плакате формата А0, повесить его в коридоре и поставить рядом увеличительное стекло с запиской: «Введен новый лимит страниц: максимум 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 высмеивалось, а последующая компоновка объяснялась
Но я бы чувствовал себя виноватым, если бы не попытался сначала ответить на вопрос ОП в его нынешнем виде. Так что это ответ из 2 частей: сначала вопрос ОП; затем развитие моего комментария.
ЧАСТЬ 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 для набора на бумаге формата А0 в четыре колонки, каждая из которых имеет ширину одного листа А4. Для лучшего набора, т. е. меньшего количества символов в строке, вы можете даже увеличить количество колонок.
\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. Хотя вам может потребоваться написать свой собственный макрос макета для него. Это не так уж и сложно.
Кстати: Интересная идея, если выложить изображение, это может выглядеть интересно.