
Я только что получил .tex
файл от коллеги, и в файле есть несколько \rm
команд в математическом режиме. Мы оба используем Windows, но он использует WinEdt, а я TeXmaker. На его компьютере этот файл компилируется без ошибок, но на моем ноутбуке я получаю сообщения об ошибках, говорящие о том, \rm
что это неопределенная команда. Что происходит?
Большое спасибо.
решение1
\rm
не определен в формате latex. Некоторые классы определяют его для совместимости с LaTeX 2.09 (то есть, документами, написанными до 1993 года). Классы Koma ранее определяли его с предупреждением, но более поздние выпуски не определяют его, поэтому вы получите ошибку, если он используется.
После 20 лет устаревания scrartcl
автор не без оснований полагал, что он больше не нужен.
Редактор (winedt, texmaker и т. д.), который вы используете для написания файла, не имеет к этому никакого отношения.
решение2
Редактор, который вы используете, не имеет значения. Важно то, какой винтаж scrartcl
вы используете. До недавнего времени (июнь 2016 г.) классы документов KOMA-script -- scrartcl
, scrreprt
, иscrbook
--вродетерпел устаревшие инструкции переключения шрифтов \rm
, \bf
, \it
, и т. д., выдавая при этом обширные предупреждающие сообщения, если они встречались. Однако в июне 2016 года поддержка этих директив в классах KOMA-Script полностью прекратилась.
Если вы действительно, положительно, абсолютнодолжен\rm
и другие устаревшие инструкции по переключению шрифтов, вы можете добавить следующий код (который взят напрямую ) article.cls
в свою преамбулу:
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
Обратите внимание, что \sl
и\sc
будет работать только в текстовом режиме, нонетв математическом режиме. Смотретьэта публикациядля получения более подробной информации по этой теме.
Полная версия MWE:
\documentclass{scrartcl}
% The following code is from the file `article.cls`
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\begin{document}
$a$ $\it a$ $\rm a$ $\bf a$ $\sf a$ $\tt a$
\end{document}