tcolorbox 水平对齐文本和框

tcolorbox 水平对齐文本和框

在下面的 MWE 中,最后一个框(右侧)与其他框相比略微向下移动。

如何才能很好地对齐框、文本基线和加号?

以下是 MWE:

\documentclass{article}
\usepackage{tcolorbox}
\begin{document}
\tcbset{nobeforeafter,height=2cm,valign=bottom,box align=base}
\Large
\tcbox{a} + \tcbox{b} + \tcbox{x}=\tcbox{y}
\end{document}

答案1

这是因为 y 具有正深度(如 g、j 等)。一种解决方案是将字母提升其深度。

在这里我定义了一个\mytcbox可以完成这个任务的:

\newcommand{\mytcbox}[1]{%
\newbox\mytcBox%
\savebox{\mytcBox}{#1}%
\tcbox{\raisebox{\dp\mytcBox}{\usebox{\mytcBox}}}%
}

以下是一个例子:

\documentclass{article}
\usepackage{tcolorbox}
\begin{document}
\tcbset{nobeforeafter,height=2cm,valign=bottom,box align=base}
\newcommand{\mytcbox}[1]{%
\newbox\mytcBox%
\savebox{\mytcBox}{#1}%
\tcbox{\raisebox{\dp\mytcBox}{\usebox{\mytcBox}}}%
}
\Large
\tcbox{a} + \tcbox{b} + \mytcbox{x} = \mytcbox{y} + \mytcbox{g} - \tcbox{g}
\end{document}

在此处输入图片描述

请注意,对于深度为零的字母,输出是相同的,而对于其余的字母,字母会根据其深度升高。

答案2

这段代码似乎可以工作,但效果并不好。它使用基线对齐框和文本。其中可能也存在冗余。

\tcbset{on line,height=1cm,valign=bottom,box align=base,baseline=3mm}
\newcommand{\mybox}[1]{\tcbox{\raisebox{-2cm}[2cm][2cm]{#1}}}

相关内容