Leerzeichen um den kyrillischen Gedankenstrich (Babel)

Leerzeichen um den kyrillischen Gedankenstrich (Babel)

Es gibt den Befehl "---(kyrillischer Gedankenstrich) definiert in derbabelPaket (für die russische Sprache). Es ist kürzer als der übliche englische Bindestrich ---und hat kürzere Leerzeichen darum herum (außerdem sind sie, soweit ich sehe, nicht umbrechend). Wie breit sind solche Leerzeichen? Ist sie gleich der Breite des Leerzeichens \,?

Antwort1

Der Befehl \cyrdashist für das Drucken des Gedankenstrichs verantwortlich. Wenn die aktuelle Sprache Russisch ist, druckt er das Zeichen 22 (derselbe Platz wie der Geviertstrich, aber in T2A-codierten Schriftarten ist er kürzer) oder

\hbox to 0.8em{--\hss--}

wenn die aktuelle Kodierung nicht T2A ist, was bedeutet, dass zwei Halbgeviertstriche übereinander gelegt werden, sodass die Gesamtbreite 0,8em beträgt (und sich daher mit der Schriftart ändert). Die Definition von "-ist etwas kompliziert:

\declare@shorthand{russian}{"-}{%
  \def\russian@sh@tmp{%
    \if\russian@sh@next-\expandafter\russian@sh@emdash
    \else\expandafter\russian@sh@hyphen\fi}%
  \futurelet\russian@sh@next\russian@sh@tmp}
\def\russian@sh@hyphen{\nobreak\-\bbl@allowhyphens}
\def\russian@sh@emdash#1#2{\cdash-#1#2}
\def\cdash#1#2#3{\def\tempx@{#3}%
\def\tempa@{-}\def\tempb@{~}\def\tempc@{*}%
 \ifx\tempx@\tempa@\@Acdash\else
  \ifx\tempx@\tempb@\@Bcdash\else
   \ifx\tempx@\tempc@\@Ccdash\else
    \errmessage{Wrong usage of cdash}\fi\fi\fi}
\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
  \cyrdash\hskip.2em\ignorespaces}%
\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
 \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
\def\@Ccdash{\leavevmode
 \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%

Im Grunde bedeutet es, dass "-produziert \russian@sh@hyphen, während "--tut \russian@sh@emdash.

Ersteres gibt aus \nobreak, damit der vorhergehende Wortteil getrennt werden kann; dann fügt es einen beliebigen Trennstrich ein, sodass der folgende Wortteil getrennt werden kann.

Letzterer betrachtet die nächsten beiden Token (das erste ist noch -); es gibt vier Fälle nach dem dritten Zeichen

  1. "---Probleme \@Acdash;
  2. "--~Probleme \@Bcdash;
  3. "--*Probleme \@Cdash;
  4. Keines der oben genannten, daher "--folgen (ignorierte) Leerzeichen und ein anderes Token als -, ~oder ~.

Im vierten Fall Wrong usage of cdashwird der Fehler ausgelöst.

  • Dabei "---wird ein vorangehendes Leerzeichen (sofern vorhanden) entfernt und in diesem Fall ein geschütztes Leerzeichen mit einer Breite von 0,2em eingefügt, gefolgt von \cyrdasheinem weiteren geschützten Leerzeichen mit einer Breite von 0,2em.

  • Der Fall "--~entfernt ein vorangehendes Leerzeichen, falls vorhanden, \cyrdashund fügt dann eine Strafe wie bei einem expliziten Bindestrich ein, wobei nachfolgende Leerzeichen ignoriert werden.

  • Der Fall "--*gilt für „Dialogene“: kein Leerzeichen davor und \cyrdashdanach ein Leerzeichen von 0,35em, nachfolgende Leerzeichen werden ignoriert.

Es liegt ein Fehler in den Definitionen vor: "---am Anfang eines Absatzes kann zu unerwarteten Ergebnissen führen. \leavevmodeWie bei den anderen beiden Makros sollte am Anfang stehen.

\documentclass{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

%% fix the error
\makeatletter
\def\@Acdash{\leavevmode\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
  \cyrdash\hskip.2em\ignorespaces}%
\makeatother

\begin{document}

\verb|"-|: a"-b

\verb|"---|: a"---b a "--- b

\verb|"--~|: a"--~b a "--~ b

\verb|"--*|: "--*a "--* a

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen