Как я могу исправить лигатуры TTF шрифтами (тт, ти, р Ф.Ф., и т.д.) в Firefox?

24

С некоторых шрифтов Windows, существует проблема отображения, где лигатура-кернинг, кажется, флип и сделать две буквы выделены жирным шрифтом. Вот скриншот электронной почты с помощью Helvetica в Firefox:

введите описание изображения здесь

Как вы можете видеть, это похоже на то, как скрещенные символы ( tи f) соединяются друг с другом и похожими буквами i.

Я имел эту проблему в течение очень долгого времени (более нескольких систем), и спрашивает, если кто-нибудь когда-нибудь видел подобные проблемы выскакивают и нашел способ, чтобы исправить их.

Примечание: Я думаю, что это просто влияет на Firefox. Хром и LibreOffice оба отлично.

Оли
источник

Ответы:

27

Еще одно решение , которое будет работать со всеми приложениями, в том числе Libre Office, дается aldeby :

Редактировать или создать файл ~/.fonts.confи вставьте в него следующий код:

<match target="font" >
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>

Убедитесь в том, чтобы сохранить структуру XML.

Выйдите и снова, и Calibri (и, возможно, некоторые другие шрифты) будут выглядеть гораздо лучше (на самом деле даже лучше, чем с другими ответами здесь, потому что некрасивые растровые замены полностью отключены).

Calimo
источник
3
Это один лучшее решение , чем предыдущие, поскольку это глобальное исправление и устранение лигатуры является латать. Лигатуры там , чтобы сделать текст более приятным для чтения, и превратить их в работу вокруг проблемы конфигурации не является идеальным.
scruss
Любой , кто немного OCD или анальный сохраняющий достаточно , чтобы заботиться о правильно форматировать содержимое этого XML - файла (вы , конечно , люди Linux никогда бы и не заботиться о таких вещах ;-)):<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"><fontconfig><match target="font"><edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit></match></fontconfig>
Адам Plocher
Ссылка на aldeby теперь приводит к некоторому фишинг сайт жульничества
charsi
1
@charsi спасибо, я заменил его ссылкой на веб - архив.
Calimo
Я даже не выйти из системы и входа в систему снова. Просто обновите страницу (в Firefox) и перезапустить приложение (LibreOffice) было достаточно.
Marc.2377
9

Отключение лигатуры (см Calimo в fonts.confответ ) является неправильным направлением! Это может удалить эти чрезмерно псевдонимные «жирные» лигатуры в шрифтах, таких как Calibri , но это также удаляет некоторые из красот типографики. Это довольно похоже на сокращение шрифт , пока вы не можете сказать разницу.

Я решил это для моей системы, удаляя шрифт Calibri, установку Карлиты , который является « Метрика-совместимым с Calibri» и упакован с «записью отображения на FontConfig (local.conf),» и освежающей мой шрифт кэша:

$ rm ~/.fonts/microsoft/CALIBRI*
$ sudo apt install fonts-crosextra-carlito
$ fc-cache

Вы можете проверить, что Карлито стоит на Calibri:

$ fc-match Calibri
Carlito-Regular.ttf: "Carlito" "Regular"

(Если это не работает, вам может понадобиться что - то вроде sudo rm /usr/share/fonts/truetype/msttcorefonts/calibri*хотя случай и точное местоположение может отличаться.)

Перед удалением Calibri Microsoft, я сохранил тестовый документ в LibreOffice, который использовал Calibri и взял снимок экрана. После этого, что я уволилась LibreOffice, снова открыла ее, а затем загружена мой тестовый документ. Имя шрифта «Calibri» был наклонным, чтобы указать, что он был заменен. Я сделал снимок экрана этого замещенному версии и вставить его ниже оригинала:

Калибри тесты

Приведенный выше текст представляет собой пару скриншотов из 13pt Calibri с Microsoft Calibri над Carlito в соответствии с fontconfig. Там нет полужирного, нет форматирования, «пары кернинга» включен, вынесенных на LibreOffice 5.0.5.1.

Карлито довольно близко к Calibri, лигатуры делают правильно, и это гораздо симпатичнее в целом.

Вы можете сделать то же самое с Caladea для Камбрия с , fonts-crosextra-caladeaи вы можете использовать Google, Croscore шрифты Arimo, Тинос и Cousine для Arial , Times New Roman и Courier New с fonts-croscore. Узнайте больше на вики Debian Substituting Calibri и Cambria Fonts .

Но как насчет Helvetica?

Данный вопрос о Helvetica шрифт, который является предпочтительным Apple, без засечек шрифт. Microsoft предпочла Arial до того, как сменила его на Calibri. Отображение Linux по умолчанию зависит от распределения, но это , как правило , либо Nimbus Sans L , либо Liberation Sans , например ,

$ fc-match Helvetica
n019003l.pfb: "Nimbus Sans L" "Regular"

Если вы бежите, что и получить Arial, что это очень хорошая причина для вопроса лигатуры описано выше - Arial не большой шрифт.

Helvetica имеет довольно культуру , окружающую его , и я не могу найти шрифт , который полностью Метрика совместим с Helvetica. Arial (и шрифты метрически совместимы с Arial, в том числе освобождения Sans и его вилкой, Arimo , имеют одинаковые ширины символов (что означает , что они « в основном» Метрика совместимый;. Текст будет обернуть так же, как с Helvetica) Среди свободных шрифтов, Освобождение Sans и Nimbus Sans , кажется , имеют большинство подобной эстетики.

Там также IBM Plex , новый шрифт с большими деньгами за ним [ 1 ] [ 2 ] . Plex предназначен для замены Helvetica (он также имеет сокращенную SANs, а также с засечками и MONOSPACE шрифтов) во всех материалах IBM, хотя это не совсем метрических совместимо с Helvetica или другими шрифтами. Font Squirrel имеет приятный вид образцов шрифтов Plex .

FontConfig псевдонимы

Чтобы вручную псевдоним Helvetica на другой шрифт (и , следовательно , нет необходимости удалять Calibri и / или Arial, хотя и в этом случае вы должны также вручную псевдоним тех), отредактируйте ~/.config/fontconfig/fonts.confфайл (для старых систем, это ~/.fonts.conf. Чтобы избежать путаницы, я симлинки последнего к первому) , как указано в этом ответе , добавив новый <alias>. раздел Helvetica (это один использует Arimo Убедитесь , что он установлен):

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

  <alias>
    <family>Helvetica</family>
    <prefer><family>Arimo</family></prefer>
  </alias>

</fontconfig>
Адам Кац
источник
1
Это гораздо лучше , чем ответ общепринятом один. Я хочу подчеркнуть, есть удобный файл конф доступен на арке вики: wiki.archlinux.org/index.php/Croscore_Fonts
Xananax
Теперь первая строка должна быть Судо ет -R / USR / доли / шрифты / TrueType / Calibri
dez93_2000
Если один в результате к-матч Helvetica IS Arial на Linux, вы знаете , как заставить Liberation Sans? Просто удалить Arial? Спасибо
dez93_2000
@ dez93_2000 - это наверное /usr/share/fonts/truetype/msttcorefonts/callibri*. Я буду обновлять мой ответ на адрес ступенчатость шрифта , так как он не будет вписываться в комментарии.
Адам Кац
Я внимательно осмотрел визуализированную результаты общепринятом ответа (используя шрифт Calibri), и не обнаружил никакой разницы по сравнению с известным хорошим визуализатором. Там не было абсолютно никакой красоты не хватает.
23 марта
6

Ответ lgarzo в будет работать только на сайтах , которые имеют «noligs» класс по тексту (большинство сайтов не делают).

Чтобы глобально отключить лигатуры на всех сайтах, добавьте следующую строку в userChrome.css:

* { -moz-font-feature-settings: "liga" 0; }

Самый простой способ сделать это, чтобы создать новый стиль с Стильным расширением.

Calimo
источник
+1 за Стильное предложение. AFAIR я цитировал Mozilla документации (так как я ожидал , что OP , чтобы быть в состоянии преобразовать , что , как он хотел :)) Мое намерение включить правило в CSS страницы. (Не может проверить источник, хотя это , кажется, вниз ATM.)
lgarzo
1
Этот синтаксис не был действителен только до тех пор , Firefox 14, в соответствии с stackoverflow.com/a/15161336/4464570 , и не теперь больше не распознается браузером. Я редактировал свой пост , чтобы обновить его с текущим синтаксисом.
Byte Commander
4

Несколько замечаний всплыли у меня в голове, глядя на изображение:

  • Лигатуры кажутся сглаживается , в то время как остальная часть текста нет. Поэтому он выглядит толще , чем обычный текст (хотя я не могу отрицать , что также выглядит жирным шрифтом).
  • AFAIK шрифт Helvetica является нестандартным шрифтом , т.е. не входит по умолчанию установки Windows. Есть ли у вас он установлен, или это другой шрифт?

Я думаю, что проблема основана на шрифт не поддерживает лигатуры / кернинг правильно.

Вы можете отключить лигатуры в FF с помощью правила CSS ниже:

/* disable common ligatures, usually on by default */
.noligs { -moz-font-feature-settings: "liga" 0; }

Источник: CSS Reference: Mozilla Extensions

lgarzo
источник
Этот синтаксис не был действителен только до тех пор , Firefox 14, в соответствии с stackoverflow.com/a/15161336/4464570 , и не теперь больше не распознается браузером. Я редактировал свой пост , чтобы обновить его с текущим синтаксисом.
Byte Commander
1

В дополнение к ответу Calimo пользователи Archlinux могут найти справку https://wiki.archlinux.org/index.php/font_configuration - отключить растровые шрифты

Было предложено создать локальный конфигурационный файл ~ / .config / fontconfig / conf.d / 20-no-embedded.conf, но я выбрал общесистемный вариант

sudo touch /etc/fonts/conf.d/20-no-embedded.conf
sudo chmod 777 /etc/fonts/conf.d/20-no-embedded.conf
nano 777 /etc/fonts/conf.d/20-no-embedded.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

Тогда просто перезапустить приложение (в моем случае громовой)

Узумаки D. Ичиго
источник
Если прямо под «<матч цель =» шрифт «>» линия добавить: <тест имя = «семейство»> <строка> Calibri </ String> </ тест> Или что имя шрифта (Helvetica), вы будете только изменить параметры шрифта для данного конкретного шрифта.
zeehio
Разрешение должно быть 644, а не 777, потому что вы помещаете файл (не Symlink) там.
23 марта 27