Vị trí của phông chữ truetype


19

Tôi muốn tạo một tập lệnh nhỏ cài đặt một vài phông chữ truetype trên hệ thống của người dùng. Trên máy Ubuntu của tôi, phông chữ truetype được đặt tại /usr/share/fonts/truetype. Tuy nhiên, tôi không chắc vị trí này có giống nhau trên tất cả các máy không. Có cách nào để tìm ra nơi các phông chữ truetypes được lưu trữ trên bất kỳ hệ thống Linux nào không?

Cập nhật
Sau một số nghiên cứu tôi thấy rằng đường dẫn usr/share/fonts/truetypeđược chỉ định trong tệp XML /etc/fonts/fonts.conf. Đó là một tệp XML, vì vậy tôi có thể sử dụng XPath để lấy thư mục:

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

Tuy nhiên, tôi không biết liệu tệp này có tồn tại trên tất cả (hoặc hầu hết) các hệ thống Linux hay không.

Câu trả lời:


20

Mỗi phông chữ nằm dưới bất kỳ thư mục con nào /usr/share/fonts~/.fontsđược quét và thêm vào bộ sưu tập bạn có thể sử dụng. Vì vậy, miễn là phông chữ của bạn nằm trong một trong hai thư mục đó, nó được định vị chính xác, vị trí đó giống nhau cho hầu hết mọi bản phân phối linux chính.

Cập nhật:

Bằng cách này, tôi có thể xác nhận rằng fonts.conftập tin có mặt trên cả Fedora và Ubuntu (và các sản phẩm phái sinh của chúng: Xubfox, Lubfox, Linux Mint, Cinnammon, Peppermint OS, Fedora và tất cả các spin của nó, đề cập đến một số).


Vậy thì, tại sao tôi lại có phông chữ Firefoxgnome-font-viewerkhông tồn tại ở những vị trí đó ( /usr/share/fonts~/.fonts)? Tôi sử dụng Fedora 28
Kế toán م

4

Trong Fedora, đường dẫn thư mục là /home/{user}/.local/share/fonts

bạn có thể sao chép / dán tập tin phông chữ ở đây.


0

Có lẽ bạn có thể xem xét việc tạo một gói với phông chữ của bạn. Đó là một chút công việc tạo các tệp mô tả gói và quy tắc tạo. Nhưng bạn có khả năng cập nhật và gỡ cài đặt miễn phí. Đối với Ubuntu, bạn nên tạo tệp .deb.


0

Tất cả các bản phân phối là khác nhau, tốt hơn hết là bạn nên đặt đường dẫn mặc định và cho phép người dùng chọn giữa mặc định và tùy chỉnh.

Biên tập:

Theo tôi, bạn có ba giải pháp vì không có biến môi trường hoặc hàm cho điều đó.

  1. Đặt đường dẫn mặc định và cho phép người dùng chọn giữa mặc định và tùy chỉnh.
  2. Giống như dtrosset đã nói, bạn có thể tạo các gói với phông chữ của mình cho các bản phân phối khác nhau.
  3. Bạn có thể sử dụng if / elif / other và test -e để xác định xem các đường dẫn máy chủ phông chữ khác nhau có tồn tại không. Nếu không có ai tồn tại, hiển thị đường dẫn mặc định và cho phép người dùng chọn giữa nó và một đường dẫn tùy chỉnh.

Ví dụ:

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 Đó chỉ là ý kiến ​​của tôi ...


-1 Hack. Đây không phải là một giải pháp và nó sẽ chỉ gây ra sự đau khổ cho nhà phát triển, StackedCrooking, trong trường hợp này vì chúng tôi không thể phụ thuộc vào từng người dùng biết các tệp ttf của họ ở đâu. Nếu ngay cả nhà phát triển thậm chí không biết các tệp đang ở đâu, làm thế nào chúng ta có thể mong đợi người dùng biết?
Nitrodist
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.