我尝试使用 TeX4ht 和 Calibre 创建一本可以用 iPad 阅读的电子书。我使用以下命令:htlatex file.tex "xhtml, jsmath""-cmozhtf"
。除了一些数学公式外,Calibre 的结果是正确的。
例如方程:$ x ^ 2 - 6x +6 = 0$
,我们得到:{x} ^ {2} - 6x + 6 = 0
。
至:\ [B (x) =-x ^ 2 + 60x-500, \ quad \ textrm {where $ x $ belongs to the interval $ \ left [0 \, 60 \ right] $.} \]
我们得到:B (x) = - {x} ^ {2} + 60x - 500, \ quad \ textrm {where $ x $ belongs to the interval $ \ left [0 \ kern 1.81503pt, 60 \ right] $ .}
对于:$ T_1 $
,我们获得:{T} _ {1}
。
第一个问题:
为什么在此代码中,公式框架中的美元没有转化为图像(并且记录是最好的!)?
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsfonts}
\begin{document}
\section*{Sample French Text}
Lucie, étudiante des États-Unis, vient d'arriver à Charles de
Gaulle, l'aéroport qui accueille chaque jour à Paris, 1 million de
visiteurs. Paris. Enfin. Ça a toujours été le rêve de Lucie : vivre
dans la Ville lumière, la ville des beaux arts, du quartier latin, du
vin, et qui sait, peut-être la ville d'une petite histoire d'amour.
\section*{Math Part}
Numbered equation:
\begin{equation}
P_{r-j}=
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases}
\end{equation}
Un-numbered equation:
\begin{equation*}
P_{r-j}=
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases}
\end{equation*}
Inline equation:
$ x ^ 2 - 6x +6 = 0$ and $B (x) =-x ^ 2 + 60x-500, \quad
\textrm{where $ x $ belongs to the interval $ [0 \, ; 60 ] $.}$
Eqnarray
\begin{eqnarray}
P_{r-j}&=&
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases} \\
P_{r-j}&=&
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases}
\end{eqnarray}
Starred eqnarray
\begin{eqnarray*}
P_{r-j}&=&
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases} \\
P_{r-j}&=&
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases}
\end{eqnarray*}
\end{document}
第二个问题:我按照链接中描述的方法操作,图片效果更好,但我认为太小了。如何调整图像大小?
第三个问题:我尝试将图像放入 svg 格式,但是不起作用:
Erreur d'analyse XML : mal formé
Emplacement : file:///home/fab/der1x.svg
Numéro de ligne 1, Colonne 2 :
%!PS-Adobe-3.0
-^
以下是修改后的 tex4ht.env 内容和 myconfig.cfg 文件内容:
<dvipng>
G.png
Gdvipng -T tight -x 1400 -D 72 -bg Transparent -pp %%2:%%2 %%1 -o %%3
G.gif
Gdvipng -T tight -x 1400 -D 72 -bg Transparent -gif -pp %%2:%%2 %%1 -o %%3
G.
Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps
Gconvert -crop 0x0 -density 110x110 -transparent '#FFFFFF' zz%%4.ps %%3
Grm zz%%4.ps
G.svg
Gdvisvgm -n -p %%2 -c 1.2,1.2 -s %%1 > %%3
</dvipng
\Preamble{xhtml}
\Configure{Picture}{.svg}
\begin{document}
\EndPreamble
第四个问题: 使用 MathJax 和 TeX4ht 在 iPad 打开的 test.html 中给出了非常好的结果,没有任何问题,但是如果你使用 Calibre 获取电子书,结果就很糟糕了!唯一的小问题是,在这个小脚本中,重音字符被问号替换了:
#!/bin/bash
if [ $1 ]
then
NAME=`echo $1 | sed 's/.tex//g'`
htlatex $1 "ht5mjlatex.cfg" "-cmozhtf"
iceweasel $NAME.html;
exit
fi
使用 TeX4ht 制作电子书会比较困难。我尝试安装 TeX4ebook,但出现安装问题:
fab@debian:~$ texlua /home/fab/texmf/tex/latex/tex4ebook-master /tex4ebook.lua
/home/fab/texmf/tex/latex/tex4ebook-master/tex4ebook.lua:113: invalid escape sequence near '\$'
答案1
根据评论,一些方程式在转换后显示正确。这意味着,这些方程式通过tex4ht
后期处理转换为图像。使其他方程式正确显示的一种方法是使它们也成为图像。一个包含可能类型的方程式和一些添加的文本的示例 TeX 文件:
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsfonts}
\begin{document}
\Configure{$}{\PicMath}{\EndPicMath}{}%$
\def\,{\ }
\section*{Sample French Text}
Lucie, étudiante des États-Unis, vient d'arriver à Charles de
Gaulle, l'aéroport qui accueille chaque jour à Paris, 1 million de
visiteurs. Paris. Enfin. Ça a toujours été le rêve de Lucie : vivre
dans la Ville lumière, la ville des beaux arts, du quartier latin, du
vin, et qui sait, peut-être la ville d'une petite histoire d'amour.
\section*{Math Part}
Numbered equation:
\begin{equation}
P_{r-j}=
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases}
\end{equation}
Un-numbered equation:
\begin{equation*}
P_{r-j}=
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases}
\end{equation*}
Inline equation:
\( x ^ 2 - 6x +6 = 0\) and $B (x) =-x ^ 2 + 60x-500, \quad
\textrm{where $ x $ belongs to the interval $ [0 \, 60 ] $.}$
Un-numbered displayed equation:
\[
B (x) =-x ^ 2 + 60x-500, \quad \textrm{where $ x $ belongs to the interval $ \left [0 \, 60 \right] $.}
\]
and
$$
B (x) =-x ^ 2 + 60x-500, \quad \textrm{where $ x $ belongs to the interval $ \left [0 \, 60 \right] $.}
$$
Eqnarray
\begin{eqnarray}
P_{r-j}&=&
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases} \\
P_{r-j}&=&
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases}
\end{eqnarray}
Starred eqnarray
\begin{eqnarray*}
P_{r-j}&=&
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases} \\
P_{r-j}&=&
\begin{cases}
0 & \text{si $r-j$ est impair,} \\
r! \, (-1)^{(r-j)/2} & \text{si $r-j$ est pair.}
\end{cases}
\end{eqnarray*}
\end{document}
\begin{document}
添加后\Configure{$}{\PicMath}{\EndPicMath}{}%$
,所有内联方程式都会转换为图像。
您需要给出以下命令行来生成 html:
htlatex <filename> "xhtml" "-cmozhtf"
笔记:\usepackage[frenchb]{babel}
我在示例 TeX 中删除并添加了一些法语文本。
免责声明:我还没有使用 Calibre 测试过转换。希望这个能有用。