Open in Online-Editor
\documentclass{scrartcl}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\begin{document}
``test''
\end{document}

Wenn ich in vim die Anführungszeichen-Taste drücke, erzeugt er im Code die doppelten Backticks und doppelten Hochkommas. Das wird im PDF dann ein hohe Anführungszeichen übersetzt. Leider nicht die deutsche Variante (beginnendes Anführungszeichen unten), obwohl deutsche Sprache eingestellt ist.

Auch möchte ich keine Makros/Kommandos dafür verwenden müssen.

Was mach ich falsch?

Die Suche ergibt leider nur viele alte Beispiele mit babel und LaTeX.

gefragt 26 Feb, 05:22

MoonKid's gravatar image

MoonKid
50211024
Akzeptiert: 63%

bearbeitet 26 Feb, 07:11

1

"Deutsche" Anführungszeichen würdest du entweder durch direkte Eingabe der Unicode-Zeichen erhalten oder durch ,,'', alternativ kannst du auch das Paket csquotes benutzen. Empfehlen würde ich letzteres, da kannst du durch ändern der Paketeinstellungen alle Anführungszeichen im Text auf einen Schlag durch Guillements austauschen (oder sonst was machen) falls nötig.

(26 Feb, 05:52) NobbZ

csquotes hatte ich in den default-Einstellungen probiert, aber zeigte so keine Reaktion. Der Hinweis mit ,,'' deutet aber mehr darauf hin, dass es ein Problem mit vim-latexsuite ist. Mir war nicht bewusst, dass es einen Unterschied zwischen ,,'' und ``'' gibt.

(26 Feb, 06:34) MoonKid
2

''` hat keine Intelligenz, ausser dass entsprechende Ligaturen erzeugt werden. Das Paket `csquotes` stellt einfach nur das Makro `\enquote{}` zur Verfügung, auf die Verwendung von''` hat das natürlich keinen Einfluss.

(26 Feb, 06:52) NobbZ

Die Ersetzung der Gänsefüßchen durch `` bzw. '' wird durch die Vim-LaTeX-Suite verursacht. Soll stattdessen eine Ersetzung durch die Befehle für deutsche Anführungszeichen erfolgen, so müssen in die .vimrc-Datei folgende Zeilen eingetragen werden:

Open in Online-Editor
let g:Tex_SmartQuoteOpen = ',,'
let g:Tex_SmartQuoteClose = '``'

Will man die Ersetzung hingegen ganz abschalten, so muss man dort

Open in Online-Editor
let g:Tex_SmartKeyQuote = 0

eingeben.

Permanenter link

beantwortet 26 Feb, 16:44

Cletus's gravatar image

Cletus
995126

Sehr schön. Dabei fällt mir allerdings auf, wenn ich XeTeX verwende, kann ich ja auf die Ligaturen verzichten und gleich die echten Anführungszeichen verwenden. '„' und '“'

(27 Feb, 05:38) MoonKid

@MoonKid: Es bietet sich dann erst recht an, csquotes zu verwenden, weil Du Dich dann mit der Verwendung von und noch nicht darauf festlegen musst, dass die auch so ausgegeben werden (siehe beispielsweise das vorletzte Beispiel in meiner Antwort) und außerdem die weiteren Vorteile des Pakets nutzen kannst.

(27 Feb, 06:03) saputello
1

@Moonkid: echte Anführungszeichen kannst du auch mit pdflatex benutzen (mit und ohne csquotes). Die Ligaturen werden nicht benutzt, weil die Engine mit den echten Zeichen nicht umgehen kann, sondern weil sie mit normalen Tastaturen leicht einzugeben sind.

(27 Feb, 06:48) Ulrike Fischer

In Ergänzung zu Cletus' schöner Antwort sei angeregt, vim statt auf sprachabhängiger Mehrzeichen-Sequenzen für die Anführungszeichen auf Einzelzeichen zu konfigurieren. Wenn man dabei Zeichen verwendet, die TeX nicht anderweitig auswertet, kann man diese Platzhalterzeichen dann von csquotes als echte Anführungszeichen auswerten lassen. Lässt man vim beispielsweise » und « einsetzen, so ergibt:

Open in Online-Editor
\documentclass{scrartcl}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
\usepackage{csquotes}
\MakeAutoQuote{»}{«}

\begin{document}
»test«
\end{document}

deutsche Anführungszeichen

während man mit

Open in Online-Editor
\documentclass{scrartcl}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\usepackage{csquotes}
\MakeAutoQuote{»}{«}

\begin{document}
»test«
\end{document}

englische Anführungzeichen

erhält, mit

Open in Online-Editor
\documentclass{scrartcl}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
\usepackage[german=guillemets]{csquotes}
\MakeAutoQuote{»}{«}

\begin{document}
»test«
\end{document}

aber beispielsweise auch ganz einfach

Deutsche Guillemets

erreichen kann.

Wichtig ist nur, dass die für vim konfigurierten Zeichen auch für XeLaTeX/LuaLaTeX/PDFLaTeX einzelne Zeichen sind. Aktive Zeichen, wie " bei Verwendung von deutschen babel shorthands sollte man daher nicht verwenden. Ich habe » und « gewählt, weil diese auch ohne automatische Ersetzung durch den Editor für mich einfach einzugeben sind, es geht aber beispielsweise auch:

Open in Online-Editor
\documentclass{scrartcl}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
\usepackage[german=guillemets]{csquotes}
\MakeAutoQuote{}{}

\begin{document}
„test“
\end{document}

Solange man keine deutschen babel shorthands aktiviert hat, kann man " durchaus verwenden:

Open in Online-Editor
\documentclass{scrartcl}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
\usepackage{csquotes}
\MakeOuterQuote{"}

\begin{document}
"test"
\end{document}

In dem Fall genügt es also, wenn man wie von @Cletus angeregt die Ersetzung einfach abschaltet.

Das Paket csquotes bietet eine Vielzahl weiterer Möglichkeiten, wie die Behandlung geschachtelter Anführungen, Blockzitate etc. Für nähere Informationen sei auf die Anleitung verwiesen.

Permanenter link

beantwortet 27 Feb, 03:07

saputello's gravatar image

saputello
18.4k22352

bearbeitet 27 Feb, 06:07

Es gibt die Möglichkeit mit dem Paket xesearch beliebigen Text im Dokument zu ersetzen. Wie der Name schon suggeriert funktioniert das Paket nur unter xetex.

Die Benutzung läuft wie folgt:

Wie nehmen alle Buchstaben in die Liste der Boundaries auf. xesearch gibt nur einen Treffer, wenn der gesuchte Text von Zeichen umgeben ist, die Boundaries sind. In der Standardeinstellung sind das nur Leerzeichen und Interpunktion, aber da wir Anführungszeichen treffen wollen ist meist einer der Nachbarn ein Buchstabe.

Open in Online-Editor
\MakeBoundary{abcdefghijklmnopqrstuvwxyz}
\MakeBoundary{ABCDEFGHIJKLMNOPQRSTUVWXYZ}

In der Standardeinstellung sind Anführungszeichen auch Boundaries. Da wir diese treffen wollen müssen wir sie ausnehmen.

Open in Online-Editor
\UndoBoundary{`'}

Nun müssen wir die Ersetzungsregeln anlegen. Dies geht mit \SearchList{<Name>}{<Ersetzung>}{<Suche>}. Ziemlich selbsterklärend. Die deutschen Anführungszeichen und füge ich gleich als Unicode-Zeichen ein, man kann natürlich auch irgendwelche polyglossia-Makros nehmen.

Open in Online-Editor
\SearchList{openquote}{}{``}
\SearchList{closequote}{}{''}

Im ganzen Beispiel

Open in Online-Editor
\documentclass{article}
\usepackage{fontspec}

\usepackage{xesearch}
\MakeBoundary{abcdefghijklmnopqrstuvwxyz}
\MakeBoundary{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\UndoBoundary{`'}
\SearchList{openquote}{}{``}
\SearchList{closequote}{}{''}

\begin{document}
``test''

``Irgendwelche Wörter''

``Bla bla bla.''
\end{document}

alt text

Permanenter link

beantwortet 26 Feb, 08:18

Henri's gravatar image

Henri
10.0k31730

3

Während es als "Proof of concept" nett ist, zweifle ich, dass es effektiv ist, ein dauerndes Suchen und Ersetzen durchzuführen, um eine falsche Eingabe zu korrigieren, wenn man stattdessen den Editor korrekt anpassen könnte.

(26 Feb, 09:40) Ulrike Fischer
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×9
×8
×2

Frage gestellt: 26 Feb, 05:22

Frage wurde angeschaut: 1,152 Mal

Zuletzt aktualisiert: 27 Feb, 06:48