Latex引入新宏包siunitx导致的报错:Command \fs already defined. \newcommand{\fs}{\CJKfamily{fs}}
出错原因
用我的英伦腔翻译一下这个报错信息,不难看出是\fs命令在引入的宏包中已经被定义,而文章使用了\newcommand,无辜的以为\fs命令在之前没有被定义,显然就会出错(\fs你城府好深啊。
下面这张图是我的报错信息,本来文章可以正常编译,想试试用siunitx宏包写单位,没想到引入后即报错:Command \fs already defined. \newcommand{\fs}{\CJKfamily{fs}}。
解决方法
既然是命令冲突了,无非有两种方法修正,一种是替换宏包中的命令,还有就是替换文章中的命令,我选择了前者,文章模板中的\fs命令是仿宋字体的意思,我怕整不好影响整篇文章的排版,说到底还是这个模板结构有点复杂,我还没搞懂,如下
修改宏包中的命令
首先在电脑上找到相关宏包的所有文件,推荐使用everything,真的是搜索小王子
用notepad++打开每个文件,CTRL+f查找冲突的命令,我这里就是\fs,找到之后就将其修改成一个无敌奇怪的命令,这样就不会再冲突了,修改为\fss
确保宏包所有文件中的\fs命令都已经被正确替换完全后,保存,重新编译,发现成功编译