Estoy usando Biblatex-APA/Biber con LyX y un archivo Bibtex producido a partir de Mendeley. Puedo producir bibliografías sin ningún problema, pero me gustaría cambiar el estilo de referencia de las actas/título del libro. Por el momento, mis referencias son como:
Cole, R., Purao, S., Rossi, M. & Sein, M. (2005). Being proactive: Where action research meets design research. In Proceedings of the 26th international conference on information systems.
De mi archivo Bibtex:
@inproceedings{Cole2005,
author = {Cole, Robert and Purao, Sandeep and Rossi, Matti and Sein, Maung},
booktitle = {Proceedings of the 26th International Conference on Information Systems},
title = {{Being proactive: Where action research meets design research}},
year = {2005}
}
Ahora quiero conservar las mayúsculas en mis procedimientos/título del libro para obtener esto:
Cole, R., Purao, S., Rossi, M. & Sein, M. (2005). Being proactive: Where action
research meets design research. In Proceedings of the 26th International Conference
on Information Systems.
Experimenté con lo siguiente, pero no tuve éxito.
\DeclareFieldFormat[inproceedings]{booktitle}{#1}
¿Alguna sugerencia?
Respuesta1
Del archivo de estilo de bibliografía apa.bbx
,
\DeclareFieldFormat[inproceedings]{booktitle}{#1}
no funciona porque el booktitle
campo está configurado con \printfield[apacase]{booktitle}
, donde la apacase
directiva de formato se define como
\DeclareFieldFormat{apacase}{\MakeSentenceCase*{#1}}
Para conservar las mayúsculas y minúsculas de origen para el booktitle
campo en el @inproceedings
tipo de entrada, puede redefinir la booktitle
macro de bibliografía o la apacase
directiva en el preámbulo de su documento. Un ejemplo del último enfoque es:
\DeclareFieldFormat{apacase}{%
\ifboolexpr{ test {\ifentrytype{inproceedings}}
and ( test {\ifcurrentfield{booktitle}}
or test {\ifcurrentfield{booksubtitle}} ) }
{#1}{\MakeSentenceCase*{#1}}}
Para evitar el uso de mayúsculas y minúsculas en todos los títulos excepto en los originales ( origtitle
) y en los complementos de títulos, utilice
\DeclareFieldFormat{apacase}{#1}
en cambio. Dado que biblatex-apa
se basa únicamente en la variante con asterisco, \MakeSentenceCase*
puede evitar el uso de mayúsculas y minúsculas en las oraciones agregándolas \DeclareCaseLangs{}
al preámbulo y haciendo uso del hyphenation
campo en su bib
archivo.
Tenga en cuenta que puede evitar proteger algunas palabras contra minúsculas a través del subtitle
campo. Por ejemplo:
title = {Being proactive},
subtitle = {Where action research meets design research},
Respuesta2
Se pueden preservar las mayúsculas específicas simplemente poniendo la letra de la pregunta entre llaves. Entonces
@inproceedings{Cole2005,
author = {Cole, Robert and Purao, Sandeep and Rossi, Matti and Sein, Maung},
booktitle = {{Proceedings} of the 26th {International} {Conference} on {Information} {Systems}},
title = {{Being proactive: Where action research meets design research}},
year = {2005}
}
hará el trabajo. Pero la mayoría de las veces es mucho más fácil poner toda la línea entre llaves, tal como se hace con el título.
Respuesta3
Mientras buscaba una solución conveniente, al menos para mí, escribí un pequeño script en Python que analiza mi archivo bib local producido por Mendeley. Este script coloca los títulos de los libros entre dos llaves.
import re
import fileinput
library = 'path/to/file'
import re
def re_sub_verbose(pattern, replace, string):
def substitute(match):
return match.expand(replace)
result = re.sub(pattern, substitute, string)
return result
for line in fileinput.input(library, inplace=1):
print re_sub_verbose("booktitle = \{(.*)\},", "booktitle = {{\\1}},", line)