1

the following code works well:

\documentclass{scrbook}
\usepackage[british,ngerman]{babel}
\usepackage{blindtext}
\usepackage{titlepage}
\begin{document}
\begin{fullsizetitle}
\blindtext[13]
\end{fullsizetitle}
\end{document}

and same for this code:

\documentclass{scrbook}
\usepackage[british,ngerman]{babel}
\usepackage{blindtext}
\usepackage{biblatex}
\begin{document}
    \begin{fullsizetitle}
        \blindtext[13]
    \end{fullsizetitle}
\end{document}

but both together

\documentclass{scrbook}
\usepackage[british,ngerman]{babel}
\usepackage{blindtext}
\usepackage{titlepage}
\usepackage{biblatex}
\begin{document}
    \begin{fullsizetitle}
        \blindtext[13]
    \end{fullsizetitle}
\end{document}

give the error message:

Undefined control sequence. \begin{document}
Candu
  • 35
  • 1
    Where do you have the titlepage package from? It is not found on CTAN, making it a bit hard for us to help – daleif May 27 '19 at 13:53
  • I found this code here at StackExchange https://tex.stackexchange.com/questions/20177/remove-margins-for-title-page More information (in German) are given here: https://komascript.de/titlepage – Candu May 27 '19 at 14:13
  • The first and the third example work for me with the same result. The second example results in an error because environment fullsizetitle is undefined. So your code does not work if you do not load package titlepage. – esdd May 27 '19 at 14:23
  • The problem only occurs if two languages are given to bable. – Candu May 27 '19 at 14:34
  • 1
    Historically version mismatch can be a problem double check your versions see https://tex.stackexchange.com/questions/302800/conflict-between-standard-biblatex-and-babel –  May 27 '19 at 14:38
  • It works for me with two languages given to babel, too. But package titlepage is needed. – esdd May 27 '19 at 14:40
  • 1
    I installed TeX Live 2019 today. No updates are available.... – Candu May 27 '19 at 14:55
  • See also https://komascript.de/node/2242 – moewe May 27 '19 at 17:46
  • I can not reproduce the error on a fully updated MikTeX system. I downloaded titlepage-11.tds.zip from https://komascript.de/node/1213 and unpacked the tex/latex/titlepage folder into an empty directory. In that directory I then created a mwe.tex with the contents of your last code example. Then I ran LaTeX on that document and got no errors. Everything shows as expected. I added \listfiles to the beginning of the file so you can compare versions more easily. You can find my complete .log and the .tex at https://gist.github.com/moewew/2eb75a9e9fd48ea19b314674d571bd52. – moewe May 27 '19 at 18:29
  • ... Please run the .tex with \listfiles and upload the complete .log file to a text-sharing website such as https://pastebin.com/, https://gist.github.com/, https://hastebin.com/ ... – moewe May 27 '19 at 18:30
  • I uploaded the log file to: https://komascript.de/node/2242 Thank you! – Candu May 27 '19 at 18:56
  • 1
    The uploaded .log is not complete and (maybe more importantly) it is not the .log of the MWE you posted here or on the KOMA-Script forum. Your .log loads scrreprt.cls, but the MWEs all use scrbook.cls. There are a few other differences in load order as well. Please run the shown MWE and upload the .log file for the MWE. If the MWE does not reproduce the issue change it so that it does. – moewe May 27 '19 at 19:10
  • I crosschecked it and indeed: with bable + "english" it works but with bable + "british" ist doesn't work. I changed the original code. – Candu May 27 '19 at 19:36

1 Answers1

2

This bug is fixed in version 3.13.

Please update your TeX system to obtain current (and matching) versions of biblatex and Biber.

The answer below is kept for historical interest and background info.

This is a very elusive bug in biblatex. After discussions in https://komascript.de/node/2242, the KOMA-Script developer reported the issue at https://github.com/plk/biblatex/issues/894 and suggested a possible fix that was added to biblatex with https://github.com/plk/biblatex/commit/26c2072829d78447a9bb1931bd22662b34a19e18.

The issue is resolved in biblatex v3.13.

The bug only occurred if the biblatex language module (the .lbx) for <language_1> inherits from <language_0> in a particular way and <language_0> is not loaded as a document language. In these cases biblatex would add an undefined macro to \extras<language_0>. Since <language_0> is not loaded, this macro would normally not be used and so this would not cause any issues. But titlepage uses \providecaptionname which hooks into \extras<language> in such a way that the undefined commands caused a problem.

In the specific case of the MWE british inherits from english, but english is not loaded. Still, biblatex writes undefined commands to \extrasenglish and \providecaptionname trips up.

The problem does not occur with ngerman because the inheritance setup between ngerman and german is slightly different, which means that the macros that end up undefined in the british case are actually defined here.

Until the version with the fix is released I can offer two workarounds

  1. Just load english as well as british. (Be sure to get the load order/main language right.)

  2. Incorporate the suggested fix into your preamble. Note that the fix should be removed from your preamble when a new version of biblatex is released. Hence the code block below will produce an error with upcoming biblatex releases.

    \makeatletter
    \@ifpackagelater{biblatex}{2019/05/28}
      {\blx@error
         {'\string\blx@maplang' fix no longer needed. Remove it}
         {Remove the redefinition of '\string\blx@maplang' from your preamble}}
      {\def\blx@maplang#1#2{%
         \csgappto{extras#1}{%
           \blx@resetpunct
           \csuse{abx@extras@#2}%
           \csuse{abx@strings@#2}}%
         \csgappto{noextras#1}{%
           \blx@resetpunct
           \csuse{abx@noextras@#2}}}}
    \makeatother
    
moewe
  • 175,683
  • Note that I still get a similar error with biblatex 3.14 and tex4ht (odt output), which is fixed by the above \def\blx@maplang#1#2 definition. – JSpitzm Dec 19 '19 at 18:21
  • 1
    @JSpitzm If you can reproduce the issue with 'normal' LaTeX (pdflatex, xelatex, lualatex) please post this issue with an MWE at the biblatex bug tracker. If this only occurs with tex4ht, please go to their bugtracker and inform them about this (I seem to remember that they have to patch quite a few LaTeX commands that biblatex relies on as well as some internal biblatex commands to make sure everything goes as planned). – moewe Dec 19 '19 at 18:26
  • I cannot reproduce outside tex4ht. It's probably broken in biblatex.4ht – JSpitzm Dec 19 '19 at 18:31
  • @JSpitzm OK. I know next to nothing about tex4ht, so the only hint I can add is that we recently changed \blx@maplang for polyglossia support: https://github.com/plk/biblatex/commit/8db14c03546c0f6075c06ecf07089b921ca8b8ca (https://github.com/plk/biblatex/pull/930) maybe the fact that the definition of \blx@maplang now happens in \AtBeginDocument poses an issue. – moewe Dec 19 '19 at 18:35
  • Yes your guess was right. biblatex.4ht (l.224ff.) has some code which executes \blx@lbxinput in the preamble. Shifting this to \AtBeginDocument seems to work. I'll file a bug report at tex4ht – JSpitzm Dec 20 '19 at 06:26
  • Just a quick update: The issue is fixed in today's tex4ht release. – JSpitzm Dec 21 '19 at 06:43