EU1 和 EU2 編碼中的 \cyrdash 怎麼樣?

EU1 和 EU2 編碼中的 \cyrdash 怎麼樣?

cyrdash是在 、 和其他一些遺留編碼中定義的T2AT2BT2C似乎逃離了 EU1 (xetex) 和 EU2 (luatex) 編碼。cyrdash根據想法,應該列印介於\textemdash和 之間的內容\textendash\cyrdash比 短 20% emdash)。它在俄語、烏克蘭語、保加利亞語和蒙古語中使用,而不是emdash,因此這些語言實際上受到了歧視。

如果我是對的並且\cyrdash確實迷失了,乳膠開發團隊可以擴展EU1EU2編碼以提供文字命令\cyrdash嗎?可能會被稱為\textcyrdash.

cyrdashUnicode 表中的程式碼點是什麼?

更新:這是最小的工作範例。結果取決於用於編譯範例的引擎。我嘗試了 xelatex 和 pdflatex。

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

Babelwith 選項透過russian重新定義連字。如果選擇俄語,Pdlatex 會從 LH 字體的相同代碼點取得和;那麼它們的大小相等;如果 Englsih 是當前語言,則未定義(出現錯誤),並且取自 CM 字體,並且如果選擇俄語,則比自身更長。---\cyrdash\cyrdash\textemdash\cyrdash\textemdash

在 的情況下xelatex\cyrdash當前編碼中未定義宏,因此babel將其偽造\hbox to 0.8em{--\hss--}為大約 80% 的\textemdash

Ulrike Fischer 指導我找到了 Unicode 中所有可用破折號的寶貴清單。我沒有找到合適的候選人\cyrdash,儘管從我自己出版書籍的經驗來看,我知道俄羅斯出版社的編輯有時對破折號的大小非常嚴格。我也同意 Microsoft Word 自動在俄語單字之間產生正確的破折號,但我不確定(現在無法檢查)它是否在英語單字之間產生更長的破折號。

所以我現在沒有看到一個好的統一解決方案,以防\cyrdash它應該從與\textemdash.也許,除了目前在巴別塔俄語中使用的靈魂。有人可以提出更好的方法嗎?

更新2: 我最初對這個問題的看法是錯的。在受人尊敬的 TeX'perts 的幫助下,很明顯傳統的 LaTeX 引擎採用\cyrdash相同\textemdash的代碼點22,但可能採用不同的字體。因此,連字---在 後可能會改變其長度\selectlanguage。所以,現在我將我的問題重新表達如下:

在同一個多語言文件中混合兩個版本的連字---(寬度不同)是好是壞?

答案1

據我所知, 沒有 Unicode 代碼點\cyrdash,但您可以在 xetex 和 luatex 中對其進行排版,就像您將其包含在序言中\cyrdash一樣。"---\usepackage[babelshorthands=true]{polyglossia}

答案2

運行它lualatex

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

在此輸入影像描述

相關內容