为什么我不能在 MiKTeX 中使用中文

为什么我不能在 MiKTeX 中使用中文

这是我的一个LaTeX文件的源代码,我使用了编辑器WinEdt,和MiKTeX中的软件包CJK,但是显示效果不好,不能显示汉字。

\documentclass[12pt]{article}
\usepackage{CJK}
\title{Test}
\author{zhulongsheng([email protected])}
\date{2014/01/28}
\begin{document}
\maketitle
\begin{CJK*}{GBK}{song}
\today
\section{第一}
这是第一段
\CJKfamily{hei}
\section{第二}
这是第二段
\subsection{Goal}
这是
\LaTeX
\end{CJK*}
\end{document}

答案1

此软件包已过时,不推荐使用。以下是使用此软件包和引擎的CJKUnicode 解决方案。xeCJKXeTeX

\documentclass[12pt]{article}
\usepackage{xeCJK}
% I supposed that you do have these fonts mentioned below.
\setCJKmainfont[BoldFont={SimHei},ItalicFont={[SIMKAI.TTF]}]
  {SimSun}
\setCJKsansfont{SimHei}
\setCJKmonofont{[SIMFANG.TTF]}
\setCJKfamilyfont{zhsong}{SimSun}
\setCJKfamilyfont{zhhei}{SimHei}
\setCJKfamilyfont{zhkai}{[SIMKAI.TTF]}
\setCJKfamilyfont{zhfs}{[SIMFANG.TTF]}
\newcommand*{\songti}{\CJKfamily{zhsong}} % 宋体
\newcommand*{\heiti}{\CJKfamily{zhhei}}   % 黑体
\newcommand*{\kaishu}{\CJKfamily{zhkai}}  % 楷书
\newcommand*{\fangsong}{\CJKfamily{zhfs}} % 仿宋
\title{Test}
\author{zhulongsheng([email protected])}
\date{2014/01/28}
\begin{document}
\maketitle
\today
\section{第一}
这是第一段
\heiti
\section{第二}
这是第二段
\subsection{Goal}
这是
\LaTeX
\end{document}

将其保存为编码UTF8并用 进行编译XeLaTeX

此外,如果您的操作系统是 Windows(简体中文),您会很高兴了解该ctexart课程,因为它为您提供了一种生成包含中文字符的 LaTeX 文档的简单方法。

一个简单的例子(UTF8并且XeLaTeX,还有):

\documentclass[UTF8, cs4size]{ctexart}
\title{Test}
\author{zhulongsheng([email protected])}
\date{2014/01/28}
\begin{document}
\maketitle
\today
\section{第一}
这是第一段
\heiti
\section{第二}
这是第二段
\subsection{Goal}
这是
\LaTeX
\end{document}

答案2

fontspec无需包的Unicode解决方案CJK

\documentclass[12pt]{article}

\usepackage{fontspec}
\setmainfont{STFangsong} % Mac OS X system font
\setsansfont{STHeiti}    % Mac OS X system font
\newfontfamily\song{STFangsong}
\newfontfamily\hei{STHeiti}

\title{Test}
\author{zhulongsheng([email protected])}
\date{2014/01/28}
\begin{document}
\maketitle
\today

\song

\section{第一}
这是第一段

\hei%\sffamily%\CJKfamily{hei}

\section{第二}
这是第二段
\subsection{Goal}
这是
\LaTeX
\end{document}

答案3

为何会失败呢?

MiKTeX(和 TeX Live)没有为CJK软件包中的这些字体设置适当的字体映射。对于如此不同的平台,维护这样的字体映射是不可移植且困难的。

在一些本地 TeX 发行版中(例如CTeX系列),为中文版 Windows 平台设置了额外的字体映射。如果您安装了这些 TeX 发行版,您的代码将可以正常工作。

快速(且肮脏)的修复

% Put it in the preamble
\AtBeginDvi{\input{zhwinfonts}}

更好的解决方案

  • 首选 XeLaTeX。pdfLaTeX 或 dvipdfmx 也可以。(LuaLaTeX 尚未完全支持。)

  • 优先使用 UTF-8 编码(尤其是对于 XeLaTeX)。

  • ctex最好使用包(ctexart、、ctexrep类)。ctexbook

如何在 LaTeX 中输入中文?我的建议。

相关内容