如何创建对数学模式和文本模式具有两种不同含义的新命令?

如何创建对数学模式和文本模式具有两种不同含义的新命令?

我使用它\usepackage{newunicodechar}在数学模式下轻松输入一些unicode字符。

例如,我使用 unicode 卷曲的 phi ( ϕ ) 在数学模式下插入 phi。问题是,文本模式下以这个 phi 开头的任何 Unicode 单词都会更改为数学模式!所以我的问题是:我如何使用 ifmmoder或其他 TeX 命令来做出适当的定义, \newunicodechar{ϕ}使其在每种模式下表现不同?(不幸的是,我不太了解 TeX..)

% -*- coding: utf-8 -*-
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[greek]{babel}
\usepackage{newunicodechar}
\usepackage{Kerkis}

\newunicodechar{ϕ}{\varphi}


\begin{document} ϕαγητό \textlatin{means food}
$ϕ$
\end{document}

答案1

我没有Kerkis包,所以没有测试过,但是

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[greek]{babel}
\usepackage{newunicodechar}
\usepackage{Kerkis}

\newunicodechar{ϕ}{\ifmmode\varphi\else\textphi\fi}


\begin{document} ϕαγητό \textlatin{means food}
$ϕ$
\end{document}

我在这里使用过\textphi,但如果您的文本希腊字体同时具有 phi 形式,您可以用在文本模式下定义 var phi 的命令来替换。

相关内容