PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Griechische Großbuchstaben serifenlos, nicht kursiv



bumberle
05-08-2009, 10:54
Hallo an alle!

Ich habe folgendes Problem: Text und Formeln im Text sollen serifenbehaftet sein, dagegen sollen Bildunterschriften und Bildbeschriftungen (jeweils mit Formeln) serifenlos sein.
Klappt auch fast perfekt, nur macht das Paket sansmath die griechischen Großbuchstaben zwar serifenlos, aber auch kursiv (italic bzw. slanted), was in meinen Augen unschön ist. Außerdem ist das Latex-Standard-Verhalten ja die griechischen Großbuchstaben nicht kursiv zu setzen.
Frage: Wo muss ich in der sansmath.sty-Datei rumpfuschen, damit die griechischen Großbuchstaben serifenlos und normal gesetzt werden (nicht kursiv)? Es muss möglich sein, da es das Paket sfmath hinbekommt. Leider macht das Paket die Änderung global, es gibt leider keine sfmath-Umgebung. Habe schon einige Zeit versuch, die beiden sty-Dateien zu verheiraten...

Vielen Dank für Hinweise, bumberle

PS: Bitte problembezogene Hinweise, keine Umdefinition des Problems ("Mach die Formel doch mit Serifen, sieht besser aus ...").
PPS: Das upgreek-Paket setzt die Buchstaben wieder anders (auch unschön), außerdem müsste ich dann alle Grafiken nachträglich bearbeiten
PPPS: Ach ja, das Minimalbeispiel. Man beachte die Form des Omegas:



\documentclass[a4paper,12pt]{scrreprt}
\usepackage[utf8]{inputenc} % Verwende UTF8-Kodierung zur
% Arbeit unter Linux UND Windows
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage{sansmath}
\usepackage{caption}
\DeclareCaptionFont{sansmath}{\sansmath}
\captionsetup{font=sf, textfont=sansmath}
\newenvironment{sffigure}[1][]{\begin{figure}[#1]\sf\sansmath}{\end{figure}}

\begin{document}
Hier kommt eine Formel, die serifenbehaftet sein soll:
$$ \phi = \Omega\cdot t $$

\begin{sffigure}[htbp]
\centering
\setlength\unitlength{1cm}
\begin{picture}(5,5)
\put(0,0){\framebox(5,5){\parbox{5cm}%
{\centering Hier könnte ein Bild sein.\\
Beschriftungen auch hier serifenlos:\\
$\phi = \Omega\cdot t$}}}
\end{picture}
\caption{Die Formel soll jetzt serifenlos sein:
$\phi = \Omega\cdot t$}
\end{sffigure}

\end{document}

u_fischer
05-08-2009, 12:30
Das ist \sansmath schuld, es ruft zwischendurch mal \mathsfsl auf. Du kannst entweder lokal \mathrm{\Omega} benutzen, oder \mathversion{sans} (dann musst du \mathsfbf für bold nehmen) oder du überschreibst die Definition für \mathsfsl:


\documentclass[a4paper,12pt]{scrreprt}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage{sansmath}
%aktivieren wenn \mathsfsl ganz überschrieben werden soll.
%\DeclareMathAlphabet{\mathsfsl}{\sansmathencoding }{\sfdefault}{m}{n}
\begin{document}
{\sansmath $\Omega$}

{\mathversion{sans} $\Omega \mathbf{abc}$}

{\mathversion{sans} $\Omega \mathsfbf{abc}$}

\end{document}

bumberle
05-08-2009, 13:53
Hallo Ulrike, vielen Dank für die schnelle Antwort!


Das lokale \mathrm{\Omega} bringt das gewünschte Aussehen! Allerdings müsste ich jetzt alle schon erstellten Grafiken nochmal durchgehen und ändern. Das versuche ich zu vermeiden. Aber wenn es die einzige Lösung ist, werde ich mal mein Gehirn ausschalten und loslegen.
Die \DeclareMathAlphabet-Option stellt leider alle Buchstaben gerade, also auch das "t", das eigentlich kursiv bleiben sollte.
Die \mathversion{sans}-Option hingegen lässt die übrigen Zeichen (außer Omega) kursiv (super), jedoch mit Serifen (blöd).


Wie schafft es denn das sfmath-Paket, die griechischen Großbuchstaben gesondert zu behandeln? Gibt es weitere Hinweise zur Lösung des Problems (bevor ich jetzt alle Omegas in \mathrm{Omega} verwandeln muss)?

bumberle
05-08-2009, 14:39
Ha, habe nun eine halbwegs akzeptable Lösung zusammengebastelt. Die basiert auf Ulrikes mathrm{}-Vorschlag. Damit ich nicht jedes \Omega einzeln ersetzen muss, definiere ich (nur in der eigenen sffigure-Umgebung) den Befehl \Omega um:


\let\OmegaOLD\Omega
\newenvironment{sffigure}[1][]{\begin{figure}[#1]\sf\sansmath\renewcommand{\Omega}{\mathrm{\OmegaOL D}}}{\end{figure}}

Dadurch wird stets in der sffigure-Umgebung (also sowohl im Bild selbst, als auch in der Bildunterschrift) aus einem \Omega ein \mathrm{\Omega}. Bei anderen griechischen Großbuchstaben muss man weitere Umdefinitionen hinzufügen, aber das ganze dann nur einmal, nicht in jedem Bild.
Nicht mega-elegant, aber zweckmäßig...

bischi
05-08-2009, 14:41
So was?

\let\myOmega\Omega
\renewcommand{\Omega}{\mathrm{\myOmega}}

MfG Bischi

PS: Mist - deine Lösung ist besser - hab deine Beschreibung zu wenig gut gelesen :D

bumberle
05-08-2009, 14:42
Hallo Bischi! Ganz genau, vielen Dank für deinen Einsatz, ich bin eben auch drauf gekommen. Aber lieber zwei, als keiner :)