LINUX.ORG.RU

Сопоставление конкретному шрифту своего резервного шрифта

 ,


0

3

Есть один шрифт, в котором отсутствует кириллица и которая в таком случае отображается умолчательным sans-serif'ом. Можно ли как-то настроить, чтобы именно для этого шрифта использовался отдельный fallback шрифт.


Конечно. Почему нет?

<match target="pattern">
     <test name="family"><string>DejaVu Sans Mono</string></test>
    <edit name="family" mode="assign" binding="same"><string>Consolas</string></edit>
 </match>
 <match target="pattern">
     <test name="family"><string>Liberation Mono</string></test>
    <edit name="family" mode="assign" binding="same"><string>Consolas</string></edit>
 </match>
<match target="pattern">
    <test name="family"><string>Verdana</string></test>
    <edit name="family" mode="assign" binding="same"><string>Nokia Standard</string></edit>
 </match>
 <match target="pattern">
    <test name="family"><string>Times New Roman</string></test>
    <edit name="family" mode="assign" binding="same"><string>PT Serif</string></edit>
 </match>
 <match target="pattern">
    <test name="family"><string>Times</string></test>
    <edit name="family" mode="assign" binding="same"><string>PT Serif</string></edit>
 </match>
 <match target="pattern">
    <test name="family"><string>Courier</string></test>
    <edit name="family" mode="assign" binding="same"><string>Consolas</string></edit>
 </match>
 <match target="pattern">
    <test name="family"><string>Arial</string></test>
    <edit name="family" mode="assign" binding="same"><string>Nokia Standard</string></edit>
 </match>
EXL ★★★★★
()
Ответ на: комментарий от e1nste1n

Насколько я знаю нельзя. Как вариант - добавить глифы в fontforge

Плохо знаешь, fontconfig для того в системе и поставлен, чтобы алиасы шрифтам задавать и sans-serif/serif/monospace маппить на что-то своё. Это, кстати, отличное средство, чтобы говношрифты всяких плешивых веб-макенций сбрасывать на стандартные, не отключая сайтам возможность использования собственных (нормальных) шрифтов.

EXL ★★★★★
()

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

    <alias>
        <family>serif</family>
        <prefer>
            <family>Droid Serif</family>
        </prefer>
    </alias>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>Nokia Standard</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>Consolas</family>
        </prefer>
    </alias>
EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Я понял, что ТС хочет для определенного шрифта использовать другой определенный шрифт в качестве fallback шрифта (отличный от системного fallback шрифта), а не просто переписать алиасы.

e1nste1n ★★★★★
()
Ответ на: комментарий от e1nste1n

Кстати, если я правильно понял, попробуй это:

<match target="font">
  <test compare="eq" name="family">
    <string>fontname</string>
  </test>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>fallback fontname</family>
    </prefer>
  </alias>
</match>

e1nste1n ★★★★★
()
Ответ на: комментарий от e1nste1n

Вы вообще о чём? Не выспались что ли? Я об этом и говорю и кусок на конфиг дал выше.

Кстати, если я правильно понял, попробуй это:

Неверно. Это переназначит полностью sans-serif на fallback fontname.

Ещё раз: к примеру, мне не нравится шрифт Arial, который выставлен первым в CSS сайта LINUX.ORG.RU, предположим у него проблемы с кириллицей. Я хочу его изменить на свой. Для этого я пишу в fonts.conf следующее:

<fontconfig>
...
    <match target="pattern">
        <test name="family"><string>Arial</string></test>
        <edit name="family" mode="assign" binding="same">
            <string>Terminus</string></edit>
    </match>
</fontconfig>

И, вуаля, я получаю именно то, что хочет ТС.

Было: http://wstaw.org/m/2015/11/25/Ark9.png
Стало: http://wstaw.org/m/2015/11/25/Ark8.png

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от EXL

Еще раз, если я правильно понял ТСа (который вовремя куда-то слился), он хочет заменить fallback-шрифт для тех символов, которых нет в шрифте. Т.е. на вашем примере-скриншоте латиница должна быть Arial, кириллица — Terminus

e1nste1n ★★★★★
()
Ответ на: комментарий от EXL

Это не совсем то, что я имел в виду. Такое правило полностью заменяет шрифт.

Сейчас нашёл вариант, в котором реализуется подобное, и переправил под себя:

<match>
  <test compare="contains" name="lang">
    <string>ru</string>
  </test>
  <test name="family">
    <string>[Шрифт с Latin-1]</string>
  </test>
  <edit mode="prepend" name="family">
    <string>[Шрифт с кириллицей]</string>
  </edit>
</match>

WDWTFWW
() автор топика
Ответ на: комментарий от e1nste1n

Вы, наверно, его неправильно поняли. Он хочет для шрифта, который бито отображает кириллицу, выставить fallback шрифт. Это ясно по этой фразе:

именно для этого шрифта использовался отдельный fallback шрифт.

В противном случае, он бы написал:

именно для этого шрифта кириллица отображалась отдельным fallback шрифтом.

Я вообще не понимаю, для чего смешивать разные шрифты для латиницы / кириллицы в одном полотне текста. Это же получается говно, какое-то разный начертания букв и т. д. Мне кажется, ТС, наоборот, хочет ликвидировать эту ситуацию полностью, выставив единый шрифт.

В любом случае, ТС придёт и прояснит всё.

EXL ★★★★★
()
Ответ на: комментарий от WDWTFWW

Кстати, да или так. Я думал вы его глобально в системе изменить хотите.

А что за шрифт такой интересный, который хочется сохранить?

EXL ★★★★★
()
Ответ на: комментарий от EXL

Думал Tamsyn c Terminus совместить, ну и с английской локалью для интерфейса некоторые попробовать, чтобы названия и заголовки не слишком ужасно смотрелись.

WDWTFWW
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.