我想对齐箭头,使其直接穿过“x”。我该怎么做?如果我使用 \normalsize 字体,它就可以工作。
背景是我想要将我的 Tikz 文档分成文本行,这样我就可以通过多个例如 \baselineskip 轻松定位对象(\baselineskip 似乎是错误的。它仅适用于 \normalsize 字体)。
这是来自如果字体大小为 \footnotesize,则 \baselineskip 的大小为 \\?。我不确定,但我认为我需要“node font=\footnotesize”,它仅在 Tikz 3.0 中可用。
\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[every node/.style={node font=\footnotesize, font=\footnotesize}]
\node[anchor=north west, inner sep=0, rectangle, red, draw,
text width=0.5cm, align=left](A) {%
\strut x\\
x\strut
};
\draw[->] (0.1cm, -0.5\baselineskip) -- (1cm, -0.5\baselineskip);
\draw[->] (0.1cm, -\baselineskip-0.5\baselineskip) -- (1cm, -\baselineskip-0.5\baselineskip);
\end{tikzpicture}
\end{document}
它看起来应该像这样(如果删除“every node/.style={node font=\footnotesize, font=\footnotesize}”,则会得到这个结果):
答案1
\tikzmark
可以为您节省一些计算。顺便说一句,node font
在 TikZ 中似乎不是有效的键。
代码
\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{positioning}
\newcommand\tikzmark[2][]{\tikz[remember picture]\node(#1)[minimum height=1ex,text width=1ex]{#2};}
\begin{document}
\begin{tikzpicture}[remember picture,font=\footnotesize]
\node[anchor=north west, inner sep=0, rectangle, red, draw,
text width=0.5cm, align=left](A) {%
\strut \tikzmark[n1]{x}\\
\tikzmark[n2]{x}\strut
};
\draw[->](n1.center)--+(1,0);
\draw[->](n2.center)--+(1,0);
\end{tikzpicture}
\end{document}