\newcommand 和 \text 的问题

\newcommand 和 \text 的问题

我遇到了问题\newcommand。下面是我的 LyX 文档,其中第一行来自“Insert-Latex”命令,第二行使用“Insert-Math-Inline Formula”

 \newcommand{\kon}{k_\text{on}}
 \kon

当我使用“查看 PDF”编译文档时出现此错误

 Undefined control sequence
 Description:
  $\kon
      $
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
 misspelled it (e.g., `\hobx'), type `I' and the correct
 spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.

最奇怪的是,我在其他 LyX 文档中使用了这个宏,它运行正常。如果我删除 \text 部分,它也能正常工作。发生了什么?

答案1

你需要amsmath需要加载才能使用\text。LyX 的默认设置是“自动加载”。但是,这种自动加载需要您使用一些amsmath相关环境(请参阅插入 > AMS *),不幸的是,\text在 中定义\newcommand不会调用此加载。

您可以amsmath通过“文档”>“设置...”>“数学选项” amsmath>“始终加载”更改此选项,使其“始终加载”:

在此处输入图片描述

请注意,与大多数编程语言一样,LaTeX 为其定义提供了某种形式的范围。因此,如果您在某个内部插入 > TeX 代码table(仅作为示例),代码为\newcommand{\kon}{k_\text{on}},则该宏 -\kon - 将仅具有有限的范围之内环境table。这就是为什么通常最好在文档 > 设置... > LaTeX 序言中插入定义。或者,您始终可以在包含的单独.sty文件或文件中创建自己的定义。.inc

答案2

从错误消息来看,我假设您忘记在前言中添加\usepackage{amsmath}或扩展了它。使用该命令需要这两个包之一。\usepackage{mathtools}\text{ .. }

一位 MWE 表示:

\documentclass[12pt]{article}
\usepackage{mathtools}
\newcommand{\kon}{k_\text{on}}
\begin{document}

$\kon$

\end{document}

在此处输入图片描述

但是,删除时\usepackage{mathtools},出现以下错误信息(与您的相同):

\kon ->k_\text
{on}
l.6 $\kon
$
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

相关内容