biblatex: Preservar las mayúsculas en procedimientos internos/título del libro

biblatex: Preservar las mayúsculas en procedimientos internos/título del libro

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 booktitlecampo está configurado con \printfield[apacase]{booktitle}, donde la apacasedirectiva de formato se define como

\DeclareFieldFormat{apacase}{\MakeSentenceCase*{#1}}

Para conservar las mayúsculas y minúsculas de origen para el booktitlecampo en el @inproceedingstipo de entrada, puede redefinir la booktitlemacro de bibliografía o la apacasedirectiva 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-apase 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 hyphenationcampo en su bibarchivo.

Tenga en cuenta que puede evitar proteger algunas palabras contra minúsculas a través del subtitlecampo. 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)

información relacionada