Eu configurei um documento para mostrar uma palavra de uma maneira específica. Também usei o pacote times para definir a fonte do documento conforme mostrado
\documentclass[a4paper,11pt,openany,oneside]{sphinxmanual}
\usepackage[T1}{fontenc}
\usepackage[english]{babel}
\usepackage{times}
\usepackage{color}
\definecolor{myred}{RGB}{165,0,33}
\DeclareRobustCommand\accuroam{%
\usefont{OT1}{cmr}{m}{n}Accu%
\usefont{OT1}{cmss}{m}{n}\textcolor{myred}{ROAM}
}%
\begin{document}
...
\end{document}
Tudo isso parece funcionar até que o comando \accuroam
seja encontrado. Em seguida, ele altera o texto seguinte para cmss peso normal (igual ao ROAM no \accuroam).
Como posso corrigir isso para que apenas a palavra seja alterada e não o resto do texto.
Observação: atualmente uso o pdflatex como construtor e ainda não consigo aproveitar o xelatex.
Qualquer ajuda será apreciada.
Responder1
Não tenho certeza se você deseja mudar para Computer Modern, especialmente se a fonte principal do documento for Times.
O problema é, como já foi dito, que \usefont...
diz ao TeX para usar a fonte escolhida a partir daquele momento (respeitando o agrupamento).
Minha sugestão é
\DeclareRobustCommand\accuroam{%
\textnormal{Accu\color{myred}\sffamily ROAM}%
}
Com \textnormal
você escolhe a fonte principal do documento (no tamanho atual); dentro dele você pode alterar a cor e a família da fonte; na chave de fechamento, \sffamily
encerrará seu escopo.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{mathptmx}
\usepackage{color}
\definecolor{myred}{RGB}{165,0,33}
\DeclareRobustCommand\accuroam{%
\textnormal{Accu\color{myred}\sffamily ROAM}%
}
\begin{document}
We describe \accuroam{} which is a very bright idea.
\end{document}
Responder2
Os comandos de mudança de fonte sãotrocarcomandos. Ou seja, eles se aplicam a todo o conteúdo seguinte até que outra opção seja encontrada ou o grupo termine.
Corrija o problema colocando cada fonte especial dentro de um grupo com o texto que deve ser estilizado. Também adicionei um final %
à linha que contém o texto em vermelho para evitar espaços falsos na saída:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{mathptmx} % `times' is obsolete
\usepackage{color}
\definecolor{myred}{RGB}{165,0,33}
\DeclareRobustCommand\accuroam{%
{\usefont{OT1}{cmr}{m}{n}Accu}%
{\usefont{OT1}{cmss}{m}{n}\textcolor{myred}{ROAM}}%
}%
\begin{document}
Test\dots \accuroam{}\dots Test.
\end{document}
Observe também que otimes
pacote está obsoleto. Alternativas mais recentes são asmathptmx
pacote ou newtxtext
/ newtxmath
.
Responder3
Não vejo razão para voltar para a codificação OT1, já que você está usando T1 de qualquer maneira:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{mathptmx}% `times' is obsolete
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\usepackage{color}
\definecolor{myred}{RGB}{165,0,33}
\DeclareRobustCommand\accuroam{%
{%
\fontencoding{T1}%
\fontfamily{cmr}%
\fontseries{m}%
\fontshape{n}%
\selectfont Accu%
\fontfamily{cmss}%
\selectfont\textcolor{myred}{ROAM}%
}%
}%
\begin{document}
Test\dots \accuroam{}\dots Test.
\end{document}
Usei comandos de especificação de fonte mais longos (em vez de \usefont...
) apenas para deixar claro o que está acontecendo. Observe que a segunda opção requer apenas uma especificação de família porque a primeira opção já garante que a codificação, forma e série estão corretas.