将 LaTeX 文件转换为包含大量 tikzpictures 的 word

将 LaTeX 文件转换为包含大量 tikzpictures 的 word

我需要将包含大量 tikz 图片的 latex 文件转换为 MS word。为了使转换更加容易,转换器应该自动用 includegraphics 命令将 tikzpicture 块替换为图片的相应 pdf,并在转换之前进行转换。

是否有任何脚本或转换器可以做到这一点?

答案1

您可以使用tex4ht将 LaTeX 转换为 OpenDocument 格式,然后可以使用 LibreOffice 轻松转换为 Word。它支持 TikZ 外部化,因此您可以先将绘图保存为合适的格式,然后在转换过程中使用它们。似乎最适合使用的图像格式是。像或这样png的矢量格式会更好,但它们在格式中不受支持,所以这里没有运气,我们必须坚持使用位图。svgpdfodt

您没有提供mwe,因此这是我的:

\documentclass[a4paper, 12pt, ngerman]{scrartcl}

\usepackage{graphicx}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\usetikzlibrary{external}    
\tikzset{
 external/system call/.add={}                                                
 {;  rungs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dGraphicsAlphaBits=4 -r110 -sOutputFile=\image.png \image.pdf }
}
\makeatletter
\@ifpackageloaded{tex4ht}{
}{
    \tikzexternalize
}
\makeatother

\begin{document}

\begin{figure}[htb]
\centering
\begin{tikzpicture}
\begin{axis}[width=0.8\textwidth,
height=0.3\textheight,
scale only axis,
xmin=0,
xmax=1,
xlabel={Dimensionless number $\zeta$ (-)},
xlabel style={fill=white,fill opacity=0.9},
ymin=0,
ymax=2000,
ylabel={Resulting pressure $\Sigma p$ (bar)},
ylabel style={fill=white,fill opacity=0.9},
axis background/.style={fill=white},
legend style={at={(0.71,0.96)},anchor=north west,draw=black,fill=white,legend cell align=left}
]
%% Formula 1
\addplot[blue, domain=0:1, samples=101]
{1998*(1 - x^2)};
\addlegendentry{Formula 1};
\end{axis}
\end{tikzpicture}
\caption{Resulting pressure $\Sigma p$ as a function of $\zeta$ \label{fig:spz}}
\end{figure}

\begin{tikzpicture}
  \draw (2,2) ellipse (3cm and 1cm);
  \node (2,2) {Hello};
\end{tikzpicture}

\end{document}

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

pdflatex -shell-escape filename.tex    

它将创建两幅png图像。

这个 TeX 文件中有趣的部分是这些

\usetikzlibrary{external}    
\tikzset{
 external/system call/.add={}                                                
 {;  rungs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dGraphicsAlphaBits=4 -r110 -sOutputFile=\image.png \image.pdf }
} 

这是 TikZ 外部化的配置。rungs命令是 TeX 发行版附带的 GhostScript 版本,因此它应该可以在任何地方使用。您可能需要调整参数,以获得最佳效果。

\@ifpackageloaded{tex4ht}{
}{
    \tikzexternalize
} 

这部分将确保仅当文档未使用编译时才使用上面的配置tex4ht,因为在这种情况下我们需要使用特殊配置。

的配置tex4ht在带有扩展名的文件中提供.cfg,例如mycfg.cfg

\tikzset{
    tex4ht inc/.style={
        /pgf/images/include external/.code={%
            \includegraphics[]{##1.png}%
        }

    }
}
\tikzexternalize[mode=only graphics]  
\tikzset{tex4ht inc}
\Preamble{xhtml,mathml}
\begin{document}
\EndPreamble

这个配置基本上告诉 TikZ 不要生成图形图像,而是包含png上一步创建的图像。

现在您可以使用编译该文档tex4ht。命令如下:

mk4ht oolatex filename.tex mycfg 

结果如下:

在此处输入图片描述

相关内容