简单Python函数将SCI论文中WORD版参考文献改为LaTeX格式

投出的某sci论文被reviewer指出公式的format不大行,其实自己之前在用word调的时候也发现了这个问题,于是打算改头换面,使用latex来重新写一遍。而LaTeX的引用格式和word是不一样的(至少调格式的方式不同),bibtex是很常用的一种方式了,但是出于某些原因十分赶时间,对文中五十余篇论文去重新找各自的bibtex格式,然后再挨个照着之前word版补充一些东西,实在太费时间。那么如何“废物利用”呢,即将原来的word版的已经写好的内容直接copy过来呢?

word版的内容拿过来自然没问题,但是格式就得调,而一个个调格式显然也是效率很低的行为,因而考虑使用python写个程序进行自动化操作。
首先,不建议大家使用这种方法。这是因为一我挺赶时间的,二是之前word版已经写好了,参考文献基本上不会再改动。更建议使用bibtex。
其次,同样由于这只是临时使用的简单脚本且赶时间,就没有去认真设计变量名,代码可读性不强,不过不大长应该不影响理解叭。将就看看。
最后,在介绍函数使用方法之前,需要提醒一下,下面代码考虑的情况并不完整,因此使用其生成latex版参考文献后仍需要人工验证一遍其格式是否正确(虽然不是100%正确但是也省了很多重复劳动了)。

示例输入:

t = '[1]	B. Ji, Y. Han, P. Li, et al., “Research on secure transmission performance of electric vehicles under Nakagamim channel,” IEEE Trans. Intell. Transp. Syst., pp 1-11, Nov. 2020.'
get_output(0, t)

输出为:

	\bibitem{[1]}B. Ji, Y. Han, P. Li, \emph{et al}., ``Research on secure transmission performance of electric vehicles under Nakagamim channel,"\emph{ IEEE Trans. Intell. Transp. Syst.}, pp 1-11, Nov. 2020.

作用为:

  1. 修改引号。latex中的引号为``xxx",而非word中的"xxx"
  2. 设置斜体。比如将et al设置为斜体,将期刊名设置为斜体,或者如果是会议的话,将in之后的会议名设为斜体。
  3. 拼接为latex中引用格式,包含\bibitem{[idx]},其中idx为函数输入给出,可自定义。另外加上了\n,\t等格式控制。

贴上代码:

def get_output(idx, t):# 用正则,去掉开头序号,保存于t内pt = re.compile(r'\[\d+\](\s|\t)')t = ''.join(re.split(pt, t))# 居然有中文引号...t = t.replace("“", '"')t = t.replace("”", '"')# 为其添加样式output = '\t' + r'\bibitem{' + "[" + str(idx + 1) + "]" + '}'output += '\n'# 添加斜体tt = t.split('"')if len(tt) >= 3:g = tt[0] + '"'g += tt[1] + '"'ttt = tt[2].split(',', 1)if 'in ' in ttt[0]:tttt = ttt[0].split('in ', 1)g += tttt[0] + 'in 'g += r'\emph{' + tttt[1] + r'}' + ','else:g += r'\emph{' + ttt[0] + r'}' + ','g += ttt[1]output += gelse:output += '\t' + toutput = output.replace('et al', r'\emph{et al}')output = output.replace(r'&', r'\&')output = output.replace(r'"', r'``',1)return output


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部