![中文标点符号问题](https://linux22.com/image/261940/%E4%B8%AD%E6%96%87%E6%A0%87%E7%82%B9%E7%AC%A6%E5%8F%B7%E9%97%AE%E9%A2%98.png)
我正在尝试将中文标点符号移到字符的开头。我使用以下宏,效果很好。但如果我重新定义\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}