Tikz 图表如下
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path (0,0) node[draw] (A) {A};
\path (2,0) node[draw] (B) {B};
\draw (A) -- (B) node[midway,above = 0 em] {via};
\end{tikzpicture}
\end{document}
使用 (pdf)LaTeX 处理后
而使用 TeX4ht 仅提取文本,转换为
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)">
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)">
<!-- html -->
<meta name="src" content="test.tex">
<meta name="date" content="2011-11-17 09:21:00">
<link rel="stylesheet" type="text/css" href="test.css">
</head><body>
<!--l. 8--><p class="noindent" > ABvia
</body></html>
通过更复杂的 Tikz 输入,TeX4ht 可以部分将图片分成单独的.png
文件。让 TeX4ht 将整个 Tikz 环境转换为输出中的单个图形的最佳方法是什么?我已经尝试使用 Tikz 外部化库,但这无法成功编译。(注意:输出例如 SVG 也可以 - 关键是要保持布局。)
为了清楚起见,尝试使用 Tikz 外部化的结果是:
===== 'mode=convert with system call': Invoking 'latex -halt-on-error -interact
ion=batchmode -jobname "test-figure0" "\def\tikzexternalrealjob{test}\input{tes
t}" && dvips -o "test-figure0".ps "test-figure0".dvi' ========
! Package tikz Error: Sorry, the system call 'latex -halt-on-error -interaction
=batchmode -jobname "test-figure0" "\def\tikzexternalrealjob{test}\input{test}"
&& dvips -o "test-figure0".ps "test-figure0".dvi' did NOT result in a usable o
utput file 'test-figure0' (expected one of .epsi:.eps:.ps:). Please verify that
you have enabled system calls. For pdflatex, this is 'pdflatex -shell-escape'.
Sometimes it is also named 'write 18' or something like that. Or maybe the com
mand simply failed? Error messages can be found in 'test-figure0.log'. If you c
ontinue now, I'll try to typeset the picture.
See the tikz package documentation for explanation.
Type H <return> for immediate help.
...
l.11 \end{tikzpicture}
?
该图表是较大页面的一部分,因此目的是正常处理文本部分,但以不同的方式处理 Tikz 部分(作为图片或 SVG:无论哪个更好)。
答案1
Tikz 中有专门用于 tex4ht 的输出驱动程序。使用它,图表可以保存为 SVG。
\documentclass{article}
\def\pgfsysdriver{pgfsys-tex4ht.def}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path (0,0) node[draw] (A) {A};
\path (2,0) node[draw] (B) {B};
\draw (A) -- (B) node[midway,above = 0 em] {via};
\end{tikzpicture}
\end{document}
答案2
要将整个文件转换.tex
为 SVG,请使用dvisvgm
。与此不同,dvipng
它了解 PStricks 和其他东西。它使用 PGF 在 TeX-Files 上做得非常出色。
latex file.tex
dvisvgm file.dvi
...并且您已做好准备file.svg
。
我无法得到tex4ht
许多 PGF 文件示例,但dvisvgm
可以正常工作。Ubuntu 16.04 中的过时版本 1.9.2 存在一些问题(“fi”和“ff”等连字符变成了中文),但 2.0.4 很棒。