Search code examples
latexpandoccslpandoc-citeproc

csl set text-case to not affect the capitalization?


How to set the text-case on a cs:text to nothing?

My usecase:

I use pandoc to generate a docx file with this csl and this .bib file.

CSL: http://www.zotero.org/styles/ieee

Relevant .bib content:

@webpage{npzd61zu4xbm0y9b,
date = "",
title = "Hagers Enzyklopädie der Arzneistoffe und Drogen, 6. Auflage, 2007, Springer Verlag",
howpublished = "\url{}"
}

Output:

[128] “Hagers enzyklopädie der arzneistoffe und drogen, 6. Auflage, 2007, springer verlag.”

Expected output:

[128] "Hagers Enzyklopädie der Arzneistoffe und Drogen, 6. Auflage, 2007, Springer Verlag."

The capitalization is wrong.
I found the relevant line in the ieee.csl l. 120.
When setting text-case="uppercase" it affects the title.
How can i set this to none or null?


Solution

  • Speaking for CSL, they way to not have the case of a string affected by the style is by not specifying a title-case attribute at all, i.e. exactly what the IEEE style already does.

    So why is the German title in lowercase? The lowercasing is happening in the conversion from BibTeX to CSL metadata. If you have the ability to produce metadata in CSL JSON or CSL YAML (e.g. when using Zotero) you should use that instead of BibTeX.

    If you're working natively with BibTeX, either protect titles with brackets as suggested in the comments above, or see if specifying a language helps (specifying non-English languages does affect CSL's behavior so it might also affect the transformation, but I'm not sure here.