我在这里尝试了第二和第三种解决方案错误使用 fourierenc 与 koma 脚本类 nobreakspace 在编码中不可用@egreg 提供,允许TeX Gyre Schola
作为文本字体。最后两个仅在使用 tex4ht 时出现错误。
-- error --- Can't find/open file `TeXGyreSchola:mode=base;script=latn;language=DFLT;.tfm'
我的问题是:可以TeX Gyre Schola
与 tex4ht 一起用作正文吗?
这是 MWE 和用于编译它的命令。它在 lualatex 中编译成功,但在 lua 模式下使用 tex4ht 编译失败。
\documentclass[chapterprefix=false]{scrbook}
\IfFileExists{luatex85.sty}{\usepackage{luatex85}}{}
%commenting this block makes no difference, but was told to use this
%with tex4ht always, in luamode
\ifdefined\HCode
\usepackage[utf8]{luainputenc}
\fi
%see https://tex.stackexchange.com/questions/329855/error-using-fourierenc-with-koma-script-class-nobreakspace-unavailable-in-encod
\usepackage{unicode-math}
\setmainfont{TeX Gyre Schola}[Scale=0.95]
\setmathfont{TeX Gyre Schola Math}[Scale=0.95]
\begin{document}
\chapter{test}
test Münchener-Straße $a+b=\sum_{i=1}^n x_i\sin y$
\end{document}
现在 make4ht --lua -u foo.tex
给出
.....
This is LuaTeX, Version 0.95.0 (TeX Live 2016)
......
tex4ht.c (2012-07-25-19:36 kpathsea)
tex4ht -cmozhtf
-utf8
foo
(/usr/local/texlive/2016/texmf-dist/tex4ht/base/unix/tex4ht.env)
(/usr/local/texlive/2016/texmf-dist/tex4ht/ht-fonts/mozilla/charset/unicode.4hf)
sh: 1: .tfm: not found
.....
----------------------------------------------------
--- error --- Can't find/open file `TeXGyreSchola:mode=base;script=latn;language=DFLT;.tfm'
Make4ht: Fatal error. Command tex4ht returned exit code 256
与链接答案中给出的第二种解决方案类似:
\documentclass[chapterprefix=false]{scrbook}
\IfFileExists{luatex85.sty}{\usepackage{luatex85}}{}
%commenting this block makes no difference
\ifdefined\HCode
\usepackage[utf8]{luainputenc}
\fi
%see https://tex.stackexchange.com/questions/329855/error-using-fourierenc-with-koma-script-class-nobreakspace-unavailable-in-encod
\usepackage{fouriernc} % for math
\usepackage[no-math]{fontspec}
\setmainfont{TeX Gyre Schola}[Scale=0.95]
\begin{document}
\chapter{test}
test Münchener-Straße $a+b=\sum_{i=1}^n x_i\sin y$
\end{document}
make4ht --lua -u foo.tex
给出
ex4ht.c (2012-07-25-19:36 kpathsea)
tex4ht -cmozhtf
-utf8
foo1
(/usr/local/texlive/2016/texmf-dist/tex4ht/base/unix/tex4ht.env)
(/usr/local/texlive/2016/texmf-dist/tex4ht/ht-fonts/mozilla/charset/unicode.4hf)
(/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/fourier/fourier-mex.tfm)
--- warning --- Couldn't find font `fourier-mex.htf' (char codes: 33--232)
因此,现在我使用下面这个解决方案,在使用 tex4ht 编译时,它不用于Tex Gyre
tex,现在在lualatex
和tex4ht
\documentclass[chapterprefix=false]{scrbook}
\IfFileExists{luatex85.sty}{\usepackage{luatex85}}{}
\usepackage{fouriernc}
\ifdefined\HCode
\usepackage[utf8]{luainputenc}
\else
\usepackage[no-math]{fontspec}
\setmainfont{TeX Gyre Schola}[Scale=0.95]
\fi
\begin{document}
\chapter{test}
test Münchener-Straße $a+b=\sum_{i=1}^n x_i\sin y$
\end{document}
答案1
michal.h21 对您之前两个问题的回答更改为 \usepackage{fontspec} 后,make4ht 不会在 lualatex 模式下编译我的 Latex 文件和tex4ht 使用 mcode 包时会对一些 Matlab 代码进行打乱明确指出了问题:从 DVI 转换为 HTML 时,TeX4ht 无法处理 opentype 字体。
转换器 [原文如此] 从 DVI 到 HTML 不支持 OpenType 字体,该字体在加载 Fontspec 包时会自动选择。这是众所周知的 tex4ht 错误,也是最难修复的错误(这里)。
正如本文所述,这意味着您不能使用fontspec
或,因此unicode-math
。相反,您需要坚持使用传统的 TeX 字体和传统编码。
要做到这一点,你需要告诉 LuaTeX 如何管理它们。这就是
\usepackage{luainputenc}
做。
所有这些都不是说你不能使用 TeX Gyre Schola。但你不能使用 opentype 版本。由于它也支持作为传统 TeX 字体与 TFM 文件一起支持 PFB 文件,因此你可以在创建 DVI 时加载它。我不知道这是否会转化为 HTML 中有意义的东西。
luainputenc
允许您使用这些字体。例如,
\usepackage[T1]{fontenc}
\usepackage{tgschola}
或其他。tgschola
加载具有传统 TeX 支持的 TeX Gyre Schola。也就是说,它使用相关的 TFM 文件来创建 DVI。这些设计用于支持字体的 type1 PFB postscript 版本。
但是,正如我所说,我不知道这是否会对 HTML 文档的显示产生影响。这取决于从 DVI 到 HTML 的转换中对字体的处理。据我所知,加载tgschola
对生成的 HTML 字体配置没有影响。但是,我对 HTML 了解不多,所以我可能弄错了。