Fontspec을 사용하여 패키지 디렉터리에서 글꼴 로드

Fontspec을 사용하여 패키지 디렉터리에서 글꼴 로드

저는 다른 사람들이 자신의 texmf 디렉토리에 설치할 수 있도록 LaTeX 패키지(사실 문서 클래스)를 작업 중입니다. 이 패키지에서는 주어진 글꼴을 사용하여 \lstset 명령에 대한 기본 구성을 설정합니다. 예를 들어 Droid Sans Mono를 글꼴로 사용하려는 경우 해당 글꼴이 시스템에 설치되어 있으면 다음 명령이 작동합니다.

\newfontfamily\listingsfont[Scale=0.85]{Droid Sans Mono}
\lstset {
    basicstyle=\footnotesize\listingsfont
}

그러나 시스템에 글꼴이 설치되어 있지 않으면 당연히 실패합니다. 이 때문에 LaTeX 패키지와 함께 글꼴을 배포하고자 합니다. Fontspec의 Path 옵션을 테스트했습니다.

\newfontfamily\listingsfont[Path=/home/username/texmf/tex/latex/mypackage/,Scale=0.85]{Droid Sans Mono}

사용자 이름을 미리 알아야 한다는 점을 제외하면 완벽하게 작동합니다.

Fontspec에서 내 패키지에 상대적인 경로를 지정하는 방법이 있습니까? 아니면 홈 디렉토리의 경로를 얻으려면?

(이 패키지의 대부분의 사용자는 Ubuntu를 기본 OS로 사용합니다.)

답변1

여기서 고려해야 할 사항이 많이 있습니다

  1. texmf-tree에 저장된 글꼴을 로드할 때 글꼴 이름이 아닌 파일 이름을 사용해야 합니다. 글꼴 이름은 기본적으로 모든 OS에서 작동하지 않기 때문입니다. 따라서 \newfontfamily\listingsfont[Scale=0.85]{droidsansmono.ttf}대신 사용하십시오 \newfontfamily\listingsfont[Scale=0.85]{Droid Sans Mono}.
  2. 글꼴 은 fontstexmf 트리의 폴더 에 속합니다 — fonts\opentype-fonts otffonts\truetype. ttf글꼴을 패키지 근처에 유지하는 방법을 찾았다고 하더라도 TeX 배포판과 같은 대규모 시스템은 모든 사람이 일부 표준을 고수하는 경우에만 작동할 수 있습니다.

  3. 클래스나 패키지와 함께 자동으로 글꼴을 배포하는 것은 의미가 없습니다. 글꼴을 완벽하게 제어할 수 있는 경우, 글꼴이 정말 특별하고 수업에서만 사용할 수 있는 경우 또는 무료가 아닌 경우에는 예외가 있습니다. 그러나 Droid Sans Mono의 경우 이미 이 글꼴이 포함된 패키지인 CTAN이 있으며 texmf 트리에 두 번째 버전을 추가하면 문제가 발생할 수 있습니다. 예를 들어 xelatex는 검색 경로에 두 개 이상의 글꼴 버전이 있는 경우 이를 좋아하지 않습니다.

따라서 일부 사용자가 CTAN에 있는 글꼴이 없을까 걱정된다면 Droid Sans MonoTeX 시스템을 업데이트하거나 CTAN에서 수동으로 글꼴을 설치하라고 알려주십시오.

패키지와 함께 글꼴을 배포해야 하는 경우 사용자에게 올바른 폴더에 글꼴을 설치하라고 지시하세요(CTAN을 통해 패키지를 배포하면 사용자가 이를 처리합니다).

답변2

"novel" 문서 클래스를 살펴보세요. TeXlive 2016 배포판에 있을 수도 있고 그렇지 않은 경우 CTAN에 있을 수도 있습니다. 클래스에는 패키지(실제로는 문서 클래스)를 설치할 때 적절한 위치(fonts/opentype/novel/)에 설치되는 자체 사용자 정의 글꼴이 포함되어 있습니다.

tlmgr(배포 설치 프로그램)을 통해 설치하면 작동합니다. TDS로 다운로드하여 TEXMF-LOCAL 디렉토리에 설치해도 작동합니다. 어떤 경우에는 luatex-cache를 다시 빌드해야 할 수도 있습니다.

사용자 정의 글꼴은 "패키지 디렉터리에서" 로드되지 않습니다. 오히려 설치된 패키지는 글꼴이 있어야 할 적절한 디렉토리에 글꼴을 배치합니다. 자동으로 수행됩니다.

이 문서 클래스를 구축하기 시작했을 때 질문에서 요청한 작업을 정확히 수행하는 것을 상상했습니다. 패키지 *.sty 파일이 있는 곳에 글꼴을 배치합니다. 그러나 패키지 설치 프로그램이 글꼴도 설치할 수 있기 때문에 이는 쉽게 작동하지 않으며 실제로 필요하지도 않습니다.

편집: 최근에는 fontspec글꼴을 찾을 수 있는지 여부를 감지하고 글꼴이 있는지 여부에 따라 다른 조치를 취하는 기능이 추가되었습니다. 따라서 글꼴 A를 요청하는 매크로를 작성하는 것이 가능하지만 A가 발견되지 않으면 B를 사용하고 A도 B도 아닌 경우 C를 사용하고 마지막으로 글꼴이 발견되지 않으면 메시지와 함께 중단됩니다. 최근 fontspec문서를 참조하세요.

관련 정보