到目前为止我还没能找到解决我的问题的办法。
我需要编写伪代码,我们(一组教授)选择使用 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
?
提前感谢您的评论。