这是一个 M(不是)WE:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{accents}
\theoremstyle{definition}
\newtheorem{axiom}{Axiom}
\newtheorem{definition}{Definition}
\renewcommand{\vec}[1]{\ensuremath{\mathbf{#1}}}
\newcommand{\undernum}[2]{\ensuremath{\underaccent{\mathclap{#2}}{#1}}}
\newcommand{\mvec}[2][n]{\underset{#1}{\mathbf{#2}}}
\begin{document}
\begin{definition}[Multivector notation.]
$\mvec[0]{x} \in \mathbb{R}$, or $\mvec[0]{x}$ is a scalar, or a $0$-vector. We simply write $x$ instead of $\mvec[0]{x}$ (notice no bold). $\mvec[1]{y} \in \mathbb{R}^n$, or $\mvec[1]{y}$ is a traditional vector, or a $1$-vector. We simply write $\vec{y}$ instead of $\mvec[1]{y}$. $\mvec[n]{z} \in \mathbb{G}^n$, or $\mvec[n]{z}$ is multivector, or more specifically, an $n$-vector.
\end{definition}
\end{document}
请注意,下划线字母 (n) 与下划线数字的大小不一致。我该如何解决这个问题?设置 \scriptscriptstyle 如下:\underset{\scriptscriptstyle#1}
,并不能解决比例差异问题,因为它只会使所有内容变小。
答案1
\mathstrut
为了实现您想要的,您可以在定义中添加\mvec
:
\newcommand{\mvec}[2][n]{\underset{\scriptscriptstyle#1}{\mathbf{\mathstrut#2}}}
然而请注意,基线跳跃被此定义所破坏。
为了获得均匀的基线跳过,如果您确实想使用这样的定义,我建议您全局增加基线跳过,例如使用
\linespread{1.5}\selectfont
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{accents}
\usepackage{lipsum} % for dummy text
\theoremstyle{definition}
\newtheorem{axiom}{Axiom}
\newtheorem{definition}{Definition}
\renewcommand{\vec}[1]{\ensuremath{\mathbf{#1}}}
\newcommand{\undernum}[2]{\ensuremath{\underaccent{\mathclap{#2}}{#1}}}
\newcommand{\mvec}[2][n]{\underset{\scriptscriptstyle#1}{\mathbf{\mathstrut#2}}}
\begin{document}
\linespread{1.5}\selectfont
\begin{definition}[Multivector notation.]
$\mvec[0]{x} \in \mathbb{R}$, or $\mvec[0]{x}$ is a scalar, or a $0$-vector.
We simply write $x$ instead of $\mvec[0]{x}$ (notice no bold). $\mvec[1]{y} \in \mathbb{R}^n$,
or $\mvec[1]{y}$ is a traditional vector, or a $1$-vector. We simply write $\vec{y}$ instead of
$\mvec[1]{y}$. $\mvec[n]{z} \in \mathbb{G}^n$, or $\mvec[n]{z}$ is multivector, or more
specifically, an $n$-vector.
\lipsum[1]
\end{definition}
\end{document}
输出:
放大:
答案2
使用\underset
会导致行距不均匀。我建议不要使用它,而是采用较低级别的对齐方式。
\documentclass{article}
\usepackage{amsmath,amssymb,amsthm}
\theoremstyle{definition}
\newtheorem{definition}{Definition}
\renewcommand{\vec}[1]{\mathbf{#1}}
\newcommand{\mvec}[2][n]{%
\oalign{%
\smash[b]{$\vec{#2}$}\cr
\noalign{\nointerlineskip\vskip\lineskip}
\hidewidth$\scriptscriptstyle\vphantom{1}#1$\hidewidth\cr
}%
}
\begin{document}
\begin{definition}[Multivector notation.]
$\mvec[0]{x} \in \mathbb{R}$, or $\mvec[0]{x}$ is a scalar, or a $0$-vector. We simply
write $x$ instead of $\mvec[0]{x}$ (notice no bold). $\mvec[\,1]{y} \in \mathbb{R}^n$, or
$\mvec[\,1]{y}$ is a traditional vector, or a $1$-vector. We simply write $\vec{y}$ instead
of $\mvec[\,1]{y}$. $\mvec[n]{z} \in \mathbb{G}^n$, or $\mvec[n]{z}$ is multivector, or more
specifically, an $n$-vector.
\end{definition}
However, $\mvec[1]{g}$ is hopeless, while $\mvec[\,n]{y}$ is tolerable.
\end{document}
我只留下了示例所需的代码和包。请注意,您应该\vec
在 的定义中使用\mvec
。使用\scriptscriptstyle
和 的小间隔(使用\vphantom{1}
)可以使行间距比使用 获得的间距更小\underset
。在是,为了避免字母相互碰撞,需要手动校正,但示例还显示,诸如G不得使用。
我自己从来不会使用这样的符号。