urxvt의 글꼴 렌더링 문제 — 문자 사이에 너무 많은 공간


27

오늘 초부터 rxvt-unicode에서 글꼴 렌더링 문제가 발생합니다. 특히 많은 글꼴을 사용하면 문자 사이에 추가 공간이 충분합니다. 다른 글꼴에서는 rxvt가 크기 변경을 거부합니다.

다음은 urxvt와 xterm 간 간격 문제의 예입니다.

글꼴 리소스 :

URxvt*font:     xft:Terminus:medium:size=10
xterm*faceName: xft:Terminus:medium:size=10

그리고 렌더링

  • urxvt 나쁜 글꼴
  • xterm 좋은 글꼴

힌트와 앤티 앨리어싱의 모든 순열을 시도했습니다. 크기 또는 픽셀 크기를 변경하면 urxvt에서 글꼴 크기가 조정되지만 추가 간격이 늘어납니다.

누구든지 내가 이것을 고칠 수있는 아이디어가 있습니까?


1
xterm실제로 동일한 글꼴을 사용하고 있다고 생각하지 않습니다 . J과는 0분명히 다르다. 리소스 파일 ( xterm*faceName: xft:Nosuchfont:medium:size=10) 에 존재하지 않는 글꼴을 사용하여이를 확인할 수 있습니다 . 여전히 똑같이 보인다면 분명히 종말이 아닙니다.
goldilocks

@goldilocks 당신이 옳은 것 같습니다. Urxvt 잘못된 글꼴을 따기 몹시을 렌더링.
casey

1
gvim원하는 글꼴이 설치되어 있지 않은 시스템에서 구성을 사용할 때 이를 알았습니다 . xft또는 모노 스페이스아닌 글꼴로 돌아 가면 그 모양이 나타납니다.
goldilocks

2
@goldilocks 업데이트 중에 잘못된 fontconfig 규칙이 적용되어 모든 비트 맵 글꼴을 사용할 수 없도록 차단했습니다. 나는 그것을 발라서 다시 정상으로 돌아 왔습니다.
Casey

답변:


15

Urxvt에는 기본 커닝 옵션이 있습니다 : letterSpace. 참조 man urxvt:

-letsp number
컴파일 프릴 : 전체 문자 간격을 제어하여 계산 된 문자 너비를 조정하는 양입니다. 음수 값은 문자 간격을 강화하고 양수 값은 문자 간격을 넓 힙니다. 홀수 글꼴 메트릭을 해결하는 데 유용합니다. 리소스 letterSpace.

따라서 다음 ~/.Xresources과 같이 줄을 추가하여 간격을 조정할 수 있습니다 .

URxvt.letterSpace: -1

참고 : 첫 번째 스크린 샷에서 말하기는 어렵지만 Urxvt가 Terminus를 찾거나로드 할 수 없으므로 넓은 간격으로 기본 글꼴로 돌아가는 것처럼 보입니다. Terminus는 비트 맵 글꼴 (기본적으로 비활성화되어 있음)이므로 xfontsel올바른 글꼴 문자열을 정의에 복사하는 데 사용해야 합니다.

이 시스템의 작동 방식에 대한 자세한 설명은 X 논리 글꼴 설명 의 아치 위키 페이지를 참조하십시오 .


3
나는이 문제도 가지고 있었고 그것이 urxvt -letsp -2나에게 필요한 것을 발견했다 . 사용하는 -1것이 더 좋지만 처음에는 충분하지 않아서 그것을 깨닫지 못했습니다.
Adam Katz

또한 설치되어 있지 않은 경우 fc-match <font-name>대신 대신 사용할 수 있습니다 xfontsel( font-nameURxvt*font줄의 글꼴 이름에 지정된 표현식입니다 ). 이것이 표현식과 일치하는 값으로 표시되면 글꼴이 올바르게로드됩니다. 예를 들어 fc-match "Noto Mono"제공 DejaVuSans.ttf: "DejaVu Sans" "Book"하면 잘못된 글꼴 표현으로 간주 될 수 있습니다.
Avinash R

6

내 시스템에서 Terminus와 같은 비트 맵 글꼴을 차단하는 규칙이 활성화되었습니다.

이 규칙 (내 시스템)은 다음에 /etc/fonts/conf.d/70-no-bitmap-fonts포함되어 있습니다.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Reject bitmap fonts -->
 <selectfont>
  <rejectfont>
   <pattern>
     <patelt name="scalable"><bool>false</bool></patelt>
   </pattern>
  </rejectfont>
 </selectfont>
</fontconfig>

conf.d디렉토리 에서 이것을 제거 하고 내 글꼴이에서 다시 올바르게 렌더링됩니다 urxvt.


3

가 있음을 유의하시기 바랍니다 버그 리포트 문자 간격에.

비슷한 문제가있었습니다. 버그 토론의 권고에 따라, 나는 설정 Xft.rgba: noneXft.hintstyle: hintfull에서 ~/.Xdefaults(대신 Xft.rgba: rgb하고 Xft.hintstyle: hintslight). 이것은 나를 위해 그것을 고쳤다 – 나는 우분투 모노를 폰트로 사용했다.


3

내 솔루션은 간단했습니다.

URxvt*font:     xft:mono:medium:size=10
xterm*faceName: xft:mono:medium:size=10

이제 완벽하게 작동합니다.


0

이것은 실제 글꼴 파일 (필자의 경우 모노 스페이스)에서 urxvt의 다른 것보다 더 많이 발생할 수 있습니다. 글꼴이 (잘못된) 일부 글리프를 너무 넓게 선언하면 urxvt는 그리드도 넓게 만들어야합니다.

필자의 경우 "확인"글꼴은 Bitstream Vera Sans Mono였습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.