pdflatex文档里面裁剪成最大的内容宽度和高度?

pdflatex文档里面裁剪成最大的内容宽度和高度?

是否可以创建一个pdflatex文档

  • 包含多个带有表格的页面(每页一个表格)
  • 并且 pdf 文件所有页面的页面宽度都被裁剪为最大内容的宽度(高度相同)?

我希望我说得足够清楚:例如,第 1 页的表格宽度为 20 厘米,高度为 25 厘米。所有其他页面的表格宽度均为 19 厘米,但第 10 页的表格高度为 26 厘米。因此,我希望整个文档的页面格式为:宽度为 20 厘米,高度为 26 厘米,并且所有表格都应对齐到此页面尺寸的左上角)

答案1

准备一个文件,例如

\documentclass[a4paper]{article}

\usepackage[pass]{geometry}
\pagestyle{empty}

\newsavebox{\tablebox}
\newlength{\maxwidth}
\newlength{\maxheight}

\newenvironment{ftabular}
  {\begin{lrbox}{\tablebox}\begin{tabular}}
  {\end{tabular}\end{lrbox}%
   \ifdim\dimexpr\ht\tablebox+\dp\tablebox\relax>\maxheight
     \global\maxheight=\dimexpr\ht\tablebox+\dp\tablebox\relax
   \fi
   \ifdim\wd\tablebox>\maxwidth
     \global\maxwidth=\wd\tablebox
   \fi}

\begin{document}

\input{tables}

\renewenvironment{ftabular}
  {\noindent\begin{tabular}}
  {\end{tabular}\newpage}

\pdfpageheight=\maxheight
\pdfpagewidth=\maxwidth

\newgeometry{margin=0pt}

\input{tables}
\end{document}

该文件tables.tex将包含您的表格

\begin{ftabular}{lll}
abc & def & ghi
\end{ftabular}

\begin{ftabular}{llp{2cm}}
pippo & pluto & paperino va al mare e fa il bagno dieci volte
\end{ftabular}

这个想法是编译文件两次;第一次我们收集尺寸,第二次我们打印表格。如果您还需要标题,则需要做更多工作。

相关内容