在下面的 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}}}