
¿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 biblatex
de ieee
, pero la carga IEEEabrv.bib
es 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 \DeclareSourcemap
para 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.bib
contiene 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.bib
es {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 .bib
archivo de referencias usas la cadenanombre(es decir, sin corchetes, como en el ejemplo anterior) en el campo journaltitle
/ . journal
Podrí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 .tex
archivo 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 match
es para la forma abreviada estándar definida en IEEEabrv.bib
y no para el nombre de la cadena.
Obs.: Tuve algunos problemas con IEEEabrv.bib
la 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.