答案1
要使某个字符在数学模式下表现为普通字符,只需将其放在花括号中即可{...}
。然后它变为\mathord
并获得适当的间距。
\documentclass{article}
\begin{document}
\begin{displaymath}
i\colon\mathcal{D}(F-,=)\Rightarrow \mathcal{C}(-,G{=})
\end{displaymath}
\newcommand{\eq}{{=}}
\begin{displaymath}
i\colon\mathcal{D}(F-,\eq)\Rightarrow \mathcal{C}(-,G\eq)
\end{displaymath}
\end{document}
您可能想要定义一个简写,例如,\eq
正如我\newcommand{\eq}{{=}}
上面所定义的那样。
对于这种语义情况,@egreg 建议使用更好的宏,例如:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\blank}[1][1]{%
\ifcase#1\relax\or{-}\or{=}\or{\equiv}\fi
}
\begin{document}
\[
i\colon\mathcal{D}(F\blank,\blank[2])\Rightarrow \mathcal{C}(\blank,G\blank[2])
\]
\end{document}
@VF1 指向四线平等得到一个四行符号。但是,这很快就会变得难以阅读,所以我建议使用类似于<n>
上面的破折号。这里有两个宏\nblank
,\xblank
可以做到这一点。第二个\xblank
是可以扩展以适合上面的标签的版本。
\documentclass{article}
\usepackage{amsmath}
\newcommand{\blank}[1][1]{%
\ifcase#1\relax\or{-}\or{=}\or{\equiv}\or\nblank{#1}\fi
}
\newcommand{\shortstrut}{\vrule width 0pt height 0.8ex}
\newcommand{\nblank}[1]{\overset{\langle #1\rangle}{\shortstrut\smash[t]{-}}}
\makeatletter
\newcommand{\xblank}[1]{\setbox\z@%
\hbox{\m@th$\cleaders\hbox{$\mkern-2mu\relbar\mkern-2mu$}\hfill
\displaystyle$}%
\def\@tempa{\mkern1mu{\langle #1\rangle}\mkern1mu}%
\setbox\tw@\hbox{\m@th$\scriptstyle\@tempa$}%
{\mathop{\shortstrut\hbox to \wd\tw@{\unhbox\z@}}\limits^{\@tempa}}}
\makeatother
\begin{document}
\begin{displaymath}
i\colon\mathcal{D}(F\blank,\blank[2])\Rightarrow
\mathcal{C}(\blank,G\blank[2])
\end{displaymath}
\begin{displaymath}
r(\blank,\nblank{2},\dots,\nblank{n}) = (\nblank{n},\dots,\nblank{2},\blank)
\end{displaymath}
\begin{displaymath}
s(\blank,\dots,\xblank{1001637}) = \xblank{37}
\end{displaymath}
\end{document}