我正在尝试对齐文本,该文本写在里面的方程式后面tcolorbox
。请参阅下面的代码片段-
\documentclass{standalone}
\usepackage{tcolorbox}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (fusion){
\begin{tcolorbox}[title=Data Fusion, hbox]
$
c_i = \mathbf{T}_i * p_i
$
where $c_i$ is center point at $i$
\end{tcolorbox}
};
\end{tikzpicture}
\end{document}
生成的 PDF 如下所示:
我想在下一行给出这个等式的解释。
PS:此图包含许多 tikz 节点,因此我使用tcolorbox
内部tikzpicture
。但是,在这个问题中,显示整个代码并不相关。
答案1
我认为,你不能在 中有换行符hbox
。如果删除,hbox
你可以(例如在数学后添加段落分隔符,或使用显示数学),但当然,框的宽度会变成\textwidth
,而不是框中文本的宽度。你可以hbox
手动删除并设置宽度,或者在框中使用 之类的东西tabular
(或像 Steven 的回答中那样堆叠)hbox
。
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (fusion){
\begin{tcolorbox}[title=Data Fusion,hbox]
\begin{tabular}{l}
$ c_i = \mathbf{T}_i * p_i$ \\
where $c_i$ is center point at $i$
\end{tabular}
\end{tcolorbox}
};
\end{tikzpicture}
\begin{tikzpicture}
\node (fusion){
\begin{tcolorbox}[title=Data Fusion, width=6cm]
$
c_i = \mathbf{T}_i * p_i
$
where $c_i$ is center point at $i$
\end{tcolorbox}
};
\end{tikzpicture}
\begin{tikzpicture}
\node (fusion){
\begin{tcolorbox}[title=Data Fusion]
\[
c_i = \mathbf{T}_i * p_i
\]
where $c_i$ is center point at $i$
\end{tcolorbox}
};
\end{tikzpicture}
\end{document}
答案2
我相信有一种更简单的方法......但由于您已经\hbox
为指定了tcolorbox
,因此必须采用与正常换行不同的方式来实现多行输出。
注意:对齐由 eft 参数控制l
。
\documentclass{standalone}
\usepackage{tcolorbox,stackengine}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (fusion){
\begin{tcolorbox}[title=Data Fusion, hbox]
\stackengine{5pt}{$
c_i = \mathbf{T}_i * p_i
$}
{where $c_i$ is center point at $i$}
{U}{l}{F}{F}{S}
\end{tcolorbox}
};
\end{tikzpicture}
\end{document}
使用稍微不同的语法就可以达到相同的结果:
\renewcommand\stackalignment{l}
\stackunder[5pt]{$
c_i = \mathbf{T}_i * p_i
$}
{where $c_i$ is center point at $i$}