如何在 TeX4ebook 中包含图形和其他文件

如何在 TeX4ebook 中包含图形和其他文件

我的电子书有几个插图,我还想嵌入字体文件。我以一种临时的方式处理了这些插图:第一次编译后,我转到 book-epub 文件夹并将文件放入 figs 文件夹(其中已经包含封面)。当我重建电子书时,它们被包含在内。这有效,但文件未包含在清单中,因此 epub 格式不正确。如果我使用电子书编辑器(我认为是 Sigil,但可能是 Calibre),它在重新保存时不会保留 figs 文件。

编辑1:我正在使用\Picture,例如:

\Picture{figs/toc.svg align=center height=600}

答案1

您不应直接在文档中使用tex4ht命令\Picture,这些命令应在配置文件中使用。问题是,这样您就无法再使用普通 LaTeX 来处理文档以生成pdf

针对您的情况,我将使用以下模式:

如果您有 svg 格式的图形,请将它们也转换为 pdf,这样您就可以将它们用于 pdf 制作。在您的 TeX 文件中,使用以下命令包含这些文件:

\includegraphics[width=600pt]{figs/toc}

因此忽略文件扩展名,根据所使用的编译工具将包含正确的文件。

关于字体,我将使用我的较早的答案。这是完整的.cfg文件:

\Preamble{xhtml}
\makeatletter
% Various helper functions
% default font size
\newcommand\emwidth{16}
\let\emwidth\f@size
% convert pt to rem
\newcommand\CalcRem[1]{\strip@pt\dimexpr(#1)/\emwidth}
  \Configure{graphics*}  
         {svg}  
          {\Picture[pict]{\csname Gin@base\endcsname.svg
          \space style="width:\CalcRem{\Gin@req@width}em;"
          }%  
          \special{t4ht+@File: \csname Gin@base\endcsname.svg}
         }  
\DeclareGraphicsExtensions{.svg,.png,.jpg}
\begin{document}
\newcommand\AddFontFace[4]{%
\Css{@font-face {
    font-family: #1;
    src: local("#2"),
        url('#3');
    #4
 }}
\special{t4ht+@File: #3}
}
\edef\CurrentFontFamily{rmfamily}
\newcommand\SetFontFamily[1]{
\edef\CurrentFontFamily{#1}
}
\newcommand\NormalFont[2]{\AddFontFace{\CurrentFontFamily}{#1}{#2}{font-weight: normal;font-style: normal;}}

\newcommand\BoldFont[2]{\AddFontFace{\CurrentFontFamily}{#1}{#2}{font-weight: bold;font-style: normal;}}
\newcommand\ItalicFont[2]{\AddFontFace{\CurrentFontFamily}{#1}{#2}{font-weight: normal;font-style: italic;}}
\newcommand\BoldItalicFont[2]{\AddFontFace{\CurrentFontFamily}{#1}{#2}{font-weight: bold;font-style: italic;}}

\NormalFont{STIXDefault}{STIXGeneral-Regular.woff}
\BoldFont{STIXDefault}{STIXGeneral-Bold.woff}
\ItalicFont{STIXDefault}{STIXGeneral-Italic.woff}
\BoldItalicFont{STIXDefault}{STIXGeneral-BoldItalic.woff}
\Css{body{font-family:rmfamily, "STIXDefault", sans-serif;}}
\EndPreamble

重要的配置如下:

  \Configure{graphics*}  
         {svg}  
          {\Picture[pict]{\csname Gin@base\endcsname.svg
          \space style="width:\CalcRem{\Gin@req@width}em;"
          }%  
          \special{t4ht+@File: \csname Gin@base\endcsname.svg}
         }  

这将配置 svg 包含,\CalcRem命令计算给定尺寸的相对大小,最好使用相对单位,例如em,而不是固定大小,例如ptpx\special{t4ht+@File:命令寄存器文件作为tex4ht输出,因此我们可以将其包含在opf manifest

现在字体的基本命令是:

\newcommand\AddFontFace[4]{%
\Css{@font-face {
    font-family: #1;
    src: local("#2"),
        url('#3');
    #4
 }}
\special{t4ht+@File: #3}
}

它注册字体文件以供包含并声明必要的 CSS 属性。

相关内容