MiKTeX e babel: arquivo ausente e instalação de pacote inútil necessária

MiKTeX e babel: arquivo ausente e instalação de pacote inútil necessária

Depois de muito tempo sem atualizar meu MiKTeX 2.9, fiz isso há alguns dias. Eu tive

pdfTeX 3.14159265-2.6-1.40.16, LaTeX2e <2014/05/01>, babel <3.8m>,

e agora eu tenho

pdfTeX 3.14159265-2.6-1.40.17, LaTeX2e <2016/03/31>, babel <3.9r>.

Algo (ruim) aconteceu no meio: agora, sempre que uso o babelpacote (comqualquer língua), o MiKTeX me diz que bblopts.cfgestá faltando e requer a instalação do arabipacote - que na verdade contém esse arquivo.

Observe que não tenho nem hifenização árabe no arquivo formatado e, após ignorar essa solicitação, o arquivo tex é compilado sem erros. Na verdade, o fato bastante estranho é que bblopts.cfgé umarquivo opcional: aparece apenas nesta linha de babel.stycódigo:

\InputIfFileExists{bblopts.cfg}...

Enfim.... Para superar o impasse, já que não preciso do arabipacote, simplesmente criei um bblopts.cfgarquivo vazio. OmuitoSegue o comportamento estranho do MiKTeX:

  1. Se bblopts.cfgestiver no caminho do tex, por exemplo, C:\localtexmf\tex\generic\babel,

    • findtexmfretorna o caminho correto C:\localtexmf\tex\generic\babel,
    • MiKTeX inclui bblopts.cfg, como mostra o arquivo de log

      * Local config file bblopts.cfg used
      *
      (C:\localtexmf\tex\generic\babel\bblopts.cfg).

    • mas issoaindadiz que bblopts.cfgestá faltando e que tenho que instalar o arabipacote!

  2. Se bblopts.cfgestiver na pasta atual,

    • findtexmfretorna o caminho correto.\bblopts.cfg
    • MiKTeX inclui bblopts.cfg, como mostra o arquivo de log

      * Local config file bblopts.cfg used
      *
      (bblopts.cfg).

    • enãoavisos ou requisitos de instalação de pacotes aparecem!

Alguém tem uma pista? Sou só eu ou é um bug do MiKTeX? Se você quiser tentar, certifique-se de não ter o arabipacote instalado e adicione-o babelao seu arquivo tex. Um exemplo de brinquedo poderia ser:

\documentclass{article}\usepackage[british]{babel}\begin{document}.\end{document}

Caso seja importante: meu sistema operacional é o Windows 7 SP1 Enterprise...

Responder1

O bblopts.cfgde arabi está em tex\latex. Você coloca sua versão em tex\generic. Agora o latex não pesquisa primeiro a árvore texmf local e depois a árvore principal, mas segue uma espécie de caminho em zigue-zague (vejahttps://tex.stackexchange.com/a/79983/2388).

Isto significa que quando o arquivo \InputIfFileExistsé processado, o miktex encontra primeiro o bblopts.cfgarquivo do arabi e tenta baixá-lo.

Você pode evitar isso colocando seu arquivo local, por exemplo, em localtexmf\tex\latex\babel.

Observação lateral: O bblopts.cfgfrom arabi é desnecessário hoje e deve ser removido ou movido para a pasta doc (onde está no texlive).

Responder2

Aparentemente é um bug do MikTeX. Como solução alternativa, tente

\usepackage[noconfigs,british]{babel} 

A opção noconfigsfaz o que o nome sugere.

Responder3

Acabei de me deparar com esse bug. Fazendo uma busca bblopts.cfgno manual do babel, me deparei com a seguinte explicação:

Outra forma de estender a lista de opções 'conhecidas' para o babel foi criar o arquivo bblopts.cfgno qual se pode adicionar declarações de opções. No entanto, este mecanismo está obsoleto – se você quiser um nome alternativo para uma linguagem, basta criar um novo .ldfarquivo carregando o nome real.

Parece que o bug do MikTeX é assumir que este arquivo opcional --- de um método obsoleto --- deve estar absolutamente presente. O arabipacote deve fazer uso deste método obsoleto para integrar-se ao ecossistema babel.

Estou surpreso que o MikTeX não tenha corrigido esse bug de longa data.

informação relacionada