Espacios alrededor del cirílico emdash (babel)

Espacios alrededor del cirílico emdash (babel)

Existe el comando "---(emdash cirílico) definido en elBabelpaquete (para el idioma ruso). Es más corto que el guión inglés habitual ---y tiene espacios más cortos a su alrededor (y además, como puedo ver, no se rompen). ¿Cuál es el ancho de tales espacios? ¿Es igual al ancho del \,espacio?

Respuesta1

El comando \cyrdashes responsable de imprimir el guión; cuando el idioma actual es ruso, imprime el carácter 22 (la misma ranura que el em-dash, pero en fuentes codificadas T2A es más corto) o no

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

cuando la codificación actual no es T2A, lo que significa que superpone dos guiones para que el ancho total sea de 0,8 em (cambiando así con la fuente). La definición de "-es un poco complicada:

\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}%

Básicamente significa que "-produce \russian@sh@hyphen, mientras que "--hace \russian@sh@emdash.

El primero emite un guión \nobreakpara que la parte de la palabra anterior pueda dividirse con guiones; luego inserta un guión discrecional, lo que permite separar la siguiente parte de la palabra.

Este último mira las dos fichas siguientes (la primera sigue siendo -); hay cuatro casos según el tercer carácter

  1. "---asuntos \@Acdash;
  2. "--~asuntos \@Bcdash;
  3. "--*asuntos \@Cdash;
  4. Ninguno de los anteriores, por lo que "--va seguido de espacios (ignorados) y otro símbolo distinto de -, ~o ~.

En el cuarto caso Wrong usage of cdashse plantea el error.

  • El caso "---elimina un espacio anterior si está presente y, en este caso, inserta un espacio no separable de 0,2 em de ancho, seguido de \cyrdashotro espacio no separable de 0,2 em de ancho.

  • El caso "--~elimina un espacio anterior si está presente, inserta \cyrdashy luego una penalización como por un guión explícito, ignorando los espacios siguientes.

  • El caso "--*es para “diálogos”: no hay espacio antes y le \cyrdashsigue un espacio de 0,35em, ignorando los espacios siguientes.

Hay un error en las definiciones: "---al principio de un párrafo se pueden producir resultados inesperados. Debería haberlo \leavevmodeal principio como en las otras dos macros.

\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}

ingrese la descripción de la imagen aquí

información relacionada