Диакритические символы юникода и моноширинный шрифт

Russian main discussion
  • Author
  • Message
Az
Offline
Posts: 2
Joined: Mon Jun 03, 2013 4:05 pm

Диакритические символы юникода и моноширинный шрифт

Post by Az »

1. Мне тоже не нравится такое отображение русского Courier New, но иногда это действительно исключительно полезно.
2. Было бы неплохо, если бы разработчики AkelPad всё же учли пожелания пользователей и предоставили возможность выбора отображения составных символов русского юникода.
3. Похоже, что имеет место баг моноширинных шрифтов Windows. Известный линуксовый аналог Courier New - Liberation Mono отображается "верно" (то есть так, как задумано создателями Unicode).
http://en.wikipedia.org/wiki/Liberation_fonts
https://fedorahosted.org/liberation-fonts/
Всем жаждущим "истинного" юникода пока остаётся только скачать и установить Liberation Fonts.

Offline
Posts: 47
Joined: Sat Jul 25, 2009 10:47 pm

Re: Диакритические символы юникода и моноширинный шрифт

Post by vvch »

Az wrote:Похоже, что имеет место баг моноширинных шрифтов Windows.
Если баг действительно именно в шрифтах, то в редакторе исправлять, конечно же, ничего не сто́ит. Но у меня были сомнения на этот счёт, поскольку другие редакторы (включая Akelpad3) ведут себя по-другому (подробности выше).
Az wrote:Известный линуксовый аналог Courier New - Liberation Mono отображается "верно" (то есть так, как задумано создателями Unicode).
С Liberation Mono, кстати, другой забавный баг: он неверно отображает диакритику при размерах 16, 34, 37 и 48. И здесь тоже нельзя с уверенностью сказать, что проблема именно в шрифте, поскольку в других редакторах (включая AP3) всё в порядке.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

В Акеле есть несколько mod-шрифтов (модифицированных под AkelEdit), может их бы кто-нибудь доработал, и можно было бы закрыть тему этих диакретинистических символов.

Az
Offline
Posts: 2
Joined: Mon Jun 03, 2013 4:05 pm

Диакритические символы юникода и моноширинный шрифт

Post by Az »

Мною было проведено дополнительное исследование.

Во-первых, утверждение vvch, что якобы в AkelPad 3 с отображением шрифтов всё хорошо - в отличие от AkelPad 4 - не подтвердилось. AkelPad 3.7.4 и AkelPad 4.8.3 на одних и тех же операционных системах одни и те же шрифты отображают одинаково.
Возможно, vvch не учёл, что на разных версиях Windows - XP, Vista, 7 - установлены разные версии шрифтов, а MS Office 2003/2007/2010, MS Office Viewers и многие другие программы Microsoft при установке подменяют шрифты на свои версии. Также управление шрифтами на Windows 5.x (XP/2003,..) и Windows 6.x (Vista,2008,2008R2,7,..) отличается: например, в Windows 7 выбор шрифта для одной программы может изменять настройки других программ и заставлять их без ведома пользователя переходить на тот же шрифт.

Был проведён простой опыт с подменой шрифтов:
Если Сourier New 5.11 из Windows 7 SP1 заменить на Сourier New 2.90, взятый из Windows XP SP3, то Сourier New на Windows 7 SP1 во всех программах отображается как на Windows XP SP3.
Если Сourier New 2.90 из Windows XP SP3 заменить на Сourier New 5.11, взятый из Windows 7 SP1, то Сourier New на Windows XP SP3 во всех программах отображается как на Windows 7 SP1.
Если Сourier New 2.90, взятый из Windows XP SP3 установить на ReactOS 0.3.15, то Сourier New на ReactOS в AkelPad 3.7.4 и AkelPad 4.8.3 отображается как на Windows XP SP3.
Если Сourier New 5.11, взятый из Windows 7 SP1 установить на ReactOS 0.3.15, то Сourier New на ReactOS в AkelPad 3.7.4 и AkelPad 4.8.3 отображается как на Windows 7 SP1.

Также было проверено, что отображение диакритики не зависит от сглаживания (None/Standard/ClearType).

И всё же решено было проверить гипотезу о баге в шрифтах более тщательно.

Были протестированы следующие шрифты:
Сourier New 2.90 (Windows XP SP3)
Сourier New 5.11 (Windows 7 SP1)
Lucida Console 5.00 (Windows 7 SP1)
Liberation Mono 2.00.1 (Liberation Fonts)
Free Mono 0412.2268 (Free UCS Outline Fonts)
Everson Mono 6.0.0
на следующих операционных системах:
Windows XP SP3
Windows Vista SP2
Windows 7 SP1
ReactOS 0.3.15
в следующих программах:
Notepad (XP,Vista,7)
WordPad (XP,Vista,7)
AkelPad 3.7.4 (XP,Vista,7,ReactOS)
AkelPad 4.8.3(XP,Vista,7,ReactOS)
LibreOffice 4.0.3 (XP,7)
для тестирования использован текст, содержащий наборы панграмм (с диакритикой и без) на следующих языках:
арабский (без огласовок)
арабский (с полными огласовками)
болгарский
чешский
английский
французский
немецкий
греческий (современная демотика с ударениями и диерезисом)
греческий (кафаревуса с архаичной диакритикой)
итальянский
польский
португальский
русский
испанский
турецкий
а также на других языках (японский, иврит и т.п)

(Стоит заметить, что для таких языков как, например, греческая демотика проблема не актуальна: несмотря на то, что для ввода буквы с ударением нужно нажать две клавиши последовательно, она представлена единым символом юникода. Например: Πώς - 3 символа юникода.)

Результат тестирования: один и тот же шрифт везде отображается практически одинаково за исключением очень незначительных различий в отображении Lucida Console 5.00 (небольшой сдвиг диакритики вправо-влево).

Итак, вывод: баг не в программе или системе, а в шрифтах Windows.

Кстати, отображение Liberation Mono 16 деформировано лишь незначительно - штрихи ударения выглядят слишком короткими. Никаких других существенных недостатков при отображении диакритики у Liberation Mono, Free Mono и Everson Mono не выявлено.

Рекомендую использовать следующие моноширинные шрифты:

Liberation Mono (Liberation Fonts)
Free Mono (Free UCS Outline Fonts)
Everson Mono
Post Reply