如何以编程方式对齐所有使用图案的形状的 TikZ 图案?

如何以编程方式对齐所有使用图案的形状的 TikZ 图案?

非常类似于纠正 TikZ 图案偏移但我不知道如何以编程方式做到这一点。

具体来说,我有一些节点想要在文本、公式、图形等中任意使用,这些节点是有图案的,并且我希望它们看起来都一样。

与此 MWE 类似的内容:

\documentclass[a5paper]{article}

\usepackage{lipsum}
\usepackage{pgf}
\usepackage{tikz}
\usepackage{zref-savepos}

\usetikzlibrary{arrows,automata,patterns,patterns.meta}

\newcommand{\dotnode}[1]{
  \zsavepos{#1}
  \tikz[baseline = -0.5ex]{\node[state,
                                 rectangle,
                                 pattern={Dots[xshift={\zposx{#1} sp}, yshift={\zposy{#1} sp}, angle=45, distance={4pt}, radius=0.6pt]},
                                 minimum size=10pt]{}}
  at (\zposx{#1}, \zposy{#1})}


\begin{document}
This is a \dotnode{1} and this is another \dotnode{2}.
\lipsum[1]
This is another \dotnode{3}.

\begin{tikzpicture}
\foreach \n in {0,1,...,5}
{
     \node [rectangle,draw,minimum width=1cm,minimum height=1cm,
     pattern={Dots[xshift={1.1*\n cm}]}] at (1.1*\n cm, 1.1) {};   
}
\end{tikzpicture}

\end{document}

其结果为: PDF 由 MWE 制作

显然,文本中的虚线框看起来不一样(底部、好的行来自该问题顶部链接中的代码)。

我尝试过使用\zsavepos并将该位置用于xshift/ yshift,如果成功,我可以让标签生成自动化,但显然失败了。我不确定我是否理解\zsavepos正确,因为图像中前两个节点的 y 坐标相同,而一个节点明显高于另一个节点(我假设打印\zposx/ y“推”了它?)。我还担心这\zsavepos会给我在双列布局中带来麻烦,而这正是我正在处理的。

相关内容