Rotating text by -90 degrees

You could redefine \LS@rot:

\makeatletter
\renewcommand*{\LS@rot}{%
  \setbox\@outputbox\vbox{\hbox{\rotatebox{-90}{\box\@outputbox}}}}
\makeatother

Originally, it uses 90 as argument for \rotatebox. \makeatletter and \makeatother are used because of the @ in the macro's name.

Perhaps you don't use pdfTeX, because you use lscape, not pdflscape. However, if you would use pdfTeX with lscape, you may consider setting \pdfpageattr{/Rotate 270} at the end of the landscape environment, possibly by redefining or patching \endlandscape.


\documentclass{article}
\usepackage{pdflscape}
\begin{document}

\begin{landscape}
 foo
\end{landscape}

\makeatletter
\g@addto@macro{\landscape}{\PLS@Rotate{-90}}
\makeatother

\begin{landscape}
 foo
\end{landscape}

\end{document}

Redefining landscape

I was wrong. lscape instead of pdflscape should be used here, because the text will be also rotated. And patch the command as Stefan Kottwitz do.

You can define a new environment to rotate the page by -90 degrees, without changing the definiton of landscape environment. To do this, you can use

\let\antilandscape\landscape
\let\endantilandscape\endlandscape
\def\LS@antirot{%
  \setbox\@outputbox\vbox{\hbox{\rotatebox{-90}{\box\@outputbox}}}}
\patchcmd{\antilandscape}{\LS@rot}{\LS@antirot}{}{} % require etoolbox package

Vertical typesetting example

It is quite difficult to get everything well in vertical mode. The following example shows how to get proper footnote for vertical Chinese text. There are still more things to do, you can try.

\documentclass[UTF8]{ctexart}
\usepackage{etoolbox}
\usepackage{lscape}
\makeatletter
\let\antilandscape\landscape
\let\endantilandscape\endlandscape
\def\LS@antirot{%
  \setbox\@outputbox\vbox{\hbox{\rotatebox{-90}{\box\@outputbox}}}}
\patchcmd{\antilandscape}{\LS@rot}{\LS@antirot}{}{}

\newfontlanguage{Chinese}{CHN}
\setCJKfamilyfont{songvert}[Script=CJK,Language=Chinese,Vertical=RotatedGlyphs]{SimSun}
\newcommand*\songvert{\CJKfamily{songvert}\punctstyle{plain}\CJKmove}

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

\newenvironment{CJKvert}
  {\antilandscape
   \appto{\normalfont}{\songvert}\songvert
   \let\oldfootnote\footnote
   \renewcommand\footnote[1]{\oldfootnote{\songvert##1}}%
   \renewcommand\thefootnote{[\chinese{footnote}]}%
   \def\vert@makefnmark{\hbox{\normalfont\@thefnmark\space}}%
   \let\old@makefntext\@makefntext
   \long\def\@makefntext##1{{%
     \let\@makefnmark\vert@makefnmark
     \old@makefntext{##1}}}%
  }
  {\endantilandscape}

\makeatother

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\begin{CJKvert}
\parindent=0pt
『朝发轫于苍梧兮,\\
夕余至乎县圃。\\
欲少留此灵琐兮,\\
日忽忽其将暮。\\
吾令羲和弭节兮,\\
望崦嵫而勿迫。』\footnote{屈原《离骚》}
\end{CJKvert}

\lipsum[2]

\end{document}

Tags:

Xetex

Rotating