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.
  • 1
    You could try the sample code at this ctex discussion thread. In general, you'd likely have better luck at the CTEX discussion site with such in-depth CJK typesetting queries. – LianTze Lim Dec 17 '11 at 7:39
  • See this thread in CTeX forum for datailed discussion. I'll provide an example here. – Leo Liu Dec 17 '11 at 8:15
  • @LeoLiu Now why didn't my search on ctex turn up that thread?! I remember it but couldn't get at it just now. -_- – LianTze Lim Dec 17 '11 at 8:40
  • @LianTzeLim: I've no idea. Anyway, it's easy for me to find it out ^_^ – Leo Liu Dec 17 '11 at 8:54
  • 1
    The link to the thread in the CTeX forum has changed, it now is bbs.ctex.org/forum.php?mod=viewthread&tid=45054 – brian-ammon Jan 23 '16 at 14:11

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:


\usepackage{graphicx} % for \rotatebox


\newcommand*\CJKmove{\punctstyle{plain}% do not modify the spacing between punctuations




enter image description here

  • i could not get this to work with xetex 3.1415926-2.4-0.9998 (TeX Live 2012/Debian). i just copied and pasted what you have above. i made a paste here: pastebin.com/0gnnWmWz – magnetar Jul 24 '12 at 11:44
  • @magnetar: Just use xelatex instead of xetex command. It's trivial. – Leo Liu Jul 24 '12 at 14:21
  • @LeoLiu: This example works nicely here on TeXShop v. 2.47 on Mac OS 10.8, but I'm sorry to see that it doesn't work with the HAN NOM fonts; only with commercial Chinese fonts that I have, such as SimSun. Is there something I can do to make HAN NOM work, or is the problem irremediable at this point? – brannerchinese Oct 15 '12 at 22:40
  • @brannerchinese: I've no good idea. – Leo Liu Oct 16 '12 at 4:49
  • 2
    @LeoLiu: In my case, it was necessary to add RawFeature={vertical;+vert}, that is, \setCJKfamilyfont{songvert}[RawFeature={vertical;+vert},Script=CJK,Language=Chinese,Vertical=RotatedGlyphs]{SimSun} in order to obtain correct vertical text in the minipage, by using the latest fontspec: fontspec.sty 2017/07/23 v2.6c. Was the fontspec changed? – Akira Kakuto Aug 2 '17 at 6:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.