用圆圈指向的箭头圈出公式

用圆圈指向的箭头圈出公式

是否有一个包已经可以做这样的事情?

给出了围绕公式的主题,但我不明白修改“圆圈”以让箭头从某处向外指向的语法。

最终目标就是拥有这样的东西。

图像

我尝试使用链接主题中给出的示例作为基础

\documentclass{article}

\usepackage{tikz}

\makeatletter
\newcommand*{\encircled}[1]{\relax\ifmmode\mathpalette\@encircled@math{#1}\else\@encircled{#1}\fi}
\newcommand*{\@encircled@math}[2]{\@encircled{$\m@th#1#2$}}
\newcommand*{\@encircled}[1]{%
  \tikz[baseline,anchor=base]{\node[draw,circle,outer sep=0pt,inner sep=.2ex] {#1};}}
\makeatother

\begin{document} not important at the  moment
\end{document}

有很多修饰与保持正确格式或类似的东西有关。问题的核心是修改\node[...]导致圆圈中有一个箭头指向外部的部分,但我觉得这是死路一条。

答案1

最好的方法取决于你的草图是否是作为单个图像(在这种情况下使用单个tikzpicture环境)或者项目是否与页面上的文本混合出现(在这种情况下使用\tikznode来自此帖子的命令。以下是两种情况的示例。请注意,您必须对第二个示例运行两次 LaTeX。

一张图片中的一切:元素之间的相对位置可以明确指定。

在此处输入图片描述

\documentclass[border=1pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
  \node[circle,draw](fx){$f(x)$};
  \node(a)[below right=of fx]{$a$};
  \draw[->] (fx) -- (a);
\end{tikzpicture}
\end{document}

作为文本一部分的图形元素:元素的位置由定位元素的排版引擎隐式定义。有关使用的示例,\tikznode请参见分解数字 简单加法如何在方程和矩阵中添加箭头?或者如何将 tikzpicture 中的箭头指向 LaTex 中的方程式?

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\newcommand\tikznode[3][]%
   {\tikz[remember picture,baseline=(#2.base)]
      \node[minimum size=0pt,inner sep=0pt,#1](#2){#3};%
   }
\begin{document}
\[ \frac{g(x)}{\tikznode[circle,draw]{fx}{$f(x)$}}
  =\frac{g(x)}{\tikznode{a}{$a$}}
\]
\begin{tikzpicture}[remember picture,overlay]
  \draw[->] (fx) edge[bend right] (a);
\end{tikzpicture}
\end{document}

答案2

也许是这样的?

\documentclass{article}
\usepackage{tikz,blindtext}
\newcommand{\mycircle}[2]{\begin{tikzpicture}[remember picture]
                            \node[draw,circle] (#2) {$#1$};
                            \draw[->] (#2) --+ (1,-1) node[below right] {$#2$};
                          \end{tikzpicture}
                         }
\begin{document}
    \blindtext\par
    \mycircle{f(x)}{a}\par
    \blindtext
\end{document}

输出如下:

截屏

编辑:分母不重叠:

梅威瑟:

\documentclass{article}
\usepackage{tikz,blindtext}
\newcommand{\mycircle}[2]{\begin{tikzpicture}[remember picture]
                            \node[draw,circle] (#2) {$#1$};
                            \draw[->] (#2.south east) --+ (1,-1) node[below right] {$#2$};
                          \end{tikzpicture}
                         }
\begin{document}
    \blindtext\par
    \mycircle{f(x)}{a}\par
    \[
        \frac{f(x)}{\mycircle{g(x)}{a}}
    \]
    \blindtext\par
\end{document}

输出:

截屏

答案3

\documentclass{article} \usepackage{tikz} \newcommand\tikznode[3][]% {\tikz[记住图片,baseline=(#2.base)] \nodeminimum size=0pt,inner sep=0pt,#1{#3};% } \begin{document} [ \frac{g(x)}{\tikznode[circle,draw]{fx}{$f(x)$}} =\frac{g(x)}{\tikznode{a}{$a$}} ] \begin{tikzpicture}[记住图片,覆盖] \draw[->] (fx) edge[向右弯曲] (a); \end{tikzpicture} \end{document}

如果我想让它位于顶部而不是像代码中那样位于底部,该怎么办?例如,如果您不想在分母中执行操作,而是想在分子中执行操作,该怎么办?我正在尝试这样做,但速度越来越低。

相关内容