APS和IOP的LaTex模板的问题
APS和IOP的LaTex模板的问题
因为写⽂章的缘故,期间⽤到了APS和IOP的LaTex模板,中间折腾出好多问题,最后有的漂亮的解决了,有的虽然到了⽅法,但是并不懂其中的原因,现在把这些问题记下来,避免忘记.
1.编译⽅式的选择(我的理解,也许不准确)
使⽤pdfLaTex来编译,直接⽣成的pdf⽂档中,具有书签和cite超链接,⽽且参考⽂献条⽬中也有超链接.⾮常⽅便.
缺陷:插⼊的图不再是eps格式的,需要⽤epstopdf⼯具将eps转成pdf来插⼊.
粉红女郎演员
pdf版本的问题:
windows下的miktex中附带的epstopdf转成的pdf⽂档是1.4(Acrobat 5.x)版本的.
iop要求⽣成的最终pdf⽂档应该也是1.4以下,防⽌投稿系统ScholarOne出现问题,所以在tex源⽂件中添加⼀⾏
\pdfminorversion=4 (可以放在documentclass的前⾯),保证⽣成的最终⽂档是1.4版本的.如果不加这⼀句,miktex中pdfTex⽣成的pdf的版本是1.5 (Acrobat 6.x).
2.关于APS的Latex包revtex4-1
这个包中⾃带了⼀个模板,⾮常好⽤,⾥⾯有很多注释,基本上相当于⼀个帮助⽂档了,利⽤它可以⽣成⾮常漂亮的⽂档.
这个模板⾃带的bst⽂件是apsrev4-1.bst等四个,不需要声明\bibliographystyle{apsrev4-1}(实际上这个参考⽂献格式声明是必不可少的),documentclass中的参数pra,prb,prl等会选择相应的格式,⾮常⽅便,⽽且参考⽂献⾃动具有超链接,⾮常简洁漂亮.
这个apsrev4-1.bst实际上⽣成的是author-year格式的参考⽂献,然后这个模板利⽤了natbib包来处理,⽣成了number格式的参考⽂献条⽬.这个涉及到后⾯⾃⼰移植apsrev4-1.bst的问题.
3.关于iop的模板iopart
这个包没有带模板,但是有详细的pdf帮助⽂件.粗略的浏览就⾜矣,⾥⾯有⼀段简短的代码可以拿来作为最初的模板来书写Latex. iopart这个包没有集成在miktex中,需要⾃⼰去下载然后⾃⼰放到mikex的⽬录中,为了简便也可以跟tex源⽂件放在⼀个⽬录⾥使⽤.
iopart中使⽤的⼀些较好的特性:
\title[shorttitle]{realtitle} %shorttitle会从第⼆页开始出现在页眉上,⼗分⽅便.
\submitto{\JPCM}%会看出提交的杂志
但是⼀个参考⽂献条⽬只能有⼀篇⽂献,不像aps可以将⼏篇⽂献合成⼀个条⽬.
4.关于iop的参考⽂献
iopart帮助⽂件中给出的参考⽂献有numerical(Vancouver)格式,也有alphabetical(Harvard)格式.重点说明numerical style.它推荐的unsrt.bst,但是这个没有超链接.⽽且⼀个参考⽂献条⽬中只能有⼀篇⽂献,但是我所投的杂志最终出版格式也是⼀个条⽬中只有⼀篇⽂献,所以这个也⽆妨.
人口普查手抄报
然后⼜推荐了iopart-num包,这个包可能需要⾃⼰安装.它能产⽣超链接,不过不像利⽤apsrev4-1.bst⽣成的那么漂亮:
它⽣成的参考⽂献条⽬中,把url打印出来,然后在url上加上的超链接,⽽PR系列的超链接都是出现在期刊名字以及卷号、页码上.不过编辑会接受这个格式,他们会在出版时进⾏处理的,只要提供给⾜够的信息即可.
另外,在使⽤iopart-num包时,如果想将[1,2,3]合并显⽰成[1-3],需要使⽤cite包,⽽不是帮助⽂档中说的citesort,因为后者会使hyperref包失效,也就是⽆超链接了.
5.apsrev4-1和natbib的移植
经过对⽐revtex4-1和iopart这两个包,发现revtex4-1的参考⽂献最好看(不愧是aps!!),⽽iopart中有些特性也是不错的.为了让审稿⼈看得爽(当然是为了好的评价),所以应该让apsrev4-1.bst+natbib(重新定义了\cite命令)和iopart.cls结合.
当然,给编辑的只需iopart.cls+iopart-num+hyperref+cite即可,但是参考⽂献所在的section需要⾃⼰添加 \section* {Reference}  (也可使⽤[square,sort&compress]natbib,这样不⽤添加\section*了).
真正的做法:
(A)如果移植到⾮iopart⽂档中
\usepackage[colorlinks,linkcolor=red,anchorcolor=blue,citecolor=green]{hyperref}
%hyperref必须放在natbib前⾯,除⾮你使⽤默认的超链接格式,否则放在natbib后⾯会提⽰
形容风浪大的成语%hyperref参数冲突,估计是因为natbib中已经设置了
\usepackage[sort&compress,square,numbers]{natbib}
\bibliographystyle{apsrev4-1}
清朝的皇帝%\usepackage{cite}  %强调natbib⽤了就不需要cite了,之前⾃⼰没有去掉,编译错误....
由于apsrev4-1实际上也是有控制参数的,有⼈建议新建⼀个bib,⾥⾯通过打印机暂停
@CONTROL{REVTEX41Control}
@CONTROL{apsrev41Contrl,...}
来控制apsrev4-1.bst.将真正的bib和这个bib都包含到⽂档中.
有⼈说这个⽅法不起作⽤,可以⾃⼰复制⼀个apsrev4-1.bst,修改其中的参数,重命名并放在当前⽬录中来启⽤它可以起作⽤. (这⼀段话我不理解,也没实验,只是记下来⽽已)
(B)如果移植到iopart⽂档中
上⾯的代码都需要,但是编译之后会出现⼀个错误,叫\newblock undefined.
google出问题出在natbib,建议
If you get an error of the kind \begin{thebibliography} with \newblock undefined, include the following line in the '.sty' file, or modify the existing line to the following-
\def\newblock{\hskip .11em plus .33em minus .07em}
实际上把这⼀句添加到tex源⽂件中也可以.
八十年代经典歌曲100道
附注:之前在编译过程中出现了奇怪的错误,⼀直调试不出来问题所在,最后发现将⽣产的中间⽂件⽤ erase 功能清除⼀下就可以.
没有记录当时的错误究竟是什么,但是还是把这个记录下来,当做经验吧.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。