![将 tikz 图片中的第一行与周围文本对齐](https://linux22.com/image/476670/%E5%B0%86%20tikz%20%E5%9B%BE%E7%89%87%E4%B8%AD%E7%9A%84%E7%AC%AC%E4%B8%80%E8%A1%8C%E4%B8%8E%E5%91%A8%E5%9B%B4%E6%96%87%E6%9C%AC%E5%AF%B9%E9%BD%90.png)
我想将 tikzpicture 第一行的基线与周围文本的基线对齐,以获得类似的效果
Let A → B be a function from A to B
a → f(a)
但目前,tikzpicture 垂直居中。我的代码是
Let
\begin{tikzpicture}[baseline=-2.6pt,description/.style={fill=white,inner sep=2pt}]
\matrix (m) [matrix of math nodes, row sep=0em, column sep=2em, text height=1.75ex, text depth=.25ex, column 2/.style={anchor=base west}]
{
A & B \\
a & f(a) \\
};
\path[->]
(m-1-1) edge node[above] {$f$} (m-1-2);
\path[|->]
(m-2-1) edge (m-2-2);
\end{tikzpicture}
be a function from A to B.
答案1
你可以得到你想要的aligned
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Let
$\!\begin{aligned}[t]
A &\overset{f}{\longrightarrow} B\\
a &\longmapsto f(a)\end{aligned}$
be a function from $A$ to $B$.
\end{document}
但最好不要将这么大的对象放在内联中。我更喜欢
Let $f\colon A\to B$, $a\mapsto f(a)$, be a function from $A$ to $B$.
在不同的行上设置任务不会添加任何信息并且会破坏间距。
如果你坚持使用 TikZ 来做,那么方法如下:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
Let
\begin{tikzpicture}[
baseline=(m-1-1.base),
description/.style={fill=white,inner sep=2pt}
]
\matrix (m) [
matrix of math nodes,
row sep=0em,
column sep=2em,
text height=1.75ex,
text depth=.25ex,
column 2/.style={anchor=base west}]
{
A & B \\
a & f(a) \\
};
\path[->] (m-1-1) edge node[above] {$\scriptstyle f$} (m-1-2);
\path[|->] (m-2-1) edge (m-2-2);
\end{tikzpicture}
be a function from $A$ to $B$.
\end{document}
答案2
我们,普通 TeX 的用户,不需要tikz
这样的例子:
Let
\vtop{\halign{$\hfil#{}$&$#\hfil$\cr
A \buildrel f\over\longrightarrow& B\cr
a \longmapsto& f(a)\cr}}
be a function from $A$ to $B$.
\bye