[Tex/LaTex] Vertical Chinese text with XeTeX

cjkxetex

How can I place vertical Chinese text for some of the text in a document?

  • I think the CJK package can do this, but with XeTeX one generally uses xeCJK.
  • I could not find these options in the documentation for the xeCJK or ctex packages.

Best Answer

I know only some discussion for Chinese. There are some discussions and tools for vertical Japanese, but I know little about it.

I'm sorry that vertical typesetting options are still not available in xeCJK. It is indeed in the TODO list, but not urgent at all.

For vertical typesetting, some techniques are needed:

  • Rotate the glyphs. It can be obtained by setting the font with special options.
  • Rotate the whole paragraph or whole page. Use \rotatebox from graphics bundle, or use special commands of XeTeX like pdflscape package do.
  • Use correct vertical punctuations. It is a special OpenType font feature.
  • Offset the glyphs a little. Like CJKvert package do. We can hack xeCJK to do this.
  • Some extra tools like gezhu package. (not shown in the example below)

A full example:

\documentclass{article}

\usepackage{graphicx} % for \rotatebox

\usepackage{xeCJK}
\newfontlanguage{Chinese}{CHN}
\setCJKmainfont{SimSun}
\setCJKfamilyfont{songvert}[Script=CJK,Language=Chinese,Vertical=RotatedGlyphs]{SimSun}

\newcommand*\CJKmovesymbol[1]{\raise.35em\hbox{#1}}
\newcommand*\CJKmove{\punctstyle{plain}% do not modify the spacing between punctuations
  \let\CJKsymbol\CJKmovesymbol
  \let\CJKpunctsymbol\CJKsymbol}

\begin{document}

屈原《离骚》曰:
\begin{center}
\rotatebox{-90}{\fbox{\begin{minipage}{10em}
\CJKfamily{songvert}\CJKmove
『朝发轫于苍梧兮,\\
夕余至乎县圃。\\
欲少留此灵琐兮,\\
日忽忽其将暮。\\
吾令羲和弭节兮,\\
望崦嵫而勿迫。』
\end{minipage}}}
\end{center}
这里羲和便等于一名马车夫,因为
他是御日的,诗人生怕太阳赶快落了,就叫羲和慢一点走。不过话经我
一翻译,显得淘气一点,原文只是一个高贵的身分,另外不表现着什么
个性了。

\end{document}

enter image description here