TrueType yazı tiplerinin konumu


19

Kullanıcının sistemine birkaç truetype yazı tipi yükleyen küçük bir komut dosyası oluşturmak istiyorum. Ubuntu makinemde truetype yazı tipleri yer alıyor /usr/share/fonts/truetype. Ancak, bu konumun tüm makinelerde aynı olup olmadığından emin değilim. Truetypes yazı tiplerinin herhangi bir Linux sisteminde nerede depolandığını öğrenmenin bir yolu var mı?

Güncelleme
Biraz araştırma sonra yolun bulundu usr/share/fonts/truetypeXML dosyasında belirtilen /etc/fonts/fonts.conf. Bu bir XML dosyası, bu yüzden dir almak için XPath kullanabilirsiniz:

xpath -q -e 'fontconfig/dir[1]/text()[1]' /etc/fonts/fonts.conf

Ancak bu dosyanın tüm (veya çoğu) Linux sistemlerinde var olup olmayacağını bilmiyorum.


Ayrıca sisteme yeni yazı tipleri eklemenizi sağlayan fc-cache(1)man sayfasına bakın .
jww

Yanıtlar:


20

Herhangi bir alt dizinin altında bulunan /usr/share/fontsve ~/.fontstaranıp kullanabileceğiniz koleksiyona eklenen her yazı tipi . Yazı tipiniz bu iki dizinden birinde olduğu sürece düzeltilmiş bir konumdadır, bu konum hemen hemen her büyük linux dağıtımı için aynıdır.

Güncelleme:

Bu arada, fonts.confdosyanın hem Fedora hem de Ubuntu'da (ve bunların türevleri: Xubuntu, Lubuntu, Linux Mint, Cinnammon, Peppermint OS, Fedora ve tüm spinlerinde) bulunduğunu onaylayabilirim.


1
Sonra, neden fontları var Firefoxve gnome-font-viewerolanlar konumlarda mevcuttur (değil /usr/share/fontsve ~/.fonts)? Ben Fedora 28
Muhasebeci م

Önce kontrol etmek de isteyebilirsiniz FONTCONFIG_PATH. FONTCONFIG_PATHvarsayılan yapılandırma dizinini geçersiz kılmak için kullanılır.
jww

4

Fedora'da klasör yolu /home/{user}/.local/share/fonts

yazı tipi dosyalarını buraya kopyalayabilir / yapıştırabilirsiniz.


1

Tüm dağıtımlar farklıdır, varsayılan bir yol ayarlamak ve kullanıcının varsayılan ve özel bir yol arasında seçim yapmasına izin vermek daha iyidir.

Düzenle:

Bence üç çözümünüz var çünkü bunun için ortam değişkeni ya da işlevi yok.

  1. Varsayılan bir yol belirleyin ve kullanıcının varsayılan ve özel bir yol arasında seçim yapmasına izin verin.
  2. Dtrosset'in dediği gibi, farklı dağıtımlar için yazı tiplerinizle paketler oluşturabilirsiniz.
  3. Farklı yazı tipi sunucusu yollarının olup olmadığını belirlemek için if / elif / else ve test -e komutlarını kullanabilirsiniz. Hiç kimse yoksa, varsayılan yolu gösterin ve kullanıcının bu yolla özel bir yol arasında seçim yapmasına izin verin.

Ör:

DEFAULT="$home/.fonts/"
UBUNTU_XFSTT="/usr/share/fonts/truetype/"
RHL52_XFS="/usr/X11R6/lib/X11/fonts/ttfonts/"
RHL6_XFSTT="/usr/X11R6/lib/X11/fonts/"
DEBIAN_XFSTT="/usr/share/fonts/truetype/"

#Test if directory exist
if test -e ${UBUNTU_XFSTT} ; then
    echo ${UBUNTU_XFSTT}
elif test -e ${RHL52_XFS} ; then
    echo ${RHL52_XFS}
elif test -e ${RHL6_XFSTT} ; then
    echo ${RHL6_XFSTT}
elif test -e ${DEBIAN_XFSTT} ; then
    echo ${DEBIAN_XFSTT}
else
    echo ${DEFAULT}
fi

PS: Bu sadece benim fikrim ...


-1 Hack. Bu bir çözüm değildir ve ttf dosyalarının nerede olduğunu bilen her kullanıcıya güvenemeyeceğimiz için sadece geliştirici StackedCrooked için sıkıntıya neden olur. Geliştirici bile dosyaların nerede olduğunu bilmiyorsa, bir kullanıcının bilmesini nasıl bekleyebiliriz?
Nitrodist

Önce kontrol etmek de isteyebilirsiniz FONTCONFIG_PATH. FONTCONFIG_PATHvarsayılan yapılandırma dizinini geçersiz kılmak için kullanılır.
jww

0

Belki yazı tiplerinizle bir paket oluşturmayı düşünebilirsiniz. Paket açıklama dosyalarını ve oluşturma kurallarını oluşturmak biraz iştir. Ancak ücretsiz güncelleme ve kaldırma yeteneği kazanırsınız. Ubuntu için .deb dosyaları oluşturmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.