使用 键入中文时xeCJK
,句号和/或右方括号之间的间距太近。如何才能获得更自然的间距(例如,调整xeCJK
设置以匹配下面的 Word 输出),而无需手动插入水平空格(如\thinspace
)?
梅威瑟:
\documentclass[12pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{xeCJK}
\setCJKmainfont{標楷體}
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
\begin{document}
她說:「你好。」
\end{document}
输出:
Word 输出:
答案1
标点符号间距样式是可配置的。xeCJK中有 6 种预定义样式:quanjiao
、banjiao
、kaiming
、hangmobanjiao
和。您需要的是不改变标点符号原始宽度的样式。如果您能读懂中文,您应该读懂CCT
plain
plain
包裹文件xeCJK
第一的。
\documentclass[12pt,a4paper]{article}
\usepackage{xeCJK}
\setCJKmainfont{標楷體}
\xeCJKsetup{PunctStyle=plain}
\begin{document}
她說:「你好。」
\end{document}
顺便说一句,我删除了代码中无用的\XeTeXlinebreaklocale
和。请注意,该包提供的功能比这更强大。\XeTeXlinebreakskip
xeCJK
答案2
这就是您所寻求的吗?想法由此受到启发
代码
\documentclass[border=10pt,varwidth]{standalone}%[12pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{xeCJK}
\setCJKmainfont{標楷體}
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
\makeatletter
\newcommand\myc{\@ifnextchar:{「}{:\@}}
\newcommand\myp{\@ifnextchar。{」}{。\@}}
\makeatother
\begin{document}
她說:「你好。」
她說\myc「你好\myp」
\end{document}