为什么下标会对我使用的圆形命令产生不良影响?

为什么下标会对我使用的圆形命令产生不良影响?

我定义了一个带圆圈的命令,它只是圈出给定的参数。这是我的定义方式:

\newcommand*\circled[1]{\tikz[baseline=(char.base)]{\node[anchor=text, shape=circle,draw, inner sep=0pt, minimum size=2.2em] (char) {#1\strut};}}

它几乎总是按照我想要的方式工作。例如,此代码

\circled{z=2}\implies1\cdot y-2(2)=2\implies \circled{y=6}\implies x-3(6)+6(2)=-1\implies \circled{x=5}

给我这个:

在此处输入图片描述

但是,每当我尝试用下标圈出某个东西时,一切都会变得混乱。例如,以下代码

-35x_3=-35\implies\circled{x_3=1}\implies-10x_2-15=5\implies\circled{x_2=-2}

给我这个:

在此处输入图片描述

如您所见,它还会弄乱下一个项目符号。有什么办法可以解决这个问题吗?

答案1

欢迎来到 TeX.SE!

  • 请始终提供 MWE(最小工作示例),这是一个完整的小文档(如您在下面的示例中所见),我们可以按原样编译它并重现您的问题。
  • 问题的根源在于\circled命令的内容不在数学节点中。您可以通过两种方式来确保这一点:
    • 重新定义\newcommand如下:
    \newcommand*\circled[1]{\tikz[baseline=(char.base)]{\node[anchor=text, shape=circle, draw, inner sep=0pt, minimum size=2.2em] (char) {$#1\strut$};}}
    
    并按原样使用您的代码片段
    • 保留命令的定义\circled,并将其插入测试代码片段中$的命令内容周围。\circled

第一个例子:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}

\newcommand*\circled[1]{\tikz[baseline=(char.base)]{\node[anchor=text, shape=circle, draw, inner sep=0pt, minimum size=2.2em] (char) {$#1\strut$};}}

\begin{document}
$-35x_3=-35\implies\circled{x_3=1}\implies-10x_2-15=5\implies\circled{x_2=-2}$
\end{document}

第二个例子:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}

\newcommand*\circled[1]{\tikz[baseline=(char.base)]{\node[anchor=text, shape=circle, draw, inner sep=0pt, minimum size=2.2em] (char) {#1\strut};}}

\begin{document}
$-35x_3=-35\implies\circled{$x_3=1$}\implies-10x_2-15=5\implies\circled{$x_2=-2$}$
\end{document}

两种情况下的结果都是一样的:

在此处输入图片描述

相关内容