用箭头描述方程的一部分

用箭头描述方程的一部分

我想使用 tikz 为方程式的某些部分添加额外的注释。使用我找到的一些示例,我想出了以下方法。其中 tikzmkark 放置在方程式内部,稍后用于绘制指向文本描述的箭头:

   \usepackage{tikz}
    \usetikzlibrary{calc,fit,positioning}
    \newcommand{\tikzmark}[3][]{\tikz[overlay,remember picture,baseline] \node [anchor=base,#1](#2) {#3};}

    \begin{document}
      \begin{equation*}
          a = \tikzmark{log}{$\log(b)$} + 3
      \end{equation*}

      \begin{tikzpicture}[overlay, remember picture,node distance =.5cm]
          \node (logdescr) [below=of log]{Description};
          \draw[,->,thick] (log) to [in=90,out=-90] (logdescr);
      \end{tikzpicture}
    \end{document}

不幸的是,当我在 tikzmark 命令中使用 $$ 时,公式的间距不知何故被破坏了。如下所示:

示例输出

答案1

这里我添加了两个代码变体LaTeX来表示单词的大小描述

\documentclass[a4paper,12pt]{article}
\usepackage{mathtools,amssymb}

\newcommand{\xdownarrow}[1]{%
  {\left\downarrow\vbox to #1{}\right.\kern-\nulldelimiterspace}
} % @egreg macro https://tex.stackexchange.com/questions/213811/how-to-elongate-down-arrow


\begin{document}
\[\underset{\substack{\Big\downarrow\\\text{Description}}}{a=\log(b)+3}\]

\[\underset{\substack{\Big\downarrow\\\text{\large Description}}}{a=\log(b)+3}\]
\end{document}

在此处输入图片描述

答案2

为什么会出现您报告的问题?因为您有overlay一个

\newcommand{\tikzmark}[3][]{\tikz[overlay,remember picture,baseline] \node [anchor=base,#1](#2) {#3};}

不过没必要用这个命令,\tikzmarknode从精美tikzmark库里使用就可以。

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning,tikzmark}

\begin{document}
\begin{equation*}
 a = \tikzmarknode{log}{\log(b)} + 3
\end{equation*}
\begin{tikzpicture}[overlay, remember picture,node distance =.5cm]
    \node (logdescr) [below=of log]{Description};
    \draw[,->,thick] (log) to [in=90,out=-90] (logdescr);
\end{tikzpicture}
\end{document}

相关内容