Was ist mit \cyrdash in den Kodierungen EU1 und EU2?

Was ist mit \cyrdash in den Kodierungen EU1 und EU2?

cyrdashT2Aist in , und einigen anderen älteren Kodierungen definiert T2B, T2Cscheint aber den Kodierungen EU1 (xetex) und EU2 (luatex) zu entgehen. cyrdashsollte prinzipiell etwas zwischen \textemdashund ausgeben \textendash( \cyrdashist 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 \cyrdashtatsächlich verloren bin, könnte das Latex-Entwicklungsteam bitte die Kodierungen erweitern, EU1um EU2einen Textbefehl für bereitzustellen \cyrdash? Er könnte heißen \textcyrdash.

Was ist der Codepunkt cyrdashin 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} 

Babelmit der Option russiandefiniert die Ligatur ---durch neu \cyrdash. Pdflatex verwendet \cyrdashund \textemdashvom gleichen Codepunkt der LH-Schriftart, wenn die russische Sprache ausgewählt ist; dann sind ihre Größen gleich; wenn Englisch die aktuelle Sprache ist, \cyrdashist es nicht definiert (führt zu einem Fehler) und \textemdashwird von CM-Schriftarten übernommen und ist im Vergleich zu sich selbst länger, falls Russisch ausgewählt ist.

Im Fall von xelatexist \cyrdashdas Makro in der aktuellen Kodierung nicht definiert, also babelwird 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 \cyrdashdort 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 \cyrdashden 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 \cyrdashund \textemdashvom 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, \cyrdashals "---ob Sie ihn \usepackage[babelshorthands=true]{polyglossia}in Ihre Präambel aufnehmen würden.

Antwort2

Ausführen mitlualatex

\documentclass{article}
\usepackage{unicode-math}
\usepackage[english,russian]{babel}
\begin{document}
[...]

Bildbeschreibung hier eingeben

verwandte Informationen