重新定义 \S - 索引问题

重新定义 \S - 索引问题

为什么下标放在字母下方而不是像平常一样放在右下角?

\documentclass[a4paper,12pt,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{csquotes}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\let\origS\S\renewcommand{\S}{\ifmmode\mathop{\mathsf{S}}\else\origS\fi}
\begin{document}
\begin{equation}\label{eqn:decS}
\S=\S_0 \oplus\S_1 .
\end{equation}
\end{document}

在此处输入图片描述

答案1

您需要\nolimits强制\mathop不要将操作员视为,例如\sum

\documentclass[a4paper,12pt,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{csquotes}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\let\origS\S\renewcommand{\S}{%
  \relax\ifmmode\mathop{\mathsf{S}}\nolimits\else\origS\fi}
\begin{document}
\begin{equation}\label{eqn:decS}
\S=\S_0 \oplus\S_1 .
\end{equation}
\[
\begin{pmatrix}\S\end{pmatrix}
\]
\end{document}

在此处输入图片描述

答案2

假设你的命令应该是\mathop,正确的重新定义应该是

\renewcommand{\mathsection}{\operatorname{\mathsf{S}}

重新定义\S这种方式必然会带来问题,就像\S“强有力”的命令一样。

如果不是操作员,\renewcommand{\mathsection}{\mathsf{S}}就足够了。

您可以在以下两个示例中看到差异(twocolumn仅用于制作较小的图片)。在 (1) 中,符号的行为类似于运算符,在 (2) 中,它是一个普通符号。

\documentclass[a4paper,12pt,twocolumn]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{csquotes}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}

\renewcommand{\mathsection}{\operatorname{\mathsf{S}}}

\begin{document}

\begin{equation}\label{eqn:decS}
\S=\S_0 \oplus\S_1 x.
\end{equation}

\renewcommand{\mathsection}{\mathsf{S}}

\begin{equation}
\S=\S_0 \oplus\S_1 x.
\end{equation}

\end{document}

在此处输入图片描述

相关内容