TeX - LaTeX Asked by 805801 on December 23, 2020
Can anyone describe how one can type Chinese in LaTeX? When I compile this:
documentclass{article}
begin{document}
你好吗?
end{document}
the resulting document shows nothing. For reference my IME is iBus 1.3.9 on Fedora 13.
I use Chinese under XeLaTeX and the XeCJK
package, which allow the use of CJK together with your own fonts. It's extremely convenient.
First, take a look at the explanation at Chou Pai-hsiang's website. This should get you started.
There are other important comments here on tex.SE about the use of fontspec
and getting the full Chinese character set from two or more fonts, but you can worry about those matters later.
Answered by brannerchinese on December 23, 2020
The easiest way is (for Simplified Chinese document only):
% UTF-8 encoding
% Compile with latex+dvipdfmx, pdflatex, xelatex or lualatex
% XeLaTeX is recommanded
documentclass[UTF8]{ctexart}
begin{document}
文章内容。
end{document}
or
documentclass{article}
usepackage[UTF8]{ctex}
...
It is designed for Chinese typesetting. Font sizes, indentation, name translation, line spacing, ... everything is set.
For the latest version of ctex
bundle (v2.x), XeLaTeX is well tested and supports Windows/Mac/Linux. The proper fonts preinstalled in the OS should be selected automatically.
If you just want to typeset only a few Chinese characters, you can use CJK
with pdfLaTeX or xeCJK
with XeLaTeX.
% Compile with xelatex
% UTF-8 encoding
documentclass{article}
usepackage{xeCJK}
setCJKmainfont{SimSun}
begin{document}
文章内容
end{document}
or
% UTF-8 encoding, pdflatex or latex+dvipdfmx
% Simplified Chinese fonts should be installed
documentclass{article}
usepackage{CJKutf8}
AtBeginDvi{input{zhwinfonts}}
begin{document}
begin{CJK*}{UTF8}{zhsong}
文章内容。
clearpageend{CJK*}
end{document}
or
% UTF-8 encoding
% bad-looking fonts (CJKfonts package)
% latex+dvips, latex+dvipdfm(x) or pdflatex
documentclass{article}
usepackage{CJKutf8}
begin{document}
begin{CJK*}{UTF8}{gbsn}
文章内容。
clearpageend{CJK*}
end{document}
Answered by Leo Liu on December 23, 2020
I recently ran into this on Fedora 16. You're seeing nothing due to not selecting the correct Chinese font, which is different on Windows, Mac and Linux.
The trick to finding the right font for a language on Linux is:
$ fc-list :lang=zh
the default Chinese font on Fedora 16 is:
WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑:style=Regular
and on your Fedora 13 system it's likely to be:
AR PL UMing TW:style=Light AR PL UMing CN:style=Light
(I'm from Taiwan so I use the Traditional Chinese variant ending in TW. You want "AR PL UMing CN" for simplified Chinese.) To install Chinese fonts etc on Fedora, run:
yum groupinstall 'Chinese Support'
Change your LaTeX source to:
documentclass{article}
setromanfont{AR PL UMing CN}
begin{document}
你好吗?
end{document}
and you should start seeing Chinese.
The above snippet was to help you diagnose the Chinese font problem. For real work I second the recommendation for the xeCJK package. My personal setup is documented here.
The inability to typeset the same Chinese, Japanese etc LaTeX source across Windows, Mac and Linux due to them having different fonts is a real pain but is not specific to XeTex. It's painful when using latex + dvipdfmx
or pdflatex
as well.
Answered by scottt on December 23, 2020
For ConTeXt users, this is simple.
First, use mainlanguage[cn]
and setscript[hanzi]
in the preamble to set the default language to Chinese. If you want only certain parts of the document to use Chinese, you can use language[cn]{你好}
within the document. If you want to place a little bit of English in the document, use language[en]{hello}
to ensure that the hyphenations appear correctly.
Next, the default fonts usually do not have Chinese characters, so you will need to create a typescript with Chinese fonts, then use setupbodyfont
to select that font. For details, see Getting started with Chinese in ConTeXt.
Answered by Village on December 23, 2020
Just a note for my specific use case: I wanted to use a few Chinese characters in my .bib file (using biber) as Unicode; to compile them like that, I could successfully use package {ctex}
- unfortunately, it breaks some of my formatting in the document class I otherwise use. It turns out, the package {CJKutf8}
doesn't break for me - but unlike {ctex}
, it cannot read unicode chars directly - we have to wrap them in an environment, which is inconvenient to me for a .bib file.
So, since I have only few, I decided to declare unicode characters manually, to use {CJKutf8}
to "render" the glyph. Say I want to render only "文章" from the examples above - so first I look up the unicode sequence for them , using my utfinfo.pl:
$ echo 文章 | perl utfinfo.pl
Got 2 uchars
Char: '文' u: 25991 [0x6587] b: 230,150,135 [0xE6,0x96,0x87] n: CJK UNIFIED IDEOGRAPH 6587 [CJK Unified Ideographs]
Char: '章' u: 31456 [0x7AE0] b: 231,171,160 [0xE7,0xAB,0xA0] n: CJK UNIFIED IDEOGRAPH 7AE0 [CJK Unified Ideographs]
knowing that, a working MWE (and compilable with pdflatex test.tex
) could be constructed using the guidelines in [Cjk mailing list] Problem with CJKchar:
documentclass{article}
usepackage{CJKutf8}
% NOTE: this may require the font simsun.ttc in the same directory as this .tex file!
% [http://lists.ffii.org/pipermail/cjk/2007-November/002045.html [Cjk] Problem with CJKchar]
newcommand{Chi}[2]{%
csname CJK*endcsname{UTF8}{zhsong}%
CJKchar{#1}{#2}%
csname endCJK*endcsname
}
% 文: 0x6587
% DeclareUnicodeCharacter{6587}{begin{CJK*}{UTF8}{zhsong}文end{CJK*}} % nope
% DeclareUnicodeCharacter{6587}{CJKfamily{zhsong}文} % % nope
% DeclareUnicodeCharacter{6587}{CJKchar[UTF8]{"65}{"87}} % nope
% DeclareUnicodeCharacter{6587}{Unicode{"65}{"87}} % % cant use
DeclareUnicodeCharacter{6587}{Chi{"65}{"87}} % YES!
% 章: 0x7AE0
DeclareUnicodeCharacter{7AE0}{Chi{"7A}{"E0}} %
AtBeginDvi{input{zhwinfonts}} % MUST have! for usepackage{CJKutf8}
begin{document}
% macro test:
Chi{"65}{"87}Chi{"7A}{"E0} % ok
% direct unicode chars:
文章 % ok
end{document}
EDIT: also note in the actual doc with bibliography, I had to have at least one Chi{...
in the main body of document, else the bibliography part crashed; putting it in phantom
doesn't work, and I don't like inserting spurious characters in my doc. It turns out, instead of a Chi
, one can "start up" the CJKutf8 environment "manually", like so:
makeatletter
letCJK@ignorespacesrelax % else the below breaks..
CJK@envStart{}{UTF8}{zhsong}
makeatother
printbibliography
Answered by sdaau on December 23, 2020
For Linux users:
sudo apt install texlive-full
Change editor's compiler to XeLatex.
Allow me to give you a very simple template:
documentclass[a4paper,10pt]{article}
usepackage{ctex} % 这里调用 ctex 包
%opening
title{TITLE}
author{MY NAME}
begin{document}
maketitle
paragraph{现在应该可以看到中文了}
end{document}
Answered by Carlos on December 23, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP