无法使用 tex4ebook 包含图表

无法使用 tex4ebook 包含图表

我想将一本包含大量公式和表格的科学书籍转换为epub3。到目前为止,我已经阅读了所有带有标签并与之相关的帖子tex4ebooktex4ht并且我已成功制作出一epub3本公式看起来不错的书籍版本。

到目前为止我的命令是:

tex4ebook  -f epub3  filename  mathml

现在,假设我的 tex 有以下 tikzpicture(借用自这里)。

\begin{tikzpicture}
    % Time axis
    \draw (0,0) -- node[below=1cm] {Time $\to$} (6,0);
    % Emotional axis
    \draw (0,0) -- node[left] {\parbox{2cm}{\centering $\uparrow$ \\     Emotional \\ intensity}} (0,4);
    % Time ticks
    \foreach \x [count=\j] in {0.2,3,4.5,6} {
        \draw (\x,0) coordinate (t\j) -- (\x,-0.1cm) node[below] (tt\j)     {Time \j};
    }
    \node[below] at (tt1.south) {(Emotional event)};
    % Curves
    \draw (t1) .. controls +(1,2) .. node[above right] {Experienced} (t2);
    \draw[dashed] (t1) .. controls +(1,4) .. node[above right]    {Predicted} (t4);
\end{tikzpicture} 

我无法(或者我不明白如何使用)来tex4ebookepub包含上述图像。我应该在上一个命令中添加什么来tikzpicture显示 ?我已成功完成所有相关标签中的所有说明tex4ebook StackExchange,并且能够生成例如包含上述图像pdfluatex,但我不知道该怎么做才能使其与命令一起工作tex4ebook

有人能告诉我该采取什么步骤吗?谢谢

答案1

我将发布对原始问题和评论中附加问题的回答。一年前发布这些评论时我还没有看到它们。

那么,对于我的问题是,有没有办法将 mathml 和外部化结合起来?

外部化不会干扰 MathML,只是\includegraphicstex4ht角度来看。您的代码的问题是sgame包重新定义了用于表格处理的内部 LaTeX 命令,并且与 发生冲突tex4ht。所以我们需要一个适当的配置文件才能使其工作。作为一种解决方法,也可以将其转换为图像。

这是一个完整的例子:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{sgame}
\usetikzlibrary{external}

\tikzset{
 external/system call/.add={}                                                
      ; inkscape -z -f "\image.pdf" -l "\image.svg"     
}
\makeatletter
\@ifpackageloaded{tex4ht}{
    \tikzexternalize[mode=only graphics]
}{
    \tikzexternalize
}
\makeatother

\begin{document}
\begin{tikzpicture}
    % Time axis
    \draw (0,0) -- node[below=1cm] {Time $\to$} (6,0);
    % Emotional axis
    \draw (0,0) -- node[left] {\parbox{2cm}{\centering $\uparrow$ \\     Emotional \\ intensity}} (0,4);
    % Time ticks
    \foreach \x [count=\j] in {0.2,3,4.5,6} {
        \draw (\x,0) coordinate (t\j) -- (\x,-0.1cm) node[below] (tt\j)     {Time \j};
    }
    \node[below] at (tt1.south) {(Emotional event)};
    % Curves
    \draw (t1) .. controls +(1,2) .. node[above right] {Experienced} (t2);
    \draw[dashed] (t1) .. controls +(1,4) .. node[above right]    {Predicted} (t4);
\end{tikzpicture} 

Some equation:

\begin{equation} \label{eu_eqn}
  e^{\pi i} + 1 = 0
\end{equation}

\begin{figure}[tbh]\hspace*{\fill}
 \begin{game}{2}{2}[$t_1=S$] & $F$ & $NF$\\
$F$ &$1$, -$2$ &$2$, -$1$\\ $NF$ &-$1$, $2$ &$0, 0$ \\
\end{game}
\hspace*{10mm}
\begin{game}{2}{2}[$t_1=W$] & $F$ & $NF$\\ $F$
&-$1,1$ &$2$, -$1$ \\ $NF$ &$0, 2$ &$0, 0$\\ 
\end{game}\hspace*{\fill}%
\caption[]{\textit{A game with incomplete information}} 
\end{figure}    

\begin{tabular}{ll}
  And what about & normal table?\\
\end{tabular}

\end{document}

我们在序言中设置了基本externalization内容。遗憾的是,我们无法消除 的歧义\tikzexternalize

配置文件包含SVG包含的代码、tex4ht外部化的配置以及将环境转换为图片的请求game

\Preamble{xhtml,mathml}
\makeatletter
\Configure{graphics*}  
         {svg}{  
          {\Configure{Needs}{File: \[email protected]}\Needs{}}
          \Picture[\csname a:GraphicsAlt\endcsname]{\csname Gin@base\endcsname.svg \csname a:Gin-dim\endcsname}%  
         }  
\makeatother

\ConfigureEnv{game}{\Picture+{}}{\EndPicture}{}{}
\begin{document}
\tikzset{
    tex4ht inc/.style={
        /pgf/images/include external/.code={%
            \includegraphics[]{##1.svg}%
        }
    }
}
\tikzset{tex4ht inc}
\EndPreamble

您可以使用以下方式编译该文档

tex4ebook -f epub3 -c mycfg.cfg filename.tex

结果如下: 在此处输入图片描述

相关内容