
Acabei de receber um .tex
arquivo de um colega meu e o arquivo contém vários \rm
comandos 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 \rm
que é um comando indefinido. O que está acontecendo?
Muito obrigado.
Responder1
\rm
nã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 scrartcl
autor, 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 scrartcl
você 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 \rm
e 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 \sl
e \sc
só funcionará no modo texto, masnãono modo matemático. Veresta postagempara mais informações sobre este assunto.
Um MWE completo:
\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}