TikZ 在文本中的垂直对齐

TikZ 在文本中的垂直对齐

TikZ我文中提到了一些,即:

\documentclass[]{standalone}
  \usepackage{tikz}
  \begin{document}
    Some text (\tikz{\node[scale=0.5,solid,draw,thick,blue,rectangle,fill=white] {A};}), and some more
  \end{document}

这会产生预期的蓝色矩形,但它没有与我想要的括号底部对齐。

有没有一种简单的方法可以垂直移动一行中的对象甚至文本,同时保留其余部分?或者有没有什么变通方法TikZ可以做到这一点?

答案1

这有点像pgfmanual。这种情况下最好为节点指定text heighttext depth。例如如下:

示例输出

\documentclass{article}

\usepackage{tikz}

\begin{document}
\tikzset{every node/.style={anchor=base,scale=0.5,draw,thick,blue,
text height=1.7ex,text depth=0.3ex, minimum width=1em}}

Some text 
(\tikz[baseline]{\node {a};}), 
(\tikz[baseline]{\node {d};}) 

More demonstration
(\tikz[baseline]{\node {a};}\tikz[baseline]{\node {d};}%
\hbox to 0pt{\hss\tikz{\draw[very thin,red] (0,0) -- (4cm,0);}})  

\end{document}

我已经为节点指定了,因此这些节点中文本的基线位于 x 轴上。然后只需将 plain选项传递给垂直对齐anchor=base即可。baseline\tikz

一般来说,你可以设置baseline一些垂直尺寸来移动材料

示例输出

\documentclass{article}

\usepackage{tikz}

\begin{document}

\tikzset{every node/.style={anchor=base,draw,thick,blue,
text height=1.7ex,text depth=0.3ex, minimum width=1em,scale=0.5}}

Some text 
\tikz[baseline]{\node {a};}
\tikz[baseline=0.1ex]{\node {a};}
\tikz[baseline=0.3ex]{\node {a};}
\tikz[baseline=0.7ex]{\node {a};}
\tikz[baseline=1ex]{\node {a};}
\tikz[baseline=2ex]{\node {a};}
\tikz[baseline=4ex]{\node {a};}
\tikz[baseline=-0.3ex]{\node {a};}
\tikz[baseline=-0.5ex]{\node {a};}
\tikz[baseline=-1ex]{\node {a};}
\tikz[baseline=-2.5ex]{\node {a};}
\tikz[baseline=-4ex]{\node {a};}
for a dance.

\end{document}

或使用如链接问题中的节点。

ex我已经用和单位指定了尺寸em,它们反映了所用字体的大小,而不是诸如的绝对单位cm

相关内容