我已经\shortstack
在 TikZ 的某些节点中看到了该命令(例如,接受的答案这里)。
用于什么?我在 TikZ 手册中找不到它的定义。
答案1
\shortstack
不是 的一部分tikz
。它用于将项目堆叠在一起。请注意,MWE 不使用任何包。
句法:
\shortstack[alignment]{line 1 \\ line 2 \\ line 3 etc. }
有效对齐方式如下:
r - right aligned
l - left aligned
c - centered (default)
代码:
\documentclass{article}
\begin{document}
\shortstack{Predefined\\Process}
\hspace{1cm}
\shortstack[r]{Predefined\\Process}
\hspace{1cm}
\shortstack[l]{Predefined\\Process}
\end{document}
答案2
\shortstack
不是一个tikz
特定命令。它是标准 LaTeX 发行版的一部分,定义在latex.ltx
格式如下:
\shortstack[<alignment>]{<stuff>}
以下是原始定义:
\gdef\shortstack{\@ifnextchar[\@shortstack{\@shortstack[c]}}
\gdef\@shortstack[#1]{%
\leavevmode
\vbox\bgroup
\baselineskip-\p@\lineskip 3\p@
\let\mb@l\hss\let\mb@r\hss
\expandafter\let\csname mb@#1\endcsname\relax
\let\\\@stackcr
\@ishortstack}
\gdef\@ishortstack#1{\ialign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\egroup}
它的目的是像 一样将元素堆叠在一起tabular
。但是,它的 较短\baselineskip
,导致元素的垂直堆叠较短。
tabular
下面是一个简单例子,展示了和之间的一些区别\shortstack
:
\documentclass{article}
\begin{document}
\begin{tabular}{ll}
\verb|\shortstack|: & \shortstack{Predefined\\Process} \hspace{1cm}
\shortstack[r]{Predefined\\Process} \hspace{1cm}
\shortstack[l]{Predefined\\Process} \\ \hline
\verb|tabular|: & \begin{tabular}{@{}c@{}}Predefined\\Process\end{tabular} \hspace{1cm}
\begin{tabular}{@{}r@{}}Predefined\\Process\end{tabular} \hspace{1cm}
\begin{tabular}{@{}l@{}}Predefined\\Process\end{tabular}
\end{tabular}
\end{document}
请注意 中减少的基线跳跃\shortstack
。此外,\shortstack
必然具有零宽度水平填充。最后, 的默认对齐方式\shortstack
是沿着b
aseline,而tabular
允许t
op、c
enter(默认)或b
aseline。
答案3
\shortstack
在基础文件中定义latex.ltx
,其目的是在限定的区域内设置多行文本。