我无法在上一个问题下发表评论,因此(我修复了一些文件,因为我误解了一些东西,但 sffamily 中的 tt => fl 存在问题,而不是 smallcaps,而且似乎无法执行 sffamily 常规
为什么 pdflatex 有这些连字符,但它们在 tex4ebook (lualatex?) 中不起作用
\documentclass[10pt,a5paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage[left=1.5cm,right=1.5cm,top=1.5cm,bottom=1.5cm]{geometry}
\usepackage{libertine}
\newcommand{\testfont}[1]{
rmfamily\\
{\rmfamily #1\\{\scshape #1}\\\\
\textbf{#1\\{\scshape #1}}\\\\
\textit{#1\\{\scshape #1}}\\}
sffamily\\
{\sffamily #1\\{\scshape #1}\\\\
\textbf{#1\\{\scshape #1}}\\\\
\textit{#1\\{\scshape #1}}\\}
}
\begin{document}
\testfont{ff fli ffi ffr tt th qu FF FLI FFI TT TH}
\end{document}
tex4ebook 结果
pdflatex 结果
答案1
这是由于 tex4ht 中 Libertine 字体的支持文件错误造成的。每个使用的字体都需要一个特殊的文件,将 DVI 文件中的字符代码映射到 Unicode。文档中使用的字体映射需要标准 T1 字体编码,但 Libertine 字体使用了一些额外的连字符,因此某些字符映射不正确。
创建映射文件的过程相当困难,而且容易出错。我正在开发一个名为赫特根在理想情况下,它可以自动生成映射文件。它包含许多脚本和库,最有趣的一个叫做dvitohtf
。它可以解析 dvi 文件以查找缺失的映射 (htf) 文件,也可以从标准输入读取字体列表。然后它输出 TeX 文件,然后htf
在使用纯 TeX 处理时写入文件。
这是该脚本为文档中使用的所有字体创建的 TeX 文件:我的自由人.tex。我必须将其概括为要点,因为它比 Stackexchange 允许的帖子要大。
使用以下方式编译
tex mylibertine.tex
它应该写入所有必要的 HTF 文件。
结果: