Por que \rm no modo matemático funciona em alguns editores de texto e não em outros?

Por que \rm no modo matemático funciona em alguns editores de texto e não em outros?

Acabei de receber um .texarquivo de um colega meu e o arquivo contém vários \rmcomandos em modo matemático. Nós dois usamos Windows, mas ele está usando WinEdt e eu estou usando TeXmaker. No computador dele esse arquivo é compilado sem erros, mas no meu notebook recebo mensagens de erro dizendo \rmque é um comando indefinido. O que está acontecendo?

Muito obrigado.

Responder1

\rmnão está definido no formato látex. Algumas classes o definem para compatibilidade com LaTeX 2.09 (ou seja, documentos escritos antes de 1993). As classes Koma o definiram anteriormente com um aviso, mas versões mais recentes não o definem, então você receberá um erro se for usado.

Após 20 anos de depreciação, o scrartclautor, não sem razão, pensou que não deveria mais ser necessário.

O editor (winedt, texmaker, etc.) que você usa para escrever o arquivo não tem nenhuma influência sobre isso.

Responder2

O editor que você usa é irrelevante. O que importa é qual safra scrartclvocê usa. Até recentemente (junho de 2016), as classes de documentos do script KOMA -- scrartcl, scrreprt, e scrbook--tipo detolerou as instruções obsoletas de troca de fonte \rm, \bf, \it, etc., enquanto emitia muitas mensagens de aviso caso fossem encontradas. Em junho de 2016, entretanto, o suporte para essas diretivas nas classes KOMA-Script cessou totalmente.

Se você realmente, positivamente, absolutamentedeveuse \rme as outras instruções obsoletas de troca de fonte, você pode adicionar o seguinte código - que é retirado diretamente de article.cls- ao seu preâmbulo:

\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}

Observe que \sle \scsó funcionará no modo texto, masnãono modo matemático. Veresta postagempara mais informações sobre este assunto.


Um MWE completo:

insira a descrição da imagem aqui

\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}

informação relacionada