michal-h21 / make4ht

Build system for tex4ht
131 stars 15 forks source link

Tabular breaks tikzcd diagram #143

Closed gnull closed 5 months ago

gnull commented 5 months ago

I'm running make4ht -l -sm draft -f html5 main.tex with the file:

\documentclass{article}

\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
  \begin{tabular}{c}
    hey \\
    sup
  \end{tabular}
\end{tikzcd}

\end{document}

Which renders as expected in pdf, but produces garbage in html.

image image
PDF output HTML output

Is this a bug? Is there some alternative environment that I can use instead of tabular to create newlines inside a tikzcd cell that will work with make4ht?

Ivan

gnull commented 5 months ago

https://github.com/michal-h21/make4ht/issues/127#issuecomment-1648229299

The advice with pictenv from here has fixed my issue.

michal-h21 commented 5 months ago

You can also convert the tikzcd environment to pictures with this configuration file, tikz-cd.4ht:

% tikz-cd.4ht (2024-01-22-12:04), generated from tex4ht-4ht.tex
% Copyright 2024 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 2024-01-22-12:04}

\ConfigureEnv{tikzcd}{\Picture+{}}{\EndPicture}{}{}

\Hinput{tikz-cd}
\endinput
gnull commented 5 months ago

Thank you!

Is there any reason this isn't default? Any caveats I should expect with this approach?

michal-h21 commented 5 months ago

@gnull I will add it to the TeX4ht sources. It just seems that I forgot about it in the past.