Problem mit chemnum (bzw. psfrag) und Tex Live-Schriften

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Erdapfelfresse
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: So 11. Dez 2016, 13:05

Problem mit chemnum (bzw. psfrag) und Tex Live-Schriften

Beitrag von Erdapfelfresse »

Hallo Leute,

ich habe ein sehr spezielles Problem, bei dem ich hoffe, dass mir jemand behilflich sein kann. Ich benutze das Paket "chemnum", um meine Strukturformeln zu nummerieren. Das Paket arbeitet letzten Endes mit psfrag, um bestimmte Marker (TMP1 usw.) in EPS-Dateien zu ersetzen. Da als Schriftart von meinem Lehrstuhl Arial (ja, ich weiß, dass das Blödsinn ist) verlangt wird, habe ich für das gesamte Dokument Helvetica als Schriftart festgelegt.
Unter MiKTeX hat das alles immer wunderbar funktioniert. Ich habe nun aber aufgrund einiger anderer Dinge beschlossen, zu Tex Live zu wechseln und seitdem macht mir das Paket einen Riesenärger, den ich bis jetzt nicht wirklich ausmerzen konnte. Sowohl auf Windows 10, als auch auf Arch Linux tritt das Problem auf.
Nun zum Problem an sich: Sobald ich den \replacecmpd-Befehl in einem meiner Bilder nutze, werden Buchstaben aus den Bildern einfach nicht mehr dargestellt. Die verwendete Schriftart im Bild ist Arial, da die Bilder mit dem Programm "ChemDraw" erstellt werden. Interessanterweise tritt das Problem nicht mehr auf, wenn ich das Paket "helvet" deaktiviere. Es tritt ebenfalls nicht auf, sobald man den \replacecmpd-Befehl auskommentiert. Nur fehlt dann natürlich die Nummerierung.
Da beim Kompilieren immer die Meldung "Test-autopp.ps dvips: Font Helvetica used in file Testbild.eps is not in the mapping file." ausgegeben wird, tippe ich auf eine fehlerhafte Installation der Schriftarten. Das Seltsame ist nur, dass es funktioniert, sobald man das helvet-Paket nicht mehr benutzt.
\documentclass[a4paper,12pt]{scrartcl}

\usepackage[T1]{fontenc}

\usepackage[utf8]{inputenc}

\usepackage[ngerman]{babel}

\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\fontfamily{phv}\selectfont

\usepackage[version=3]{mhchem}

\usepackage[runs=2,crop=off]{auto-pst-pdf}

\usepackage{graphicx}

\usepackage{chemnum}
\setchemnum{replace-style = \fontsize{10}{12}}

\begin{document}

Es bleiben alle Buchstaben erhalten, wie sie im EPS-File gespeichert sind, solange der Befehl "\(\backslash\)replacecmpd" nicht benutzt wird. Allerdings fehlt dann die Nummerierung. Sobald er benutzt wird, verschwinden einige Buchstaben im Bild.

\begin{figure}[h]
\centering
\replacecmpd{Teststruktur}
\includegraphics[scale=1]{Testbild.eps}
\end{figure}


\end{document}

PS: wenn ich in dem Bild die Schriftart in den Molekülen verändere (Bsp: Times New Roman), funktioniert auch alles wunderbar.
Dateianhänge
Testbild_times.eps
Das ganze nochmal mit Times statt Arial
(15.31 KiB) 280-mal heruntergeladen
Testbild.eps
Das passende Bild dazu
(15.28 KiB) 295-mal heruntergeladen

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Das Grundproblem ist, dass dein Bild die in ihm benützte Schrift nicht einbettet, sondern nur auf Helvetica verweist. Und in texlive versucht dvips im Dokument die Schrift einzubetten, hat aber keine Ahnung, was es damit machen soll.

Du kannst versuchen, dvips mit der Option -u +builtin35 aufzurufen. Dann versucht dvips die Schrift nicht mehr einzubetten, aber Achtung: das gilt dann auch für das Helvet im Dokument.


Hintergrundinfo:
https://www.tug.org/pipermail/tex-live/ ... 32650.html
https://groups.google.com/forum/#!topic ... arFX8RMzdM

Erdapfelfresse
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: So 11. Dez 2016, 13:05

Beitrag von Erdapfelfresse »

Ok, danke für die Erklärung. :) Heißt das im Umkehrschluss, das MiKTeX mit EPS-Dateien anders umgeht als Tex Live? Ich habe es vorhin nämlich nochmal auf einem anderen Rechner mit MiKTeX-Installation versucht und dort klappt alles ohne Probleme.
Ist es denn möglich, Programme anzuweisen, gewisse Schriften einzubetten oder ist man da an das gebunden, was voreingestellt ist?

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Die dvips-Konfiguration in miktex ist anders, aber das kann man ändern. Deswegen habe ich ja vorgeschlagen, dvips mit `-u +builtin35 ` aufzurufen.

Gast

Beitrag von Gast »

Am Rande sei erwähnt, dass es auch Pakete wie chemfig gibt, mit denen man chemische Formeln direkt in LaTeX zeichnen kann. Das befreit einen vor Problemen mit nicht eingebetteten Fonts beim EPS-Export anderer Programme. Der Workflow wird eventuell auch angenehmer.

Gast

Beitrag von Gast »

Wenn tatsächlich nicht eingebettete Fonts das Problem sind, kann man diese eventuell nachträglich mit ghostscript in die EPS-Dateien einbetten. Dazu benötigt man natürlich den einzubettenden Font. Theroretisch sollte das dann mit:
ps2ps -dSAFER -dNOPLATFONTS -dEmbedAllFonts=true -dCompressFonts=true -dSubsetFonts=true -dEPSCrop Testbild.eps Testbild_with_fonts.eps
möglich sein. Das funktioniert aber nicht immer. Manchmal muss man auch Option -dNOPLATFONTS weglassen. Auf jeden Fall muss sie vor -dEmbedAllFonts=true stehen.

Oft funktioniert das aber auch nicht wie gewünscht.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Erinnert mich an http://tex.stackexchange.com/questions/ ... class-nih/

Dort gibt es zwar bis jetzt keine echte Antwort...
Clemens
Paketauthor

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

cgnieder hat geschrieben:Erinnert mich an http://tex.stackexchange.com/questions/ ... class-nih/

Dort gibt es zwar bis jetzt keine echte Antwort...
Ja, das ist das gleiche Problem. Nimbus ist ein Klon von Helvetica. Da die eps-Datei selbst keine Schrift enthält, muss der Viewer einen Ersatz suchen, und wenn das Dokument Nimbus lädt, nimmt es halt die Schrift, und da die nur teilweise eingebettet wurde, fehlen Buchstaben.

Xulua

Beitrag von Xulua »

Hallo!
Ich habe ziemlich genau das gleiche Problem wie der Threadersteller beschrieben hat. Ich nutze TexnicCenter 2.02 und TexLive 2016.
u_fischer hat geschrieben: Du kannst versuchen, dvips mit der Option -u +builtin35 aufzurufen.
Ich würde gern diesen Vorschlag umsetzen; leider habe ich keine Ahnung, wo ich das "hinschreiben" muss. Ich kann auch nirgends etwas dazu finden. Kann mir jemand helfen?

Danke!

Antworten