如何在数学模式和 \mathit 中删除重音字符周围的多余空格?

如何在数学模式和 \mathit 中删除重音字符周围的多余空格?

到目前为止我还没能找到解决我的问题的办法。

我需要编写伪代码,我们(一组教授)选择使用 Cormen 等人的风格,该风格在包中可用clrscode3e。要排版变量,有一个命令\id,它使用\mathit

问题是我们需要使用重音字符作为变量名(葡萄牙语),并\mathit在其周围添加额外的空格。

以下 MWE 显示了我想要的间距(预期的行为)、我的解决方法、默认的内联数学模式和一个丑陋的解决方案。

\documentclass[10pt,a4paper]{minimal}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}

% My attempt
\newcommand{\newtilde}[1]{\hspace{-0.1em}\tilde{#1}\hspace{-0.1em}}

\begin{document}
\begin{tabular}{lc}
    Spacing I want & $ \mathit{ffaaa} $ \\
    My solution & $ \mathit{ffa\newtilde{a}a} $ \\
    Standard solution & $ \mathit{ffa\tilde{a}a} $ \\
    In math mode & $ ffa\tilde{a}a $ \\
    Ugly solution & $ ffa\!\tilde{a}\!a $ \\
\end{tabular}
\end{document}

例子

clrscode3e.sty作为参考,这是从(我添加的评论)中提取的相关代码:

\newcommand{\text@hyphens}{\mathcode`\-=`\-\relax} % hyphens instead of minus sign
\newcommand{\id}[1]{\ensuremath{\mathit{\text@hyphens#1}}}

使用\mathord没有效果,并且任何类似的想法\DeclareMathSymbol都远远超出了我在 TeX 方面的知识。

有没有比使用我的更好的解决方案\newtilde

提前感谢您的评论。

答案1

\mathit如果您打算在变量名中添加重音符号,请不要使用。

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}

\newcommand{\id}[1]{\textnormal{\textit{#1}}}

\begin{document}

$\id{ffaãa-bb}$

\end{document}

在此处输入图片描述

相关内容