PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Französische Anführungszeichen in Babel (franz.)



Amandus
26-06-2010, 09:18
Hallo,

wenn ich Babel verwende und auf die franz. Sprache umschalte, wird den typographischen Regeln entsprechend vor ?!,; ein kleiner Leerraum gesetzt.

Dieser Leerraum ist auch zwischen «» und eingeschlossenem Text vorgesehen. Hier wird jedoch von Babel nichts verändert. Im Schriftbild des Quelltextes ist ein manuelles «\, und \,» umständlich.

Csquotes möchte ich nicht verwenden, da es mit Fontspec Probleme bereitet (es werden Guillemets der falschen Schrift verwendet).

Kann ich in Babel diesen automatischen Leerraum für «» einstellen oder wie sollte dieser angewiesen werden?

lockstep
26-06-2010, 10:23
\documentclass{article}

\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}

\frenchbsetup{og=«,fg=»}

\begin{document}

Sind «Anführungszeichen» schön?

\end{document}


Einzelheiten siehe S. 120-124 der babel-Doku.

lockstep

EDIT: Laut babel-Doku benötigt diese Lösung inputenc, funktioniert dabei jedoch auch mit den Kodierungen utf8 und utf8x. Ob die Lösung auf XeLaTeX bzw. luaLaTeX übertragbar ist, kann ich nicht beurteilen.

u_fischer
26-06-2010, 11:13
Csquotes möchte ich nicht verwenden, da es mit Fontspec Probleme bereitet (es werden Guillemets der falschen Schrift verwendet).

Dir fehlen die Definitionen von xunicode. Mit xelatex solltest du das Paket einfach laden, mit lualatex musst du dessen ifxetex-Test überlisten:


\documentclass[fontsize=12pt]{scrartcl}
\usepackage{ifluatex}
\ifluatex
\usepackage{luaotfload}
\def\XeTeXpicfile{}%für xunicode
\fi

\usepackage[frenchb]{babel}
\usepackage[autostyle]{csquotes}
\MakeAutoQuote «»

\usepackage{lipsum}

\usepackage{fontspec}
\usepackage{xunicode}%immer nach fontspec laden!
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\begin{document}
«abc»
\end{document}

Amandus
26-06-2010, 22:12
@ lockstep

Auf die Suche nach guillemets in Babel hätte ich auch kommen sollen.

Ich muß jetzt doch ein Minimalbeispiel bringen, da ich unter TL2010 lualatex verwende:


\documentclass[fontsize=12pt]{scrreprt}
\usepackage{luaotfload}
\usepackage[EU2]{fontenc}
\usepackage[german,french]{babel}\frenchbsetup{og=«,fg=»}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}

\begin{document}
Sind «Anführungszeichen» schön?
\end{document}

Damit funktioniert es leider nicht – wie Du es laut babel-Doku offenlassen mußtest. Aber Danke für den Hinweis auf frenchbsetup.

Amandus
26-06-2010, 22:30
@ u fischer

Wenn ich Dein Minimalbeispiel bei mir unter TL2010 mit lualatex kompiliere, bricht die LOG-Ausgabe mit diesem Inhalt ab:


(/usr/local/texlive/2010/texmf-dist/tex/xelatex/xunicode/xunicode.sty

! LaTeX Error: Command \DeclareUTFcharacter already defined.
Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.110 }

?


Im LaTeX-Begleiter finde ich auf S. 457 nur den Ausdruck \DeclareUnicodeCharacter, vermutlich als Synonym. Ich weiß nicht, was hier inputenc zur Eingabekodierung noch soll, da doch alles als Unicode direkt verarbeitet wird.

Wenn ich die Zeile

\usepackage{xunicode}
auskommentiere läuft lualatex ordnungsgemäß durch, jedoch werden wieder die Guillemets der Computer Modern verwendet.

u_fischer
27-06-2010, 14:04
Füge mal \listfiles am Anfang meines Beispiels ein und sende die log-Datei des lualatex-Laufes.

u_fischer
27-06-2010, 14:26
OK ich hab's: Das fontspec lädt seit neuestem (in eu2enc.de) eine Variante von xunicode, euxunicode. In dieser Variante wurden "some of the more esoteric control sequences" entfernt. U.a. die guillemot-Befehle.

Du musst sie erneut deklarieren:


\documentclass[fontsize=12pt]{scrartcl}

\usepackage[frenchb]{babel}
\usepackage[autostyle]{csquotes}
\MakeAutoQuote «»
\usepackage{lipsum}

\usepackage{luaotfload}
\usepackage{fontspec}
\DeclareUTFcharacter[\UTFencname]{x00BB}{\guillemotright}
\DeclareUTFcharacter[\UTFencname]{x00AB}{\guillemotleft}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\begin{document}
«abc»
\end{document}

Amandus
28-06-2010, 10:03
Vielen Dank für das nun richtig laufende Minimalbeispiel!

Es wird jetzt immer ein \,-Abstand in französischer Umgebung zu «» angefügt, selbst dann, wenn im Quelltext schon « abc » steht. Bei den Satzzeichen ?!,; wird eine eventuell schon vorhandene Leerstelle berücksichtigt und auf die Weite eines \, zurückgeführt. Für mich ist das kein Problem, denn ich werde immer die betreffenden Zeichen einheitlich am Text anliegen lassen.