我想制作一个包含一堆我在所有问题集中定义的命令的包。我遇到了一个问题,编译器无法识别我定义的带有参数的命令。这是一个无法编译的愚蠢简单示例,我似乎找不到原因。
这是我的样式文件,恰当地命名mystyle.sty
:
\ProvidesPackage{mystyle}
\newcommand{\test}{\Huge}
\newcommand{\hding}[1]{#1\newline\normaltext}
mystyle.sty
其中有两个命令。 \test 只是使文本变大,并\hding
添加一个换行符并将字体恢复正常。我的愚蠢简单.tex
文件如下:
\documentclass{paper}
\usepackage{mystyle}
\begin{document}
Hello World!
%\hding{Hello World!} Hello World!
\test Hello World!
\end{document}
仅使用测试函数,一切都运行正常。但是,如果我尝试在\hding
未注释该函数的情况下进行编译,编译器会向我发出以下错误:
! Undefined control sequence.
\hding #1->#1\newline \normaltext
l.7 \hding{Hello World!}
Hello World!
发生了什么事?我不明白什么?
答案1
最有可能的是,该\normaltext
命令应该是\normalsize
,因为OP首先将字体大小改为 ,\Huge
然后\hding
应该将其恢复为正常字体,这可以理解为恢复原始字体大小,这可以通过 来实现\normalsize
。
据我所知,没有\normaltext
命令。
\textnormal
正如 ChrisS 所建议的,最好在数学模式下使用,以便获得普通文本,而不是数学字体。
mystyle.sty
\ProvidesPackage{mystyle}
\newcommand{\test}{\Huge}
\newcommand{\hding}[1]{#1\newline\normalsize}%
主文件
\documentclass{paper}
\usepackage{mystyle}
\begin{document}
\[\textnormal{Hello World!}\]
\[Hello World\]
Hello World!
\hding{Hello World!} Hello World!
Before \test Afterwards: Hello World!
\end{document}
笔记
原则上,最好有一个环境来实现字体的切换以及之后的恢复。