Abreviações padrão automáticas Biber+biblatex

Abreviações padrão automáticas Biber+biblatex

Existe uma maneira de substituir automaticamente as abreviações padrão IEEE usando biblatex + biber(uma vez fornecida uma lista das abreviações de alguma forma)?

Por exemplo:

"Registro de Conferência Conferência Internacional IEEE sobre Comunicação"

Deve se tornar

"Conf. Rec. 1995 IEEE Int. Conf. Commun."

Responder1

Não gosto muito do estilo IEEE, mas acho que entendi sua configuração geral e vou tentar.

Suponho que você esteja usando o estilo biblatexde ieee, mas o carregamento IEEEabrv.bibé fornecido por IEEEtran(embora eu não tenha encontrado lá o "Conference Record IEEE International Conference on Communication", então uso aqui uma entrada de IEEEexample.bib).

Vejo duas maneiras de substituir as abreviações padrão IEEE fornecidas em IEEEabrv.bib. A primeira é você criar um segundo arquivo de strings de abreviaturas e carregá-lodepois IEEEabrv.bib. A segunda é usar biblatex's \DeclareSourcemappara alterar os dados da sua entrada.

O primeiro seria assim:

\documentclass{article}
\usepackage[style = ieee]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{IEEEexample:article_typical,
  author        = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok",
  title         = "A Novel Ultrathin Elevated Channel Low-temperature 
                   Poly-{Si} {TFT}",
  journal       = IEEE_J_EDL,
  volume        = "20",
  month         = nov,
  year          = "1999",
  pages         = "569-571"
}
\end{filecontents*}

\addbibresource{IEEEabrv.bib}
\addbibresource{myIEEEabrv.bib}
\addbibresource{\jobname.bib}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

Onde myIEEEabrv.bibcontém as redefinições das strings abreviadas que você deseja. Neste caso, algo como:

@STRING{IEEE_J_EDL        = "{IEEE} Elec. Dev. Lett."}

(A string definida em IEEEabrv.bibé {IEEE} Electron Device Lett.). Observe que ele deve ser carregado depois do IEEEabrv.bib.

Se eu interpretei mal sua pergunta e o que você realmente deseja é fornecer alguns títulos de periódicos abreviados de sua preferência, esse método também oferece uma abordagem sensata. Você pode criar um arquivo abbrev.bib, definir as strings desejadas e adicioná-lo com \addbibresource. Então no seu .bibarquivo de referências você usa a stringnome(ou seja, sem colchetes, como no exemplo acima) no campo journaltitle/ journal. Você poderia ter então:

@string{IEEEIntConfCom = "Conf. Rec. 1995 {IEEE} Int. Conf. Commun."}

e então você usaria em seu bibfile:

journaltitle = IEEEIntConfCom,

Normalmente, essa abordagem implica também ter um segundo arquivo onde as strings completas são definidas, digamos full.bib. Nele você teria:

@string{IEEEIntConfCom = "Conference Record {IEEE} International Conference on Communication"}

Com ele, tudo o que você precisa fazer para mudar de periódicos abreviados para títulos completos de periódicos é substituí-los \addbibresource{abbrev.bib}por \addbibresource{full.bib}em seu .texarquivo principal.

A segunda abordagem, conforme mencionado, seria usar \DeclareSourcemap:

\documentclass{article}
\usepackage[style = ieee]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{IEEEexample:article_typical,
  author        = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok",
  title         = "A Novel Ultrathin Elevated Channel Low-temperature 
                   Poly-{Si} {TFT}",
  journal       = IEEE_J_EDL,
  volume        = "20",
  month         = nov,
  year          = "1999",
  pages         = "569-571"
}
\end{filecontents*}

\addbibresource{IEEEabrv.bib}
\addbibresource{\jobname.bib}

\DeclareSourcemap{
    \maps[datatype=bibtex]{
        \map{
            \step[fieldsource=journal,
                      match={{IEEE} Electron Device Lett.},
                      replace={{IEEE} Elec. Dev. Lett.}]
        }
    }
}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

Observe que matché para a forma abreviada padrão definida IEEEabrv.bibe não para o nome da string.

Obs.: Tive alguns problemas com IEEEabrv.biba codificação do '. Então para que isso funcionasse, precisei salvá-lo em UTF-8 para rodar. Mas suponho que, uma vez que você parece já estar usando essas abreviações, você de alguma forma conseguiu lidar com isso.

informação relacionada