我已经尝试让 Meiryo 字体与 LaTeX CJK 兼容好一阵子了,但不知出于什么原因,它总是无法工作。今天我又试了一次,确实得到了一些输出,但结果并不如我所料。
由于某种原因,处理平假名会导致 PDF 中出现我从未见过的字符。我写的一些汉字没有受到影响,但很多都被意想不到的字符所取代。
我已经成功使用了http://www-alg.ist.hokudai.ac.jp/~jan/japfonts.html允许 CJK 使用 IPA 字体,但按照 Meiryo 的相同教程操作后,却无法得到任何可用的结果。我怀疑 Unicode 字形的位置不对,或者类似情况。
我获得了在 /usr/share/texmf-texlive/fonts/tfm/meiryo 中的 meiryo.ttc 上运行 ttf2tfm 生成的 .tfm 文件,以及在 /usr/share/texmf-texlive/tex/latex/CJK fonts 中的 .td 文件。
相关.td和.map文件内容如下:
c70meiryo.td:
\DeclareFontFamily{C70}{meiryo}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{meiryo}{m}{n}{<-> CJK * meiryo}{}
\DeclareFontShape{C70}{meiryo}{bx}{n}{<-> CJKb * meiryo}{\CJKbold}
ttfonts.map(仅相关位)
ipam@UJIS@ ipam.ttf
ipam-uni@Unicode@ ipam.ttf
meiryo@Unicode@ meiryo.ttc
msjh@Unicode@ unicode msjh.ttf
另外,这是我尝试使用此字体制作的文档的一部分 - 我正在使用 flashcards 包,但我觉得这不太可能对字体问题产生太大影响。我为卡片使用了 a4 纸张大小,并且没有默认的 .cfg 文件,因此如果需要,您可以在 documentclass 中将纸张类型更改为 avery5371,或者在您的 flashcards 目录中创建一个文件 a4paper.cfg(我的是 /usr/share/texmf-texlive/tex/latex/flashcards),并输入以下内容:
\NeedsTeXFormat{LaTeX2e}[1996/12/01]
\ProvidesFile{a4paper.cfg}
\newcommand{\cardpapermode}{portrait}
\newcommand{\cardpaper}{a4paper}
\newcommand{\cardrows}{5}
\newcommand{\cardcolumns}{2}
\setlength{\cardheight}{2.126in}
\setlength{\cardwidth}{3.346in}
\setlength{\topoffset}{0.5in}
\setlength{\oddoffset}{1.0in}
\setlength{\evenoffset}{1.0in}
\endinput
如果需要,可以使用 LaTeX 文档进行任何测试(它会引发一些我尚未解决的其他错误)。目前使用 meiryo 编码。我认为 CJK 的默认值是 min:
\documentclass[a4paper,grid]{flashcards}
\usepackage{verbatim}
\usepackage{CJK}
\usepackage{ruby}
\renewcommand{\rubysize}{0.4}
\renewcommand{\rubysep}{-0.8}
\cardfrontstyle[\fontsize{90pt}{0.2cm}\slshape]{headings}
\cardbackstyle{plain}
\newcommand{\df}[3]{#1 -- #2 -- #3}
\newcommand{\rdf}[3]{\ruby{#1}{#2} -- #3}
\newcommand{\md}{\fontsize{18pt} \selectfont}
\begin{document}
\begin{CJK}{UTF8}{meiryo}
\begin{flashcard}{映}
\begin{tabular}{cc}
\begin{minipage}[b]{0.5\linewidth}\centering
\begin{tabular}{c}
\textbf{Reflect}\\
\end{tabular}
\end{minipage}
\hspace{-1cm}
&\begin{minipage}[b]{0.5\linewidth}\centering
\md
\begin{tabular}{c}
うつ--る\\
うつ--す\\
えい
\end{tabular}
\end{minipage}
\vspace*{0.1cm}
\end{table}
\fontsize{12pt} \selectfont
\begin{tabular}{l}
\rdf{映画}{えいが}{Movie}\\
\rdf{上映}{じょうえい}{Show a movie}\\
\rdf{放映}{ほうえい}{Televising}
\end{tabular}
\end{flashcard}
\end{document}
以下是我正在谈论的一些图片:
使用 meiryo 作为字体编译上述内容:
使用 ipam 作为字体:
关于问题可能是什么,以及我应该如何解决它,您有什么想法吗?
答案1
我认为您不应该考虑使用 XeTeX 或 LuaTeX 来编译您的文档吗?例如,这是您的最小示例的修改版本(由于某种原因,其中似乎有很多错误):
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Hiragino Mincho Pro}
\usepackage{ruby}
\renewcommand{\rubysize}{0.7}
\renewcommand{\rubysep}{-0.8pt}
\newcommand{\rdf}[3]{\ruby{#1}{#2} -- #3}
\begin{document}
\begin{tabular}{l}
\rdf{映画}{えいが}{Movie}\\
\rdf{上映}{じょうえい}{Show a movie}\\
\rdf{放映}{ほうえい}{Televising}
\end{tabular}
\end{document}