LINUX.ORG.RU

Правило fontconfig для увеличения шрифта

 ,


0

2

Требуется прописать какие-то волшебные слова в ~/.config/fontconfig/fonts.conf , чтобы он увеличивал размер шрифта пт моно на n+1. Ну то есть вместо 9 рисовал 10, вместо 10 - 11, etc. В системе можно и через настройки увеличить, но в браузере он меньше сансов и серифов аналогичных размеров, что крайне нудобно.

Покурил маны, но не понял как это сделать по-нормальному, с size вообще ничего не происходит, получается только с pixelsize - такой вариант работает, но он коверкает пропрции шрифта, да и вообше, совсем не по понятиям:

тут был убогий код)

Подскажите, пожалуйста, как правильно реализовать.

Решение найдено, огромное спасибо пользователю mamboo:

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

  <match target="font">
    <test name="family">
      <string>PT Mono</string>
    </test>
    <edit name="pixelsize" mode="assign">
      <plus>
        <name>pixelsize</name>
        <double>1</double>
      </plus>
    </edit>
 </match>

</fontconfig>



Последнее исправление: aabbc (всего исправлений: 3)

Попробуй так

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

<match target="font">

  <test name="family" compare="eq">
    <string>PT Mono</string>
  </test>

  <!--
       Вычисляем необходимый размер
  -->
  <edit name="targetsize" mode="assign">
          <plus>
                  <name>size</name>
                  <double>10.0</double>
          </plus>
  </edit>

  <!--
       Вычисляем коэффициент
  -->
  <edit name="sizefixupfactor" mode="assign">
          <divide>
                  <name>targetsize</name>
                  <name>size</name>
          </divide>
  </edit>

  <!--
       Задаем матрицу преобразования
  -->
  <edit name="matrix" mode="assign">
      <times>
          <name>matrix</name>
          <matrix>
          <name>sizefixupfactor</name><double>0</double>
          <double>0</double><name>sizefixupfactor</name>
          </matrix>
      </times>
  </edit>

</match>

</fontconfig>

P.S. На Mozilla Firefox с ходу не сработало, остальные, кого пробовал (Midori, jumanji) подхватили.

mamboo ★★
()
Ответ на: Попробуй так от mamboo

Огромнейшее спасибо! Именно это и было нужно, firefox даже сходу подхватил настройки =)

p.s.: в жизни бы не додумался до такой конструкции)

aabbc
() автор топика
Ответ на: Попробуй так от mamboo

Пересмотрел код:

<plus>

И тут меня осинило)))

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

  <match target="font">
    <test name="family">
      <string>PT Mono</string>
    </test>
    <edit name="pixelsize" mode="assign">
      <plus>
        <name>pixelsize</name>
        <double>1</double>
      </plus>
    </edit>
 </match>

</fontconfig>

Тоже самое, только чуть проще. Кстати, в твоем варианте почему-то пустые строки чуток увеличиваются по высоте (по крайней мере, в gedit), а с этим - все идентично немодифицированному шрифту большего размера.

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

Не за что

pixelsize и size — это все-таки разные размеры. Первый в пикселях, второй в пунктах.

Идею подглядел в /usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf. Там еще в конце была конструкция:

  <edit name="size" mode="assign">
    <divide>
      <name>size</name>
      <name>pixelsizefixupfactor</name>
    </divide>
  </edit>
но поскольку увеличение работало и без нее, я ее выкинул. Может, с этим не будет увеличения пустых строк.

mamboo ★★
()
Ответ на: Не за что от mamboo

Пробовал добавлять, все равно пустая строка в gedit почему-то выше на пиксель (при 11 кегле). Впрочем, вариант с изменением pixelsize меня полностью устраивает - он увеличивает кегль ровно на 1, во всяком случае в диапазоне от 9 до 14.

aabbc
() автор топика

Можно просто dpi глобально для иксов задрать.

anonymous
()

В убунте оба предложенных варианта искажают шрифт =(

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