中文标点符号问题

中文标点符号问题

我正在尝试将中文标点符号移到字符的开头。我使用以下宏,效果很好。但如果我重新定义\CJKpunctsymbol,就会很乱。有人能帮我吗?

工作良好的代码-直接应用于标点符号:

\hskip -0.9em \vbox to 0.1em {\vskip -1em{\hbox to 0.9em {。}}}

重新定义\CJKpunctsymbol-\hbox将会很长并且无法调整大小。

\def\vCJKpunctsymbol#1{\hskip -0.9em \vbox to 0.1em {\vskip -1em {\hbox to 0.9em {\CJKsymbol{#1}}}}}
\let\CJKpunctsymbol\vCJKpunctsymbol

下面两张图片是例子,我用\fbox它来说明。

在此处输入图片描述 在此处输入图片描述

答案1

对于旧式标点符号(句读),我认为可以这样定义:

\catcode`。\active
\def。{\makebox[0pt][l]{\hskip-.25em\raisebox{1ex}{\string。}}}

不应xeCJK使用任何标点符号功能,因为当前版本xeCJK不能正确支持垂直排版。

一个例子:

\documentclass{article}
\usepackage{xeCJK}

\setCJKmainfont[RawFeature={script=hani:language=CHN:vertical:+valt}]{SimSun}

\catcode`。\active
\def。{\makebox[0pt][l]{\hskip-.25em\raisebox{1ex}{\string。}}}
\catcode`、\active
\def、{\makebox[0pt][l]{\hskip-.25em\raisebox{1ex}{\string、}}}

\begin{document}

\rotatebox{-90}{%
子曰。学而时习之、不亦说乎。}

\end{document}

在此处输入图片描述

相关内容