tex4ebook 重音显示为错误字符 + 仅生成 ePub 2.0 没有 3.0

tex4ebook 重音显示为错误字符 + 仅生成 ePub 2.0 没有 3.0

我安装了最新的 tex4ebook(大约一年没试过了)。现在我无法获得 ePub 3.0 - 只能获得 ePub 2.0(打开时显示 Sigil 0.9.5),Sigil 说它必须修复 ePub 中的一些字符。我的测试文件(UTF8):

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[czech]{babel}
\usepackage{hyperref}
\usepackage{tex4ebook}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}

\title{Geometrické algoritmy}
\author{Mgr. Stanislav Kopejtko}
\date{25. 7. 2014}
\begin{document}
\maketitle
\tableofcontents

Test:
ěščřžýáíéůú
ĚŠČŘŽÝÁÍÉŮÚ
\(e=\dfrac{12}{x^2}\)

\end{document}

当我使用此命令时:

tex4ebook -f epub3 -t ebook.tex "mathml"

它会在重音字符和标题中产生错误(Calibre 查看器):

几何算法测试:几何

当我使用命令时:

tex4ebook -f epub3 ebook.tex "mathml"

它生成了好看的文本,但文档标题(不在显示的文本内容中)仍然是 Geometrick� 算法(如果有目录,也会有错误的字符)

我已经升级到 HTML Tidy for Linux 版本 5.1.48(我注意到即使没有 -t 开关它也会使用该程序)

当我使用 Gitden 在手机上打开任何此类 epub 时,它会显示错误的字符并且只显示标题屏幕 - 任何文本或数学运算(测试:......)

最新版本坏了还是我操作错误?我现在有 TexLive 2015。

非常感谢您的帮助。

编辑:在文档中找到参数:

tex4ebook -f epub3 -t ebook.tex "html5,mathml,charset=utf-8" " -cunihtf -utf8"

做得不错 - 现在字符正常

即使是 Sigil 也由于 -t 参数可以打开而不会出现错误

但由于它是 ePub 2.0,因此 Mathml 公式在 Android 上的 Gitden 中不起作用 :-(

答案1

编辑:

链接代码在评论中,这会产生错误的页面顺序。这是由tex4ebookinepub3模式中的另一个错误引起的。问题是包含数学的页面应该在 OPF 文件中标记。每个章节都会创建自己的 html 页面。数学被配置为在页面序列列表中注册当前页面,并为mathml当前页面注册属性。问题是没有数学的页面在页面序列中的注册时间比有数学的页面晚,因此它们在页面顺序中出现得更早。我已经在Github,我会等待一段时间,解决其他 Bug 之后再更新 CTAN。

另一个问题是\uv命令,该命令由 Czech 提供babel,用于打印引号。它被翻译为

 <sub>”</sub>=lsložitý“

fontenc使用 OP 的代码。可以使用带编码的包解决该问题T1。正确的文件将是:

\documentclass[11pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[czech]{babel}
\usepackage{hyperref}
% \usepackage{tex4ebook}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{latexsym}
\usepackage{esvect}
\usepackage{color}
\usepackage{makeidx}

\title{Geometrické algoritmy}
\author{Mgr. Stanislav Kopejtko}
\date{25. 7. 2014}
\begin{document}
\maketitle

\tableofcontents

\chapter*{Předmluva}
% 
\uv{složitý}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
\addcontentsline{toc}{chapter}{Předmluva}
\markboth{Předmluva}{Předmluva}

\part{test 2}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
\markboth{}{}
\clearpage

\chapter*{test 3}
\(x=\dfrac{x^2}{x}\)
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
\section{test 4}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
\subsection{test 5}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

\chapter{test 6}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
\(x=\dfrac{x^2}{x}\)
\section{test 7}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
\subsection{test 8}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
\(x=\dfrac{x^3}{x^2}\)

\end{document}

请注意,除非您想将封面图像包含在主文档中,否则不需要tex4ebook直接在文档中使用。

我还发现了另一个问题,它实际上是tex4ht一个错误:

 \chapter*{Předmluva}
    % 
    \uv{složitý}
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

转换为

  <h2 class="likechapterHead"><a 
 id="x3-2000"></a>Předmluva</h2> „složitý“ Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. <a 
 id="Q1-3-3"></a>

缺少<p>标签。问题出在\chapter*命令的配置中,它不请求新段落。在 中解决此错误之前tex4ht,您可以使用以下配置文件mycfg.cfg

\Preamble{xhtml}
\Configure{likechapter}{}{}
{\IgnorePar\EndP\HCode{<h2 class="likechapterHead">}}
{\HCode{</h2>}\IgnoreIndent\par}

\begin{document}
\EndPreamble

\chapter*配置了\Configure{likechapter},与默认配置相比,唯​​一的变化是\par之后的命令\IgnoreIndent

使用以下方法编译文档:

 tex4ebook -f epub3 -c mycfg filename mathml

结果:

  <h2 class="likechapterHead"><a 
 id="x3-2000"></a>Předmluva</h2>
<p class="noindent">„složitý“ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. <a 
 id="Q1-3-3"></a>


   </p> 

这是一次回归,生成了带有重音字符的 XML 实体的 Latin1 输出。它可能在 epub3 中不起作用,因为这种格式需要 Unicode,而在 epub2 中它是可选的。

make4ht此错误是由于和之间的统一而导致的tex4ebook,以便支持对选项的相同处理。但我忘记了我需要处理 Unicode,它在 中默认使用tex4ebook,但--unicode在 中使用选项make4ht

我已经更新Github 上的 tex4ebook并将很快在 CTAN 上更新。

相关内容