我想定义 3 个类似于 的命令\vec
。第一个命令\Mono
必须在参数上方放置一个箭头,就像 中一样\vec
,但在箭头的开头有另一个箭头,并且也指向右侧。这是为了表示注入或单态。
第二个,\Epi
,必须在参数上方放置一个箭头,就像 中一样\vec
,但箭头末端有两个箭头,都指向右侧。这是为了表示满射或满态。
第三个,\Iso
,必须在参数上方放置一个箭头,就像 中一样\vec
,但在箭头的开头有另一个箭头,但指向左侧。这是为了表示双射或同构。
我的第一次尝试是定义以下命令
\newcommand{\Mono}[1]{\overset{\rightarrowtail}{#1}}
\newcommand{\Epi}[1]{\overset{\twoheadrightarrow}{#1}}
\newcommand{\Iso}[1]{\overset{\leftrightarrow}{#1}}
但是这些命令在参数中的字母和它们上方的箭头之间创建了太多空间,而且箭头本身太大。理想情况下,我想知道它\vec
是如何定义的,以及是否有在上标等中表现良好的命令。
答案1
我不知道您是如何定义的\rightrightarrow
,但我的主要观点是展示如果使用包来执行此操作,布局会更好 accents
,因为它考虑了数学变量的斜体角度,所以我用它替换了它\hookrightarrow
,这是表示注入同态的标准方式。
以下是两种方式的比较:
\documentclass{article}
\usepackage{mathtools}
\usepackage{accents}
\usepackage{amssymb}
\newcommand{\Mono}[1]{\overset{\hookrightarrow}{#1}}
\newcommand{\Epi}[1]{\overset{\twoheadrightarrow}{#1}}
\newcommand{\Iso}[1]{\overset{\leftrightarrow}{#1}}
\begin{document}
\[ \begin{matrix}\Mono{f}: A \rightarrow B &\quad & \accentset{\hookrightarrow}{f}: A \rightarrow B \\%
\Epi{f}: A \rightarrow B & & \accentset{\twoheadrightarrow}{f}: A \rightarrow B \\
\Iso{f}: A \rightarrow B & & \accentset{\leftrightarrow}{f}: A \rightarrow B
\end{matrix}\]%
\end{document}