'Serif' и 'Sans Serif' шрифты (Каким образом их определяет система?)

Модераторы: broom, aim

Maggio
Сообщения: 27
ОС: Linux

'Serif' и 'Sans Serif' шрифты

Сообщение Maggio » 19.07.2011 00:52

Доброго времени суток всем!

У меня с этими двумя шрифтами не все ладно: шрифтовой диалок KDE показывает один и тот же Sans Serif шрифт в качестве образца как для шрифта 'Serif', так и для шрифта 'Sans Serif'. Аналогичный диалог из Xfce для 'Sans' и 'Serif' показывает опять-таки один и тот же шрифт, но уже другой, и Serif.

Обратил внимание, т.к. этот странный Serif показывается в некоторых неподходящих местах.

Например, на сайте www.archlinux.org или в тексте, который я сейчас набираю (Firefox). Также его можно видеть в Applications Menu Xfce и некоторых других менюшках, где должен бы опять-таки быть Sans Serif.

Как бы мне этот вопрос урегулировать?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15749
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: 'Serif' и 'Sans Serif' шрифты

Сообщение Bizdelnick » 19.07.2011 00:57

А система понятия не имеет, где Serif, а где Sans Serif. Шрифты различаются только по именам, которые и прописаны в конфигах.
Вспоминая Вашу предыдущую тему, могу предположить, что где-то остались прописаны несуществующие шрифты, которые заменяются на другие. И, кстати, в Firefox, как и в других браузерах, шрифты настраиваются независимо от DE.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Maggio
Сообщения: 27
ОС: Linux

Re: 'Serif' и 'Sans Serif' шрифты

Сообщение Maggio » 19.07.2011 09:03

Bizdelnick писал(а):
19.07.2011 00:57
А система понятия не имеет, где Serif, а где Sans Serif. Шрифты различаются только по именам, которые и прописаны в конфигах.

Собственно, и у меня нет причин думать иначе. Однако:

(1) Есть, как и раньше, два компа, "плохой" и "хороший". На "хорошем", соответственно, проблем нет.

(2) Наряду со шрифтами "обыкновенными", вроде Liberation, Droid или Nimbus, файловые диалоги предлагают два "безымянных" шрифта: 'Sans' и 'Serif' (в терминологии Xfce; KDE диалог называет их 'Sans Serif' и 'Serif'). Это явно "ссылки" на какой-то "именованный" шрифт, и ссылочки эти на "плохом" компе хотелось бы поправить.

(3) На "хорошем" компе Default Font (в терминах Xfce) обозначен как 'Sans'. 'Sans', в свою очередь, похож на Droid и действительно без засечек; 'Serif', соответственно, засечки имеет.

(4) На "плохом" Default Font обозначен как Liberation Sans (выглядит как положено), а шрифты 'Sans' и 'Serif' представляют собой один и тот же левоватый шрифт с засечками. Его можно наблюдать здесь, например.

(5) Собственно, если сделать так, чтобы на "плохом" компе 'Sans' стал бы, к примеру, Droid Sans, а 'Serif' - Droid Serif, я буду счастлив.

NB xorg.conf у меня отсутствует.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15749
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: 'Serif' и 'Sans Serif' шрифты

Сообщение Bizdelnick » 19.07.2011 11:00

Не знаю, как в Арче, а в Дебиане алиасы прописаны в /etc/fonts/conf.d/30-*. Ещё /etc/fonts/fonts.conf посмотрите.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: 'Serif' и 'Sans Serif' шрифты

Сообщение MrClon » 19.07.2011 12:37

'Sans' и 'Serif' это алиасы ссылающиеся на используемый по умолчанию шрифт без засечек и используемый по умолчанию шрифт с засечками.
По хорошему эти псевдо-шрифты определяются где-то в /etc/fonts/, хотя возможно в некоторых случаях DE и прочие преблуды переопределяют для себя эти настройки.
Спасибо сказали:

Maggio
Сообщения: 27
ОС: Linux

Re: 'Serif' и 'Sans Serif' шрифты

Сообщение Maggio » 19.07.2011 22:08

(1) В На плохом компе в /etc/fonts/conf.d/ содержится только README файл. А вот на хорошем таки да, куча интересных конфигов, в том числе и 30-*. Как их регенерировать?

(2) /etc/fonts/fonts.conf:

Код: Выделить всё

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>

<!--
    DO NOT EDIT THIS FILE.
    IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
    LOCAL CHANGES BELONG IN 'local.conf'.

    The intent of this standard configuration file is to be adequate for
    most environments.  If you have a reasonably normal environment and
    have found problems with this configuration, they are probably
    things that others will also want fixed.  Please submit any
    problems to the fontconfig bugzilla system located at fontconfig.org

    Note that the normal 'make install' procedure for fontconfig is to
    replace any existing fonts.conf file with the new version.  Place
    any local customizations in local.conf which this file references.

    Keith Packard
-->

<!-- Font directory list -->

    <dir>/usr/share/fonts</dir>

    <dir>~/.fonts</dir>

<!--
  Accept deprecated 'mono' alias, replacing it with 'monospace'
-->
    <match target="pattern">
        <test qual="any" name="family">
            <string>mono</string>
        </test>
        <edit name="family" mode="assign">
            <string>monospace</string>
        </edit>
    </match>

<!--
  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
-->
    <match target="pattern">
        <test qual="any" name="family">
            <string>sans serif</string>
        </test>
        <edit name="family" mode="assign">
            <string>sans-serif</string>
        </edit>
    </match>

<!--
  Accept deprecated 'sans' alias, replacing it with 'sans-serif'
-->
    <match target="pattern">
        <test qual="any" name="family">
            <string>sans</string>
        </test>
        <edit name="family" mode="assign">
            <string>sans-serif</string>
        </edit>
    </match>

<!--
  Load local system customization file
-->
    <include ignore_missing="yes">conf.d</include>

<!-- Font cache directory list -->

    <cachedir>/var/cache/fontconfig</cachedir>
    <cachedir>~/.fontconfig</cachedir>

    <config>
<!--
  These are the default Unicode chars that are expected to be blank
  in fonts.  All other blank chars are assumed to be broken and
  won't appear in the resulting charsets
 -->
        <blank>
            <int>0x0020</int>    <!-- SPACE -->
            <int>0x00A0</int>    <!-- NO-BREAK SPACE -->
            <int>0x00AD</int>    <!-- SOFT HYPHEN -->
            <int>0x034F</int>    <!-- COMBINING GRAPHEME JOINER -->
            <int>0x0600</int>    <!-- ARABIC NUMBER SIGN -->
            <int>0x0601</int>    <!-- ARABIC SIGN SANAH -->
            <int>0x0602</int>    <!-- ARABIC FOOTNOTE MARKER -->
            <int>0x0603</int>    <!-- ARABIC SIGN SAFHA -->
            <int>0x06DD</int>    <!-- ARABIC END OF AYAH -->
            <int>0x070F</int>    <!-- SYRIAC ABBREVIATION MARK -->
            <int>0x115F</int>    <!-- HANGUL CHOSEONG FILLER -->
            <int>0x1160</int>    <!-- HANGUL JUNGSEONG FILLER -->
            <int>0x1680</int>    <!-- OGHAM SPACE MARK -->
            <int>0x17B4</int>    <!-- KHMER VOWEL INHERENT AQ -->
            <int>0x17B5</int>    <!-- KHMER VOWEL INHERENT AA -->
            <int>0x180E</int>    <!-- MONGOLIAN VOWEL SEPARATOR -->
            <int>0x2000</int>    <!-- EN QUAD -->
            <int>0x2001</int>    <!-- EM QUAD -->
            <int>0x2002</int>    <!-- EN SPACE -->
            <int>0x2003</int>    <!-- EM SPACE -->
            <int>0x2004</int>    <!-- THREE-PER-EM SPACE -->
            <int>0x2005</int>    <!-- FOUR-PER-EM SPACE -->
            <int>0x2006</int>    <!-- SIX-PER-EM SPACE -->
            <int>0x2007</int>    <!-- FIGURE SPACE -->
            <int>0x2008</int>    <!-- PUNCTUATION SPACE -->
            <int>0x2009</int>    <!-- THIN SPACE -->
            <int>0x200A</int>    <!-- HAIR SPACE -->
            <int>0x200B</int>    <!-- ZERO WIDTH SPACE -->
            <int>0x200C</int>    <!-- ZERO WIDTH NON-JOINER -->
            <int>0x200D</int>    <!-- ZERO WIDTH JOINER -->
            <int>0x200E</int>    <!-- LEFT-TO-RIGHT MARK -->
            <int>0x200F</int>    <!-- RIGHT-TO-LEFT MARK -->
            <int>0x2028</int>    <!-- LINE SEPARATOR -->
            <int>0x2029</int>    <!-- PARAGRAPH SEPARATOR -->
            <int>0x202A</int>    <!-- LEFT-TO-RIGHT EMBEDDING -->
            <int>0x202B</int>    <!-- RIGHT-TO-LEFT EMBEDDING -->
            <int>0x202C</int>    <!-- POP DIRECTIONAL FORMATTING -->
            <int>0x202D</int>    <!-- LEFT-TO-RIGHT OVERRIDE -->
            <int>0x202E</int>    <!-- RIGHT-TO-LEFT OVERRIDE -->
            <int>0x202F</int>    <!-- NARROW NO-BREAK SPACE -->
            <int>0x205F</int>    <!-- MEDIUM MATHEMATICAL SPACE -->
            <int>0x2060</int>    <!-- WORD JOINER -->
            <int>0x2061</int>    <!-- FUNCTION APPLICATION -->
            <int>0x2062</int>    <!-- INVISIBLE TIMES -->
            <int>0x2063</int>    <!-- INVISIBLE SEPARATOR -->
            <int>0x206A</int>    <!-- INHIBIT SYMMETRIC SWAPPING -->
            <int>0x206B</int>    <!-- ACTIVATE SYMMETRIC SWAPPING -->
            <int>0x206C</int>    <!-- INHIBIT ARABIC FORM SHAPING -->
            <int>0x206D</int>    <!-- ACTIVATE ARABIC FORM SHAPING -->
            <int>0x206E</int>    <!-- NATIONAL DIGIT SHAPES -->
            <int>0x206F</int>    <!-- NOMINAL DIGIT SHAPES -->
            <int>0x2800</int>    <!-- BRAILLE PATTERN BLANK -->
            <int>0x3000</int>    <!-- IDEOGRAPHIC SPACE -->
            <int>0x3164</int>    <!-- HANGUL FILLER -->
            <int>0xFEFF</int>    <!-- ZERO WIDTH NO-BREAK SPACE -->
            <int>0xFFA0</int>    <!-- HALFWIDTH HANGUL FILLER -->
            <int>0xFFF9</int>    <!-- INTERLINEAR ANNOTATION ANCHOR -->
            <int>0xFFFA</int>    <!-- INTERLINEAR ANNOTATION SEPARATOR -->
            <int>0xFFFB</int>    <!-- INTERLINEAR ANNOTATION TERMINATOR -->
        </blank>
<!--
  Rescan configuration every 30 seconds when FcFontSetList is called
 -->
        <rescan>
            <int>30</int>
        </rescan>
    </config>

</fontconfig>

Впрочем, fonts.conf на плохом и хорошем компах совпадают буква в букву.
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: 'Serif' и 'Sans Serif' шрифты

Сообщение MrClon » 19.07.2011 22:29

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

Maggio
Сообщения: 27
ОС: Linux

Re: 'Serif' и 'Sans Serif' шрифты

Сообщение Maggio » 19.07.2011 22:34

MrClon писал(а):
19.07.2011 22:29
Можно тупо перенести все настройки шрифтов, только надо проследить что-бы сами шрифты лежали в одном и том-же месте на обоих тачках. А если что можно будет откатить конфиги к исходному состоянию (если не забыть сделать бекап).

Я тоже так подумал. Но даже если получится, стану ли я от этого умнее? Это как форматировать диск, который не монтируется. Если конфиги не писались руками, значит их можно сгенерировать. Надо только установить, как.
Спасибо сказали:

Maggio
Сообщения: 27
ОС: Linux

Re: 'Serif' и 'Sans Serif' шрифты

Сообщение Maggio » 21.07.2011 21:38

Вот я на что жалуюсь на самом деле:
$ fc-match "Sans"
Ubuntu-M.ttf: "Ubuntu" "Medium"
$ fc-match "Serif"
Ubuntu-M.ttf: "Ubuntu" "Medium"

Как с этим бороться?
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: 'Serif' и 'Sans Serif' шрифты

Сообщение MrClon » 22.07.2011 21:39

Maggio писал(а):
19.07.2011 22:34
Я тоже так подумал. Но даже если получится, стану ли я от этого умнее? Это как форматировать диск, который не монтируется. Если конфиги не писались руками, значит их можно сгенерировать. Надо только установить, как.

Мне кажется что те конфиги именно что писались в ручную разработчиками дистра (точнее их один раз кто-то написал, а потом много кто под себя переписывал). Думаю возможная, в данном случае, автоматизация заключается в автоматической заливке конфигов из архива.
Спасибо сказали: