代码

代码

我想对齐箭头,使其直接穿过“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}

输出

在此处输入图片描述

相关内容