Seite 1 von 1

chemfig und Schriftarten/Schriftstile bzw. Schriftgröße

Verfasst: So 14. Okt 2012, 00:25
von dieg0
Hi,

ich benutze das Paket chemfig, um Strukturformeln zu zeichnen. Ich habe ein bisschen mit möglichen Stilen der Strukturformeln herumprobiert und bspw. Bindungslänge und Doppelbindungsabstand angepasst. Mit \setatomsep{1.3em} habe ich nun kleinere Bindungslängen (2em sind so weit ich weiß Standard) und nun passt mir vor allem die Schriftgröße nicht. Die Atomsymbole sind nun zu groß im Verhältnis zu der Größe der Strukturformeln. Und ich finde keine Möglichkeit, die Schriftgröße global für chemfig-Formeln einzustellen. Genauso scheitere ich an einer Möglichkeit, die Buchstaben nicht kursiv darzustellen.
Vielleicht habt ihr eine Lösung?

Hier ist noch ein Minimalbeispiel:
\documentclass[a4paper,parskip,toc=bib,automark]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[ngerman]{translator}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb,amstext}
\usepackage{chemmacros}
\usepackage{chemfig}
	\setatomsep{1.3em}
	\setdoublesep{3pt}
	\setbondstyle{semithick}
	\setcrambond{3pt}{0.5pt}{1pt}
	\setchemrel{2pt}{0.7em}{10em}
	\setarrowdefault{,1.1,}

\begin{document}
\schemestart
\chemfig{*6(-=-(-[:30]-[:-30]N(-[6]H)(-[:30](=[2]O)-[:-30]-[:30]N(-[2]-[1])(-[:-30](=[6]O)-[:30]OH)))=-=)}
\arrow{<=>[$-$\ch{CO2}]}
\chemfig{*6(-=-(-[:30]-[:-30]N(-[6]H)(-[:30](=[2]O)-[:-30]-[:30]N(-[2]-[1])(-[:-30]H)))=-=)}
\schemestop
\end{document}

Viele Grüße,
Diego

Verfasst: So 14. Okt 2012, 11:01
von cgnieder
Ich weiß nicht, was Du mir kursiven Buchstaben meinst, denn mit Deinem Beispiel erhalte ich keine kursiven Buchstaben.

Da Du chemmacros verwendest, magst Du vielleicht das folgende machen:
\makeatletter
\def\CF@node@content{%
  \expandafter\expandafter\expandafter
    \printatom\expandafter\expandafter\expandafter
      {\csname atom@\number\CF@cnt@atomnumber\endcsname}%
    \ensuremath{\CF@node@strut}%
}
\makeatother
\renewcommand*\printatom[1]{\ch{#1}}
Damit würde chemfig den chemmacros-Befehl \ch zum Darstellen der Atome verwenden. Du könntest dann auch
\renewcommand*\printatom[1]{\ch[format=\small]{#1}}
sagen, was alle chemfig Atome klein darstellen würde (unabhängig von der umgebenden Schriftgröße!)

Die Variante ohne chemmacros wäre
\renewcommand*\printatom[1]{\small\ensuremath{\mathrm{#1}}}
dann kannst Du auch den Code zwischen \makeatletter und \makeatother weglassen. Auch hier ist die Schriftgröße dann global geändert und unabhängig von der umgebenden Schriftgröße!

Grüße

PS der Code stammt z.T. von hier

Verfasst: So 14. Okt 2012, 14:57
von dieg0
Oh, Entschuldigung. Kursiv ist da nichts. Ich meinte natürlich, dass ich die serifenlose Variante haben möchte. Deshalb habe ich jetzt \mathsf statt \mathrm genommen:
\renewcommand*\printatom[1]{\small\ensuremath{\mathsf{#1}}}
Wen es interssiert: So sehen jetzt meine Einstellungen für chemfig aus. Keine Serifen finde ich persönlich schöner in diesem einen Fall.
\usepackage{chemfig}						% Strukturformeln
	\setatomsep{1.3em}				% Bindungslänge
	\setbondoffset{1.5pt}				% Abstand Bindung - Atom
	\setdoublesep{2.5pt}				% Doppelbindungsabstand
	\setbondstyle{semithick}			% Liniendicke
	\setcrambond{3pt}{0.5pt}{1pt}		% Keile in Keilstrichformeln
	\setchemrel{2pt}{0.7em}{10em}	% \chemrel-Pfeil: Vertikalabstand, Horizontalabstand, Länge
	\setarrowdefault{,1.1,}			% \arrow: [[angle,Länge,style]
\renewcommand*\printatom[1]{\small\ensuremath{\mathsf{#1}}}
Mal noch eine Zusatzfrage: Wie könnte man eine komplett andere Schriftart nur für chemfig einstellen? Also z. B. Helvetica, auch wenn das nicht die eingestellte serifenlose Schrift für das Dokument ist.

Schonmal Danke, für die bisherige Antwort. Das war genau das, was ich gebraucht habe. :D

Grüße,
Diego