
Я хочу создать пакет, который содержит кучу команд, которые я определяю во всех моих наборах задач. Я сталкиваюсь с проблемой, когда компилятор не распознает команды, которые я определяю, и у которых есть аргумент. Вот простой до безобразия пример того, что не компилируется, и я не могу понять, почему.
Это мой файл стиля, названный так вполне уместно 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, скорее используется в математическом режиме, чтобы получить обычный текст, а не математический шрифт.
мойстиль.стиль
\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}
Примечание
В принципе, лучше было бы создать среду для переключения шрифтов и последующего восстановления.