(框架)框太长/文本宽度不合适

(框架)框太长/文本宽度不合适

我想创建一个框/框架(在数学模式中),其内容水平和垂直居中,以便我可以调整框的高度,并且框的宽度自动(!)是上下文的宽度。

以下 MWE 几乎满足了我的要求:

\documentclass[12pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}

$\fbox{\parbox[c][4pt][c]{\textwidth}{a first try}}$

$\framebox[\width]{\parbox[c][2pt][c]{\textwidth}{another one}}$

\end{document}

问题如下:

  • 这两个框的长度都不如其内容的长度,即“第一次尝试”和“另一个尝试”的长度,因此\textwidth似乎效果不佳。当然,我可以手动尝试将宽度调整到正确的大小,但我将经常创建框,因此每次都调整宽度以使其正确是不可行的。

  • 垂直居中效果不太好,因为两个框中的文本都移到了顶部

我愿意接受不同的方法,只要它们能满足我的要求,比如定义新的命令(例如使用 tikz),它们可以满足我的要求,只要我不需要输入太多内容就可以使用它们,因为正如我所说,我需要创建很多框。
顺便说一句,使用框命令几乎可以实现这一点大量的打字 - 如果只有一个命令就足够了,我会很高兴。

编辑

框的高度通常像这样:在此处输入图片描述而我希望它像这样:在此处输入图片描述,即框应该刚好垂直覆盖其内容。在某个点之后,减少 \fbox 中的高度参数不会产生任何效果(第一个框的高度为 8pt,减少它不会产生任何效果;为了获得第二张图片,我在某些编辑程序中编辑了第一张图片)

答案1

你们两个方向的线路都已满员。

水平线包含

  • 1 段缩进
  • 1 厚度规则\fboxrule
  • 填充空间\fboxsep
  • 1箱宽度\textwidth
  • 填充空间\fboxsep
  • 1 厚度规则\fboxrule

这不仅仅是\textwidth:-) 我在下面进行了调整。我留在了$虽然他们什么都不做,但框的内容总是以文本模式启动。

垂直方向上,一行 10pt 的文本被强制放入垂直尺寸为 4pt 的框中。

要使用您根本不想要的自然宽度\parbox,只需使用\fbox

在此处输入图片描述

\documentclass[12pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}

\noindent$\fbox{\parbox[c][15pt][c]{\dimexpr\textwidth-2\fboxsep-2\fboxrule}%
       {a first try}}$


\noindent$\fbox{\rule[-20pt]{0pt}{40pt}a first try}$



\end{document}

答案2

你可以尝试这个varwidth包,像这样:

\documentclass[12pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{varwidth}
\begin{document}

$\framebox{\begin{varwidth}{1in}a first try\end{varwidth}}$

$\framebox{\begin{varwidth}{1in}another one\end{varwidth}}$

\end{document}

结果:
在此处输入图片描述

相关内容