Ich möchte gerne, wie es sich gehört Vektoren fett drucken. Dazu habe ich die cmmib Schrift geladen, die "bold math italic" zur Verfügung stellt. Leider kann ich mein \vec Makro nicht einfach wie unten definieren, sondern muss unterscheiden, was für ein Zeichen reinkommt. Für lateinische Buchstaben funktioniert alles wie gewollt nur für griechische Buchstaben versagt mein Ansatz leider.

Wie muss ich das \vec-Makro ändern, damit es die Ausgabe erezugt die bei "Gewünscht" zu sehen ist?

Open in writeLaTeX
\newfam\mibfam
\font\tenmib=cmmib10 \textfont\mibfam=\tenmib
\font\sevenmib=cmmib10 scaled 700 \scriptfont\mibfam=\sevenmib
\font\fivemib=cmmib10 scaled 500 \scriptscriptfont\mibfam=\fivemib
\def\mib{\fam\mibfam\tenmib}
\def\vec#1{{\mib #1}}

So sieht es aus:
$\vec{A}_{\vec{A}_{\vec{A}}}$
$\vec{a}_{\vec{a}_{\vec{a}}}$
$\vec{\xi}_{\vec{\xi}_{\vec{\xi}}}$
$\vec{\Xi}_{\vec{\Xi}_{\vec{\Xi}}}$

Gew\"unscht:
$\vec{A}_{\vec{A}_{\vec{A}}}$
$\vec{a}_{\vec{a}_{\vec{a}}}$
${\mathchar"0818}_{{\mathchar"0818}_{\mathchar"0818}}$% \mibfam is 8
${\bf\Xi}_{{\bf\Xi}_{\bf\Xi}}$

\bye

alt text

gefragt 24 Mai '14, 14:20

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 25 Mai '14, 21:27

@Henri

Hast Du Dir schonmal die Ausgabe von showlists angesehen? TeX wechselt bei xi von fam8 zu fam1. Vielleicht liegt da der Hase im Pfeffer.

(27 Mai '14, 12:15) ctansearch

@Henri Ich weiß nicht, wie wichtig Dir die bestimmte Schriftart ist, aber mit cmmi10 siehst's für mich ok aus.

(27 Mai '14, 20:52) ctansearch

@ctansearch Du hast Recht, mit cmmi10 stimmen die \xi überein. Allerdings möchte ich ja gerne alles fett drucken, weil sich das für Vektoren so gehört, deshalb muss es \cmmib10 sein.

(27 Mai '14, 20:59) Henri

@Henri Auf Seite 164 sagt Knuth im TexBook, daß PlainTeX Befehle wie \rm und \bf nicht auf griechische Kleinbuchstaben anwendet.

(27 Mai '14, 23:24) ctansearch

Die Definition von \Xi lautet: \mathchardef\Xi="7004. Das bedeutet, dass für \Xi das Zeichen mit der Codeposition 0x04 aus der Klasse 7 = Variablen und der Familie 0 (roman) verwendet wird. Aufgrund der Klasse 7 wird immer dann, wenn \fam im Bereich 0–15 liegt, die angegebene Familie ignoriert und stattdessen \fam verwendet. Am Anfang einer Matheumgebung ist \fam immer -1. Daher wird tatsächlich das Zeichen mit Codeposition 0x04 aus der Familie 0 verwendet. Das ist also das aufrechte Xi aus cmr. Ein \bf ändert \fam auf 6, so dass man stattdessen das aufrechte Xi aus cmbx erhält. Damit entspricht also:

Open in writeLaTeX
$\Xi\bf\Xi$

letztlich einem

Open in writeLaTeX
$\mathchar "4\mathchar "604$

Mit Deiner Definition von \vec wird hingegen bereits am Anfang \fam auf 8 gesetzt. Damit entspricht

Open in writeLaTeX
$\vec{\Xi}$

einem

Open in writeLaTeX
$\matchar "804$

Es wird also das Zeichen 4 aus cmmib verwendet. Das ist ein fettes, kursives Xi, wie man auch mit

Open in writeLaTeX
\tenmib\char "4

feststellen kann.

Wenn Du willst, dass \vec zu einem aufrechten, fetten Xi führt, also zu \mathchar "604, dann musst Du \Xi innerhalb von \vec umdefinieren, beispielsweise:

Open in writeLaTeX
\def\vec#1{{\mib\mathchardef\Xi="604 #1}}

Allerdings wird dann ein

Open in writeLaTeX
$\vec{a_{\rm\Xi}}$

noch immer ein fettes, aufrechtes Xi liefern,

Bei den kleinen griechischen Buchstaben liegt die Sache etwas anders. Diese sind in cmr nicht enthalten. Deshalb sind sie von vornherein nicht mit Klasse 7, sondern mit Klasse 0 (und Familie 1 = cmmi) definiert. Das bedeutet, dass die aktuelle Einstellung von \fam keinen Einfluss darauf hat, aus welchem Font sie verwendet werden. Dies entspricht also letztlich dem, was ich bereits für den Fall erklärt habe, dass man \Xi innerhalb von \vec umdefinieren würde. Um jedoch fette kleine griechische Buchstaben durch \vec zu erhalten, wäre die Lösung dieselbe wie für \Xi mit demselben Nachteil.

Die plainTeX-Erweiterung bsymbols geht einen etwas anderen Weg. Dort werden Befehle wie \bfXi und \bfxi definiert. Analog dazu könntest Du einfach \vecXi und \vecxi etc. definieren, die Du dann natürlich für Vektoren auch verwenden müsstest.

Permanenter link

beantwortet 05 Sep '14, 09:53

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 06 Sep '14, 11:05

Ich weiß, die Frage ist schon älter. Da sie aber noch keine Antwort hatte, habe ich mir erlaubt, mal mein verstaubtes Wissen über Zeichen im Mathemodus herauszukramen und eine Erklärung für die Problematik zu versuchen. Gaaaanz tief hinunter gestiegen bin ich nicht, habe also den kompletten Aufbau der math codes mit den Sonderbedeutungen einiger Klassen etc. nicht erklärt. Das kann man alles im TeXbook nachlesen.

(05 Sep '14, 10:11) gast3
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×76
×75
×22
×1

gestellte Frage: 24 Mai '14, 14:20

Frage wurde gesehen: 10,778 Mal

zuletzt geändert: 06 Sep '14, 11:05