yshift/xshift 与(当前边界框.北)一起使用

yshift/xshift 与(当前边界框.北)一起使用

以下代码来自手册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);

在此处输入图片描述

相关内容