Instalando fontes CMU no NixOS

2

Eu descobri que preciso de fontes CMU para poder compor texto em russo com o XeLaTeX. No NixOS existe o cm-unicode pacote para isso, eu o instalei com

nix-env -iA nixos.cm_unicode

mas o XeLaTeX ainda não consegue encontrá-lo. Um arquivo LaTeX que eu possa compilar com o XeLaTeX no Ubuntu não compila com o XeLaTeX no NixOS, e recebo um erro que a fonte CMU que indiquei não foi encontrada.

Eu aprendi que eu poderia listar todas as fontes instaladas no sistema com fc-list , então tentei executar fc-list | grep -i cmu , fc-list | grep -i com , fc-list | grep -i unic , mas não obtive resultados.

Como posso instalar esta fonte? Isto é para o NixOS 17.09.

A propósito, eu já tive que instalar manualmente a fonte Latin Modern: inicialmente não estava disponível para seleção no XeLaTeX, mas depois que eu instalei lmodern package com nix-env -i , ele funciona bem.

Acabei de testar isso novamente: a desinstalação de lmodern com nix-env -e remove o Latin Modern dos resultados de fc-list e de font-manager e a instalação com nix-env -i o restaura. O mesmo não funciona o mesmo com cm_unicode .

Eu tenho uma pergunta possivelmente relacionada, então vou colocar aqui. (Se não estiver relacionado, gostaria de receber um breve comentário ou explicação.)

Eu queria definir o meu ambiente do TeX Live com todas as suas dependências no meu .nixpkgs/config.nix , então eu fiz

# .nixpkgs/config.nix
{ # ...
  packageOverrides = pkgs: {
    myTexLive = pkgs.texlive.combine {
      inherit (pkgs.texlive) scheme-basic
                             collection-bibtexextra
                             collection-fontsrecommended
                             collection-genericrecommended
                             collection-langcyrillic
                             collection-langfrench
                             collection-latex
                             collection-latexextra
                             collection-latexrecommended
                             collection-mathextra
                             collection-xetex
                             cm-unicode  # from 'collection-fontsextra'
                             latexmk
                             lm       # from 'collection-fontsrecommended'
                             lm-math  # from 'collection-fontsrecommended'
                             texdoc;
    };
}

Eu esperava que ter os pacotes lm e cm-unicode TeX Live fosse suficiente para ter as fontes Latin Modern e CMU instaladas, mas não funcionou.

Existe alguma maneira de declarar as fontes necessárias como dependências de myTexLive ?

    
por Alexey 28.02.2018 / 18:31

1 resposta

2

Em fontes NixOS, não é possível instalar via nix-env , porque, para que as fontes sejam encontradas, é necessário criar um banco de dados de tipos. Isso requer efeitos colaterais, mas os pacotes Nix são funções puras. Em geral, você pode pensar no código de efeitos colaterais como sendo manipulado por nixos-rebuild ; Portanto, você precisará usar configuration.nix :

fonts.fonts = [ pkgs.cm_unicode ];

Você pode assistir ao meu vídeo em fontes NixOS para uma demonstração. Perdoe minha voz de robô.

Para informações específicas sobre o Latex, consulte link

    
por 01.03.2018 / 05:09