cyrdash
是在 、 和其他一些遺留編碼中定義的T2A
,T2B
但T2C
似乎逃離了 EU1 (xetex) 和 EU2 (luatex) 編碼。cyrdash
根據想法,應該列印介於\textemdash
和 之間的內容\textendash
(\cyrdash
比 短 20% emdash
)。它在俄語、烏克蘭語、保加利亞語和蒙古語中使用,而不是emdash
,因此這些語言實際上受到了歧視。
如果我是對的並且\cyrdash
確實迷失了,乳膠開發團隊可以擴展EU1
並EU2
編碼以提供文字命令\cyrdash
嗎?可能會被稱為\textcyrdash
.
cyrdash
Unicode 表中的程式碼點是什麼?
更新:這是最小的工作範例。結果取決於用於編譯範例的引擎。我嘗試了 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}
Babel
with 選項透過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}