선행 공백이 올바르게 들여쓰기되도록 텍스트 편집기(또는 Gtk 텍스트 보기 구성요소)가 내 글꼴 설정을 따르도록 하려면 어떻게 해야 합니까?

선행 공백이 올바르게 들여쓰기되도록 텍스트 편집기(또는 Gtk 텍스트 보기 구성요소)가 내 글꼴 설정을 따르도록 하려면 어떻게 해야 합니까?

MATE 데스크톱 환경(Debian Linux 12)의 서식 있는 텍스트와 같은 구성 요소에서 렌더링되는 선행 공백의 너비는 언어에 따라 달라지는 것 같습니다. 텍스트 보기 포함퓨마/편집자,아비말, 등.

PT Mono Regular글꼴( 이 경우)과 글꼴 크기(14pt)를 미리 선택했지만 선행 공백의 너비는 언어 줄마다 다를 수 있습니다.

1부: 잘못된 들여쓰기 공간 너비

글꼴은 PT Mono Regular실제로 공백 문자를 정의합니다. 이는 명령으로 확인할 수 있습니다.FC 쿼리:

$ fc-query --format='%{charset}\n' /usr/share/fonts/truetype/paratype/PTM55F.ttf 
20-7e a0-109 10c-113 116-11f 122-127 12a-12b ...

코드 포인트 범위20-7e표시 글꼴에 공백 문자가 포함되어 있습니다.\u0020.

보기 구성 요소는 공백이 아닌 첫 번째 문자를 확인하여 공백을 렌더링하는 데 사용할 글꼴을 결정하지만 선택한 글꼴에 정의된 공백 문자는 확인하지 않는 것 같습니다. 그렇다면 "AI 공백글꼴" 기능을 없앨 수 있나요?어쩌면 libgtk 구성 라인이 있을 수도 있습니다.

줄 앞에 char 기호를 추가하여 문제를 해결할 수 있는 경우:

2부: 선행 공백이 없는 경우 공백 너비 수정

따라서 보기 구성 요소는 공백을 렌더링하는 데 사용된 글꼴을 "추측"하는 것처럼 보입니다. 공백 앞의 문자만 확인하고 뒤의 문자는 확인하지 않습니다. 규칙의 유일한 예외는 공백이 줄 앞에 오는 경우(보통 들여쓰기를 위한 경우)입니다. 공백 앞에 문자가 없기 때문에 편집자는 공백 뒤의 문자를 검색하여 언어를 찾으려고 시도하지만 일반적으로 검색합니다. 공백 앞의 글자에 대해. 공간.

그러나 탭을 사용하면\u0009공백 문자 대신\u0020들여쓰기의 경우 탭이 작동합니다. 일부 텍스트 편집기는 다음과 같습니다.원자리더만 대접하라\u0020공백을 탭으로 그룹화합니다. 예를 들어 4개를 삭제할 수 있습니다.\u0020스페이스 플러스 원백스페이스 키키스트로크 입력원자또는VSCode.

아래 스크린샷은 공간을 렌더링하기 위해 다양한 글꼴을 선택할 때 텍스트 편집기가 어떻게 보이는지 보여줍니다.

파트 3: 다양한 공백 문자 너비에 유의하세요.

글꼴 파일에 따르면 첫 번째 줄(영어)만 다음과 같은 정의를 사용합니다.PTM55F.ttf문서. 글쎄요, 공백은 텍스트 중간에 있고 공백 너비는 언어의 쓰기 스타일을 반영하기 때문에 언어마다 다른 너비의 공백을 렌더링하는 것이 합리적입니다.

그러나 들여쓰기에는 선행 공백이 사용되는 경우가 많으며, 가장 원하는 렌더링 결과를 얻으려면 기본적으로 사용자가 선택한 글꼴에 따라 크기를 조정해야 합니다.

이 문제는 다른 글꼴에도 존재합니다. 이것은 특히 분명한 것 같습니다고정 폭 글꼴패밀리 글꼴입니다.

어쩌면 Fontconfig가 이 문제를 해결할 수 있을까요?

샘플 텍스트 파일

관련 정보