我正在尝试复制此图。我感到困惑是因为我不是从 tikzpicture 环境开始,而是从 align* 环境开始。这是该图的骨架。我相信这是一个正确的开始:
\documentclass{article}
\usepackage{tikz}
\usepackage{mathtools,amsmath,geometry}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{align*}
h(x)&=\ln (x^{2}-8x) && \\
& && \\
& && \\
h^{\prime}(x)&=\dfrac{\textcolor{red}{2x-8}}{\textcolor{blue}{x^{2}-8x}} && \\
\end{align*}
\end{document}
这输出
我的目标是创造:
可以创建圆 1 和圆 2,但我不知道如何在标签和箭头的上下文中正确编程?Tikzmark 是合适的工具。
答案1
像这样吗?(编辑:添加了描述,感谢 ArtificialStupidity 加快了我的速度!)
- 括号用 完成。您也可以用和
decorations.pathreplacing
完成。\underbrace
\overbrace
- 您无需添加多条空行,只需
[distance]
在 后添加 即可产生垂直间隙\\
。我又添加了一个这样的距离,因为注释是在覆盖模式下绘制的,否则会在文本中运行。 - 带有文本的节点沿着垂直线放置在由
pos=...
(然后向右移动)指示的某些位置。
\documentclass{article}
\usepackage{tikz}
\usepackage{mathtools,amsmath,geometry}
\usetikzlibrary{tikzmark,decorations.pathreplacing}
\begin{document}
\begin{align*}
h(x)&=\ln \tikzmarknode{ln}{(x^{2}-8x)} && \\[6em]
h^{\prime}(x)&=\dfrac{\tikzmarknode[text=red]{num}{2x-8}}{\tikzmarknode[text=blue]{den}{x^{2}-8x}}
&& \\[2em]
\end{align*}
\begin{tikzpicture}[overlay,remember picture]
\draw[red,thick,decorate,decoration={brace,mirror}] (ln.south west) -- (ln.south east)
coordinate[midway,below=0.5em](aux1);
\draw[red,thick,decorate,decoration={brace,raise=1pt}] (num.north west) -- (num.north east)
coordinate[midway,above=0.5em](aux2);
\draw[red,thick,decorate,decoration={brace,mirror}] (den.south west) -- (den.south east)
coordinate[midway,below=0.5em](aux3);
\path (aux1) -- (aux2) coordinate[midway] (aux4);
\draw[-latex,red] (aux1) -- (aux4-|aux1) -| (aux2)
node[pos=0.5,left=0.25em,circle,black,draw,inner sep=1pt]{1};
\draw[latex-,red] (aux3) |- ++ (3em,-2em)
node[pos=0.5,left=0.25em,circle,black,draw,inner sep=1pt]{2} |-(aux4-|aux1)
node[pos=0.2,right=1em,circle,black,draw,inner sep=1pt,
label={[blue]right:Divide by the ``inside'' function.}] {2}
node[pos=0.4,right=1em,circle,black,draw,inner sep=1pt,
label={[red]right:Differentiate the ``inside'' function.}] {1};
\end{tikzpicture}
Hello
\end{document}