2

I have LuaLaTeX and it's working fine. But when i have converting LaTeX to HTML used make4ht test.tex it's showing error.

make4ht -f html5+detect_engine test.tex

make4ht -l test.tex

How to fix this?

MWE IS:

\documentclass{elife}
\usepackage{lipsum}

\title{Grasp movement initiation and representation}

\author[1\authfn{1}]{J. Steven}
\author[2]{S. Manesesh}
\author[1*]{K. Alexanders}
\affil[1]{Department of Clinical and Movement Neurosciences, United Kingdom}
\affil[2]{Gatsby Computational Neuroscience Unit, United Kingdom}

\corr{k.alex@ucl.ac}{AC}

\presentadd[\authfn{1}]{Zanvyl Mind/Brain Institute, United States}

\begin{document}

\maketitle

\begin{abstract}
\lipsum[1-10]
\end{abstract}
\section{Introduction}
We recorded single neurons in F1 and hold actions, and investigated the population-level differences could explain, please refer for each grasp (\FIG{Fig1Main}A) and \FIGSUPP[Fig1Main]{Fig1Supp} how overt movement is withheld during the latter condition.

\begin{figure}
\begin{fullwidth}
\includegraphics[width=0.5\linewidth]{Fig1}
\caption{During task. Top panels show pre-processed, rectified, and normalized average homepad and object displacement signals.}
\label{fig:Fig1Main}
\figsupp[EMG during all traces]{\textbf{(A.)} Execution traces are shown in \FIG{Fig1Main}.}{\includegraphics[width=0.5\linewidth]{Fig1Supp}} \label{figsupp:Fig1Supp}
\end{fullwidth}
\end{figure}

\end{document}

E:\texlive\2021\bin\win32\runscript.tlu:915: command failed with exit code 1:. How to solve this error?

I have using Windows and TeXLive2021.

elife is available here: https://github.com/zhoupc/eLife_submission/blob/master/elife.cls

5
  • I get compilation error for this file even with pdflatex, the \FIGSUPP command is unknown. Isn't part of the document missing?
    – michal.h21
    Jan 12 at 10:10
  • @michal.h21: \FIGSUPP is defined as: \newcommand{\FIGSUPP}[2][]{\ifstrequal{#1}{}{}{\autoref{fig:#1}--}\autoref{figsupp:#2}}
    – Balaji
    Jan 12 at 10:31
  • Thanks. The output is still weird in the PDF output, but it compiles.
    – michal.h21
    Jan 12 at 11:00
  • @michal.h21: I've adjusted LaTeX Template, and I would like to convert LaTeX to HTML. I have refered https://tex.stackexchange.com/questions/344200/does-autoref-break-tex4ht and cross-links are working except all sections are not convert to html.
    – Balaji
    Jan 13 at 6:43
  • @michal.h21: But when running make4ht first time running showing error: \undefined \autoref error.
    – Balaji
    Jan 13 at 7:52

1 Answer 1

1

The main problem is that the elife class loads Unicode-math package, which is not supported by TeX4ht. It even causes fatal error. To fix that, we need to create a special file that will prevent Unicode-math from loading, and define dummy version of \setmathfont.

Here is the file, unicode-math-hooks.4ht:

\:dontusepackage{unicode-math}
\RequirePackage{fontspec}
\NewDocumentCommand \setmathfont { O{} m O{} }{}

\endinput

We need to register this file in TeX4ht, using usepackage.4ht:

% usepackage.4ht (2021-12-14-13:43), generated from tex4ht-4ht.tex
% Copyright 2003-2009 Eitan M. Gurari
% Copyright 2009-2021 TeX Users Group
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any
% later version. The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions
% of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work
% is the TeX4ht Project <http://tug.org/tex4ht>.
%
% If you modify this program, changing the
% version identification would be appreciated.
\immediate\write-1{version 2021-12-14-13:43}

   \def\:temp{tex4ht}\ifx \:temp\@currname
   \:warning{\string\usepackage{tex4ht} again?}
   \def\:temp#1htex4ht.def,tex4ht.sty#2!*?: {\def\:temp{#2}}
\expandafter\:temp \@filelist htex4ht.def,tex4ht.sty!*?: %
\ifx \:temp\empty  \else
   \:warning{if
    \string\RequirePackage[tex4ht]{hyperref} or
    \string\usepackage[tex4ht]{hyperref} was
    used try instead, repectively,
    \string\RequirePackage{hyperref} or
    \string\usepackage{hyperref}}
\fi

\fi
\gdef\a:usepackage{\use:package ,!*?: }
\gdef\use:package#1,{%
   \if :#1:\def\:temp##1!*?: {}\else
      \def\:temp{#1}\ifx \@currname\:temp
             \def\:temp##1!*?: {\input usepackage.4ht  }%
      \else \let\:temp=\use:package \fi
   \fi \:temp}
\Configure{PackageHooks}{biblatex-chicago.sty}{biblatex-chicago-hooks.4ht}
\Configure{PackageHooks}{cleveref.sty}{cleveref-hooks.4ht}
\Configure{PackageHooks}{xr.sty}{xr-hooks.4ht}
\Configure{PackageHooks}{xr-hyper.sty}{xrhyper-hooks.4ht}
\Configure{PackageHooks}{eso-pic.sty}{esopic-hooks.4ht}
\Configure{PackageHooks}{showframe.sty}{showframe-hooks.4ht}
\Configure{PackageHooks}{expl3.sty}{expl3-hooks.4ht}
\Configure{PackageHooks}{savetrees.sty}{savetrees-hooks.4ht}
\Configure{PackageHooks}{newcomputermodern.sty}{newcomputermodern-hooks.4ht}
\Configure{PackageHooks}{newcomputermodern.sty}{newcomputermodern-hooks.4ht}
\Configure{PackageHooks}{fontawesome5-utex-helper.sty}%
{fontawesome5-utex-helper-hooks.4ht}
\Configure{PackageHooks}{fontawesome5.sty}{fontawesome5-hooks.4ht}
\Configure{PackageHooks}{biblatex.sty}{biblatex-hooks.4ht}
\Configure{PackageHooks}{xeCJK.sty}{xecjk-hooks.4ht}
\Configure{PackageHooks}{ctex.sty}{ctex-hooks.4ht}
\Configure{PackageHooks}{polyglossia.sty}{polyglossia-hooks.4ht}
\Configure{PackageHooks}{fontspec.sty}{fontspec-hooks.4ht}
\Configure{PackageHooks}{tikz.sty}{tikz-hooks.4ht}
\Configure{PackageHooks}{pdfbase.sty}{pdfbase-hooks.4ht}
\Configure{PackageHooks}{hyperref.sty}{hyperref-hooks.4ht}
\Configure{PackageHooks}{caption.sty}{caption-hooks.4ht}
\Configure{PackageHooks}{minted.sty}{minted-sty-hooks.4ht}
\Configure{PackageHooks}{graphics.sty}{graphics-hooks.4ht}
\Configure{PackageHooks}{graphbox.sty}{graphbox-hooks.4ht}
\Configure{PackageHooks}{xcolor.sty}{xcolor-hooks.4ht}
\Configure{PackageHooks}{imakeidx.sty}{imakeidx-hooks.4ht}
\Configure{PackageHooks}{fancyhdr.sty}{fancyhdr-hooks.4ht}
\Configure{PackageHooks}{exerquiz.sty}{exerquiz-hooks.4ht}
\Configure{PackageHooks}{hyperxmp.sty}{hyperxmp-hooks.4ht}
\Configure{PackageHooks}{datetime2.sty}{datetime2-hooks.4ht}
\Configure{PackageHooks}{unicode-math.sty}{unicode-math-hooks.4ht}


\endinput

With this fix, you will not get a fatal error, but you will still get a compilation error caused by elife's additions to \maketitle. We can fix this issue with elife.4ht file:

\def\:tempa{%
     \a:themetadata%
     \textbf{*For correspondence:}  \@correspondence\par
     \ifx\empty\@contribution\else
     \c:themetadata\bigskip\@contribution\d:themetadata\fi
     \ifx\empty\@presentaddress\else
     \e:themetadata\textbf{Present address: }\@presentaddress\f:themetadata\fi
     \bigskip
     \ifx\empty\@deceased\else\g:themetadata\@deceased\h:themetadata\fi
     \b:themetadata%
}

\HLet\themetadata\:tempa

% redefine \@author to include affiliations and other information
\def\:tempa{\a:authlist\ifx\AB@affillist\AB@empty\AB@author\else
      \ifnum\value{affil}>\value{Maxaffil}\def\rlap##1{##1}%
    \c:authlist\AB@authlist\d:authlist\themetadata\e:authlist\AB@affillist\f:authlist
    \else  \AB@authors\fi\fi\b:authlist}
\HLet\@author\:tempa

\NewConfigure{themetadata}{8}

\NewConfigure{authlist}{6}

\renewenvironment{abstract}{%
   \textcolor{eLifeLightBlue}{\large\bfseries\abstractname\space}
}{%   
}

\Hinput{elife}
\endinput

It inserts some configurable hooks that can be used to insert HTML code. Yu can configure these hooks in a .cfg file:

\Preamble{xhtml}

% configure environments in \maketitle
\Configure{authlist}
{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="authlist">}}
{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}
{\HCode{<div>}}{\HCode{</div><div>}}{\HCode{</div><div>}}{\HCode{</div>}}

\Configure{themetadata}
{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="themetadata">}}
{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}
{\HCode{<div>}}{\HCode{</div><div>}}{\HCode{</div><div>}}
{\HCode{</div><div>}}{\HCode{</div><div>}}{\HCode{</div>}}
\Css{.themetadata{font-size:0.8rem;}}

\def\IgnoreRule{\special{t4ht@\string_}}
\def\EndIgnoreRule{\special{t4ht@\string_\string_}}

\ConfigureEnv{abstract}
{\ifvmode\IgnorePar\fi\EndP\HCode{<section role="doc-abstract" class="abstract">\Hnewline}\IgnoreRule}
{\ifvmode\IgnorePar\fi\EndP\HCode{</section>\Hnewline}\EndIgnoreRule}{}{}

\Css{.authlist span{font-size:0.8rem;}}
\begin{document}
\EndPreamble

enter image description here

It should compile correctly now:

3
  • It's working fine, except \section and figure cross-links are not convert to html. I have updated the question. How to fix this errors?
    – Balaji
    Jan 11 at 17:22
  • @Balaji it is possible that more stuff needs fixes. I will take a look tomorrow.
    – michal.h21
    Jan 11 at 20:43
  • How to convert \section tag to HTML? Could you please advise...
    – Balaji
    Mar 15 at 14:13

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.