Seite 1 von 1

Anführungszeichen mit \ttfamily und XeLaTex

Verfasst: Di 2. Feb 2016, 16:55
von MoonKid
Ich versuche zu verstehen, was hier passiert. Komme aber nicht dahinter.
\documentclass{article}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\begin{document}
\begin{ttfamily}
``care''\\
"health"
\end{ttfamily}

``care''\\
"health"
\end{document}
Ich nutze vim als Editor. Der Konvertiert bei der Eingabe automatisch die Anführungszeichen. Öffenende macht er mit zwei Backticks (Gravis) und schließende mit zwei Hochkomma (Apostroph). Zu sehen ist das in dem Code oben beim ersten und dritten Wort.

Das wird normalerweise von der XeTeX-Umgebung entsprechend der Spracheinstellungen korrekt interpretiert und in passende Anführungszeichen im PDF umgesetzt. Innerhalb einer \ttfamily-Umgebung scheint diese Regel aber nicht zu gelten. Die Anführungszeichen als konkretes Zeichen (echtes Anführungszeichen) in den tex-code einzugeben ist evtl. eine Lösung. Da bin ich mir aber nicht sicher.

Was wäre ein "eleganter" und im Sinne des Erfinders sinnvoller Weg?

XeTeX ist ja dazu da, idR die Zeichen im Code so zu interpretieren, wie sie sind. Deswegen wäre es wahrscheinlich XeTeX-ig, sie tatsächlich so zu schreiben.

Wäre das eine "Lösung"?

Wie würde ich diese vim-Anführungszeichen-Konvertierung ausschalten?

Verfasst: Di 2. Feb 2016, 17:45
von Johannes_B
Schau mal auf deiner Tastatur, was du so zur Verfügung hast. Öffnende und schließende Anführungszeichen gibt es da nicht.

Wie du das bei dem plugin Ausschalten kannst, weiß ich allerdings nicht. Ich nut vanilla vim.

Verfasst: Di 2. Feb 2016, 20:42
von MoonKid
Johannes_B hat geschrieben:Schau mal auf deiner Tastatur, was du so zur Verfügung hast. Öffnende und schließende Anführungszeichen gibt es da nicht.
Schon klar. Aber es scheint eine Abhängigkeit von ttfamily zu bestehen. Also die Ursache dieses Verhaltens ist mir noch nicht klar.
Johannes_B hat geschrieben:Wie du das bei dem plugin Ausschalten kannst, weiß ich allerdings nicht. Ich nut vanilla vim.
Lösung hab ich in der FAQ gefunden.

Verfasst: Mi 3. Feb 2016, 00:07
von u_fischer
bei ttfamily sind die TeX-ligaturen standrardmäßig nicht eingeschaltet. Das musst du schon selbst machen.
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
\setmonofont[Ligatures=TeX]{Latin Modern Mono}
\begin{document}
{\ttfamily
``care''\\
"health"}

``care''\\
"health"
\end{document}

Verfasst: Mi 3. Feb 2016, 02:15
von MoonKid
Ah das sind also Ligaturen? Ja, jetzt ergibt es Sinn.
Scheinbar ist bei typewriter so einiges deaktivert (z.B. Silbentrennung)?

Kann man die Ligaturen auch einschalten ohne explizit einen Font zu setzen? Bei dem hier friert er leider ein:
\setmonofont[Ligatures=TeX]{\ttdefault}

Verfasst: Mi 3. Feb 2016, 08:13
von Johannes_B
Latin Modern Mono ist ttdefault bei Verwendung von fontspec.

Verfasst: Mi 3. Feb 2016, 10:24
von u_fischer
MoonKid hat geschrieben:Ah das sind also Ligaturen?
Ziemlich spezielle, tex-spezifische Ligaturen.

Scheinbar ist bei typewriter so einiges deaktivert (z.B. Silbentrennung)?
Ja, die Default-fd-Datei schaltet die ab, aber nach \setmonofont sollte es eigentlich funktionieren.
Kann man die Ligaturen auch einschalten ohne explizit einen Font zu setzen? Bei dem hier friert er leider ein:
\setmonofont[Ligatures=TeX]{\ttdefault}
\ttdefault ist in dem Moment lmtt und sowieso kein Name, den man in \setXXXfont benutzen kann. Warum willst du die Schrift nicht setzen?