It seem there is not necessary to think about different languages . In fact, the treatment of punctuation in China, Japan can be regarded as adding or subtracting the space of punctuation as Wolfgang said(I don't know much about Korean). All you need to do is make a script to handle all the punctuation, and then add or subtract space for different languages. It seems more appropriate to subtract the space and then add it, so that you don't have to think about the Opening and Closing punctuation at the beginning and end of the line. In particular, it seems that Taiwan(TC) does not do anything about punctuation (Because the punctuation in Taiwan is almost always centered, this should be a compromise to accommodate the vertical typesetting.). Japanese side has a relatively uniform standard for punctuation. China seems to have only factual standards, but no actual uniform standards. Therefore, the Chinese(SC) punctuation treatment methods are: ❶half-width (to half-width punctuation), ❷full-width (to full-width punctuation), ❸ no processing, ❹kaiming punctuation (punctuation in the middle of the sentence is half-width, punctuation at the end of the sentence is full-width). ❺It seems that kaiming-style punctuation is more commonly used. In addition, there seems to be a way of punctuation that is based on text length and punctuation prohibitions Therefore, it is very complicated to consider the situation of language. Instead, make a user interface so that local users can handle punctuation and prohibitions on their own. This in turn adapts to users in all regions. Because CJK includes not only Simplified Chinese (Chinese mainland), Chinese Traditional (Hong Kong, Macau, and Taiwan), Japanese, Korean, and Vietnamese characters. As far as I know, each area has its own way of handling punctuation. The only ones I know of that are developing punctuation processing (only for Chinese) seem to be ==> https://github.com/Fusyong/zhpunc . Perhaps, this will be a certain inspiration for others. What I know of when dealing with multilingualism is that both China and Japan only distinguish between Chinese (or Japanese) and English, and insert a quarter or a third of the space into it. For example, uptex provides some basic commands to control prohibition and spacing (https://mirrors.jlu.edu.cn/CTAN/info/ptex-manual/ptex-manual.pdf): \prebreakpenalty \postbreakpenalty \jcharwidowpenalty \kanjiskip \xkanjiskip \inhibitxspcode \inhibitglue In addition, there may be a little more to consider. Once the script is enabled, using the ‘halt’ feature at the same time will result in the wrong position under certain fonts. For example, when kozuka mincho deals with punctuation 「dummy word」(dummy word). I barely have any understanding of lua. So far, I've only had to do something about tex. Because of this, forgive my ignorance if there is a wrong situation. But if there's anything I can do to help, I'll do it. autumnus