The ctex bundle provides Mapping = fullwidth-stop to convert ordinary Chinese periods (。) to fullwidth periods (.). (Not to be confused with halfwidth periods (.).)
However, this only works for one font.
\documentclass[UTF8, fontset = fandol]{ctexart}
\setCJKmainfont{FandolSong}[%
Mapping = fullwidth-stop
]
\begin{document}
天地玄黄,宇宙洪荒。盖此身发,四大五常。
\kaishu
天地玄黄,宇宙洪荒。盖此身发,四大五常。
\end{document}
The kaishu font is not altered. Of course I can do it separately for kaishu, but then I also have to do for fangsong, heiti, etc. I would like to do it for all fonts in one place.
The documentation mentions \addCJKfontfeatures. I tried to use it:
\documentclass[UTF8, fontset = fandol]{ctexart}
\addCJKfontfeatures{Mapping = fullwidth-stop}
\begin{document}
天地玄黄,宇宙洪荒。盖此身发,四大五常。
\kaishu
天地玄黄,宇宙洪荒。盖此身发,四大五常。
\end{document}
However, this didn't function:
\addCJKfontfeatures* didn't help either. What is the correct way to use \addCJKfontfeatures? How to set the mapping for all fonts in one place?



\addCJKfontfeatures, which does "临时增加当前使用的CJK字体的选项" per doc, doesn't work because there is no "当前使用的CJK字体" in the preamble. Moving it inside thedocumentmakes it work, but the changes cease to apply when the font is changed. Am I right? If that is right, then everything makes sense to me now :) – L. F. Mar 11 '20 at 04:33fontseting separately? – L. F. Mar 16 '20 at 04:16xeCJKdoes not keep a defined-font-changing list, hence it did not know the name list of declared font changing commands. 3. Both restrictions are inherited fromfontspec. – muzimuzhi Z Mar 16 '20 at 07:32\expandafter\string\the\fontand\fontname\font, respectively (see this answer). This is how\addCJKfontfeaturesworks. – muzimuzhi Z Mar 16 '20 at 07:36defaultCJKfontfeaturescommand. Any idea why this happens? I'm usingctexbookdocumentclass. – Yijun Yuan Oct 15 '20 at 05:44