-
f 두 자가 ff 한 자로 바뀌는 것을 합자라고 한다. ff가 유니코드에서 FB00에 할당되어 있다. 아랍어에서는 모든 글자들이 합자가 된다. 그것이 아랍어 텍스트가 지렁이가 똥 싸며 지나간 것처럼 보이는 이유이다. 각 글자가 세 가지 형태(glyph)를 갖고 있다. 단어의 처음에 올 때, 중간에 올 때, 끝에 올 때.

아래 이미지에서는 단어들이 제대로 합자되어 있는 반면, 위에서는 죄다 떨어져 있다. font-mappings.xml을 비롯하여 아랍어 폰트와 관련된 모든 설정들을 이리저리 바꾸어 보고, 심지어 Noto Sans Arabic 폰트를 새로 받아 시도했지만 AHF가 여전히 동일한 결과를 만들어내었다.
그러다가 @letter-spacing이 떠올랐다. 그 값이 0이 아니라면 합자가 이루어질 수 없을 것이다.
<xsl:attribute name="letter-spacing">-0.25pt</xsl:attribute>
앞서 만들어진 다른 변환기를 참고하여 아래와 같이 고치니 비로소 올바른 결과가 만들어졌다.
<xsl:attribute name="letter-spacing">
<xsl:choose>
<xsl:when test="matches(substring-before($locale, '_'), 'ar|he')">0</xsl:when>
<xsl:otherwise>-0.05pt</xsl:otherwise>
</xsl:choose>
</xsl:attribute>'TeX과 친구들' 카테고리의 다른 글
문제아 찾기 (0) 2026.06.17 XSLT에 대하여 (0) 2025.12.18 Python에서 immutable object와 mutable object (0) 2025.09.23 readhanja 루아텍 패키지 (0) 2025.09.01 VS Code에서 한자 찾기 (0) 2025.08.29