显示任意对象的边界框

显示任意对象的边界框

这看起来似乎是一个简单的问题,但我似乎无法在所有有关绘制盒子的问题中找到答案。

我希望能够绘制一个边界,不是框架,而是边界框。一个边界框围绕任何对象,没有多余的尺寸:迷你页面、段落、tikz 图片、图形、表格等等。

为了说明页面上某个东西有多大,我想将其封装在一个框中。这意味着将边界框添加到页面必须不改变任何页面布局。

我当然希望这些盒子很丑,它们唯一的用途就是为了起草需要测量距离,类似于showframe的选项\geometry

如果我对 TeX 的理解正确,那么页面上绘制的所有内容都是一个框。有没有办法简单地绘制这个框?

编辑 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

我添加了一个最小工作示例,描述了迄今为止(下午 1:53 时)建议中存在的问题。

\documentclass[fontsize=12pt,twoside=false,]{scrbook}
\usepackage{babel}
\usepackage{listings}
\usepackage{geometry}
\usepackage{parskip}

\usepackage{lipsum} % Just for the MWE


\begin{document}
%Phelype Oleiniks Suggestion
\fboxsep=0pt \fboxrule=1sp

%This doesnt work
\fbox{\lipsum[1]}

%This doesnt work either
\fbox{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum
ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu
libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue
eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada
fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla
et lectus vestibulum urna fringilla ultrices.  Phasellus eu tellus sit amet tortor
gravida placerat.  Integer sapien est, iaculis in, pretium quis, viverra ac, nunc.
Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla,
malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla. Donec
varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, sagittis quis,
diam. Duis eget orci sit amet orci dignissim rutru}

%Putting it inside a minipage works for unknown reasons.
\fbox{\begin{minipage}[t]{\linewidth}%
    \lipsum[1]%
\end{minipage}}

%demonstration of poor baseline with \frame{}
Oh how \fbox{Frustrating!}!

Oh how \frame{Frustrating!}!


%this even breaks the compiler
% \fbox{\begin{lstlisting}
%     Here is some code

%     More code = 4;
% \end{lstlisting}}

\end{document}

答案1

\frame{...}在其内容周围绘制一个框架,没有额外的空间:

\documentclass{article}

\begin{document}
\sbox{0}{Hello!}\the\wd0, \the\ht0

\sbox{0}{\frame{Hello!}}\the\wd0, \the\ht0
\end{document}

相关内容