%20em%20meu%20arquivo%20.bib%3F.png)
Estou usando BiblaTeX
e tenho uma dúvida: como vejo em quase todos os tipos de fontes do meu .bib
arquivo posso usar a entrada language
.
No entanto, tudo o que coloco é literário exibido em minhas referências. Então, não posso, por exemplo, também usar um ISO-639-1 ou outroCódigo ISO?
Por exemplo:
@online{SOTexBibLangIso,
author = {Stackoverflow Tex Community},
title = {Can I use a shortened "language" entry (language code) in my .bib file?},
url = {https://tex.stackexchange.com/questions/294703/can-i-use-a-shortened-language-entry-language-code-in-my-bib-file},
language = {en},
urldate = {2016-02-18},
}
Responder1
biblatex
distingue dois campos de linguagem: (1) language
e (2) langid
. De acordo combiblatex
documentação, pág. 20,
[o
language
campo contém o] idioma(s) do trabalho. Os idiomas podem ser especificados literalmente ou como chaves de localização. Se forem usadas chaves de localização, o prefixolang
será omisso.
na pág. 25 nós temos
[
langid
] O ID do idioma da entrada da bibliografia. [...] O identificador deve ser um nome de idioma conhecido pelos pacotesbabel
/ .polyglossia
Esta informação pode ser usada para mudar padrões de hifenização e localizar strings na bibliografia. Observe que os nomes dos idiomas diferenciam maiúsculas de minúsculas.
Portanto, o language
campo é o que está impresso na bibliografia como o idioma da obra, enquanto langid
é usado internamente para o biblatex
comportamento de troca de idioma de (pode ser usado para mudar a hifenização na bibliografia, para que as palavras sejam hifenizadas corretamente, ou pode mudar o strings dependentes de idioma também; isso é controlado com a autolang
opção). Observe que por padrão a language
informação não é impressa se o idioma ali indicado coincidir com o idioma principal do documento; isso é controlado pela clearlang
opção e \DeclareRedundantLanguages
.
Você pode, por exemplo, ter
@online{elk,
author = {Anne Elk},
title = {Über die Anatomie der Donnerechse},
url = {http://www.example.edu/~elk/bronto.pdf},
date = {2016-01-01},
language = {german},
langid = {ngerman},
}
para um texto alemão ( language
is german
, langgerman
também estaria OK) seguindo as novas regras de ortografia ( langid
is ngerman
).
O langid
campo só pode funcionar com identificadores de idioma conhecidos por babel
/ polyglossia
, mas de acordo com o comentário de PLK acima, Biber também pode lidar com códigos de idioma BCP47 e mapeá-los para suas respectivas contrapartes. Na verdade, Biber aceitará alegremente entradas sem sentido como langid = {flobbel}
, mas isso levará a problemas com babel
ou polyglossia
se você usar qualquer coisa diferente de autolang=none
e o pacote de idiomas tentar carregar o idioma desconhecido flobbel
.
O language
campo aceita qualquer entrada, mas os identificadores de idioma que biblatex
conhece são tratados de forma diferente, são traduzidos. Para ser um pouco mais preciso, isso funciona para idiomas definidos no .lbx
arquivo usado atualmente como lang<language>
, você pode fornecê-los como <language>
ou lang<language>
. Se a bibstring não estiver definida no .lbx
, o conteúdo do language
campo será impresso como está.Você pode ver os idiomas suportados english.lbx
aqui,para holandês a lista está aqui). Você pode fornecer o identificador do idioma com lang
ou sem prefixo langgreek
e greek
produzir os mesmos resultados. Se você usar
language = {english},
em um documento holandês, você obtém a saída "Engels" e se o idioma do documento for o inglês, obteremos "English".
A string en
não está na lista de identificadores de idioma reconhecidos e é impressa como está.
Você pode emular o que Biber faz com o langid
campo usando um mapa de origem
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=language,
match=\regexp{\Aen\Z},
replace=\regexp{english}]
\step[fieldsource=language,
match=\regexp{\Ade\Z},
replace=\regexp{german}]
}
}
}