如何在 ConTeXt 中使用 Liberation 字型?

如何在 ConTeXt 中使用 Liberation 字型?

我有以下程式碼片段

\usemodule  [simplefonts][size=12pt]
\setmainfont[DejaVu Sans]

\starttext

Test text

Тестовый текст

\stoptext

這效果很好。 ConTeXt 編譯它且字體是正確的。但如果我將字體更改為

\usemodule  [simplefonts][size=12pt]
\setmainfont[Liberation Sans]

\starttext

Test text

Тестовый текст

\stoptext

那麼結果將是錯誤的字體並且俄語文本不會呈現。

字型名稱取自fc-list程式的輸出 (Linux)。從 texlive 安裝的 ConTeXt,版本是

mtx-context     | ConTeXt Process Management 0.60
mtx-context     |
mtx-context     | main context file: /usr/share/texmf-dist/tex/context/base/context.mkiv
mtx-context     | current version: 2013.05.28 00:36

答案1

ConTeXt MkIV 不依賴系統字型機制來取得字型名稱。所以回傳的訊息fc-cache是沒有用的。而是使用mtx-fonts腳本來找出字體的名稱。

  1. 跑步

    mtxrun --script fonts --list --pattern=liberation --all
    

    這使

    liberationmono                   liberationmono                   LiberationMono-Regular.ttf
    liberationmonobold               liberationmonobold               LiberationMono-Bold.ttf
    liberationmonobolditalic         liberationmonobolditalic         LiberationMono-BoldItalic.ttf
    liberationmonoitalic             liberationmonoitalic             LiberationMono-Italic.ttf
    liberationmononormal             liberationmono                   LiberationMono-Regular.ttf
    liberationsans                   liberationsans                   LiberationSans-Regular.ttf
    liberationsansbold               liberationsansbold               LiberationSans-Bold.ttf
    liberationsansbolditalic         liberationsansbolditalic         LiberationSans-BoldItalic.ttf
    liberationsansitalic             liberationsansitalic             LiberationSans-Italic.ttf
    liberationsansnarrow             liberationsansnarrow             LiberationSansNarrow-Regular.ttf
    liberationsansnarrowbold         liberationsansnarrowbold         LiberationSansNarrow-Bold.ttf
    liberationsansnarrowbolditalic   liberationsansnarrowbolditalic   LiberationSansNarrow-BoldItalic.ttf
    liberationsansnarrowitalic       liberationsansnarrowitalic       LiberationSansNarrow-Italic.ttf
    liberationsansnarrownormal       liberationsansnarrowitalic       LiberationSansNarrow-Italic.ttf
    liberationsansnormal             liberationsans                   LiberationSans-Regular.ttf
    liberationserif                  liberationserif                  LiberationSerif-Regular.ttf
    liberationserifbold              liberationserifbold              LiberationSerif-Bold.ttf
    liberationserifbolditalic        liberationserifbolditalic        LiberationSerif-BoldItalic.ttf
    liberationserifitalic            liberationserifitalic            LiberationSerif-Italic.ttf
    liberationserifnormal            liberationserifitalic            LiberationSerif-Italic.ttf
    
  2. 如果上面沒有列出字體,請重新產生字體資料庫。

     mtxrun --script font --reload --force
    
  3. 如果字體仍未列出,請檢查OSFONTDIR使用的值

    mtxrun --expand-var OSFONTDIR
    

    您可以使用強制搜尋路徑

     OSFONTDIR=/path/to/font mtxrun --script font --reload --force
    

相關內容