我想使用 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}