5

I just installed TL 2016 on new Linux mint OS.

>which latex
/usr/local/texlive/2016/bin/x86_64-linux/latex
>which make4ht
/usr/local/texlive/2016/texmf-dist/scripts/make4ht/make4ht

The first file I tried to compile gives error. I'd like to ask what does a user need to change or add to make tex4ht work under TL 2016. I use lua as option in all my builds using make4ht. Here is a MWE

\documentclass[11pt]{article}%
\usepackage[utf8]{inputenc}
\begin{document}
test
\end{document} 

Error is

make4ht --lua foo.tex 
Output dir:     
Compiler:   dvilualatex
Latex options:   -jobname=foo 
tex4ht.sty :    xhtml,
tex4ht  
build_file  foo.mk4
Cannot open config file foo.mk4
setting param correct_exit
setting param correct_exit
setting param correct_exit
setting param ext
Adding:     ext dvi
LaTeX call: dvilualatex  -jobname=foo  '\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCode"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1.a.b.c.{\g@addto@macro\@documentclasshook{\RequirePackage[#1,html]{tex4ht}}\let\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csname tex4ht\endcsname{#1,html}\def\HCode####1{\documentstyle[tex4ht,}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode xhtml,.a.b.c.\input foo'
This is LuaTeX, Version 0.95.0 (TeX Live 2016) 
 restricted system commands enabled.
LaTeX2e <2016/03/31>
Babel <3.9r> and hyphenation patterns for 1 language(s) loaded.
(./foo.tex (/usr/local/texlive/2016/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/size11.clo))
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/tex4ht.sty)
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/usepackage.4ht)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/inputenc.sty

Package inputenc Warning: inputenc package ignored with utf8 based engines.

) (/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/tex4ht.4ht
::::::::::::::::::::::::::::::::::::::::::
 TeX4ht info is available in the log file 
::::::::::::::::::::::::::::::::::::::::::
) (/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/tex4ht.sty
--- needs --- tex4ht foo ---
(./foo.tmp) (./foo.xref)
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/html4.4ht)
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/html4-math.4ht)
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/html4.4ht)
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/html4-math.4ht)
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/latex.4ht
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/html4.4ht
! String contains an invalid utf-8 sequence.
l.1267           
               \Configure{tableofcontents}
? 

It works if remove --lua option. But I need to use this option and it works in TL 2015. The above error also shows up if I remove \usepackage[utf8]{inputenc}

File compiles OK with lualatex 2016

lualatex foo.tex
This is LuaTeX, Version 0.95.0 (TeX Live 2016) 
 restricted system commands enabled.
(./foo.tex
LaTeX2e <2016/03/31>
Babel <3.9r> and hyphenation patterns for 1 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/size11.clo)) (./foo.aux)
[1{/usr/local/texlive/2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./foo.aux))
 346 words of node memory still in use:
   2 hlist, 1 vlist, 1 rule, 7 glue, 39 glue_spec, 1 write nodes
   avail lists: 1:1,2:12,3:2,4:1,5:10,6:6,7:22,8:1,9:6
</usr/local/texlive/2016/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on foo.pdf (1 page, 10400 bytes).
Transcript written on foo.log.

File also compiled OK with make4ht --lua under TL 2015:

make4ht --lua foo.tex
Output dir:     
Compiler:   dvilualatex
Latex options:   -jobname=foo 
tex4ht.sty :    xhtml,
tex4ht  
build_file  foo.mk4
Cannot open config file foo.mk4
setting param correct_exit
setting param correct_exit
setting param correct_exit
setting param ext
Adding:     ext dvi
LaTeX call: dvilualatex  -jobname=foo  '\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCode"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1.a.b.c.{\g@addto@macro\@documentclasshook{\RequirePackage[#1,html]{tex4ht}}\let\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csname tex4ht\endcsname{#1,html}\def\HCode####1{\documentstyle[tex4ht,}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode xhtml,.a.b.c.\input foo'
This is LuaTeX, Version beta-0.80.0.1 (TeX Live 2015) (rev 5863) 
 restricted \write18 enabled.
LaTeX2e <2015/10/01> patch level 2
......
parse_lg process file: foo.css
outdir: 
parse_lg process file: foo.tmp
tmp file
3
  • it works for me with TL 16
    – michal.h21
    Jun 16, 2016 at 20:26
  • @michal.h21 strange. I just installed fresh TL 2016. Fresh new OS also. Just an hr ago. Using standard TL install. So I do not know what is going on.
    – Nasser
    Jun 16, 2016 at 20:28
  • yes, it is strange, my installation is little bit strange at the moment, because it rejects to update using tlmgr, so it is possible that I don't have up to date packages. I will try it tomorrow on different machine
    – michal.h21
    Jun 16, 2016 at 20:55

1 Answer 1

4

The file /usr/local/texlive/2016/texmf-dist/tex/generic/tex4ht/html4.4ht contains a spurious character <A0> in line 1267

1265 \let\sv:etoc\e:tableofcontents
1266 %
1267           <A0>\Configure{tableofcontents}
1268        {\IgnorePar\EndP\HCode{<div class="\sec:typ TOCS">}\IgnorePar}

The output was obtained with

LESSCHARSET=ascii less -N $(kpsewhich html4.4ht)

Make a local copy, edit the file placing the cursor at the backslash in \Configure and remove the preceding character.

If the edited copy is in the working directory, compilation succeeds.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .