以下代码来自手册pgf
:
Top align:
\tikz[baseline=(current bounding box.north)]
\draw (0,0) rectangle (1cm,1ex);
我打算将这个位置(当前边界框.北)的基线稍微提高 3pt,因此我尝试yshift
这样做:
Top align:
\tikz[baseline=[yshift=3pt](current bounding box.north)]
\draw (0,0) rectangle (1cm,1ex);
但编译失败。
有人能帮我解答我的问题吗?
梅威瑟:
\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\begin{document}
Top align:
\tikz[baseline=(current bounding box.north)]
\draw (0,0) rectangle (1cm,1ex);
\end{document}
答案1
让我转换并扩展我的评论:
- 使用以下方式定义位置
current bounding box
\documentclass[a4paper]{article}
\usepackage{tikz}
\begin{document}
Top align:
\tikz[baseline={([yshift=1ex] current bounding box.north)}]
\draw (0,0) rectangle (1cm,1ex);
\end{document}
注意:shift
来自某个坐标必须在父级内,其中坐标写为:([yshift=...] <coordinate>)
。如果坐标作为方括号中的选项(tikzpicture
或确定某个\coordinate
)给出,则应将其封装在花括号中,如上面的 MWE 中所做的那样。
- 定义位置而不使用
current bounding box
:
\documentclass[a4paper]{article}
\usepackage{tikz}
\begin{document}
Aligned with a text
\tikz[baseline]
\draw (0,0) rectangle (1cm,1ex);
and displaced for some amount:
\tikz[baseline=2ex]
\draw (0,0) rectangle (1cm,1ex);