我正在尝试定义一个 LyX 宏,菜单上的“插入”->“数学”->“宏”。这是一个非常简单的宏。查看->查看源代码下的源代码:
\global\long\def\Z{\mathbb{Z}}
如果我不使用宏,文件可以很好地编译。但是,一旦我将一个放入 \Z
数学公式中并尝试编译,它就会给我一个未定义控制序列出现以下错误消息:
! Undefined control sequence.
\Z ->\mathbb
{Z}
l.32 d$\Z
$
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 2.0.0 上的文档类别。文档编码或文档类别会造成影响吗?或者可能是文档语言设置?
谢谢!
答案1
正如 egreg 在评论中提到的,出现错误的原因是,定义的amsfonts
noramssymb
包均未\mathbb
加载。要强制 LyX 添加其中一个,您可以执行以下两项操作之一:
转到文档 --> 设置 --> LaTeX 前言并添加
\usepackage{amssymb}
或者
\usepackage{amsfonts}
转到文档 --> 设置 --> 数学选项。取消选中自动使用 AMS 数学包并检查使用 AMS 数学包,如下面的屏幕截图所示。LyX 现在将添加
\usepackage{amsmath} \usepackage{amssymb}
文件序言。
第一个是自动添加,只有当您通过 LyX GUI 使用某些功能时才会添加这些包。例如,如果您执行插入 --> 数学 --> AMS 对齐,
amsmath
则会添加该包,如果您通过工具栏上的数学字体按钮添加一些带有 Blackboard 粗体字样的文本 -- --amssymb
则会添加。