아리따글꼴을 fonts.conf에서 묶어주고 싶습니다.

sephiron의 이미지

새 공개 글꼴인 아리따체에는 aritaM과 aritaSB가 있는데 aritaM이 일반, aritaSB가 굵은 글꼴입니다.

한데 아리따체는 비스타 맑은 굴림과 같이 같은 폰트 패밀리로 나오는 것이 아니라 각각 다른 폰트 패밀리로 나타나기 때문에 파이어폭스 같은 응용프로그램에서 aritaM을 기본 폰트로 지정하면 굵은 글씨체가 aritaSB가 아닌 aritaM이 embolden되어서 나오게 됩니다. embolded aritaM이 아닌 aritaSB로 나오게 하려면 어떻게 해야 하나요?

  <match target="pattern">
    <test name="famliy">    
      <string>aritaM</string>	
    </test>
    <test qual="any" name="embolden" compare="eq">     
      <const>true</const>
    </test>
 
    <edit mode="assign" binding="strong" name="famliy">
      <const>aritaSB</const>
    </edit>
  </match>

를 ~/.fonts.conf에 추가 시켜줬건만은 요지부동이군요. 무엇이 잘못되었지요?
sephiron의 이미지

  <match target="font">
    <test name="family">    
      <string>aritaM</string>	
    </test>
 
    <test target="pattern" name="weight" compare="more">     
      <int>100</int>
    </test>
 
    <edit mode="assign" name="family">
      <string>aritaSB</string>
    </edit>
    <edit target="font" name="embolden" mode="assign">
      <bool>false</bool>
    </edit>
    <edit target="pattern" name="embolden" mode="assign">
      <bool>false</bool>
    </edit>
  </match>

이렇게 하면 font family는 aritaSB로 바뀌지만 embolden이 꺼지지 않고 남아있네요. 왜 그렇죠?
Forensic Computing On Linux

아직 멀었어

마잇의 이미지

올려주신 방법으로는 fc-match의 결과는 바뀌어 보이지만 실제 적용되는 폰트는 바뀌지 않을 겁니다.
target="pattern"에서 바꿔주어야 적용이 되더군요. target="font"는 이미 적용될 폰트가 결정된 상태에서 해당 폰트의 옵션만 조절이 가능한 것 같습니다.

 <!--볼드일 경우 설정-->
 <match target="pattern">
  <test name="weight" compare="more_eq">
   <int>200</int>
  </test>
  <edit name="family" mode="prepend" >
   <string>Lucida Grande</string> // 영문 글꼴은 이것으로 쓰기에 집어넣은 부분입니다.
   <string>aritaSB</string>
  </edit>
 </match>
 
 <match target="font">
  <test name="family" >
   <string>aritaSB</string>
  </test>
  <edit name="embolden" mode="assign">
   <bool>false</bool>
  </edit>
 </match>

전 이렇게 해서 적용시키고 있는데 한가지 웃긴 사실은 /etc/fonts/fonts.conf 파일 내용의 순서가 사용자 설정을 먼저 읽어들이고 embolden 설정이 그 후에 나오기 때문인지 이 둘의 순서를 바꾸어주지 않으면 ~/.fonts.conf에서 아무리 변경을 해도 적용이 되지 않더군요. 이점 확인하시기 바랍니다.

embolden설정은 그대로 적용하서도 되겠지만, 폰트 선택 부분은 사용하시는 폰트 조합에 따라 응용해서 적어주셔야 할 것 같습니다. 저는 Lucida + 아리따로 사용중이라 저렇게 쓰고 있습니다.

--
마잇


--
마잇

마잇의 이미지

참고로 이런 경우에 대해서 좀 오래전이지만 메일링 리스트에서 본적이 있는데 상표권?라이센스? 문제로 이것을 자동적으로 처리해 주기가 곤란하다는 내용이었습니다.

arita 혹은 aritaM 으로 요청이 들어오는 이것을 자동적으로 aritaSB로 바꿔주는 그런 방식이 일종의 상표권을 건드리는 문제라고 언급하던 것 같은 기억입니다.

이런 폰트가 많아지면 꽤 골치아프겠네요 이것도...

잘 모르시는 분들을 위해 '이런 폰트'에 대해 짤막하게 말씀드리면

family는 같고 style이 regular, bold등으로 구분되는 경우가 아니라,
style은 상관 없이 family가 아무개글꼴-regular, 아무개글꼴-bold 이런식으로 된 것을 말합니다.
--
마잇


--
마잇

sephiron의 이미지

지움

sephiron의 이미지

Quote:
전 이렇게 해서 적용시키고 있는데 한가지 웃긴 사실은 /etc/fonts/fonts.conf 파일 내용의 순서가 사용자 설정을 먼저 읽어들이고 embolden 설정이 그 후에 나오기 때문인지 이 둘의 순서를 바꾸어주지 않으면 ~/.fonts.conf에서 아무리 변경을 해도 적용이 되지 않더군요. 이점 확인하시기 바랍니다.

감사합니다. 해결했습니다.

마잇님과 마찬가지로 aritaSB에는 없는 영문과 숫자를 그리기 위해 다른 폰트를 aritaSB에 prepend시켰으나 firefox에서 제대로 나타나지 않고 sans-serif로 alias된 글꼴이 대신 나타나길래 무엇인가 잘못되었나 하고 한참을 삽질했으나 QT4 응용프로그램에서는 제대로 동작하길래 삽질을 그만 두었습니다.
----
Forensic Computing On Linux

아직 멀었어

마잇의 이미지

보통의 qt, gtk 프로그램이 폰트를 결정하는 방식하고 파이어폭스하고 좀 차이가 있는 것 같습니다.

sans-serif로 폰트를 설정하고

 <alias>
  <family>sans-serif</family>
  <prefer>
   <!--<family>MgOpen Cosmetica</family>-->
   <family>Lucida Grande</family>
   <family>aritaM</family>
   <family>aritaSB</family>
   <family>Malgun Gothic</family>
  </prefer>
 </alias>

이런 설정을 해주면 대부분의 프로그램들이 영문은 Lucida, 한글은 아리따체로 적용이 됩니다. 현재 표시하려는 글자의 영역을 가지고 있는 글꼴을 위에서부터 우선적으로 찾아서 그걸 적용합니다.

근데 파이어폭스는 이런 우선순위로 하지않고 로케일 정보를 우선으로 적용하는 것 같습니다. fc-match 폰트 정보 중에서 charset에 들어있는 정보와 현재 로케일이 일치하는 것을 선택해서 그것을 우선적으로 적용한다고 해야 될까요.

Lucida 글꼴 charset에는 ko가 없고 아리따는 있습니다. 제 현재 로케일은 ko_KR.UTF-8이고 아리따체는 한글, 영문 영역 모두 가지고 있습니다. 그래서 파이어폭스에서는 sans-serif로 설정하면 영문, 한글 모두 아리따체로 표현 됩니다. 아리따체에도 영문 영역이 있기 때문이죠.

현재 로케일과 일치하는 글꼴을 먼저 찾아서 그 글꼴이 표현할 수 있는 영역을 최대한 사용합니다.

그리고 이 결정 방식이 보고 있는 웹 페이지의 인코딩과도 상관이 있습니다. iso-8859-1 인코딩을 사용한 페이지의 경우는 또 Lucida를 우선으로 적용하는 것 같더군요.

위 내용 모두 확실한 근거가 있는 것은 아니고 이것 저것 시도해보면서 짐작해낸 것 입니다.

제가 찾은 방법은 western, korean, undefind language 이 세 부분의 폰트 지정을 sans-serif와 같은 대표 글꼴로 하지 않고 우선순위로 적용되고자 하는 영문 폰트로 직접 지정을 했습니다.

파폭의 설정을 sans-serif와 같은 대표 글꼴로 유지하시려면

 <match>
  <test name="family">
   <string>sans-serif</string>
  </test>
  <edit name="family" binding="strong">
   <string>Lucida Grande</string>
  </edit>
 </match>

이런식으로 binding="strong"을 이용해도 가능했던 것 같습니다.

정리하면, 표시하는 웹 사이트의 인코딩 정보와 글꼴이 표현 가능한 chrset 정보를 비교해서 가장 먼저 일치하는 글꼴을 찾아낸다. 이 글꼴이 표현 가능한 영역을 최대한 활용하고 없으면 다음 우선순위의 글꼴을 찾는다

이게 파폭이 글꼴을 결정하는 방식 같습니다.

한가지 더 애매한 사실은 fc-match sans-serif 해보면 이 결과에도 로케일 정보가 우선시 된다는 겁니다. 하지만 일반 프로그램들은 최초에 제가 설명한 방식으로 결정을 하는 것 같습니다.
--
마잇


--
마잇

sephiron의 이미지

감사합니다. 많이 배우고 갑니다.
----
Forensic Computing On Linux

아직 멀었어

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.