如何将所有 CJK 标点符号优雅地更改为不同的字体?

如何将所有 CJK 标点符号优雅地更改为不同的字体?

虽然 Noto Sans CJK 提供了 JP、KR、TC、SC 四个版本,它们大体相似但又有细微的差别(见第 1 行和第 2 行),但我想将所有 CJK 字符设置为 TC 字体,除了 CJK 标点符号(,。「」……等)设置为 SC 字体(如第 4 行)。

我目前使用预处理 bash 脚本通过命令替换它们sed;但这只是一种解决方法。如何优雅地将所有 CJK 标点符号更改为不同的字体?

换句话说,如何用 替换全部{\punctfont。}

% !TEX program = xetex
\documentclass{ctexart}

\setCJKmainfont[SlantedFont=Noto Sans CJK TC]{Noto Sans CJK TC}
\newCJKfontfamily\punctfont{Noto Sans CJK SC}

\begin{document}

\texttt{TC}: 角、亮、空、窗、誤。

\texttt{SC}: {\punctfont 角、亮、空、窗、誤。} \\

我能吞下玻璃,而不傷身體。

我能吞下玻璃{\punctfont,}而不傷身體{\punctfont。}   % Expectation!

\end{document}

相关内容