
我想製作一個包,其中包含我在所有問題集中定義的一堆命令。我遇到了一個問題,編譯器無法識別我定義的帶有參數的命令。這是一個無法編譯的簡單範例,我似乎無法找出原因。
這是我的樣式文件,恰當地命名為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 建議的那樣,更適合在數學模式中使用,以便獲得正常文本,而不是數學字體。
我的風格.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}
筆記
原則上最好有一個環境能夠實現字體切換和事後恢復。