riboseinc / asciidoctor-bibliography

Citations in AsciiDoc
MIT License
30 stars 8 forks source link

Minor APA format issue #107

Open jeksterslab opened 5 years ago

jeksterslab commented 5 years ago

This is just a minor issue when it comes to using :bibiliography-style: apa but academics can be very strict and unforgiving with citation "errors" (however petty they are). I am looking for some guidance going forward. Given the bib entry below and using asciidoctor -r asciidoctor-bibliography text.adoc I would get this:

Serlin, R. C. (2000). Testing for Robustness in Monte Carlo Studies. Psychological Methods, 5(2), 230–240. https://doi.org/10.1037/1082-989x.5.2.230

Notice that all the words in the title are capitalized. However, the APA manual states that only the first word and proper names should be capitalized.

Using the same bib file on latex with \usepackage[style=apa,sortcites=true,sorting=nyt,backend=biber]{biblatex} gives the correct citation:

Serlin, R. C. (2000). Testing for robustness in Monte Carlo studies. Psychological Methods, 5(2), 230–240. https://doi.org/10.1037/1082-989x.5.2.230

Is there any workaround regarding this minor issue? Thanks very much.

@Article{Serlin_2000, author = {Ronald C. Serlin}, title = {Testing for Robustness in {M}onte {C}arlo Studies.}, number = {2}, pages = {230--240}, volume = {5}, date = {2000}, doi = {10.1037/1082-989x.5.2.230}, journaltitle = {Psychological Methods}, publisher = {American Psychological Association ({APA})}, }

ronaldtse commented 5 years ago

@jeksterslab Thanks for reporting this issue! I wonder if this error stems from the CSL style for APA. It might be the case that the APA style in BibLaTeX is implemented differently from the CSL style for APA.

@paolobrasolin thoughts?

paolobrasolin commented 5 years ago

Let me give you a bit of context.

BibLaTeX (used by LaTeX)

Different styles require different capitalizations, and the same database should work for all styles. This is why:

This allows BibLaTeX to render a title in sentence-case like the APA style requires.

Here is a detailed explanation: https://tex.stackexchange.com/a/140071

Except for the fact that you should not use the curly braces around the first letter alone (it causes kerning problems, see link above) your citation is perfectly fine.

CSL (used by asciidoctor-bibliography)

asciidoctor-bibliography uses CSL to render citations. CSL is a specification language for bibliographic styles (akin to TeX's BST).

Among the other things, it allows to manipulate case: http://docs.citationstyles.org/en/stable/specification.html#text-case

However it cannot recognize proper names and acronyms (just like BibLaTeX, which required the curly braces to protect them) and therefore it's advised to store titles directly in sentence-case: http://docs.citationstyles.org/en/stable/specification.html#sentence-case-conversion

Conclusion

CSL and BibLaTeX have different optimal ways to store titles:

CSL => Testing for robustness in Monte Carlo studies.
TeX => Testing for Robustness in {Monte} {Carlo} Studies.

@jeksterslab, the simplest way to solve your immediate problem is to simply change you entries title as shown above.

Of course maintaining two bibliographies (in case you want to continue using LaTeX too) is not very sustainable.

Perhaps, a better solution would be to do some preprocessing on the entries when they are loaded (i.e. at bibtex-ruby level) or just before they're rendered (i.e. at citeproc-ruby level). I think the author of these two libraries (which we're using to render citations) might have already encountered this issue. @inukshuk if you have any input about this that would be greatly appreciated!

jeksterslab commented 5 years ago

Thanks for the clarification! I am leaning towards preprocessing the entries. I'll look up bibtex-ruby and citeproc-ruby.

inukshuk commented 5 years ago

How titles are 'title-cased' depends on your locale (or the reference's language if overrides are enabled) and the style in question. If you know that your input data is already using the correct letter casing, the best option is to turn off title-casing in your CSL style (or use a style which does not enforce title-casing). In CSL this is the text-case="title" option (i.e., you would remove that attribute from the appropriate rendering nodes).