plk/biblatex-apa

"in press" prints erroneously in German ("im druck", should be "im Druck")

Closed this issue · 11 comments

Finally, I managed to get the developement version of biber and biblatex(-apa) working and so I was able to catch a bug that seems to have been introduced recently.

According to the official German variant of APA style the German equivalent to "in press", "im Druck", is supposed to start lower case, in citations as well as in the reference list, just like "in press". Thus, I already added

\DeclareBibliographyStrings{%
[...]
  inpress          = {{\midsentence{}im Druck}{\midsentence{}im Druck}},

to the German language .lbxs. This works fine with TeX Live 2021 (biber 2.17 and biblatex 3.17).

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[backend=biber,style=apa]{biblatex}
\begin{filecontents}{\jobname.bib}
% (APA 10.1 Example 8)
@ARTICLE{10.1:8,
	PUBSTATE       = {inpress},
	AUTHOR         = {T. Pachur and B. Scheibehenne},
	TITLE          = {Unpacking Buyer-Seller Differences in Valuation from Experience},
	SUBTITLE       = {A Cognitive Modeling Approach},
	JOURNALTITLE   = {Psychonomic Bulletin \& Review}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
	
	\textcite{10.1:8}
	
	\printbibliography
\end{document}

prints "(im Druck)", whereas without this change it printed "(Im Druck)" in the reference list.

However, using biber 2.18 beta and biblatex 3.18 beta and the current biblatex-apa code, it prints "(im druck)". This is simply wrong. "Druck" is never supposed to begin lower case.

023baa6#diff-04309903b565b256b3336c15b12023a158cf50946e048d9e25b54281efc05140 switched a few \bibstrings to \biblcstring, which converts the whole string to lowercase. I'm guessing we want to use \bibncpstring so we can get rid of the whole \midsentence{} malarkey.

As far as I can tell, yes, this would be a fix plus improvement.

@moewew Well, let's do this. In ngerman.lbx, i searched for \biblcstring, found 2 instances, which seem to deal with dates, and replaced them with \bibncpstring. As far as I can see, this seems to work. I'm not so firm with all the code. Is this what you had in mind? If yes, I would fix the remaining 5 German language lbxs in the same way.

Currently, the date code in ngerman-apa.lbx uses \biblcstring, \bibcplstring and \bibstring. I don't know what the intended output in each case is, but my hunch is that it is unlikely that all three are needed. \biblcstring is particularly odd as it actively lower-cases the string.

plk commented

Anything left to do here? On the verge of 9.16 release when biber/biblatex latest are released.

That's great to hear. Yes, there is something left to do. My pull request hasn't been accepted yet. Once it is, a similar change is still needed for the other 5 German language lbxs (old German spelling rules, old/new Austrian, old/new Swiss). However, it seems @moewew and me are still uncertain what to change after all as we don't know what the intended output in each case is. I tested the changes I made and this solves the problem for me. However, possibly it's more than even needed. Or even some more can be dropped if not all the commands mentioned are needed.

As I say I have no idea what the intended output is, but the \biblcstring looks odd. A quick code search suggests it is being used in lots of .lbx files and I'm assuming those were intended to be \bibncpstring. @plk I think you could do a bulk replace on all of them.

As for the \bibcplstring I have no idea.

plk commented

Those macros are to force the lowercased/uppercased versions of the (abbreviated) localised strings that sometimes occur in years (n.d. etc). I tried to move to \bibncpstring but it broke all of the regression tests ...

Do you have an example of output that is wrong with \bibncpstring but alright with \biblcstring? That appears very odd to me since I'd have thought that you never want to lowercase the whole string (after all, if that's what you have to do, why do you not give the string in lowercase in the .lbx file in the first place)?

I just had a look at biblatex-apa-test-references.bib and the only examples that I found that would be affected were "n.d." and "in press". But I couldn't see any difference before and after.

plk commented

My mistake - it's fine with \bibncpstring. This has been replaced. The only uses of \bibcplstring are to enforce capitalisation of year divisions.