Ich habe ein Dokument so eingerichtet, dass ein Wort auf eine bestimmte Weise angezeigt wird. Außerdem habe ich das Times-Paket verwendet, um die Dokumentschriftart wie gezeigt einzustellen
\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}
Das alles scheint zu funktionieren, bis der Befehl \accuroam
auftritt. Dann ändert er den darauf folgenden Text in die normale CMS-Stärke (dasselbe wie ROAM in \accuroam).
Wie kann ich das beheben, sodass nur das Wort geändert wird und nicht der Rest des Textes?
Hinweis: Ich verwende derzeit pdflatex als Builder und kann xelatex noch nicht nutzen.
Jede Hilfe ist willkommen.
Antwort1
Ich bin nicht sicher, ob Sie zu Computer Modern wechseln möchten, insbesondere wenn die Hauptschriftart des Dokuments Times ist.
Das Problem besteht, wie bereits gesagt, darin, dass \usefont...
TeX dadurch angewiesen wird, von diesem Punkt an die ausgewählte Schriftart zu verwenden (unter Beachtung der Gruppierung).
Mein Vorschlag ist
\DeclareRobustCommand\accuroam{%
\textnormal{Accu\color{myred}\sffamily ROAM}%
}
Mit \textnormal
wählen Sie die Hauptschriftart des Dokuments (in der aktuellen Größe). Darin können Sie Farbe und Schriftfamilie ändern. Mit der schließenden Klammer \sffamily
wird der Bereich beendet.
\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}
Antwort2
Die Befehle zum Ändern der Schriftart sindschaltenBefehle. Das heißt, sie gelten für alle folgenden Inhalte, bis ein weiterer Schalter angetroffen wird oder die Gruppe endet.
Beheben Sie das Problem, indem Sie jede Sonderschriftart in eine Gruppe mit dem Text setzen, den sie formatieren soll. Ich habe außerdem der %
Zeile mit dem roten Text ein Ende hinzugefügt, um unpassende Leerzeichen in der Ausgabe zu vermeiden:
\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}
Beachten Sie auch, dass dietimes
Paket ist veraltet. Neuere Alternativen sind entweder dasmathptmx
Paket oder newtxtext
/ newtxmath
.
Antwort3
Ich sehe keinen Grund, zur OT1-Kodierung zurückzukehren, da Sie ohnehin T1 verwenden:
\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}
Ich habe die längeren Befehle zur Schriftartenspezifikation (anstelle von \usefont...
) verwendet, um deutlich zu machen, was passiert. Beachten Sie, dass der zweite Schalter nur eine Familienspezifikation erfordert, da der erste Schalter bereits sicherstellt, dass die Kodierung, Form und Serie korrekt sind.