Không có ký tự hộp sau khi thay đổi phông chữ Grub mặc định


13

Tôi đã có thể thay đổi phông chữ mặc định của Grub bằng cách sử dụng

grub-mkfont -s 16 -o /boot/grub/grubfont.pf2 font.tty

và sau đó thêm dòng sau vào / etc / default / grub:

GRUB_FONT=/boot/grub/grubfont.pf2

Và tất nhiên

sudo update-grub

Và phông chữ mới đã xuất hiện và tất cả mọi thứ (hãy nhớ chọn một phông chữ đơn cách). Nhưng , các ký tự "hộp" (xung quanh các mục) không bao giờ được hiển thị chính xác. Tôi đoán hầu hết các phông chữ đơn giản là không có bộ ký tự đó. Có cách nào để tôi có thể thêm các nhân vật này không? Thậm chí có thể sao chép chúng từ phông chữ unicode.pf2 mặc định? Nếu điều này là không thực sự có thể, bạn có biết bất kỳ phông chữ nào có các ký tự này không?

Cập nhật:

Tôi đã thử rất nhiều thứ khác nhau, chẳng hạn như chuyển đổi từ ttf sang bdf và sau đó sang pf2, và tôi đã thử chuyển đổi chỉ các ký tự ascii với tùy chọn --range=0x0-0x7f, nhưng không ai trong số chúng dường như làm cho nó hoạt động hoàn hảo. Tôi có cảm giác rằng đó là vì tôi đang tạo ra một phông chữ lớn hơn so với mặc định và do đó glyphs mặc định không thể được sử dụng.

Tôi sẽ cố gắng xem liệu tôi có thể làm cho nó hoạt động với kích thước phông chữ nhỏ hơn không, mặc dù đây là một trong những lý do tôi muốn thay đổi phông chữ.


1
Hãy dùng thử BURG, nó rất hay và có nhiều chủ đề
Extender

Nhưng OP muốn thay đổi phông chữ - không phải chủ đề GRUB. Không liên quan.
WindowsEscapist

Câu trả lời:


8

Về lý thuyết grub-mkfont cho phép vượt qua nhiều phông chữ. Trong trường hợp này, nếu bạn có thể chuyển một liên kết đến Unifont hoặc một phông chữ khác có độ bao phủ rộng hơn cùng một lúc. Phông chữ Grub được sản xuất sẽ là sự kết hợp giữa độ bao phủ của cả hai phông chữ đầu vào.

Lưu ý: một cải tiến hiệu suất gần đây đối với trình tải phông thời gian khởi động Grub có nghĩa là các glyph trong tệp phông Grub phải theo thứ tự tăng dần cụ thể, nhưng tiếc là thay đổi không được thực hiện cho grub-mkfonttiện ích cùng một lúc! Đây là một lỗi:

  • Lỗi # 729470 "grub-mkfont xuất ra các phông chữ mà grub không thể sử dụng (các ký tự phông chữ không theo thứ tự tăng dần: 0 <= 0)"

BTW, nếu bạn quan tâm, lỗi này đã được phát hiện do các thử nghiệm điều tra việc sử dụng phông chữ Ubuntu Mono đang phát triển của Gia đình Phông chữ trong các menu khởi động Grub và khắc phục chính xác vấn đề mà bạn vừa gặp phải!


1
Tôi sẽ để nó nghỉ ngơi cho đến khi họ tải phông chữ Ubuntu Mono vào grub - đó là những gì tôi đã ở ngay từ đầu :) Dù sao cũng cảm ơn rất nhiều.
LasseValentini

9

Về cơ bản những gì bạn muốn làm là sử dụng toán tử phạm vi để giới hạn các ký tự mà phông chữ grub mới của bạn chứa. Nếu bạn không sử dụng toán tử phạm vi thì bạn sẽ nhận được tất cả các glyph bao gồm các thành phần hộp sai hoặc không chính xác từ phông chữ đích của bạn.

Ví dụ:

grub-mkfont -s 16 --range=0x0-0x7f -o /boot/grub/grubfont.pf2 font.tty

Sẽ tạo một phông chữ chỉ có các ký tự ASCII, bất cứ thứ gì phông chữ của bạn không cần phân rã thành phông chữ mặc định để các hộp và mũi tên phải xuất phát từ mặc định. Vui lòng xem trang web này để biết thêm thông tin:

http://grub.enbug.org/gfxterm


1
Điều đó sẽ có ý nghĩa, nhưng tôi vẫn có những glyphs kỳ lạ, có thể vì phông chữ unicode hoàn toàn không được tải? Tôi sẽ cố gắng đặt lại phông chữ mặc định và thử lại lần nữa.
LasseValentini

1
Có lẽ bạn nên tải một phông chữ điều khiển trước và sau đó tải phông chữ ttf ascii của bạn.
Martin Owens -doctormo-

1
Bạn đã thử tải nhiều phông chữ chưa? phông chữ unicode /usr/share/grub/unicode.pf2 nên chứa các ký tự hộp và mũi tên bạn cần. Bạn sẽ có thể tải các phông chữ bằng cách sử dụng lần lượt từng phông chữ cho đến khi bạn có được hiệu ứng mong muốn.
Martin Owens -doctormo-

5

IIRC Tôi đã gặp phải những gì bạn mô tả khi sử dụng tất cả các glyph:


(nguồn: xrmb2.net )

Có lẽ đó là một vấn đề với grub-mkfont, có lẽ nó liên quan đến phông chữ, tôi không biết. :(

Điều gì làm việc cho tôi:

  1. Sử dụng gbdfedđể tạo tệp 'bdf' từ phông chữ bảng điều khiển (ví dụ: '/usr/share/consolefonts/Lat15-VGA16.psf'): Tệp> Nhập> Phông chữ điều khiển, sau đó Tệp> Lưu dưới dạng ...
  2. Chỉ chuyển đổi các ký tự ASCII với grub-mkfont:

    grub-mkfont --output=out.pf2 --range=0x0-0x7f out.bdf

1
Có vẻ như vấn đề chính của tôi là tôi muốn sử dụng phông chữ OpenType (ttf) chứ không phải phông chữ được thiết kế cho bảng điều khiển. Tôi đã thử ở trên với một tệp ttf, nhưng nó không giúp ích gì cho vấn đề cụ thể này. Cảm ơn rất nhiều cho một giải pháp cho một vấn đề tương tự mặc dù :).
LasseValentini

3

Nếu bạn chạy grub-mkfont với cờ -v, nó sẽ cho bạn biết bạn nhận được bao nhiêu glyphs. Nếu bạn nhận được hơn một ngàn, nhân vật biên giới phải ở trong đó. Giới hạn phạm vi sẽ chỉ làm cho mọi thứ tồi tệ hơn. Phông chữ DejaVuSansMono hiển thị chính xác tất cả các ký tự và nó có hơn 3000 glyphs trong .pf2. Nhiều phông chữ khác có được các mũi tên phải nhưng không phải là đường viền.


2

sử dụng phông chữ unicode .. Điều đó hoạt động gần như tốt (chẳng hạn như arialuni.ttf, hiển thị tất cả các ký tự theo yêu cầu) .. Vấn đề của tôi là với khoảng cách ký tự lớn hơn một chút ... và điều đó xảy ra với mọi phông chữ tôi đã kiểm tra.


1

Bạn có thể có được điều này để hiển thị chính xác bằng cách tải cả phông chữ mặc định và phông chữ mong muốn.

Sau đó, đặt phông chữ thành phông chữ mong muốn.

Khi không tìm thấy các ký tự cho hộp, phông chữ thông thường cũng được tải sẽ hoạt động như một mặc định và các ký tự cần thiết sẽ được cung cấp.


0

Tôi nhận ra chủ đề này là cổ xưa, nhưng tôi đã đọc nó ngày hôm nay và đưa ra một câu trả lời khác chưa được cung cấp ... vì vậy đây là:

Nếu bạn nhận được các ký tự lẻ trong GRUB sau khi thay đổi phông chữ, thì đó là vì các ký tự đó không tồn tại trong tệp .ttf mà bạn đã sử dụng để tạo tệp .pf2.

Các ký tự được sử dụng để tạo đường viền là:

  • U + 2501
  • U + 2503
  • U + 250F
  • U + 2513
  • U + 2517
  • U + 251B

Các ký tự thường bị thiếu khác từ tệp .ttf là các mũi tên:

  • U + 2191
  • U + 2193

Bạn có thể sử dụng FontForge (phần mềm nguồn mở) để sao chép và dán các ký tự đó từ .ttf có các ký tự được bao gồm trong .ttf mà bạn đang cố sử dụng. Sau khi tạo .ttf mới với FontForge, bạn có thể sử dụng grub-mkfont để tạo tệp .pf2 có tất cả các ký tự phù hợp.

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.