在框架框中垂直居中文本或数学公式

在框架框中垂直居中文本或数学公式

我的代码中有以下命令(取自在文本周围创建统一大小的框)手动调整框架框的高度(原因是我经常将几个不同的数学/文本放在一行中,希望它们都是相同的大小):

\newcommand*{\mystrut}{\rule[-.5\baselineskip]{0pt}{1.5\baselineskip}}
\newcommand*{\mybox}[1]{\framebox{\mystrut #1}}

我根据想要的框的大小调整每个 \baselineskip 前面的数字。虽然这最终会让我得到我想要的框的高度,但如果我想让文本在这些框中垂直居中,我必须手动摆弄这两个数字。我怎样才能让文本在故意放大的框架框中自动居中?

例如,在下面的代码中,我是否可以向 \mybox 命令添加一些内容,以便在完成其他所有操作后自动垂直居中文本(使用其他代码计算最大框的高度来找到为 baselineskip 选择的数字)?

\baselineskip=23.76836pt
\newcommand*{\mystrut}{\rule[-.5\baselineskip]{0pt}{1.5\baselineskip}}
\newcommand*{\mybox}[1]{\framebox{\mystrut #1}}
\mybox{$\frac{a^2+b^2}{c^2+d^2}$}\mybox{$\frac{\frac{a}{\sqrt{a^2+b^2}}}{\frac{c}{\sqrt{c^2+d^2}}}$}\mybox{$a=b=c=d=e=f=g$}

输出(每个框中所有数学项下方的空间都小于上方的空间):

在此处输入图片描述

非常感谢。

答案1

有多种方法可以解决此类问题。下面是使用tikz

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}

\begin{tikzpicture}[
  my node style/.style={
    draw,
    outer sep=0pt,
    inner sep=4pt,
    minimum height=2*23.76836pt}]
  \node[my node style] (A) at (0,0) {$\dfrac{a^2+b^2}{c^2+d^2}$};
  \node[my node style] (B) [right=0pt of A] {$\dfrac{\frac{a}{\sqrt{a^2+b^2}}}{\frac{c}{\sqrt{c^2+d^2}}}$};
  \node[my node style] (C) [right=0pt of B] {$a=b=c=d=e=f=g$};
\end{tikzpicture}

\end{document}

在此处输入图片描述

还有一个tcolorbox包:由于我对它不太熟悉,所以我会让其他人将其作为答案发布。

答案2

这里有一种方法可以调整自己的深度和高度\rule以获得美观​​。

\documentclass{article}

\newcommand*{\mystrut}{\rule[-16pt]{0pt}{36pt}}
\newcommand*{\mybox}[1]{\tabular{|l|}\hline \mystrut#1\\\hline \endtabular}

\begin{document}
\mybox{$\frac{a²+b²}{c²+d²}$}%
\mybox{$\frac{\frac{a}{√{a²+b²}}}{\frac{c}{√{c²+d²}}}$}%
\mybox{$a=b=c=d=e=f=g$}
\end{document}

在此处输入图片描述

相关内容