Linux quản lý phông chữ như thế nào?


11

Khi tôi sử dụng Windows (cách đây rất lâu!) Và Mac OS X, luôn có một "kho" phông chữ trung tâm được chia sẻ và truy cập bởi HĐH và tất cả các chương trình (thư mục phông chữ trong Windows và Font Book trong Mac HĐH X).

Các phông chữ được quản lý trong Linux như thế nào? Ngoài ra còn có một cửa hàng trung tâm cho các phông chữ mà tất cả các chương trình (trình bao không có X, với X, trình quản lý cửa sổ, phần mềm GUI khác) có thể sử dụng? Hoặc các phông chữ được quản lý riêng biệt? Tôi có thể làm gì để quản lý phông chữ của mình một cách hiệu quả và dễ dàng?

Câu trả lời:


13

Có hai cơ chế cho phông chữ trong vùng đất X: phía máy chủ và phía máy khách.

Cách truyền thống để kết xuất phông chữ là để khách hàng thông báo cho máy chủ kết xuất footại vị trí (x, y) trong phông chữ F tựa (trong đó một đặc tả phông chữ bao gồm khuôn mặt, kích thước, mã hóa và các thuộc tính khác). Bản thân máy chủ X hoặc chương trình chuyên biệt gọi là máy chủ phông chữ sẽ mở tệp phông chữ để xây dựng mô tả của từng glyph. Các phông chữ có thể là phông chữ bitmap hoặc vector, nhưng phông chữ vector được chuyển đổi thành bitmap trước khi kết xuất.

Hầu hết các chương trình hiện đại sử dụng kết xuất phông chữ phía máy khách, thường thông qua xftfontconfig . Một cơ chế mới là cần thiết vì kết xuất phông chữ phía máy chủ không hỗ trợ khử răng cưa.

Bên ngoài X (tức là trên bảng điều khiển VGA), có các phông chữ VGA, là các phông chữ bitmap có kích thước cụ thể. Nhưng so với X11, không ai sử dụng bảng điều khiển VGA, vì vậy không có nhiều nỗ lực dành cho chúng.

Trong thực tế, bạn sẽ muốn định cấu hình phông chữ theo hai cách:

  • Đối với các chương trình kiểu cũ: các thư mục phông chữ được liệt kê qua các lệnh FontPathtrong xorg.confvà có thể được xset fpngười dùng chạy X xử lý bằng lệnh. Nếu bạn cài đặt phông chữ mới, bạn có thể cần phải chạy mkfontdir.
  • Đối với chương trình mang phong cách mới hơn, bao gồm tất cả Gtk (Gnome, vv) và Qt (KDE, vv) chương trình: phông chữ đang ở trong thư mục chỉ định bởi <dir>các chỉ thị trong /etc/fonts/fonts.conf, ~/.fonts.confvà một vài nơi khác. Xem tài liệu fontconfig để biết thêm thông tin. Nếu bạn cài đặt phông chữ mới, bạn có thể cần phải chạy fc-cache.

3

Phông chữ điều khiển và phông chữ X là hai thứ riêng biệt trong linux. Sử dụng lệnh setfontđể thay đổi phông chữ của bạn và showconsolefontđể xem nó trông như thế nào. Mỗi bản phân phối có cách đặt phông chữ bảng điều khiển mặc định riêng. Đọc setfonttrang man cho vị trí của các phông chữ điều khiển. Đối với hệ thống Fedora 14 của tôi, đó là / lib / kbd / consolefonts /. Phông chữ bảng điều khiển là định dạng tệp xác định phông chữ bảng điều khiển EGA / VGA.

Phông chữ X là một định dạng khác với phông chữ điều khiển. Chúng thường được xử lý bởi các định nghĩa trong cấu hình X của bạn (với FontPath trong phần Tệp) hoặc thông qua máy chủ Phông chữ (xfs), cũng được đặt trong phần Tệp với FontPath. Bạn cũng có thể thêm FontPath bằng cách chạy xset +fp path. Hệ thống của tôi có tất cả các phông chữ X trong / usr / share / X11 / phông chữ.


Vì vậy, điều đó có nghĩa là tất cả các chương trình GUI chạy trên X sẽ sử dụng phông chữ X?
hpy

1
@penyuan: Không nhất thiết, nhưng đối với phần lớn các trường hợp, có. Nhiều chương trình GUI sử dụng các thư viện cấp cao hơn (như GTK hoặc Qt) để quản lý phông chữ cho bạn.
jsbillings

Lưu ý rằng các tài liệu (ví dụ (La) TeX) sử dụng một bộ phông chữ khác.
vonbrand
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.