PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Font-Verständnisproblem mit XeTeX/LuaTeX



Dee
21-03-2016, 14:14
Hallo,

mein Anwendungsfall ist einfach: Ich habe ein LaTeX-Dokument, dass mit pdflatex übersetzt wird. Dort wird das Paket "charter" geladen. Der Wunsch der Anwender war, dass das Dokument auch mit xelatex und lualatex übersetzt werden kann, aber noch genauso ausschaut.

Leider kriege ich das nicht hin. Minimalbeispiel:


\documentclass{scrartcl}

\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\usepackage{charter}
\else
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{charter}
\fi

\begin{document}
\textrm{Normaler Text: äöüß} \\
\textbf{Fetter Text: äöüß} \\
\textit{Kursiver Text: äöüß}
\end{document}


Mit pdflatex sieht das wie gewünscht aus. Mit xelatex übersetzt es, aber jegliche Auszeichnung fehlt und als Schriftart wird Latin Modern benutzt (soweit die Anzeige im PDF-Reader stimmt). Wenn ich im xetex-Zweig oben das "charter" auskommentiere, ist es immer noch Latin Modern, aber die Auszeichnung stimmt. Ich habe es auch schon mit "\setmainfont{Charter}" versucht, aber das bringt bei mir nur ein "The font "Charter" cannot be found."

Als System setze ich Ubuntu 14.04 LTS mit TeX Live 2013 ein.

Ich freue mich über Hinweise, was ich falsch mache und wo ich nachlesen kann, wie es richtig geht.

Dee

u_fischer
21-03-2016, 16:12
Du brauchst eine Opentype-Version der Charterschrift (z.B. Charis SIL, oder andere freie Varianten: https://en.wikipedia.org/wiki/Bitstream_Charter).
Die type1-Schrift aus dem Charterpaket solltest du nur im Notfall mit xelatex benutzen, erstens ist da ggfs die Silbentrennung falsch, und da dir inputenc fehlt, funktionieren ohne Anpassung nicht alle Sonderzeichen.

Dee
21-03-2016, 16:36
Danke, Ulrike, für die Antwort!

Dann variiere ich meine Frage etwas: Ich möchte den Nutzern meiner LaTeX-Datei nicht zumuten, dass sie sich extra Schriften aus dem Netz laden müssen. Bei "pdflatex" installiere sie für Charter beispielsweise einfach ein bestimmtes Schriftpaket (ich weiß grad nicht welches). Gibt es für XeTeX eine ähnliche simple Lösung? Sprich, dass alles über die TeX-Distribution läuft und dennoch gut im Dokument aussieht (d.h. nicht bloß LatinModern)?

Viele Grüße
Dee

u_fischer
21-03-2016, 17:19
Dann musst du halt eine Schrift nutzen, die im TexSystem ist. http://www.ctan.org/topic/font-otf http://www.ctan.org/topic/font-ttf

klops
21-03-2016, 19:35
Beispielsweise XCharter gibt es als Type-1 mit Paket XCharter (pdflatex) oder als OTF für die Verwendung mit fontspec (lualatex oder xelatex).

Dee
21-03-2016, 21:29
Danke, Ulrike, für die Liste. Ist eine nette Übersicht.

XCharter habe ich auch gefunden, klops. Mit pdflatex geht das. Bei xelatex weiß ich nicht genau, wie ich die Schrift einbinde. Wenn ich setmainfont mit "XCharter" eingebe, kommt das obige "font not found". Ich habe mal "Bitstream Charter" eingegeben, das kompiliert, aber mit einem Fehler am Ende:


** WARNING ** Obsolete four arguments of "endchar" will be used for Type 1 "seac" operator.
** ERROR ** This font using the "seac" command for accented characters...

Output file removed.
)
Error 256 (driver return code) generating output;
file chartertest.pdf may not be valid.

Das ist ggf. das Problem, wieso man Charter nicht mit XeTeX nutzen sollte, was Ulrike oben erwähnte?

Ich habe es dann mit einer anderen Schrift probiert, z.B. \usepackage{paratype}. Da habe ich aber nicht herausgefunden, wie der Name für setmainfont heißt. Was ich aktuell mache: Ich suche das Linux-Paket, in dem paratype.sty vorkommt. Dann liste ich alle Dateien des Paketes auf und suche nach "paratype". So bin ich auf "PTSerif-Regular-tlf*" gestoßen, aber das funktionierte bisher mit keiner Kombination.

Gibt es da nen einfachen Trick, den Schriftname rauszufinden zu einem Paket, was ich unter pdftex mit \usepackage einbinde?

Gruß Dee

u_fischer
22-03-2016, 00:18
Aktualisiere dein System. In texlive 2015 funktioniert das hier tadellos:


\documentclass{article}
\usepackage{fontspec}
\setmainfont{XCharter}
\begin{document}
blub
\end{document}

Dee
22-03-2016, 07:44
Diese Lösung ist leider nicht möglich. Ich nutze mit Absicht eine LTS-Distribution, damit ich ein langzeitstabiles System habe. Damit einher geht leider auch, dass die verwendeten Programmversionen älter sind. XeTeX und LuaTeX sollten aber stabil genug sein, dass sie auch in TeX Live 2013 gut zu benutzen sind.

Wie oben geschrieben hänge ich nicht an Charter. Eine andere, „hübsche“ Schriftart wäre auch völlig okay.

Vielen Dank
Dee

Dee
22-03-2016, 08:32
So, Antwort selbst gefunden: http://tex.stackexchange.com/questions/12881/how-to-get-a-list-of-all-available-ttf-fonts-with-xetex

Mittels des Linux-Konsolentools "fc-list" konnte ich mir alle Schriften auflisten lassen. Bei denen steht dann auch der normale Name dabei, den man für "setmainfont" eingeben muss.

Vielen Dank für die Hilfe, Thema damit gelöst. :)

klops
22-03-2016, 08:45
Es sei darauf hingewiesen, dass LTS bei den LaTeX-Paketen der Linux-Distributionen i. d. R. ggf. auch langzeit-instabil bedeutet, da diese i. d. R. nicht einmal Bugfixes erhalten. Support für Probleme sollte man bei einer TL2013-Installation auch nicht mehr erwarten. Zumindest sollte man bei allen Fragen immer mit angeben, dass man eine au-Installation verwendet und gewillt ist, darin zu verharren.