![使用 CJKutf8 更改汉字显示](https://linux22.com/image/362182/%E4%BD%BF%E7%94%A8%20CJKutf8%20%E6%9B%B4%E6%94%B9%E6%B1%89%E5%AD%97%E6%98%BE%E7%A4%BA.png)
我一直在使用 CJKuftf8 将日语添加到一本主要包含拉丁字母的书中。它在大多数情况下运行良好,但我在显示特定的汉字“直”时遇到了问题。编译后,这个汉字总是与预期的不同。
左边是输入的汉字,右边是编译文档中出现的汉字
我相信所显示的汉字与简体中文对应,但日本当然无法理解。
此外,如果我在日文电脑上使用 pdf 阅读器打开文档并复制汉字,它会复制我想要的字符(左侧的字符)。如果我在非日文电脑上使用 pdf 阅读器打开文档,它会复制错误的汉字。这似乎是 utf8 重叠的问题。是否可以编辑汉字在编译文档中的显示方式?
梅威瑟:
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\Huge
\begin{CJK}{UTF8}{min}直\end{CJK}
\end{document}
由于代码中的汉字在其他计算机上的显示可能会有所不同,为了确保万无一失,这里提供了代码的图片。
更新:这似乎完全是字体问题。在 Word/Libre office 中输入汉字时,汉字会根据所选字体的不同而显示不同。特别是,当使用日文字体(例如 TakaoExMincho)时,它会按预期显示,否则会显示不正确。据我所知,使用时无法更改字体\usepackage{CJKutf8}
。有办法解决这个问题吗?
答案1
让我将其作为答案而不是评论发布,因为这对于评论来说太长了。
正如你所说,
我想如果有办法解决问题,我很乐意使用任何选项。
我将提出一种基于 XeLaTeX 的方法。fontspec
,并且它提供了\newfontfamily
,它定义了一个新的字体切换命令。这是一个简单的例子(我不确定使用的字体是否随 MiKTeX 一起提供,但两者都可以在 CTAN 上使用)。
% XeLaTeX document
\documentclass{article}
\usepackage{fontspec}
\newfontfamily{\jafamily}{ipam.ttf} % Japanese typeface, which is what you want
\newfontfamily{\cnfamily}{FandolSong-Regular.otf} % Simplified Chinese typeface
\begin{document}
{\jafamily 直} and {\cnfamily 直}
\end{document}
输出为
另一方面,如果字体系列(CJK
环境的第二个参数)设置正确,则 8 位引擎的 LaTeX 也应该能够使用日文字形。
% (pdf)LaTeX document
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{ipxm}直\end{CJK} and \begin{CJK}{UTF8}{gbsn}直\end{CJK}
\end{document}
将产生
如果此示例导致不同的外观,则日文字体似乎未安装在您的 MiKTeX 中(也许会恢复为中文字体?)。