Normalmente, um nome permanece o mesmo em qualquer idioma. Então, sempre que eu citar uma obra de Knuth – seja em um artigo inglês ou alemão – eu o citarei como Donald E. Knuth
.
Nem sempre é o caso dos nomes antigos ou medievais. Eles são escritos de maneira diferente em idiomas diferentes. Dois exemplos em inglês | Alemão | Francês:
- Aristóteles | Aristóteles | Aristóteles
- Tomás de Aquino | Tomás de Aquino | Tomás de Aquino
Isso significa que quando escrevo um artigo em inglês, preciso de um bib
arquivo que contenha os nomes em inglês, mas quando quero escrever um artigo em alemão, preciso acessar meu arquivo bib e alterar os nomes de acordo. Dependendo da frequência com que eu publico em inglês ou alemão, isso pode me manter ocupado e sujeito a erros.
Então, pensei, talvez eu pudesse ter os diferentes nomes já incluídos em um único bib
arquivo e deixar biblatex
escolher o nome correto de acordo com o idioma principal usado no documento. Alguma ideia?
NB: Não quero usar em um único documento as grafias Aristóteles e Aristóteles (como o seguinte MWE pode fazer você pensar). É claro que, se o idioma principal do artigo for o inglês, todas as referências a Aristóteles usarão a grafia inglesa de seu nome. No entanto, quero poder escrever artigos em idiomas diferentes, sem (a) ter que editar meus bib
arquivos a cada vez ou (b) geralmente manter não um único bib
arquivo, mas dois arquivos diferentes, um para cada idioma, ou (c ) tendo duas entradas distintas em um bib
arquivo
MWE
% !TEX TS-program = lualatexmk
\documentclass{scrartcl}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Times New Roman}
\usepackage[ngerman, british]{babel}
\usepackage[babel]{csquotes}
\usepackage[style=verbose,abbreviate=false,backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{aristotle:ross:1924,
Author = {Aristotle}, % It is here, I think, that something could be done, e.g., ...
Title = {Metaphysics}, % ... british=Aristotle,ngerman=Aristoteles,french=Aristote
Editor = {William David Ross},
Commentator = {William David Ross},
Introduction = {William David Ross},
Hyphenation = {british},
Location = {Oxford},
Publisher = {Clarendon Press},
Volumes = {2},
Year = {1924}}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\selectlanguage{british}
Some English text.\footcite{aristotle:ross:1924}
\selectlanguage{ngerman}
Etwas Text auf Deutsch.\footcite{aristotle:ross:1924}
\end{document}
Responder1
Aqui está uma maneira:
\begin{filecontents}{\jobname.bib}
@book{aristotle:ross:1924,
Author = {\Aristotle}, % It is here, I think, that something could be done, e.g., ...
Title = {Metaphysics}, % ... british=Aristotle,ngerman=Aristoteles,french=Aristote
Editor = {William David Ross},
Commentator = {William David Ross},
Introduction = {William David Ross},
Hyphenation = {british},
Location = {Oxford},
Publisher = {Clarendon Press},
Volumes = {2},
Year = {1924}}
\end{filecontents}
\documentclass{scrartcl}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Times New Roman}
\usepackage[ngerman,french,british]{babel}
\usepackage[babel]{csquotes}
\usepackage[style=verbose,abbreviate=false,backend=biber]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\newauthor}{mm}
{
\clint_newauthor:nn {#1} {#2}
}
\tl_new:N \l__clint_author_tl
\cs_new_protected:Npn \clint_newauthor:nn #1 #2
{
\prop_new:c { g_clint_author_#1_prop }
\tl_set:Nn \l__clint_author_tl { #1 }
\keys_set:nn { clint-author } { #2 }
\cs_new:cpn { #1 } { \prop_get:cV { g_clint_author_#1_prop } \languagename }
}
\cs_generate_variant:Nn \prop_get:Nn { cV }
\keys_define:nn { clint-author }
{
unknown .code:n =
\prop_gput:cVn { g_clint_author_ \l__clint_author_tl _prop }
\l_keys_key_tl
{ #1 }
}
\ExplSyntaxOff
\newauthor{Aristotle}{
british=Aristotle,
ngerman=Aristoteles,
french=Aristote
}
\begin{document}
\selectlanguage{british}
Some English text.\footcite{aristotle:ross:1924}
\selectlanguage{ngerman}
Etwas Text auf Deutsch.\footcite{aristotle:ross:1924}
\selectlanguage{french}
Du texte en Français.\footcite{aristotle:ross:1924}
\end{document}
Você define uma sequência de controle com
\newauthor{Aristotle}{
british=Aristotle,
ngerman=Aristoteles,
french=Aristote
}
O comando será chamado \Aristotle
(mas a string é arbitrária). O comando deve ser usado no .bib
arquivo. Talvez seja possível usar biblatex
métodos para processar o nome do autor sem alterá-lo.
Responder2
Esta não é realmente uma "resposta" em si. No entanto. Isso está planejado para biblatex 4.0/biber 4.0. Você (espero) será capaz de definir alternativas como esta:
AUTHOR = {Aristotle},
AUTHOR_translated_ngerman = {Aristoteles},
AUTHOR_translated_french = {Aristote}
e escolha-os dentro do estilo como:
\printname{author}
\printname[form=translated,lang=ngerman]{author}
\printname[form=translated,lang=french]{author}
provavelmente mudou de uso \selectlanguage
como mostra @egreg.
Este tipo de interface formulário/lang (opcional, para compatibilidade com versões anteriores) é planejado para qualquer macro que lide com campos, listas ou nomes. O trabalho está em andamento, a parte do biber já está feita, a parte do biblatex está em andamento, mas dá bastante trabalho.