使用 tex4ebook 编译时图像消失

使用 tex4ebook 编译时图像消失

我正在尝试将现有书籍从普通的 PDF 输出转换为电子书格式以便在线发布(并在此过程中进行一些重新格式化,但这是另一个问题)。

我的页面中有图片\part(感谢@PeterWilson)。问题是这些图片没有出现在 tex4ebook 输出中,没有任何错误/警告。

我的书的完整(当前)标题如下:

\documentclass[10pt,ebook,italian,onecolumn,oneside,titlepage,extrafontsizes]{memoir}
\usepackage[italian]{babel}
\usepackage{graphicx}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ucs}
\usepackage{makeidx}
\usepackage{quotmark}
\newcommand{\gqt}[1]{\tqt{\scshape #1}}
\newcommand{\stars}{\begin{center} * * *\\ \end{center}}
%
\makeatletter
\def\@partimage{}
\newcommand{\partimage}[2][]{\gdef\@partimage{\includegraphics[#1]{#2}}}
\renewcommand{\printparttitle}[1]{\parttitlefont #1\vfil\@partimage\vfil\gdef\@partimage{}}
\makeatother
%
\setlength\cftpartnumwidth{2em}
%
\author{Mauro Condarelli}
\title{Cronache della Nuova Terra}
\begin{document}
%
\frontmatter
\maketitle
%
\mainmatter
\chapterstyle{companion}
%\book{Cronache della Nuova Terra}
\tableofcontents
%
\partimage[width=210pt]{old_mage.jpg}
\part{In cerca di un Mondo Nuovo}
%
%
\chapter{La Missione}
%
%scene: 'Prologo I'

La Pianta non era certo imponente, somigliava a una verza troppo cresciuta, alta quasi un metro e mezzo e larga altrettanto, grandi foglie verde pallido sormontavano un tronco corto e tozzo dal quale partiva un robusto peduncolo che portava a una grossa zucca adagiata sulla sabbia pulita.\par
...
%end scene
%
%end chapter
%

\backmatter
\appendix
%
%
\end{document}

正如所说,问题是图像(在本例中为 old-mage.jpg)消失了,没有留下任何可见的痕迹。

我正在使用简单的:tex4ebook -c tex4book.cfg Cronache_della_Nuova_Terra.tex来编译;内容tex4book.cfg如下:

\Preamble{xhtml}   
\CoverMetadata{thano.jpg}
\Configure{AddCss}{blitz-lite.css}
\DeclareGraphicsExtensions{.svg,.png,.jpg,.pdf}
\begin{document}
\EndPreamble

欢迎任何提示

答案1

tex4ht重新定义所有分段命令,以便为所有 LaTeX 类提供统一的可配置接口。因此,\printparttitle在 中不使用该命令tex4ht。相反,可以在 的配置中打印图像\part。尝试以下配置文件:

\Preamble{xhtml}
\CoverMetadata{thano.jpg}
\Configure{AddCss}{blitz-lite.css}
\makeatletter
\Configure{part}
{}{}
{\ifvmode\IgnorePar\fi\EndP\HCode{<h1 class="partHead"><span class="titlemark">}\partname \ \thepart \HCode{</span>}}
{\HCode{</h1>\Hnewline<aside class="partimage">}\@partimage\HCode{</aside>}\IgnoreIndent\par\OpfRegisterFile}
\makeatother
\Css{.partimage{margin:0 auto;text-align:center;}}
\Css{.partimage img{max-width:100\%;}}
\Css{.partHead .titlemark{display:block;}}
\DeclareGraphicsExtensions{.svg,.png,.jpg,.pdf}
\begin{document}
\EndPreamble

最重要的部分来自\Configure{part}手册:

\Configure{单位} {顶部} {底部} {标题前} {标题后}

此命令确定要插入到指定单元所提及位置的内容。

\Configure{chapter}
{\HCode{<div class="chapter">}}  {\HCode{</div>}}
{\HCode{<h2 class="chapterHead">}\chaptername
    ~\thechapter\HCode{<br />}}
{\HCode{</h2>}}

因此我们在顶部插入图像:

 \ifvmode\IgnorePar\fi\EndP\HCode{<aside class="partimage">}\@partimage\HCode{</aside>}

\ifvmode\IgnorePar\fi\EndP这对于正确获取段落是必要的,然后\HCode{<aside class="partimage">}\@partimage\HCode{</aside>}打印元素内的图像<aside class="partimage">。这使我们能够使用 CSS 样式来设置其样式,如命令中所示\Css

\OpfRegisterFile命令对于正确的页面序列是必需的。此命令由提供tex4ebook并将当前 HTML 文件注册到页面序列。否则,带有部分标题的页面将显示在文件末尾。

结果如下:

在此处输入图片描述

相关内容