
我有以下程式碼片段
\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
腳本來找出字體的名稱。
跑步
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
如果上面沒有列出字體,請重新產生字體資料庫。
mtxrun --script font --reload --force
如果字體仍未列出,請檢查
OSFONTDIR
使用的值mtxrun --expand-var OSFONTDIR
您可以使用強制搜尋路徑
OSFONTDIR=/path/to/font mtxrun --script font --reload --force