Biber+biblatex abreviaturas estándar automáticas

Biber+biblatex abreviaturas estándar automáticas

¿Existe alguna manera de sustituir automáticamente las abreviaturas estándar IEEE usando biblatex + biber(una vez que se proporciona una lista de abreviaturas de alguna manera)?

Por ejemplo:

"Registro de la conferencia Conferencia internacional sobre comunicación del IEEE"

debe convertirse

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

Respuesta1

No me gusta mucho el estilo IEEE, pero creo que entiendo su configuración general y lo intentaré.

Supongo que estás usando el estilo biblatexde ieee, pero la carga IEEEabrv.bibes proporcionada por IEEEtran(aunque no encontré allí el "Registro de la Conferencia Internacional sobre Comunicación IEEE", así que uso aquí una entrada de IEEEexample.bib).

Veo dos formas de anular las abreviaturas estándar IEEE proporcionadas en IEEEabrv.bib. La primera es que crees un segundo archivo de cadenas de abreviaturas y lo cargues.después IEEEabrv.bib. El segundo es usar biblatex's \DeclareSourcemappara cambiar los datos de su entrada.

El primero sería así:

\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}

Donde myIEEEabrv.bibcontiene las redefiniciones de las cadenas abreviadas que desee. En este caso, algo como:

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

(La cadena definida en IEEEabrv.bibes {IEEE} Electron Device Lett.). Tenga en cuenta que debe cargarse después IEEEabrv.bib.

Si leí mal su pregunta y lo que realmente desea es proporcionar algunos títulos de revistas propios abreviados, este método también le brinda un enfoque sensato. Puede crear un archivo abbrev.bib, definir las cadenas que desee allí y agregarlo con \addbibresource. Luego en tu .bibarchivo de referencias usas la cadenanombre(es decir, sin corchetes, como en el ejemplo anterior) en el campo journaltitle/ . journalPodrías tener entonces:

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

y luego usarías en tu bibfile:

journaltitle = IEEEIntConfCom,

Por lo general, este enfoque implica también tener un segundo archivo donde se definen las cadenas completas, digamos full.bib. En él tendrías:

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

Con él, todo lo que tiene que hacer para cambiar de revistas abreviadas a títulos de revistas completos sería sustituirlos \addbibresource{abbrev.bib}en \addbibresource{full.bib}su .texarchivo principal.

El segundo enfoque, como se mencionó, sería utilizar \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 matches para la forma abreviada estándar definida en IEEEabrv.biby no para el nombre de la cadena.

Obs.: Tuve algunos problemas con IEEEabrv.bibla codificación. Entonces, para que esto funcione, necesitaba guardarlo en UTF-8 para ejecutarlo. Pero supongo que, una vez que parece que ya estás usando estas abreviaturas, de alguna manera lo manejaste.

información relacionada