I was compiling an old latex file using tex4ht and now it gives an error.
I tried both pgfsys-dvisvgm4ht.def
and pgfsys-tex4ht-updated.def
from https://github.com/michal-h21/dvisvgm4ht
The error is
(/usr/local/texlive/2021/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/usr/local/texlive/2021/texmf-dist/tex/generic/xkeyval/keyval.tex))))
! Extra \else.
l.435 \else
The same latex file compiles with no error using lualatex
.
Here is the file and the command I used to compile it
\documentclass{standalone}
\ifdefined\HCode
%downloaded from https://github.com/michal-h21/dvisvgm4ht
%tried both
% \def\pgfsysdriver{pgfsys-dvisvgm4ht.def}
\def\pgfsysdriver{pgfsys-tex4ht-updated.def}
\fi
\usepackage{tikz} % TikZ and PGF
% Vector Styles
\tikzstyle{load} = [ultra thick,-latex]
\tikzstyle{stress} = [-latex]
\tikzstyle{dim} = [latex-latex]
\tikzstyle{axis} = [-latex,black!55]
% Drawing Views
\tikzstyle{isometric}=[x={(0.710cm,-0.410cm)},y={(0cm,0.820cm)},z={(-0.710cm,-0.410cm)}]
\tikzstyle{dimetric} =[x={(0.935cm,-0.118cm)},y={(0cm,0.943cm)},z={(-0.354cm,-0.312cm)}]
\tikzstyle{dimetric2}=[x={(0.935cm,-0.118cm)},z={(0cm,0.943cm)},y={(+0.354cm,+0.312cm)}]
\tikzstyle{trimetric}=[x={(0.926cm,-0.207cm)},y={(0cm,0.837cm)},z={(-0.378cm,-0.507cm)}]
\begin{document}
\ifdefined\HCode
%https://tex.stackexchange.com/questions/471458/a-new-problem-with-tex4ht-and-tikz
\tikzset{every node/.style={/pgf/tex4ht node/escape=true}}
\fi
\begin{tikzpicture}
\node (origin) at (0,0) {}; % shift relative baseline
\coordinate (O) at (2,3);
\draw[fill=gray!10] (O) circle (1);
\draw[fill=white] (O) circle (0.75) node[below,yshift=-1.125cm] {Signpost Cross Section};
\draw[dim] (O) ++(-0.75,0) -- ++(1.5,0) node[midway,above] {$d_i$};
\draw[dim] (O) ++(-1,1.25) -- ++(2,0) node[midway,above] {$d_o$};
\foreach \x in {-1,1} {
\draw (O) ++(\x,0.25) -- ++(0,1.25);
}
\end{tikzpicture}
\begin{tikzpicture}[dimetric2]
\coordinate (O) at (0,0,0);
\draw[axis] (O) -- ++(6,0,0) node[right] {$x$};
\draw[axis] (O) -- ++(0,6,0) node[above right] {$y$};
\draw[axis] (O) -- ++(0,0,6) node[above] {$z$};
\draw[fill=gray!50] (0,0,-0.5) circle (0.5);
\fill[fill=gray!50] (-0.46,-0.2,-0.5) -- (0.46,0.2,-0.5) -- (0.46,0.2,0) -- (-0.46,-0.2,0) -- cycle;
\draw[fill=gray!20] (O) circle (0.5);
\draw (0.46,0.2,-0.5) -- ++(0,0,0.5) node[below right,pos=0.0] {Fixed Support};
\draw (-0.46,-0.2,-0.5) -- ++(0,0,0.5);
\draw[fill=gray!10] (O) circle (0.2);
\fill[fill=gray!10] (-0.175,-0.1,0) -- (0.175,0.1,0) -- ++(0,0,4) -- (-0.175,-0.1,4) -- cycle;
\draw (-0.175,-0.1,0) -- ++(0,0,4);
\draw (0.175,0.1,0) -- ++(0,0,4) node[right,midway] {Steel Post};
\draw (4,0,3.95) -- ++(0,0,-1);
\foreach \z in {0.5,0.75,...,5} {
\draw[-latex] (-2*\z/5-0.2,0,\z) -- (-0.2,0,\z);
}
\draw[load] (0,0,4) -- ++(0,0,-1.25) node[right,xshift=0.1cm] {$F_{z1}$};
\draw[fill=gray!20] (-0.25,-0.25,5) -- (4,-0.25,5) -- (4,+0.25,5) -- (-0.25,+0.25,5) -- cycle;
\draw[fill=gray!50] (+4.00,-0.25,4) -- (4,+0.25,4) -- (4,+0.25,5) -- (+4.00,-0.25,5) -- cycle;
\draw[fill=gray!10] (-0.25,-0.25,4) -- (4,-0.25,4) -- (4,-0.25,5) -- (-0.25,-0.25,5) -- cycle;
\draw (4.05,0,4) -- ++(1,0,0);
\draw (4.05,0,5) -- ++(1,0,0);
\draw[dim] (4.5,0,0) -- ++(0,0,4) node[midway,right] {$h_1$};
\draw[dim] (4.5,0,4) -- ++(0,0,1) node[midway,right] {$h_2$};
\draw[dim] (0,0,3.4) -- ++(4,0,0) node[midway,below] {$b_2$};
\coordinate (P) at (2,-0.25,4.5);
\draw (P) -- ++(0,0,0.25);
\draw (P) -- ++(0.25,0,0);
\draw[dim] (2.125,-0.25,4.5) -- ++(0,0,-0.5) node[midway,right] {$z_1$};
\draw[dim] (2,-0.25,4.625) -- ++(-2,0,0) node[midway,below] {$x_1$};
\draw[load] (2,-2.45,4.5) -- ++(0,2.2,0) node[pos=0.0,right,xshift=0.08cm] {$F_{y1}$};
\draw[axis,dashed,-] (O) -- (0,0,5);
\draw (0,0,5.5) -- ++(4,0,0) node[midway,above] {$w_{z}$};
\foreach \x in {0,0.25,...,4} {
\draw[-latex] (\x,0,5.5) -- ++(0,0,-0.5);
}
\draw (-0.2,0,0) -- ++(-2,0,5) node[above,xshift=0.5cm] {$w_{x}=\frac{z}{h_1+h_2} w_0$};
\end{tikzpicture} %
\end{document}
The command is make4ht -ulm default -a debug foo.tex "htm"
Using lualatex foo.tex
no error and gives
Obviously I did not write the Latex code in the above, as I am very much a newbie in tikz. The code by Paul Gessler from https://texample.net/tikz/examples/signpost/
I remember compiling this OK in tex4ht before. Why does it fail now?
I am using TL 2021
>which make4ht
/usr/local/texlive/2021/bin/x86_64-linux/make4ht
>make4ht --version
make4ht version v0.3k
standalone
class, it probably got updated and TeX4ht support is broken. Other than that, don't define any dvisvgm driver and remove conditional code for TeX4ht, and your images should compile. They compile without errors with the Article class. So onlystandalone
needs to be fixed.TeX4ht info: Using dvisvgm4ht TikZ driver. Put \def \pgfsysdriver {driver-name} to your document before use of TikZ if you want to another driver
So you are saying one no longer needs to use\def\pgfsysdriver{pgfsys-dvisvgm4ht.def}
anywhere when compiling with tex4ht? When did this change happen? I need to update my latex files in this case then. Thanks.pgfsys-dvisvgm4ht.def
is used by default for some time. It doesn't hurt if you have it in your document, but you don't need to load it explicitly.