我目前已确认

我目前已确认

我无法将等宽字体设置为来源 韩码 JP字体使用\setmonofont。我尝试了以下代码,就像我通常使用fontspec包时一样。

% file name: example01.tex
\documentclass{article}
\usepackage{fontspec}
\setmonofont[
    UprightFont = Source Han Code JP L,
    BoldFont = Source Han Code JP N
]{Source Han Code JP}
\begin{document}
\texttt{This is Source Han Code JP L.}\par
\texttt{\textbf{This is Source Han Code JP N.}}
\end{document}

运行lualatex example01.tex抛出错误:

!LuaTeX error (file /Users/〈UserName〉/Library/Fonts/SourceHanCodeJP.ttc): sfnt:
 table not found...
 ==> Fatal error occurred, no output PDF file produced!

我还尝试通过其 PostScript 名称或文件名分配字体(使用Path=Extension=选项,如),结果失败了。后者给出了! fontspec error: "font-not-found"

我应该如何修改代码才能将 Source Han Code JP 与 LuaLaTeX 一起使用?Source Han Code JP 包含非拉丁字符(或更具体地说是 CJK 字符)与此问题有关吗?

笔记:我正在使用 MacTeX-2015 和 OS X Yosemite 10.10.3。


我目前已确认

使用 TrueType Collection 字体

编辑:我发现这部分毫无意义,因为 Source Han Code JP 是一种 OpenType Collection 字体,不是TrueType Collection 字体,尽管其扩展.ttc名为 OpenType 集合 (OTC) 的介绍与构建如果您不熟悉 OTC。事实上,采用这种格式的字体似乎很少。

我首先想到的是导致此错误的原因在于使用文件安装的字体。这是因为我听说我们无法以常规方式在 El Capitan 上将.ttcHiragino 字体(日文字体之一,由 安装)嵌入到 PDF 中。然后我使用以下代码进行了测试:.ttcOptima.ttcPalatino.ttc

% file name: example02.tex
\documentclass{article}
\usepackage{fontspec}
\setmainfont[
    UprightFont = Palatino-Roman, % assigned by PostScript name
    BoldFont = Palatino Bold
]{Palatino}
\setsansfont[
    UprightFont = Optima Regular,
    BoldFont = Optima Bold
]{Optima}
\begin{document}
    This is Palatino.\par
    \textsf{This is Optima Regular.}
\end{document}

不过,lualatex example02.tex效果相当好。

Optima 和 Palatino

使用 OpenType 格式字体(在 Windows 7 上)

我想知道LuaLaTeX 是否提供sourcehancodejp-***.otf(每个权重),并尝试在安装了源 Han Code JP 的 Windows 上使用文件进行编译。它运行正常,但出现了以下警告,我认为在这种情况下这些警告可以忽略不计。***example01.tex.otf

LuaTeX warning (file c:/Windows/fonts/sourcehancodejp-normal.otf): Charset data possibly broken (num_glyphs too high)
LuaTeX warning (file c:/Windows/fonts/sourcehancodejp-light.otf): Charset data possibly broken (num_glyphs too high)

LuaLaTeX 的黑名单

在发布此问题之前,我搜索了几次解决方案并找到了以下线索:

于是我查看了一下/usr/local/texlive/2015/texmf-dist/tex/luatex/luaotfload/luaotfload-blacklist.cnf。内容如下,SourceHanCodeJP.ttc那里没有写。

spltfgbd.ttf
spltfgbi.ttf
spltfgit.ttf
spltfgrg.ttf

特克斯

与 LuaLaTeX 不同,example01.tex它可以与 XeLaTeX 编译。它可以毫无错误地生成所需的 PDF。

西拉特克斯

日文字体名称

当我们使用日语 Mac 时,Source Han Code JP 的字体名称变为源ノ角ゴシック Code JP(参见我的评论关于名字)。

英文名称

jp 名称

我尝试使用这个日语名字。

% file name: example03.tex
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmonofont[
    UprightFont = 源ノ角ゴシック Code JP L,
    BoldFont = 源ノ角ゴシック Code JP N
]{Source Han Code JP}
\begin{document}
\texttt{This is Source Han Code JP L (in Japanese, 源ノ角ゴシック Code JP L).}\par
\texttt{\textbf{This is Source Han Code JP N (in Japanese, 源ノ角ゴシック Code JP N).}}
\end{document}

此代码也可与 XeLaTeX 编译,但不能与 LuaLaTeX 编译。以下是 的输出xelatex example03.tex

日本人


近期动态

El Capitan 发布后,一些日本 TeX 开发人员正在努力使 OTC 字体可用于 LuaTeX,并且似乎取得了成功。

以下是我今天所做的事情:

  1. luaotfload从获得这里
  2. 将必要的文件放入/usr/local/texlive/texmf-local/tex/luatex/luaotfload/usr/local/texlive/texmf-local/scripts/luaotfload
  3. 跑步mktexlsr
  4. 建造修补 LuaTeX, 和
  5. 用生成的替换常规的luatex和(也可以通过添加后缀来备份原始的)。luajittex/usr/local/texlive/2015/bin/x86_64-darwin/-bak

然后,我尝试编译以下文件,但仍然出现相同的错误lualatex example01.tex

\documentclass{ltjsarticle}
\usepackage{fontspec}
\usepackage{luatexja-fontspec}
\setmonofont{Source Han Code JP}
\begin{document}
\ttfamily test
\end{document}

我的程序有问题吗?请注意,我还没有将我的 Mac 更新到 El Capitan。

答案1

自 2015 年 4 月起,xdvipdfmx 才可以将 OpenType Collection 字体正确嵌入 PDF。 https://www.tug.org/pipermail/tex-live/2015-April/036628.html 然而,这一改进尚未应用于LuaTeX,即使在最新的TeX Live 2015中也是如此。

现在苹果发布了新的 OS X 10.11 El Capitan,日文字体(例如 Hiragino)被合并到 OpenType Collection(OTC)格式中(虽然扩展名是 .ttc,有点让人困惑)。由于这一变化,日本许多 LaTeX 用户现在在排版日文文档时遇到麻烦,因此对处理 OTC 字体的需求很高。为了解决这个问题,LuaTeX-ja(LuaTeX 上的日文排版系统)的开发者 Hironori KITAGAWA 正在研究这个问题。当该补丁被 LuaTeX 开发人员接受后,LuaTeX 将能够像 xdvipdfmx 一样将 OpenType Collection 字体嵌入到 PDF 中。

更新:LuaTeX beta-0.81.0 现已发布!此版本的 LuaTeX 可以处理 OpenType Collection 字体。请参阅r5330了解详情。但是,最新的 LuaTeX 和 luaotfload 之间似乎存在某种不一致。

LuaLaTeX 源代码示例:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{SourceHanCodeJP-Regular}
\begin{document}
これは源ノ角ゴシックCode JP Rです。
\end{document}

答案2

lualatex从最新的 TL 2015 开始我没有遇到任何问题(我使用“...”来表示一些 SX 编辑器不允许的日语字符。)

\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmonofont[
    BoldFont = Source Han Code JP B,
    Scale=0.9
]{Source Han Code JP L}
\setmainfont{Source Han Sans Regular}
\begin{document}
This is Source Han Sans (のインストールが...)

\ttfamily
This is Source Han Code JP L (のインストールが...)

\bfseries
This is Source Han Code JP L (のインストールが...)
\end{document}

在此处输入图片描述

相关内容