代码解释

代码解释

前群语法

我想在方程式中绘制变量之间的拱形(可能重叠或嵌套)以及垂直向下的线。上图的复制品。

如果可能的话,我希望拱门在变量上方显示标签和文字。

我没有成功使用 tikz。

答案1

一个想法,类似于如何在等式各部分之间画箭头来显示数学分配律(乘法)?

\documentclass{article}
\usepackage{tikz}
\tikzset{mtm/.style={
  remember picture,
  inner sep=0pt,
  outer ysep=0.1em,
}}
\newcommand\mtm[2]{\tikz[mtm] \node[anchor=base] (#1) {$#2\mathstrut$};}

\begin{document}
Test text test text test text.
Test text test text test text.
Test text test text test text.
Test text test text test text.
\begin{equation}
  \mtm{n}{n} \quad \mtm{nr}{n^r} \mathbin{} \mtm{s}{s} \mathbin{} 
    \mtm{nl}{n^l} \quad \mtm{n2}{n}
  \begin{tikzpicture}[thick,looseness=1.8,overlay,remember picture]
    \draw (n.south) to[out=-90,in=-90] (nr.south);
    \draw (s.south) -- ++(0,-2em);
    \draw (nl.south) to[out=-90,in=-90] (n2.south);
  \end{tikzpicture}
  \vspace{1.5em} % to allow space for the descending line
\end{equation}
Test text test text test text.
Test text test text test text.
Test text test text test text.
Test text test text test text.
\end{document}

在此处输入图片描述

代码解释

\tikzset{mtm/.style={
  remember picture,
  inner sep=0pt,
  outer ysep=0.1em,
}}

贯穿始终的风格mtm(“数学 TiZ 标记)节点。remember picture这样我们的整体绘图稍后就可以引用节点名称。inner sep=0pt确保数学间距不受影响。outer ysep=0.1em在我们稍后绘制的线和数学变量之间添加一些填充。

\newcommand\mtm[2]{\tikz[mtm] \node[anchor=base] (#1) {$#2\mathstrut$};}

一个宏来放置我们的“数学 TiZ 标记”节点。它接受 2 个参数。第一个是节点名称(我们稍后会使用)。第二个是要打印的节点内容,假设我们处于数学模式上下文中。anchor=base并且\mathstrut仅涵盖与下标/上标/上升部/下降部/等对齐的所有基础。

\begin{equation}
  \mtm{n}{n} \quad \mtm{nr}{n^r} \mathbin{} \mtm{s}{s} \mathbin{} 
    \mtm{nl}{n^l} \quad \mtm{n2}{n}

在方程中,我们正常地书写(我添加了手动间距命令来近似图像中的间距;我假设您有更正式的方式来指定这些间距应该是多少)。除此之外,只要我们需要在绘图中使用变量(例如n),我们就使用\mtm{n}{n}。节点名称必须是唯一的,因此对于第二个n,我们使用mtm{n2}{n}其中n2是此第二个的节点名称n

  \begin{tikzpicture}[thick,looseness=1.8,overlay,remember picture]
    \draw (n.south) to[out=-90,in=-90] (nr.south);
    \draw (s.south) -- ++(0,-2em);
    \draw (nl.south) to[out=-90,in=-90] (n2.south);
  \end{tikzpicture}

在我们完成方程式编写之后,我们添加了一个tikzpicture来放置注释。overlay,remember picture是必需的,以便图片可以放在已经排版的数学公式上并参考那些节点名称。

  \vspace{1.5em} % to allow space for the descending line
\end{equation}

在等式的末尾,我们必须添加一些额外的空间来留出空间,tikzpicture因为它不占用页面上的任何“空间”。

注意事项

\displaystyle对于分数、运算符限制、间距等,将会丢失,因为我在节点内输入了内联数学。如果需要,您可以将其添加到定义中\mtm,尽管对于此用例来说这并不重要。

每张图片的数量\vspace都必须进行调整——如果注释的大小发生变化,额外的空间也必须改变。

相关内容