答案1
欢迎来到 TeX.SE,这里有一个我以纯 LaTeX 编写的提案。它与您的图片有一点不同,因为公式的特定部分有很多文本(给定新状态和所有可能的动作,最大预测奖励)。
一些小建议:
- 在 LaTeX 中,有一个特定命令用于指示最大值,它不是
\max
用斜体 (max
) 表示的,就像每个字母都是一个变量一样。对于“ ”也有同样的讨论New
,我将其作为文本写入公式中\text{New}
,而不是用斜体表示。 - 重要提示:如果您更改了以图像形式插入的公式中的某些内容,则空格可能会发生变化。这可以通过使用命令减少或增加距离轻松解决
\mkern-30mu
(例如)。
\documentclass[a4paper,12pt]{article}
\usepackage{amssymb,mathtools}
\begin{document}
\[\underbrace{\text{New}Q(s,a)}_{\scriptstyle\text{New Q-Value}}=Q(s,a)+\mkern-34mu\underset{\text{New Q-Value}}{\underset{\Bigl|}{\alpha}}\mkern-30mu[\underbrace{R(s,a)}_{\scriptstyle\text{Reward}}+\mkern-30mu\underset{\text{Discount rate}}{\underset{\Biggl|}{\gamma}}\mkern-75mu\overbrace{\max Q'(s',a')}^{\scriptstyle\substack{\text{Maximum predicted reward, given} \\ \text{new state and all possible actions}}}\mkern-45mu-Q(s,a)]\]
\end{document}
答案2
另一种方法是使用tikzmark
库:
\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usepackage{lipsum}
\begin{document}
\lipsum[66]
\[
\underbrace{\text{New }Q(s,a)}_{\substack{\text{New}\\
\text{Q-Value}}}
= \underbrace{Q(s,a)}_{\substack{\text{Current}\\
\text{Q-Value}}}
+ \tikzmarknode{A}{\alpha}
\Bigl[
\underbrace{R(s,a)}_{\text{Reward}}
+ \tikzmarknode{B}{\gamma}
\overbrace{\max Q'(s',a')}^{\mathclap{%
\substack{\text{Maximum predicted reward, given} \\
\text{new state and all possible actions}}
}}
- Q(s,a)
\Bigr]
\begin{tikzpicture}[overlay, remember picture,shorten <=1mm, font=\footnotesize, align=center]
\draw (A.south) -- ++ (0,-.8) node (C) [below] {Learning\\ rate};
\draw (B.south) -- (B |- C.north) node[below] {Discount\\ rate};
\end{tikzpicture}
\vspace{4ex}
\]
\lipsum[66]
\end{document}
经过两次编译结果是: