我目前正在处理一个文件,需要在某些英文文本中间显示一些汉字。为此,我CJKuft8
根据以下说明使用该包创建了一个新环境:这个帖子
\usepackage{CJKutf8}
\newcommand{\japanese}[1]{\begin{CJK}{UTF8}{ipxm}#1\end{CJK}}
这仍然可以正常工作,但我遇到了一个小问题:我想更改显示汉字的字体(仅日文字符,而不是其余文本),但我不知道如何实现。
我发现这答案,但它建议使用 XeLaTeX,但我不熟悉。因为我想使用来源 韩码 JP,这是一种 OpenType Source 字体,我还发现了这这里有一个问题,但是有人建议使用 LuaLaTex。
经过这一切之后,我有点困惑,实现我的目标的最佳策略是什么。我应该切换到 XeLaTeX 还是 LuaLaTex?或者我甚至可以在不做太多改变的情况下实现我的目标(目前正在运行pdflatex
)?
更多信息: 如果可能的话,我想避免切换到 XeLaTeX 或 LuaLaTeX,因为文件已经很大,有很多导入的包,而且我不知道什么与什么兼容。
答案1
如果您坚持使用 pdfLaTeX,则必须将任意 OpenType/TrueType 字体转换为 Type1 字体并创建映射文件;这需要大量工作和有关“TeX 如何处理字体”的特殊知识。通常,该过程无法自动完成,对于初学者来说太难了。IPAex 字体(=您在上面的 MWE 中将其用作“ipxm”)目前是唯一由日本 TeXnician 贡献的示例,因此我强烈建议使用以下之一:
- 将“ipxm”与 pdfLaTeX 结合使用。
- 切换到 LuaLaTeX。(LuaLaTeX 在大多数情况下与 pdfLaTeX 兼容)
LuaLaTeX 可以原生处理 OpenType/TrueType 字体。下面是使用日文字体的一个简单示例。(这里我直接使用了 \font 原语,但另一种类似 LaTeX 的解决方案也是可行的)
\documentclass{article}
\usepackage{fontspec}
\font\ipaexm=IPAexMincho % PSName of an arbitrary font
\font\ipaexg=IPAexGothic
\begin{document}
Type your content here.
{\ipaexm 日本語}
{\ipaexg 日本語}
\end{document}
答案2
这是使用 的替代 MWE 。不幸的是, 3.22(使用 加载所有日语字体)与2.6h(需要 )babel
之间存在不兼容性。我提供了一种解决方法。(此外,Source Han Code JP 不支持日语 OpenType 功能,这很奇怪,但可能无害。)babel
Script=Japanese
fontspec
Script=Kana
由于您想使用 Source Han Code JP(一种 OpenType 字体),因此该文档使用 XeLaTeX 进行编译(并且似乎可以与 LuaLaTeX 一起使用,尽管截至 2018 年,它对非欧洲脚本的支持还比较初级。)
\documentclass[varwidth, preview]{standalone}
\usepackage{fontspec}
\usepackage[english]{babel}
% The Script= setting is broken for Japanese as of August 2018.
% Workaround:
\babelprovide[import=ja, script=Kana]{japanese}
\defaultfontfeatures{Scale=MatchUppercase, Ligatures=TeX}
\babelfont{rm}[
Scale = 1.0,
Ligatures={Common, TeX}]{Source Serif Pro}
\babelfont{sf}[Ligatures={Common, TeX}]{Source Sans Pro}
\babelfont{tt}{Source Code Pro}
% Font available at: https://github.com/adobe-fonts/source-han-code-jp
\babelfont[japanese]{rm}[
Ligatures = {Discretionary, TeX},
UprightFont = *-Regular ,
BoldFont = *-Bold ,
ItalicFont = *-RegularIt ,
BoldItalicFont = *-BoldIt ,
Extension = .otf ]{SourceHanCodeJP}
\begin{document}
Text in \foreignlanguage{japanese}{日本語}.
\end{document}