我遇到了问题\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.