在数学模式中缩小减号(在 for 循环中允许)

在数学模式中缩小减号(在 for 循环中允许)

如果可能的话,我想把“N-1”放入下面的框中;如果我使用解决方案\text{-},也就是说3/{N\text{-}1},它给了我一个错误:Undefined control sequence: } (followed by: )

有办法解决吗?

在此处输入图片描述

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, positioning}
\def\d{0.7cm} 
\tikzset{
  >=latex,
  font=\sffamily,
  mybox/.style={rectangle, fill=white, thin, draw, outer sep=0, minimum width = \d, minimum height = \d, inner sep=0},
}
\begin{document}
\begin{tikzpicture}
\foreach\k/\s in {
             0/1,  3/{N-1},  4/{N}
}{
        \node[mybox] (bc\k) at ($(-\k*\d, 0)$) {$S_{\s}$};
}

\end{tikzpicture}
\end{document}

答案1

您可以使用\text{-},但是您需要amsmath

\documentclass{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc, positioning}

\newcommand\dd{0.7cm} 
\tikzset{
  >=latex,
  font=\sffamily,
  mybox/.style={
    rectangle,
    fill=white,
    thin,
    draw, outer sep=0,
    minimum width = \dd,
    minimum height = \dd,
    inner sep=0
  },
}
\begin{document}
\begin{tikzpicture}
\foreach\k/\s in {
             0/1,  3/{N\text{-}1},  4/{N}
}{
        \node[mybox] (bc\k) at ($(-\k*\dd, 0)$) {$S_{\s}$};
}

\end{tikzpicture}
\end{document}

不要做\def\d{...}

在此处输入图片描述

答案2

您链接的答案建议使用 来\scalebox仅在水平方向而不是垂直方向缩小减号。您可以像这样定义自定义宏:

\documentclass{article}
\usepackage{graphicx}
\def\sminus{\scalebox{0.75}[1.0]{\( - \)}}

\begin{document}
  $-8 \sminus 8$
\end{document}

要调整减号的宽度以满足您的喜好,请调整值{0.75}。这[1.0]是垂直比例,以便它保持相同的“高度”。

相关内容