如何重新定义单字母命令?

如何重新定义单字母命令?

我想改变一些仅由一个字母组成的命令的功能,例如\e\i,并使它们遵守我的规则。(哈哈哈!)我以前对其他命令(例如\in或)做过同样的事情\=,但似乎单字母命令由于某些神秘的原因而很特殊。

具体来说,我想创建一个新命令\i以在数学模式下使用它,但这会产生错误。

这只是我的文档的一部分:

\documentclass[12pt]{article}

%   % symbols
\let\i\undefined
\newcommand{\i}{\mathrm{i}}


% begin languages
\usepackage[LGR,T1]{fontenc}


\begin{document}

$\i$ $i$ i

\end{document}

我得到了错误

Command \i invalid in math mode

尽管如此,.pdf 文件还是生成了,并且\i显示为希腊字母 beta。我尝试了其他方法(现在我记不起来了),这些方法必须\i显示为无点i而不是 beta。

为什么我没有收到\e具有预定义含义的相同错误?

答案1

单字母命令没有什么特别之处,您可以像多字母命令一样(重新)定义它们。关键是它们中的大多数已经定义,除非您确定您没有破坏 latex,否则通常不建议重新定义 latex 的内部结构。

您没有显示任何可重现的代码来显示您在上一个问题中显示的错误。您的实际重新定义重新定义\i,并且它在那时会在数学模式下工作。但是\i(通常)是特定于编码的命令,并且您加载的某些包可能会重置这些命令,从而\begin{document}覆盖您的定义。

但解决方案不是询问如何在不破坏乳胶内部工作原理的情况下重新定义它,而只是使用不同的名称。

答案2

请考虑以下文档:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\renewcommand{\i}{\mathrm{i}}

\begin{document}

El mínimo de la función $f(x)=1+x^{2}$ es $1$.

\end{document}

在其上运行 LaTeX 以获得

! LaTeX Error: \mathrm allowed only in math mode.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.10 El mí
           nimo de la función $f(x)=1+x^{2}$ es $1$.

这只是您不想重新定义的一个例子\i。在许多其他情况下,重新定义内部会产生看似神秘的错误。

另一个例子(类似于同事给我展示的例子)

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}

\renewcommand{\c}{\mathrm{c}} % a constant

\begin{document}

\title{Mínimo de una función}
\author{Leonardo Castro and Şaban Atatürk}
\maketitle

El mínimo de la función $f(x)=\c+x^{2}$ es $\c$.

\end{document}

相关内容