Как узнать, как соответствие ФК соответствует?

Это зависит полностью и полностью на методе передачи.

rsync сохранит полномочия с -p, владение с -o (использование числового идентификатора, только если Вы передаете --numeric-ids). -a объединения -rlopt, если Вы не инвертируете его с --no-o или --no-p.

scp не будет обычно сохранять полномочия, но будете, если Вы передадите -p.

cp имеет примерно те же флаги (-p для полномочий, -a для всего и рекурсивно вызывающий).

tar имеет -p флаг также.

cpio будет всегда сохранять полномочия.

18
03.07.2012, 15:46
2 ответа

На быстром взгляде это похоже на подлинную fontconfig ошибку мне, так как это работает правильно здесь, и у меня действительно есть и DejaVu и Unifont установленными:

$ fc-match Sans
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match "Sans"
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match "Sans "
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match "Sans 9"
DejaVuSans.ttf: "DejaVu Sans" "Book"

Но на более внимательном рассмотрении мы видим еще некоторые детали. Все еще может быть fontconfig ошибка где-нибудь, но fc-match по-видимому, возвращает значение по умолчанию, когда оно ничего не находит. Это - просто значение по умолчанию, DejaVu в моей системе:

$ fc-match uni
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match unifont
Unifont.ttf: "unifont" "Medium"
$ fc-match 4e5zedrkbxp
DejaVuSans.ttf: "DejaVu Sans" "Book"

Страница справочника fc-match(1) подтверждает, что команда не делает точного соответствия, но возвращает то, что это думает, лучшие соответствия. Вы видите их всех с -a или более краткое -s:

$ fc-match -s uni # now it also finds unifont
DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold"
DejaVuSans-Oblique.ttf: "DejaVu Sans" "Oblique"
DejaVuSans-BoldOblique.ttf: "DejaVu Sans" "Bold Oblique"
n019003l.pfb: "Nimbus Sans L" "Regular"
helvR12-ISO8859-1.pcf.gz: "Helvetica" "Regular"
FreeSans.ttf: "FreeSans" "нормален"
KanjiStrokeOrders.ttf: "KanjiStrokeOrders" "Medium"
Eadui.ttf: "Eadui" "Medium"
Unifont.ttf: "unifont" "Medium"
FreeSerif.ttf: "FreeSerif" "нормален"
cu12.pcf.gz: "ClearlyU" "Regular"
cu-pua12.pcf.gz: "ClearlyU PUA" "Regular"
10x20.pcf.gz: "Fixed" "Regular"

Относительно которого можно просто сказать, "завинчивают Вас" и добавляют другой поиск сверху его для получения соответствия путем, Вы ожидаете это:

$ fc-match -s uni | grep -i uni
Unifont.ttf: "unifont" "Medium"

Но, Ваш вопрос о том, как точно он делает соответствие. FcFontMatch(3) и далее примерно подтвердите, что это использует принимать значение по умолчанию/настраивать значение и определенно подтверждает, что сначала изменяет критерий поиска, который Вы передали ему. Для чего-либо еще глубже, необходимо будет осмотреть код (запустите с вышеупомянутой функции).

11
27.01.2020, 19:46

FontConfig сопоставляет атрибуты на основе "расстояния" от критериев соответствия. Если вы хотите посмотреть, что происходит за кулисами, то установите переменную окружения FC_DEBUG=3 и повторите поиск. Это покажет отладочную информацию, которая может оказаться полезной. Вам не нужно читать код FontConfig.

5
27.01.2020, 19:46

Теги

Похожие вопросы