方程式与创造力中的方箭头

方程式与创造力中的方箭头

我在下面写了方程,但我无法控制用来显示迭代过程的箭头类型。我想至少让它变大一点,因为目前它太小了。这个方程适用于科学海报,它高度重视创造力,所以如果你除了尺寸之外还知道如何将普通箭头改为“酷”箭头,那也非常感谢。谢谢!

(我正在用 LuaLatex 编译它)

\documentclass[final]{beamer}

\usepackage{amsmath, amsthm, amssymb, amsfonts}
\usepackage{tikzsymbols}
\usepackage{tikz}
\usepackage{bigints}
\DeclareMathOperator*{\argmax}{arg\,max}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\tikzset{square arrow/.style={to path={-- ++(0,-2.25)  -| (\tikztotarget) \tikztonodes},below,pos=3.75}}

\begin{document}

 \[  Q(\theta | \tikzmark{a}{\theta_{(i)}}) = \bigint\limits_{\{ {\small \Springtree, \Autumntree, \Summertree,...} \}} logL(\theta|\Wintertree) d\Wintertree \longrightarrow \tikzmark{b}{\theta_{(i+1)}} = \displaystyle\argmax_{\theta} Q(\theta | \theta_{(i)} ) \] 

\tikz[overlay,remember picture]
{\draw[->,square arrow] (b.south) to (a.south);}

\end{document}

答案1

对数学设置进行一些小的更改(对箭头来说不是必需的,但数学运算符的排版正确并且积分极限被打破)我得到了以下结果:

在此处输入图片描述

这就是你要找的吗?

\documentclass[final]{beamer}

\usepackage{mathtools, amsthm, amssymb}
\usepackage{tikzsymbols}
\usepackage{tikz}
\usepackage{bigints}
\DeclareMathOperator*{\argmax}{arg\,max}
\newcommand{\tikzmark}[1]{%
    \tikz[overlay,remember picture] \node (#1) {};
                          }
\tikzset{square arrow/.style={%
    -{Stealth[length=3mm]},rounded corners,draw=red,%
    to path={-- ++(0,-1.5) -| (\tikztotarget)}}
                                }


\begin{document}
\[
Q(\theta | \tikzmark{a}{\theta_{(i)}})
    = \smashoperator[r]{\bigint_{\{\small
                           \Springtree, \Autumntree, \Summertree, \dots \}}
                        }
    \log L(\theta|\Wintertree) \mathrm{d}\Wintertree \longrightarrow 
           \tikzmark{b}{\theta_{(i+1)}} 
    = \displaystyle\argmax_{\theta} Q\left(\theta | \theta_{(i)}\right)
\]

\tikz[overlay,remember picture]
{\draw[square arrow] (b.south) to (a.south);}

\end{document}

我使用 pdfLaTeX,为了显示结果,至少需要两次连续编译。

编辑:
另一种选择,灵感来自格诺特解决方案,但方法略有不同:

  • arrows.meta箭头的头部在库的帮助下像以前一样定义
  • 箭头弯曲使用库topaths。弯曲由选项定义bend left=60
  • 方程式的一部分,通过箭头连接,以红色突出显示
  • \tikzmarks被移动到变量索引中,因此不需要调整它的开始、结束和长度。

在此处输入图片描述

具有显著变化的完整 MWE 是:

\documentclass[final]{beamer}
\usepackage{mathtools, amsthm, amssymb}% <-- amsmath replaced with mathtools
\usepackage{tikzsymbols}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,topaths}% <-- new
\usepackage{bigints}
\DeclareMathOperator*{\argmax}{arg\,max}
\newcommand{\tikzmark}[1]{%
    \tikz[overlay,remember picture] \node (#1) {};
                          }

\tikzset{loop arrow/.style={% <-- new
    -{Stealth[length=5mm]}, ultra thick, draw=red!40,
    bend left=60}}

\begin{document}
\[
Q(\theta | \textcolor{red}{\theta_{(i\tikzmark{a})}})% <-- changed
    = \smashoperator[r]{\bigint_{\{\small
                           \Springtree, \Autumntree, \Summertree, \dots \}}
                        }
    \log L(\theta|\Wintertree) \mathrm{d}\Wintertree \longrightarrow
           \textcolor{red}{\theta_{(i\tikzmark{b}+1)}}% <-- changed
    = \displaystyle\argmax_{\theta} Q\left(\theta | \theta_{(i)}\right)
\]

\tikz[overlay,remember picture]
{\draw[loop arrow] (b.south) to  (a.south);}% <-- changed

\end{document}

答案2

为了得到这样的东西:

在此处输入图片描述

我使用以下代码

\documentclass[final]{beamer}
\usepackage{amsmath, amsthm, amssymb, amsfonts}
\usepackage{tikzsymbols}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\tikzset{myarrow/.style={->,>=Stealth[open],shorten >=3pt,shorten <=3pt,thick}}
\usepackage{bigints}
\DeclareMathOperator*{\argmax}{arg\,max}
\newcommand{\tikzmark}[3][0ex]%
   {\tikz[baseline=#1,remember picture]
       \node[outer sep=0mm,inner sep=0mm,minimum width=0mm] (#2) {#3};%
   }
\begin{document}
 \[  Q(\theta | \tikzmark[-0.28ex]{a}{$\theta_{(i)}$})
     = \bigint\limits_{\{ \mbox{\small \Springtree, \Autumntree, \Summertree,...} \}}
       \hspace{-1.5em}
       \log L(\theta|\Wintertree) d\Wintertree
    \tikz[baseline=-0.8ex]\draw[myarrow] (0,0) -- (1,0);
    \tikzmark[-0.28ex]{b}{$\theta_{(i+1)}$}
     = \displaystyle\argmax_{\theta} Q(\theta | \theta_{(i)} )
 \] 
\tikz[overlay,remember picture]%
  {\draw[myarrow] (b.south) to[out=-70,in=-110] (a.south);
  }
\end{document}

我添加了下面的内容。

\usetikzlibrary{arrows.meta}

允许您绘制更漂亮的箭头;其选项记录在 tikz 手册中。我将其用于Stealth箭头尖。

\tikzset{myarrow/.style={->,>=Stealth[open],shorten >=3pt,shorten <=3pt,thick}}

这将箭头所共有的样式元素收集在名称下myarrow->表示它应该以尖端结束,>=Stealth[open]定义尖端的形式,两个shorten键表示箭头应该在距离目标 3pt 处开始并在目标前 3pt 处结束。

\newcommand{\tikzmark}[3][0ex]{...}

该命令现在有三个参数:第一个是可选的,允许我们上下移动节点的基线(定位需要试验)。第二个参数和以前一样是节点的名称,第三个是节点的内容。将某些内容放入节点中允许我们让箭头从项目下方居中开始。

 \log

假设指log的是对数,我将其改为\log

 \mbox{\small \Springtree, \Autumntree, \Summertree,...}

\small应该以文本模式出现(LaTex 之前对此有抱怨)。

 \hspace{-1.5em}

删除积分和公式之间的一些空间。

 \tikz[baseline=-0.8ex]\draw[myarrow] (0,0) -- (1,0);

使用 tikz 绘制内联箭头以使用相同的样式。

 \draw[myarrow] (b.south) to[out=-70,in=-110] (a.south);

out和参数in分别给出箭头开始和结束的方向,以从 x 轴正方向逆时针测量的度数。

相关内容