现在很多国外期刊都允许让中国、日本和韩国的研究者在自己的英文名后面附上自己的母语姓名,我们CJK大家族终于拥有姓名了😭
可能是觉得比较麻烦吧,虽然这个政策推行很久了,但是依然没有多少中国人愿意在发表文章的时候在名字后面写上自己的中文名。
我研究了一下,自己设置好还真挺麻烦的,所以我把我已经证实的一个方法放出来跟大家分享。
我们以美国物理协会(APS)的为例子,看看APS的author guidelines是怎么说的,主要是要用到CJK宏包:
Once the CJK package is properly installed, you will need to use the package to select an encoding and a font to use. The CJK markup should be as follows:
- Put \usepackage{CJK} after the \documentclass line
- \begin{CJK*}{}{} after the \begin{document} line
- \end{CJK*} after the \maketitle line.
For example:\documentclass[aps,prl,preprint]{revtex4} \usepackage{CJK} .... \begin{document} \begin{CJK*}{GB}{} % Use default fonts from CJK (see below) \title{Title of Paper} \author{Your Name (你的中文名)} \affiliation{Your affiliation} ... \maketitle \end{CJK*}
但是,如果简单的按照他所推荐的这样设置的话,大概率是无法达到令人满意的效果的。
甚至连编译都无法编译,出现各种看不懂的报错。
出现这些错误的一个很重要的原因就是,文件编码的不统一。
我们看到代码中在使用CJK包的时候的这一句:
\begin{CJK*}{GB}{} % Use default fonts from CJK (see below)
CJK*
代表从此处开始使用CJK宏包,第二个花括号里面的GB
代表你的tex文件的文件编码格式是国标(可能是GB2312),最后一个花括号是指定字体,按照aps的建议,我们空着,使用默认字体。
问题就出现在编码上,很多人的编码使用的编码并不是GB2312,而有可能是UTF-8或者其他编码。这就导致在编译的时候,编译器用GB编码无法解析你输入的字符。
有同学说了,我直接使用GB2312编码不就行了吗?
这里会存在一个兼容性问题,如果我们将写好的稿件投到国外的编辑部,人家用别的编码格式打开的话,很可能会乱码。
因此这里推荐使用兼容性最好的、也是最广泛使用的UTF-8编码格式。
如何查看自己的tex文件的编码格式呢?
可以使用Visual Studio Code等编辑器,打开你的tex文件,这时候在右下方的状态栏会显示当前打开你的文件所使用的编码格式:
如图所示,是GB2312,这个时候可以点击这里,在弹出的下拉菜单中选择“save with Encoding”
这是会弹出另一个下拉菜单,里面有可以转化成的格式,选择“UTF-8”:
这样你的tex文件就是UTF-8格式的了。
这里还有注意,在打开你的latex编辑器之前,无论是texpad、texshop或者TexStudio,请先在偏好设置中确认将其默认的编码格式改为“UTF-8”
然后再打开你的tex项目。
现在,我们的tex文件和IDE就都设置为统一的UTF-8编码了,下面怎么改呢?
因此,我们在代码中把GB改为UTF8,把字体直接设置为gbsn,如下:
\begin{CJK*}{UTF8}{gbsn}
再将中文名之前加上\CJKfamily{gbsn}
即可。
修改后的整个代码段如下所示:
\documentclass[aps,prl,preprint]{revtex4}
\usepackage{CJK}
....
\begin{document}
\begin{CJK*}{UTF8}{gbsn} % Use default fonts from CJK (see below)
\title{Title of Paper}
\author{Your Name ({\CJKfamily{gbsn}你的中文名})}
\affiliation{Your affiliation}
...
\maketitle
\end{CJK*}
这样就大功告成了!编译即可看到效果如下
这样我们就既拥有了UTF-8的兼容性,又能够在我们的文章中秀出自己的中文名了。
如果你发现这个方法解决不了你的问题,说明是别的问题导致的,不在这篇文章的针对范围,请继续Google/Baidu😂😂 Good luck !