# message error in biblatex.4ht with tex4ht, even with no bibliography

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.
.
l.158 \ifnum\blx:ver:no
< 3
?
! Missing number, treated as zero.
.
l.158 \ifnum\blx:ver:no
< 3
?
! Missing = inserted for \ifnum.
.
l.359 \ifnum\blx:ver:no
< 3
?
! Missing number, treated as zero.
.
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

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
• @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