我使用 tikz 环境来创建一个围绕一些文本小部分文本的框(例如稳定器老板突出显示)。使用一些 tikzheight
和depth
函数,我设法将框紧贴到文本大小(见下文)。出于某种原因,我想做同样的事情,tcolorbox
但我无法获得正确的对齐。
有没有办法tcolorbox
(我使用最新版本,撰写本文时为 3.94)将所有框的文本与基线对齐,并将其高度调整为文本高度+深度?
短暂性脑缺血。
\documentclass[a4paper]{article}
\usepackage{tikz}
\usepackage{xltxtra}
\usepackage{tcolorbox}
\usepackage{calc}
\newcommand{\thl}[2][]{%
\begin{tikzpicture}[baseline = (text.base)]%
\node[%
inner sep = 0pt,
text depth = depth("Cap"),
text height = height("Cap"),
fill=yellow,
%text depth={}, text height={},
#1] (text) {#2};
\end{tikzpicture}%
}%
\begin{document}
With \texttt{tikz}:
inlined \thl{e}\thl[fill=red!20]{p}\thl[fill=green!20]{é}\thl[fill=blue!20]{b} text.
With \texttt{tcolorbox}:
\tcbset{tcbox raise base,nobeforeafter, on line, size=minimal}
minimal:
inlined \tcbox[colback=yellow]{e}\tcbox[colback=red!20]{p}\tcbox[colback=green!20]{é}\tcbox[colback=blue!20]{b} text.
\tcbset{on line, size=tight}
tight:
inlined \tcbox[colback=yellow]{e}\tcbox[colback=red!20]{p}\tcbox[colback=green!20]{é}\tcbox[colback=blue!20]{b} text.
\tcbset{on line, size=minimal, height=\fontcharht\font`B+\fontchardp\font`q}
fixed height:
inlined \tcbox[colback=yellow]{e}\tcbox[colback=red!20]{p}\tcbox[colback=green!20]{é}\tcbox[colback=blue!20]{b} text.
\end{document}