2

I have the following message when I compile a document calling biblatex, whether I run biber or not, in order to create a .bbl. I use Biber 2.3.

My file is % biblatex.4ht (2015-08-05-15:37), generated from tex4ht-4ht.tex

The pdf has no error during the compilation, only the tex4ht complains.

(/texlive/texmf-dist/tex/generic/tex4ht/biblatex.4ht
! Missing = inserted for \ifnum.
<to be read again>
.
l.158 \ifnum\blx:ver:no
                      < 3
?
! Missing number, treated as zero.
<to be read again>
.
l.158 \ifnum\blx:ver:no
                      < 3
?
! Missing = inserted for \ifnum.
<to be read again>
.
l.359 \ifnum\blx:ver:no
                      < 3
?
! Missing number, treated as zero.
<to be read again>
.
l.359 \ifnum\blx:ver:no
                      < 3

the document is simple, since it has nothing in it.

i compile with make4ht -ul hello.tex "fn-in"

I use an extension of tex4ht by @michal.h21,

https://github.com/michal-h21/helpers4ht

But I od not believe it influence anything since I do not activate it here.

\documentclass[oneside,a4paper, 12pt]{article}


\usepackage[backend=biber, language=british]{biblatex}


% \usepackage{alternative4ht}
%  \altusepackage{fontspec}
%  \setmainfont{TeX Gyre Termes}
%%  \newfontfamily\greekfont{Linux Libertine O}
%%  \newfontfamily\russianfont{Linux Libertine O}
%%  \newfontfamily\hindifont{Siddhanta}
%  \altusepackage{polyglossia}
%  \setmainlanguage{french}
%%  \setotherlanguage{czech}
%%  \setotherlanguage{greek}
%%  \setotherlanguage{russian}
%%  \setotherlanguage{hindi} 




\begin{document}

cou

\end{document}
  • OK, the problem is the line \ifdefstring{\abx@version}{3.0}{\xdef\blx:ver:no{3}}{\xdef\blx:ver:no{2.9}} since you have version 3.1 or 3.2 we don't get \xdef\blx:ver:no{3} (which we should get), but \xdef\blx:ver:no{2.9} which causes trouble when comparing numbers. That is definitely worth a bug report to the tex4ht people. – moewe Jan 4 '16 at 9:03
1

The current version (2015-08-05-15:37) of biblatex.4ht in TeX live contains the line

\ifdefstring{\abx@version}{3.0}{\xdef\blx:ver:no{3}}{\xdef\blx:ver:no{2.9}}

Since you are running version 3.1 or 3.2 of biblatex (and thus not 3.0), you get \blx:ver:no set to 2.9. But then \ifnum has trouble with non-integers, so everything goes pear-shaped.

You can fix the problem by replacing the line above with a simple

\xdef\blx:ver:no{3}
  • I would consider this a bug in tex4ht. The ifdefstring{\abx@version}{3.0} is too restrictive and \ifnum has troubles with decimals. – moewe Jan 4 '16 at 12:21
  • yes, it is a bug in tex4ht. what would you propose for proper testing the version? It needs to support also pre-3.0 versions – michal.h21 Jan 4 '16 at 13:20
  • @michal.h21 I think you "only" need to check \abx@version against 3. I found How to compare numbers with decimal point and logical OR operation? for decimal \ifnum, not sure if there is something better. Checking against a string, is probably a bit complicated to scale. – moewe Jan 4 '16 at 13:26
  • @michal.h21 Indeed, \ifdim\abx@version pt < 3pt A \else B \fi seems to work just fine. But again, there might be something better. – moewe Jan 4 '16 at 13:30
  • 1
    @michal.h21 I expect that would work, yes. But I don't understand why you take this "detour" of rolling your own version information, when you could check against \ifdim\abx@version pt< 3pt all the time. Still, there is one problem I didn't think of before, version 2.9a has \def\abx@version{2.9a}, so can't be tested against as a dimension. Not sure what to do about this one ... – moewe Jan 5 '16 at 7:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.