cyrdash
определен в , T2A
и некоторых других устаревших кодировках, но, похоже, выпадает из кодировок EU1 (xetex) и EU2 (luatex). по идее должен выводить что-то среднее между и ( на 20% короче, чем ). Он используется в русском, украинском, болгарском и могольском языках вместо , поэтому эти языки фактически различаются.T2B
T2C
cyrdash
\textemdash
\textendash
\cyrdash
emdash
emdash
Если я прав и \cyrdash
действительно заблудился, не могла бы команда разработчиков latex расширить 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
с опцией russian
переопределяет лигатуру ---
через \cyrdash
. Pdflatex берет \cyrdash
и \textemdash
из той же кодовой точки шрифта LH, если выбран русский язык; тогда их размеры равны; если текущий язык Englsih, то \cyrdash
не определен (возникает ошибка), и \textemdash
берется из шрифтов CM и длиннее по сравнению с собой, если выбран русский язык.
В случае xelatex
, \cyrdash
макрос не определен в текущей кодировке, поэтому babel
подделывает его как \hbox to 0.8em{--\hss--}
, что оказывается примерно 80% от \textemdash
.
Ульрике Фишер направила меня к ценному списку всех доступных тире в Unicode. Я не нашел там подходящего кандидата, \cyrdash
хотя по собственному опыту публикации книг знаю, что редакторы российских издательств иногда очень строги в отношении размера тире. Я также согласен, что Microsoft Word автоматически создает правильные тире между русскими словами, но я не уверен (и не могу проверить прямо сейчас), создает ли он более длинные тире между английскими словами.
Поэтому я не вижу сейчас хорошего единого решения для \cyrdash
случая, когда его следует брать из того же шрифта, что и \textemdash
. Возможно, кроме того soultion, который сейчас используется в babel-russian. Может кто-нибудь предложить лучший способ?
ОБНОВЛЕНИЕ 2: Мое первоначальное видение проблемы было неверным. С помощью уважаемых TeX'perts стало ясно, что устаревшие движки LaTeX берут \cyrdash
и \textemdash
из одной и той же кодовой точки 22
, но, возможно, из разных шрифтов. В результате лигатура ---
может изменить свою длину после \selectlanguage
. Итак, теперь я бы переформулировал свой вопрос следующим образом:
Является ли хорошей или плохой практикой смешивание двух версий лигатуры ---
(различающихся по ширине) в одном многоязычном документе?
решение1
Насколько мне известно, для не существует кодовой точки Unicode \cyrdash
, но вы можете набрать ее в xetex и luatex, как \cyrdash
или "---
, если вы включите ее \usepackage[babelshorthands=true]{polyglossia}
в преамбулу.