Почему \rm в математическом режиме работает в некоторых текстовых редакторах, а в других — нет?

Почему \rm в математическом режиме работает в некоторых текстовых редакторах, а в других — нет?

Я только что получил .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}

Связанный контент