Como usar fontes Liberation no ConTeXt?

Como usar fontes Liberation no ConTeXt?

Eu tenho o seguinte trecho de código

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

\starttext

Test text

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

\stoptext

E isso funciona muito bem. ConTeXt compila e a fonte está correta. Mas se eu mudar a fonte para

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

\starttext

Test text

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

\stoptext

então o resultado será de fonte errada e o texto em russo não será renderizado.

Os nomes das fontes são retirados da saída do fc-listprograma (Linux). ConTeXt instalado a partir do texlive, a versão é

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

Responder1

O ConTeXt MkIV não depende do mecanismo de fonte do sistema para obter o nome da fonte. Portanto, as informações retornadas fc-cachesão inúteis. Em vez disso, use o mtx-fontsscript para encontrar o nome da fonte.

  1. Correr

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

    que dá

    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. Se o item acima não listar as fontes, gere novamente o banco de dados de fontes.

     mtxrun --script font --reload --force
    
  3. Se as fontes ainda não estiverem listadas, verifique o valor de OSFONTDIRusar

    mtxrun --expand-var OSFONTDIR
    

    Você pode forçar o caminho de pesquisa usando

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

informação relacionada