我想在投影仪演示中添加指向方程不同部分的箭头。我想迭代地突出显示它们。我使用了这个问题尝试这样做,但箭头根本没有出现。我尝试排除环境{\small ... }%
,但没有解决问题,也没有消除突出显示或弄乱距离。感谢您的帮助。
\documentclass[12pt,dvipsnames]{beamer}
\usetheme{metropolis}
\usepackage{textgreek}
\usepackage{tikz}
\newcommand{\tikzmark}[1]{\tikz[baseline,remember picture] \coordinate (#1) {};}
\usepackage{booktabs}
\usepackage[scale=2]{ccicons}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{subcaption}
\usepackage{caption}
\usepackage{multicol}
\usepackage{minted}
\usepackage{hyperref}
\hypersetup{
colorlinks = false,
linkbordercolor = {blue}
}
\title{Something Interesting}
\author{Name}
\date{\today}
\begin{document}
\maketitle
\begin{frame}[fragile]{Title}
{\small
\begin{equation*}
\textrm{
Y\textsubscript{gt} =
\textbeta\textsubscript{0} +
\alert<2>{\tikzmark{V}\textbeta\textsubscript{1} A\textsubscript{1}} +
\alert<3>{\tikzmark{Vp}\textbeta\textsubscript{2} B\textsubscript{2}} +
\alert<4>{\tikzmark{Vt}\textbeta\textsubscript{3} C\textsubscript{3}} +
\alert<5>{\textgamma\textsubscript{4} X\textsubscript{4}} +
\textepsilon\textsubscript{...}
}
\end{equation*}
\begin{tikzpicture}[overlay,remember picture]
\node (Ve) [below of = V, node distance = 4 em, anchor=west]{\footnotesize \textsf{Distribution volume}};
\draw[<-, in=180, out=-90] (V.south)++(.25em,-.5ex) to (Ve.west);
\node (Vpe) [below of = Vp, node distance = 3 em, anchor=west] {\footnotesize \textsf{Volume water in plasma}};
\draw[<-, in=180, out=-90] (Vp.south)++(.25em,-.5ex) to (Vpe.west);
\node (Vte) [below of = Vt, node distance = 2 em, anchor=west] {\footnotesize \textsf{Volume water in tissue}};
\draw[<-, in=180, out=-90] (Vt.south)++(.25em,-.5ex) to (Vte.west);
\end{tikzpicture}
}%
\end{frame}
\end{document}
答案1
这实际上是 TikZ/PGF 如何记住节点和图片的一个微妙问题。定义节点时,它会记住定义该节点的图片的唯一 ID。如果设置了键,remember picture
则该图片的原点位置将写入文件aux
,这意味着可以确定节点在页面上的绝对位置。
但是,在某些情况下,tikzpicture 可能会被多次处理,并且只有其中一个版本会写入 PDF。当\mathchoice
涉及到时,就会发生这种情况。由于每次都会定义节点,因此最后一个版本是与给定节点关联的版本。但是,如果最后一个版本不是写入 PDF 的版本,则不会记住它在页面上的位置,因此无法使用该节点在页面上的绝对位置。
在其他地方,Heiko Oberdieck 回答了一个相关问题,使用\label
仅针对排版的版本将内容写入辅助文件,并使用该版本来确定设置了哪个版本。使用相同的想法,我进行了调整,\tikzmarknode
以便它可以确定实际使用了哪个 tikzpicture,并将其节点与正确的 id 关联起来。
(如果需要的话,此机制可以在其他 tikzpictures 中使用。)
请注意,它\tikzmark
本身不会受到影响,因为它不再使用节点。因此这只会影响\tikzmarknode
。
在您的代码中,这个问题通过命令进入画面(哈哈)\textrm
。在包的存在下amsmath
,这实际上是\text
,并且这在内部使用\mathchoice
。
我已将新版本的 tikzmark 上传至github来实现这一点。一旦我完成了压力测试,我就会将其上传到 CTAN。
这是您的代码的修复版本:
\documentclass[12pt,dvipsnames]{beamer}
%\url{https://tex.stackexchange.com/q/582811/86}
\usetheme{metropolis}
\usepackage{textgreek}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
%\newcommand{\tikzmark}[1]{\tikz[baseline,remember picture] \coordinate (#1) {};}
\usepackage{booktabs}
\usepackage[scale=2]{ccicons}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{subcaption}
\usepackage{caption}
\usepackage{multicol}
\usepackage{minted}
\usepackage{hyperref}
\hypersetup{
colorlinks = false,
linkbordercolor = {blue}
}
\title{Something Interesting}
\author{Name}
\date{\today}
\begin{document}
\maketitle
\begin{frame}[fragile]{Title}
{\small
\begin{equation*}
\textrm{
Y\textsubscript{gt} =
\textbeta\textsubscript{0} +
\alert<2>{\tikzmarknode{V}\textbeta\textsubscript{1} A\textsubscript{1}} +
\alert<3>{\tikzmarknode{Vp}\textbeta\textsubscript{2} B\textsubscript{2}} +
\alert<4>{\tikzmarknode{Vt}\textbeta\textsubscript{3} C\textsubscript{3}} +
\alert<5>{\textgamma\textsubscript{4} X\textsubscript{4}} +
\textepsilon\textsubscript{...}
}
\end{equation*}
\begin{tikzpicture}[overlay,remember picture]
\node (Ve) [below of = V, node distance = 4 em, anchor=west]{\footnotesize \textsf{Distribution volume}};
\draw[<-, in=180, out=-90] (V.south)++(.25em,-.5ex) to (Ve.west);
\node (Vpe) [below of = Vp, node distance = 3 em, anchor=west] {\footnotesize \textsf{Volume water in plasma}};
\draw[<-, in=180, out=-90] (Vp.south)++(.25em,-.5ex) to (Vpe.west);
\node (Vte) [below of = Vt, node distance = 2 em, anchor=west] {\footnotesize \textsf{Volume water in tissue}};
\draw[<-, in=180, out=-90] (Vt.south)++(.25em,-.5ex) to (Vte.west);
\end{tikzpicture}
}%
\end{frame}
\end{document}
以及相关框架: