我不能使用 `\width` 作为 `\parbox` 或 `minipage` 的参数

我不能使用 `\width` 作为 `\parbox` 或 `minipage` 的参数

我不能用或\width来作为 的论据。\parboxminipage

梅威瑟:

\documentclass{article}

\begin{document}
Bla \begin{minipage}{\width}{test}\end{minipage}
\end{document}

据我所知,我读过的所有内容都表明这应该可行(例如维基百科标签 wiki)。

为什么这不起作用?

答案1

\width是一个仅在具有自然宽度的框中本地定义的命令,因此

\makebox[2\width]{test}

使盒子的宽度是正常情况下的两倍。

\parbox然而,或的内容 minipage从这个意义上来说没有自然宽度,它被设置为垂直模式,因此分成必须提前指定宽度的行。

答案2

变量小页面:

\documentclass{article}
\usepackage{varwidth}
\begin{document}
    Bla \fbox{\begin{varwidth}{\linewidth}% maximal of linewidth
        foo\\bar\\baz
    \end{varwidth}}
\end{document}

在此处输入图片描述

答案3

也许这个eqparbox包会让你感兴趣:它定义了命令\eqparbox、、、长度和环境,它们使用一个标签,以便所有共享\eqmakebox相同标签的框都具有带有此标签的最宽框的宽度。这是一个演示:\eqframebox\eqboxwidtheqminipage

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{eqparbox}

\begin{document}

        \fbox{\eqparbox{boxa}{Blahblahblah, blahblahblah, blahblahblah…}}
        \bigskip

        \eqframebox[boxa]{Blahblahblahblah}
        \bigskip

        \eqframebox[boxa]{Blahblahblah, blahblahblah, blahblahblah…}
        \bigskip

        \fbox{\parbox{\eqboxwidth{boxa}}{\lipsum[2]}}

\end{document} 

在此处输入图片描述

相关内容