Làm cách nào để ngăn chặn phiên bản in đậm của phông chữ tự động của phông chữ rộng hơn so với thông thường có cùng kích thước pt?


10

Tôi có một phông chữ đơn cách ( PT Mono) mà tôi thích sử dụng trong lập trình IDE. Các phông chữ chỉ có Regular, tất cả các khác BoldItalicđược bắt nguồn bằng cách xiên và "in đậm" của Regular. Vấn đề là các ký tự "được in đậm" rộng hơn các ký tự thông thường, do đó các chuỗi mã nguồn trong cửa sổ IDE hiện bao gồm các ký tự không đơn cách.

Làm cách nào để kiểm soát "độ đậm" của phông chữ để nó không trở nên rộng hơn thông thường?

Vấn đề được minh họa trên ảnh chụp màn hình bên dưới ( PT Mono, không in đậm chuyên dụng). Xem cách các từ "unsign char" và "sizeof" đang di chuyển ra khỏi vị trí thích hợp của chúng.

tự động in đậm thay đổi chiều rộng

Đây là một ví dụ khác, Droid Sans Mono(không in đậm chuyên dụng). nhập mô tả hình ảnh ở đây

Và đây là một ví dụ khi phông chữ có phiên bản in đậm ( Liberation Mono). Táo bạo và thường xuyên được liên kết hoàn hảo. nhập mô tả hình ảnh ở đây

Vì vậy, vấn đề chắc chắn là trong kết xuất in đậm phù phiếm trong các tình huống không được cung cấp đậm. Các công cụ phông chữ là để đổ lỗi.

CẬP NHẬT: Có một tệp /etc/fonts/conf.avail/90-synthetic.confmà nếu được tham chiếu từ các /etc/fonts/conf.d/giai điệu của công cụ phông chữ để thực hiện tổng hợp các phông chữ không có phiên bản in đậm. Nếu liên kết tượng trưng đến tập tin này bị xóa khỏi /etc/fonts/conf.d/, thì sự tô điểm sẽ biến mất. Đây không phải là những gì mong muốn chính xác, nhưng ít nhất điều này chữa được trường hợp phông chữ đơn cách không phải là không gian đơn (xem bên dưới, PT Mono). Việc tinh chỉnh của phần tô vẫn được muốn (bằng tệp cấu hình hoặc bằng freetype2bản vá.

nhập mô tả hình ảnh ở đây


Bạn không thể kiểm soát điều đó. Thiết kế phông chữ sẽ bị hủy hoại. Ngay cả khi bạn giảm chính xác kích thước (mà bạn không thể) để khớp với khoảng cách phông chữ thông thường, thì phông chữ đậm sẽ trông nhỏ hơn. Nếu bạn muốn phông chữ cách đều nhau, chỉ cần không sử dụng phông chữ đậm ... hoặc thử thiết bị đầu cuối
zetah

Đo không phải sự thật. Các phông chữ có cả kiểu chữ thông thường và đậm được cung cấp trong các tệp riêng biệt có cùng độ rộng char theo chiều rộng và in đậm. Ví dụ, LetterGothic.
mbaitoff

Tôi đứng sửa. Tôi cũng nhận thấy điều tương tự khi sử dụng SciTE (và có lẽ bạn cũng sử dụng trình soạn thảo dựa trên Scintilla - có lẽ là Geany?) Trong khi phông chữ của tôi là Droid Sans Mono, nhưng tôi đã chấp nhận nó và tôi không biết rằng phông chữ có trọng số có thể có khoảng cách khác nhau ngay cả đối với các phông chữ đơn cách, trong khi phông chữ đậm sử dụng khoảng cách giống như thông thường. Thậm chí nhiều hơn có vẻ như các phông chữ tỷ lệ cũng có "tính năng" này mà bạn nhận thấy, không phải tất cả. Xin lỗi vì câu trả lời đầu tiên táo bạo của tôi, đáng lẽ tôi nên kiểm tra trước
zetah

@zetah: Tôi đã xem qua các tệp phông chữ khác nhau và có vẻ như sự thay đổi về chiều rộng chỉ xảy ra khi không có phiên bản in đậm dành riêng cho phông chữ. Tôi sẽ cập nhật câu hỏi với nhiều ảnh chụp màn hình.
mbaitoff

1
cũng đề cập đến ở đây: bugs.launchpad.net/ubuntu/+source/ttf-droid/+bug/565393
zetah

Câu trả lời:


8

mbaitoff , tôi đang đăng bài này ngoài bản cập nhật của bạn, không phải là một câu trả lời

Nếu người dùng tạo tệp có tên ~/.fonts.conf:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="font">
        <test name="spacing" compare="eq">
            <const>mono</const>
        </test>
        <edit name="embolden" mode="assign">
            <bool>false</bool>
        </edit>
    </match>
</fontconfig>

sau đó, các ứng dụng có thể sử dụng phông chữ đơn cách in đậm nếu có và vô hiệu hóa "in đậm tổng hợp" nếu phông chữ được sử dụng không có kiểu chữ in đậm.

Nó chỉ là thay thế, và cách tiếp cận hơi khác nhau với kết quả khác nhau


Nếu liên kết tượng trưng /etc/conf.d/50-user.confđược đổi tên thành được thực thi sau đó 90-synthetic.conf, bạn không phải xóa hoàn toàn. 99-user.confhoạt động tốt Nếu không, 90-synthetic.confcho phép nó một lần nữa.
musiKk 3/03/2016
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.