各位大佬,现有如下代码
\documentclass{ctexart}
\usepackage{graphicx}
\setCJKmainfont{SimSun}
\setCJKfamilyfont{songvert}[RawFeature={vertical:+vert}]{SimSun}
\newcommand*\CJKmovesymbol[1]{\raise.7em\hbox{#1}}
\newcommand*\CJKmove{
\let\CJKsymbol\CJKmovesymbol
\let\CJKpunctsymbol\CJKsymbol}
\usepackage{varwidth}
\newcommand{\shupai}[1]{\rotatebox{-90}{\begin{varwidth}{\textwidth}
\CJKfamily{songvert}
\CJKmove
#1
\end{varwidth}
}}
\newcommand{\SHUPAI}[1]{\rotatebox{-90}{
\CJKfamily{songvert}
\CJKmove
#1
}}
\begin{document}
上文上文上文上文上文上文上文上文上文上文
\fbox{\shupai{文本框框\\测试}}
下文下文下文下文下文下文下文下文
\fbox{\SHUPAI{文本框框}}
测试测试测试测试测试测试测试测试测试测试测试测试
\end{document}
现在有三个问题与间距有关,(1)竖排文本与上下文的间距不一致,如何调整?
(2)见下图,标记2,3两处的文字与上下线条的间距不一致(估计是盒子的原因),如何调整?(3)见下图,标记1处如何缩小两行的间距?
(1)插入垂直间距 -1em
。(2)这是使用垂直字体导致的,不能正确计算盒子的宽度,根本原因是目前 xetex 没有垂直排版的能力,只能靠旋转来实现。要使用垂直排版,最好使用 upLaTeX、pLaTeX-ng,或 ConTeXt MKXL(LuaMetaTeX)。(3)修改 \lineskiplimit
,\lineskip
。
\documentclass{ctexart}
\usepackage{graphicx}
\setCJKmainfont{SimSun}
\setCJKfamilyfont{songvert}[RawFeature={vertical:+vert}]{SimSun}
\newcommand*\CJKmovesymbol[1]{\raise.7em\hbox{#1}}
\newcommand*\CJKmove{
\let\CJKsymbol\CJKmovesymbol
\let\CJKpunctsymbol\CJKsymbol}
\usepackage{varwidth}
\newcommand{\shupai}[1]{\rotatebox{-90}{%
\begin{varwidth}{\textwidth}
\CJKfamily{songvert}
\lineskip=-3pt
\lineskiplimit=1pt
\CJKmove
#1\end{varwidth}}}
\newcommand{\SHUPAI}[1]{\rotatebox{-90}{%
\CJKfamily{songvert}%
\CJKmove
#1}}
\begin{document}
上文上文上文上文上文上文上文上文上文上文
\vspace*{-1em}\fbox{\shupai{文本框框\\测试}}
下文下文下文下文下文下文下文下文
\vspace*{-1em}\fbox{\SHUPAI{文本框框}}
测试测试测试测试测试测试测试测试测试测试测试测试
\end{document}
感谢大佬