使用 CJK 时中文字符不显示

使用 CJK 时中文字符不显示

以下最小示例未显示中文中的所有五个字符。我该如何修复?

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{UTF8}{bsmi}你有问题吗?\end{CJK*}      
\end{document}

的输出file -itext/x-tex; charset=utf-8我来说看起来很合理。我的文件是通过 pdftex 编译的:

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(./sample.tex
LaTeX2e <2020-02-02> patch level 2
L3 programming layer <2020-02-14>
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty)
(/usr/share/texmf/tex/latex/CJK/CJK.sty
(/usr/share/texmf/tex/latex/CJK/mule/MULEenc.sty)
(/usr/share/texmf/tex/latex/CJK/CJK.enc))
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def)
(./sample.aux) (/usr/share/texmf/tex/latex/CJK/UTF8/UTF8.bdg)
(/usr/share/texmf/tex/latex/CJK/UTF8/UTF8.enc)
(/usr/share/texmf/tex/latex/CJK/UTF8/UTF8.chr)
(/usr/share/texmf/tex/latex/CJK/UTF8/c70bsmi.fd)
(/usr/share/texmf/tex/latex/CJK/UTF8/c70bsmi.fdx) [1{/var/lib/texmf/fonts/map/p
dftex/updmap/pdftex.map}] (./sample.aux) )
(see the transcript file for additional information)</usr/share/texmf/fonts/typ
e1/arphic/bsmiu/bsmiu4f.pfb></usr/share/texmf/fonts/type1/arphic/bsmiu/bsmiu67.
pfb></usr/share/texmf/fonts/type1/arphic/bsmiu/bsmiuff.pfb></usr/share/texlive/
texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on sample.pdf (1 page, 14847 bytes).
Transcript written on sample.log.

我正在寻找在 Latex 文件中显示中文文本的任何方法。

答案1

如果您可以自由使用 LuaLaTeX 或 XeLaTeX,则可以使用系统上可能安装的任何 OpenType。例如,Noto Serif/Sans CJK TC(繁体中文)或 SC(简体中文)字体,它们提供了高于平均水平的字形,并且可以免费下载。无需再切换进出CJKCJK*环境。

在此处输入图片描述

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Noto Serif CJK TC}
\setsansfont{Noto Sans CJK TC}

\begin{document}
Hello. 你有问题吗?

\sffamily
Hello. 你有问题吗?
\end{document}

答案2

bsmi将(用于繁体中文字符)更改为类似gbsngkai(用于简体中文字符)应该可以解决您的问题。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{UTF8}{gbsn}你有问题吗?\end{CJK*}

\begin{CJK*}{UTF8}{gkai}你有问题吗?\end{CJK*}

\begin{CJK*}{UTF8}{bsmi}你有問題嗎?\end{CJK*}
    
\begin{CJK*}{UTF8}{bkai}你有問題嗎?\end{CJK*} 
\end{document}

在此处输入图片描述

答案3

据我所知,现在大多数中文 TeX 文档都使用ctex。该babel软件包足以在文档中包含简短的中文短语,并且还能够在同一文档中显示繁体中文、简体中文和日文汉字。此 MWE 与 LuaLaTeX 配合使用,允许您使用不同的英文和中文字体。

\documentclass{article}
\usepackage{fontspec}
\usepackage[UTF8,fontset=none]{ctex}

\defaultfontfeatures{ Scale=MatchUppercase, Ligatures=TeX }
\setCJKmainfont{Noto Serif CJK sc}[Renderer=HarfBuzz]
\setCJKsansfont{Noto Sans CJK sc}[Renderer=HarfBuzz]

\begin{document}
Serif: 你有问题吗?

\textsf{Sans Serif: 你有问题吗?}
\end{document}

拉丁现代/Noto CJK sc 示例

相关内容