```tex \documentclass{book} \usepackage{amsmath} \usepackage{txfonts} \usepackage{tikz} \begin{document} \begin{tikzpicture} \draw (0,0) -- (4,0) -- (5,2) --(1,2)-- cycle; \node (j) at (0.5,0.3) {$\alpha$}; \draw[color=red] (1,1) --(2.5,1)node[above]{$b$}-- (4,1); \draw[color=blue] (1,2.5) --(2.5,2.5)node[above]{$a$}-- (4,2.5); \end{tikzpicture} $\left.\begin{array}{l} a//b\\ b\subset \alpha \\ a\nsubset \alpha \end{array}\right\}\Rightarrow a//\alpha $ \end{document} ```

2 回答2

0
对 `tikz` 的 `baseline` 选项的一个补充: 1. 该选项除了接受距离,如 `baseline=25pt`,还能接受坐标,包括形如 `(1, 1)` 的具体坐标,和形如 `(a.center)` 的 node anchor。 1. 在 node 中,有一个默认定义的、特殊的 node `current bounding box`,它是一个长方形,默认大小为当前 tikz 图形的大小。 所以,可以尝试使用 `baseline=(current bounding box.center)`,来避免使用具体距离,如 `25pt`。 在你的例子中,那个 tikz 图形的视觉重心比几何重心低一些,这样直接使用 `baseline=(current bounding box.center)` 会显得图形偏高。可以在 tikz 图形中增加一个用于指示基线高度的 node,或者直接指定坐标,让 tikz 图形在视觉重心对齐。 ```tex \documentclass{book} \usepackage{amsmath} \usepackage{newtxmath} \usepackage{tikz} \newcommand\test[1]{ \noindent \texttt{#1}\par X\begin{tikzpicture}[#1] \draw(0,0) -- (4,0) -- (5,2) --(1,2)-- cycle; \node (j) at (0.5,0.3) {$\alpha$}; \draw[color=red] (1,1) --(2.5,1)node[above]{$b$}-- (4,1) node (base) {}; \draw[color=blue] (1,2.5) --(2.5,2.5)node[above]{$a$}-- (4,2.5); \end{tikzpicture} X \( \left. \begin{array}{l} a//b\\ b\subset \alpha \\ a\nsubset \alpha \end{array} \right\} \Rightarrow a // \alpha \) X\par\bigskip } \begin{document} \test{baseline=(current bounding box.center)} \test{baseline=(base)} \test{baseline={(0, 1)}} \end{document} ``` ![](https://pics.latexstudio.net/data/images/202001/954df2c39138e30.png) 更一般的方案还包括,使用 `\raisebox`、使用一行两列的表格等。
0
主要是依赖于 `baseline` 来进行调整,参考 [https://tex.stackexchange.com/questions/57019/inline-tikz-vertical-centering](https://tex.stackexchange.com/questions/57019/inline-tikz-vertical-centering) ```tex \documentclass{book} \usepackage{amsmath} \usepackage{txfonts} \usepackage{tikz} \begin{document} \begin{tikzpicture}[baseline=25pt] \draw(0,0) -- (4,0) -- (5,2) --(1,2)-- cycle; \node (j) at (0.5,0.3) {$\alpha$}; \draw[color=red] (1,1) --(2.5,1)node[above]{$b$}-- (4,1); \draw[color=blue] (1,2.5) --(2.5,2.5)node[above]{$a$}-- (4,2.5); \end{tikzpicture} \( \left. \begin{array}{l} a//b\\ b\subset \alpha \\ a\nsubset \alpha \end{array} \right\} \Rightarrow a // \alpha \) \end{document} ```

作者追问:2020-01-15 22:46

感谢热心回答!

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。