![定制命令](https://linux22.com/image/458747/%E5%AE%9A%E5%88%B6%E5%91%BD%E4%BB%A4.png)
首先,下面的代码只是试验。它们远非完美。为了简单起见,我想将这部分代码转换为命令,因为我经常需要它:
\tikzmarknode{c}{\includegraphics[scale=0.2]{teacher.png}}
\tikz[remember picture,baseline]{
\node[name=el,overlay,ellipse callout,fill=blue!20,draw=black,align=center,callout
relative pointer={(1,0)},left =of c,inner xsep=3 mm, inner ysep=1 mm] at
([xshift=-1cm,yshift=-0.5cm]c)
{foo\\ bar};
这是我的代码(我希望命令 \teacher 有 2 个可选参数,inner xsep 和 inner ysep,它们的默认值分别为 3mm 和 1mm,第 3 个参数是节点内的文本)。
\newcommand{\teacher}[3][3]{\hfill \tikzmarknode{c}{\includegraphics[scale=0.2]{teacher.png}}
\tikz[remember picture,baseline]{
\node[name=el,overlay,ellipse callout,fill=blue!20,draw=black,align=center,callout relative pointer={(1,0)},left =of c,inner xsep=#1 mm, inner ysep=#2 mm] at ([xshift=-1cm,yshift=-0.5cm]c)
{#3};}\\ }
[3][3]
第一行中的 可能是错误的,但我的意思是存在 3 个参数(再次强调,前 2 个是可选的),我将第一个可选参数初始化为 3(我会在那之后添加 [1],以初始化第二个可选参数,内部 ysep,但它会产生错误)。
当我想调用它时,唯一可行的方法就是这样(是的,只需使用 [)。
\teacher[5][{foo\\ bar}
有人能帮我修正命令定义吗?谢谢