cyrdash
T2A
ist in , und einigen anderen älteren Kodierungen definiert T2B
, T2C
scheint aber den Kodierungen EU1 (xetex) und EU2 (luatex) zu entgehen. cyrdash
sollte prinzipiell etwas zwischen \textemdash
und ausgeben \textendash
( \cyrdash
ist 20 % kürzer als emdash
). Es wird in Russisch, Ukrainisch, Bulgarisch und Mongolisch anstelle von verwendet emdash
, diese Sprachen werden also faktisch unterschieden.
Wenn ich Recht habe und \cyrdash
tatsächlich verloren bin, könnte das Latex-Entwicklungsteam bitte die Kodierungen erweitern, EU1
um EU2
einen Textbefehl für bereitzustellen \cyrdash
? Er könnte heißen \textcyrdash
.
Was ist der Codepunkt cyrdash
in Unicode-Tabellen?
AKTUALISIEREN: Hier ist ein minimales funktionierendes Beispiel. Die Ergebnisse hängen von der Engine ab, die zum Kompilieren des Beispiels verwendet wurde. Ich habe xelatex und pdflatex ausprobiert.
\documentclass{article}
\usepackage{ifxetex}
\ifxetex
\else
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\fi
\usepackage[english,russian]{babel}
\begin{document}
\Large
Russian: \\
!---!=\verb!---!\\
!\foreignlanguage{english}{---}!=\verb!\foreignlanguage{english}{---}!\\
!\cyrdash!=\verb!\cyrdash!\\
!\textemdash!=\verb!\textemdash!\\
!\textendash!=\verb!\textendash!\\
%!---!\par
\selectlanguage{english}
%!---!
English: \\
!---!=\verb!---!\\
!\cyrdash!=\verb!\cyrdash!\\
!\textemdash!=\verb!\textemdash!\\
!\textendash!=\verb!\textendash!\\
\end{document}
Babel
mit der Option russian
definiert die Ligatur ---
durch neu \cyrdash
. Pdflatex verwendet \cyrdash
und \textemdash
vom gleichen Codepunkt der LH-Schriftart, wenn die russische Sprache ausgewählt ist; dann sind ihre Größen gleich; wenn Englisch die aktuelle Sprache ist, \cyrdash
ist es nicht definiert (führt zu einem Fehler) und \textemdash
wird von CM-Schriftarten übernommen und ist im Vergleich zu sich selbst länger, falls Russisch ausgewählt ist.
Im Fall von xelatex
ist \cyrdash
das Makro in der aktuellen Kodierung nicht definiert, also babel
wird es als vorgetäuscht, \hbox to 0.8em{--\hss--}
was sich als ungefähr 80 % von herausstellt \textemdash
.
Ulrike Fischer hat mich auf eine wertvolle Liste aller in Unicode verfügbaren Bindestriche hingewiesen. Ich habe \cyrdash
dort keinen vernünftigen Kandidaten gefunden, obwohl ich aus eigener Erfahrung mit dem Veröffentlichen von Büchern weiß, dass Redakteure russischer Verlage manchmal sehr streng sind, was die Größe von Bindestrichen angeht. Ich stimme auch zu, dass Microsoft Word automatisch korrekte Bindestriche zwischen russischen Wörtern erzeugt, aber ich bin mir nicht sicher (und kann es derzeit nicht überprüfen), ob es längere Bindestriche zwischen englischen Wörtern erzeugt.
Ich sehe derzeit also keine gute einheitliche Lösung für \cyrdash
den Fall, dass es aus derselben Schriftart wie übernommen werden sollte \textemdash
. Vielleicht außer der Lösung, die derzeit in Babel-Russisch verwendet wird. Kann jemand einen besseren Weg vorschlagen?
AKTUALISIERUNG 2: Meine ursprüngliche Sicht des Problems war falsch. Mithilfe angesehener TeX-Experten wurde klar, dass ältere LaTeX-Engines \cyrdash
und \textemdash
vom gleichen Codepunkt 22
, aber möglicherweise von unterschiedlichen Schriftarten übernehmen. Infolgedessen ---
könnte die Ligatur ihre Länge nach ändern \selectlanguage
. Daher würde ich meine Frage jetzt wie folgt umformulieren:
Ist es eine gute oder schlechte Praxis, zwei Versionen von Ligaturen ---
(die sich in ihrer Breite unterscheiden) im selben mehrsprachigen Dokument zu mischen?
Antwort1
Soweit mir bekannt ist, gibt es keinen Unicode-Codepunkt für \cyrdash
, aber Sie können ihn in Xetex und Luatex so setzen, \cyrdash
als "---
ob Sie ihn \usepackage[babelshorthands=true]{polyglossia}
in Ihre Präambel aufnehmen würden.