Well, it's not the update. The git log said I add "\usepackage{ctex}" in the uncommited changes.
But I don't remember when I add that. And it breaks the CJK font.
@skyblond There was a similar problem with AMS and some other package I had to use. I believe they both go in the beginning of the tex and \beginpackage should work. If it doesn't it might need to be nested or the \endotherpackage needs to precede it.
@AmpBenzScientist
I think the root cause is cjk font. Ctex package offers default configuration to use cjk characters in latex. But the template I used doesn't support cjk fonts by default, I load it using fontspec. Using ctex in document might overwrite the usage of fontspec in cls.(I guess)
@skyblond I'd recommend a custom template or browsing templates used by different Universities and researchers. I remember having to make a Mitre Attack graphic with Tex.
The templates aren't too difficult to make but it is likely that many people have encountered the same problem. There's likely a template from a University that fixes it.
Thanks git log for keeping me not giving up on LaTeX.
You can tell what I have been gone through in this morning based on my browser history.