是否可以定义一个函数,将页面大小调整为 mbox 的精确尺寸?例如,我想执行如下操作:
\documentclass{report}
\thispagestyle{empty}
\begin{document}
\mbox{\Huge buffer}
\end{document}
输出为 PDF,其尺寸恰好是单词“buffer”周围的边界框的大小。目前,我正在使用该程序pdfcrop
修剪生成的图像,但这是一种 hack。我想知道是否有办法在 TeX 中原生执行此操作。
答案1
我使用类似的东西:
\newbox\mybox
\setbox\mybox=\hbox{stuff goes here}
\pdfhorigin=0pt
\pdfvorigin=0pt
\pdfpagewidth=\wd\mybox
\pdfpageheight=\ht\mybox
\advance\pdfpageheight by \dp\mybox
\shipout\box\mybox
但它仅适用于 PDFTeX/LuaTeX。
答案2
对于你似乎正在做的事情,也许你还想看看预览包。\mbox 不是必需的,它为您提供了一种在一次运行中制作一系列正确修剪的图像的方法。
答案3
您可以将standalone
类与preview
或crop
选项一起使用。第一个是 v0.x 的默认选项,使用preview
包。第二个是 v1.0 的新选项,也是 v1.x 的默认选项。它将内容装箱并调整页面大小以适合它。这与 Khaled Hosny 的答案类似,但适用于多种风格的 LaTeX:latex
(DVI 模式)pdflatex
、xelatex
和lualatex
。
\documentclass[border=0pt]{standalone}% Add maybe `crop` or `preview` manually
\begin{document}
\mbox{\Huge buffer}
\end{document}
答案4
下面是一个使用 eplain 的版本,我认为这种形式\special
只适用于 XeTeX:
\input eplain
\hoffset=-1in
\voffset=-1in
\hruledefaultheight=0pt
\hruledefaultdepth=0pt
\vruledefaultwidth=0pt
\boxitspace=1pt % amount of whitespace on all sides
\setbox0\boxit{\hbox{This content right here will be the whole page.}}
\special{papersize=\the\wd0,\the\ht0}
\box0
\bye