nuaathesis
nuaathesis copied to clipboard
gb7714-2015参考文献格式与南航要求格式不符
GB包对各文献种类编译后的文件请见:http://ftp.jaist.ac.jp/pub/CTAN/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-beamer.pdf
其中存在明显不符之处包括:
- 对于会议论文,GB的格式使用了双斜杠标注会议地点,而南航要求中无双斜杠。
- 南航格式中默认忽略了“出版地不详”等情况,而GB包中默认自动利用:[出版地不详], [出版者不详],[S.l.],[s.n.] 等填补缺省信息。
对于第2个问题,最新版gb7714-2015包中新增了gbpub=false选项,用于关闭[出版地不详], [出版者不详],[S.l.],[s.n.] 缺省信息
第1个问题目前正在考虑通过修改gb7714-2015的bbx文件相应代码实现
biblatex-gb7714-2015.bbx 中1720行左右是这么写的:
\printtext{\texttt{//}\addnbthinspace}%似乎顶格加百分号可以避免一些不必要的空格加入,特别是这种直接处理的语句前后
我的猜想是把这行代码去掉应该就可以了
不过我还没弄清楚如何正确使用本地的.bbx文件和.cbx文件编译文档,在我编译biblatex-gb7714-2015原作者在github上的repo时,总是报下面的错误:
("C:\Program Files\MiKTeX 2.9\tex\latex\biblatex\biblatex.def")
(gb7714-2015.bbx
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.1
%%
?
@summershrimp 你当时是直接在源文件上修改的,还是在本地新建两个文件然后编译的呢?
@JackWzh 测试可行。只要让biblatex-gb7714-2015.bbx与当前tex文件处于同一文件夹下,并在tex文件中使用\usepackage[backend=biber,style=gb7714-2015]{biblatex}
,系统就会默认使用当前文件夹的bbx进行排版。
从
("C:\Program Files\MiKTeX 2.9\tex\latex\biblatex\biblatex.def")
(gb7714-2015.bbx
判断你可能误直接编译的bbx?我刚测试编译了biblatex-gb7714-2015-beamer.tex
和biblatex-gb7714-2015.tex
都没有问题
@cvcore 编译倒是没编译错文件😂,可能是我的MiKTeX或者电脑的的问题吧……
@JackWzh 我是直接改了gb7714的包
已在v2.0-developing branch中解决
@JackWzh v2.0-developing branch没解决参考文献的格式问题啊,虽然用了别的包,但它还是遵照gb7714-2015,和学校要求的格式不一样。
@yzwduck 我以为你已经把新的部分整合到experiment分支了,我的问题 :(
@cvcore 和我使用biblatex和新的.bbx和.cbx文件实现了新的格式,但是biblatex和natbib不兼容,目前卡在这个问题上
参考文献换包的主要原因,是双语题注…
- 双语题注要用到
newfloat
,创建新的浮动环境,防止一张图表两种语言同时出现在目录里; -
newfloat
hook 了\addtocontents
; -
biblatex
也要 patch\addtocontents
,冲突 boom。
我没找到怎么同时用 newfloat
和 biblatex
的方法,所以把后者换掉了,顺便抄了点 CQUThesis 的代码。
如果放弃双语题注功能,应该可以用 biblatex
(理论上,没测试过)。
附:boom 的代码实例,有三种改法可以编译通过:
-
ctexbook
->book
; - 注释掉第2行;
- 注释掉第3行;
\documentclass{ctexbook}
\usepackage{newfloat}
\usepackage[backend=biber,style=gb7714-2015,natbib]{biblatex}
\begin{document}
Boom
\end{document}
.bst 文件中产生//的FUNCTION是punct.slash,这个方法又被output.nonnull和output.after调用,所以应该只要在conference类型对应的FUNCTION进行改进,就能去除//这个问题了
没仔细看测试用例,不知道第二个问题现在的模板现在还存不存在
明天晚上我去仔细看一下.bst文件的说明,然后看看能不能直接该.bst文件解决吧 @yzwduck @cvcore
存在的。bst
去掉“XX不详”应该能直接改,不过会比去掉//
麻烦不少。
@JackWzh 插个问题,为什么要用natbib这个包?
@cvcore @yzwduck他的branch就是那样实现的,我没做任何改动,所以就有了natbib
@cvcore ↑5楼 有详细解释
@cvcore 我当时在第一版里启用natbib是为了让biblatex支持\citep
好的,多谢 @summershrimp @yzwduck @JackWzh
现在使用gbpub=false能解决这个问题吗?我没找到写这个设置的位置
2.0
里的参考文献不是用 biblatex
来实现的,所以没有这个设置。
2.0
版本生成的参考文献样式与学校 Word 模板略有不同,体现在
- 题目后应有“[A]”字样
- 缺少主编项目
- 主编前应有“In:”字样
- 论文集名后应有“[C]”字样
Word 模板内容见下图
模板生成的内容为:
bib 文件中这一项的内容为:
@inproceedings{DBLP:conf/cav/BabiakBDKKM0S15,
author = {Tom{\'{a}}s Babiak and
Frantisek Blahoudek and
Alexandre Duret{-}Lutz and
Joachim Klein and
Jan Kret{\'{\i}}nsk{\'{y}} and
David M{\"{u}}ller and
David Parker and
Jan Strejcek},
title = {The Hanoi Omega-Automata Format},
bookauthor = {Daniel Kroening and
Corina S. Pasareanu},
booktitle = {Computer Aided Verification - 27th International Conference, {CAV}
2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part
{I}},
pages = {479--486},
year = {2015},
timestamp = {Sat, 16 Sep 2017 12:07:38 +0200}
}
谢谢回馈,笔者努力在下一次写论文前解决参考文献格式问题。
不过用GB7714-2015的小伙伴们并未在提交论文时遇阻,而且使用GB7714-2015更规范一些。
我在 biblatex-gb7714-2015 的说明文档 1.2.2节新增选项中看到可以调整双斜杠或者“In:” 的样式,是不是说这个部分标准规定的比较宽松。
[A] 和 [C] 字样的问题看起来像是如果是学校的模板跟主流标准不同。
缺少主编项目,主编前应有“In:”字样的问题,来不及更新也没有关系,如果有答辩老师提出的,也可以把信息塞到 booktitle 项来应付,当然就 ugly 一些。
感谢开发者们的持续维护。
使用 nuaathesis v2.1b
版本生成的文章与学校的“参考文献格式”略有不同:
对于文献有多个作者的,只著录前3位作者,从第4位开始该用“,等”或者“et al.”代替;
中文文献应该是用 ,等
代替,英文使用 et al.
。然而目前编译出的结果中文参考文献也是用 et al.
来代替,如下图所示:
请问有方法解决这个问题吗?
使用 nuaathesis
v2.1b
版本生成的文章与学校的“参考文献格式”略有不同:对于文献有多个作者的,只著录前3位作者,从第4位开始该用“,等”或者“et al.”代替;
中文文献应该是用
,等
代替,英文使用et al.
。然而目前编译出的结果中文参考文献也是用et al.
来代替,如下图所示:
请问有方法解决这个问题吗?
问题已解决。在 v2.1b
版本中通过 nuaabib.bst
内部的规则产生出参考文献内容。我查阅了一下 nuaabib.bst
中其实是有 bbl.cn.etal
规则的:
nuaabib.bst:344
lang empty$
{ ", " * bbl.etal * }
{ lang "zh" =
{ ", " * bbl.cn.etal * }
'skip$
if$
}
if$
nuaabib.bst:299
FUNCTION {bbl.cn.etal}
{ "等." }
也就是说只要添加规则是能够将 et al.
转换为 等.
的。而这个规则就是 lang
的值。因此,只要在 .bib
文件中的文献条目中加入 lang={zh}
信息,就能够识别规则,将 et al.
替换为 等.
,例子如下:
@article{王亚玲2016基于Docker的PaaS平台建设,
title={基于Docker的PaaS平台建设},
author={王亚玲 and 李春阳 and 崔蔚 and 张晶},
lang={zh},
journal={计算机系统应用},
year={2016},
volume={25},
number={3},
pages={72--77},
}
不过又发现了新的问题:在使用 phdthesis
或者 mastersthesis
的 BibTeX Style 中填写 lang = {zh}
编译会出错,分析了一下原因是没有定义 \thumasterbib
和 \thuphdbib
~~THU嘻嘻嘻~~(其实可以去掉这个规则,学位论文的格式好像跟语言没什么关系 :P)。
还有就是 nuaabib.bst
中的 mastersthesis.type
函数(nuaabib.bst:1003)的名字写错了,写成了 masterthesis.type
,少了一个 s
,因此使用 matsersthesis
格式的引用会出错。
感谢开发者为该模版的付出,真的节省了我大量排版的时间!
我注意到这个 nuaabib.bst
是从 thuthesis
早期版本的 bst 修改的,不过那个版本没有完全遵循 GB/T 7714,而且有很多问题。目前 thuthesis
的 bst
是从 https://github.com/CTeX-org/gbt7714-bibtex-style 修改的,建议也从那里修改 bst,这样可以避免很多 bug,比如 https://wenda.latexstudio.net/q-5138.html 。
另一种解决方案是使用 biblatex-gb7114,见该宏包的文档。
另外,示例文档中提到用 biber
编译,而 biber
是搭配 biblatex 使用的,跟 BibTeX、natbib
、\bibliographystyle
不兼容。而目前使用 latexmk
编译时实际是调用了 BibTeX 的。
4月份把硕士学位论文交掉了。根据我的折腾经验,学校老师根本不认《研究生学位论文撰写要求》里的那种参考文献格式,还不如直接用gbt7714-numerical.bst
代替nuaabib.bst
。
注意修改配置:
- 作者名只要首字母大写
#0 'uppercase.name :=
- 不显示doi
#0 'show.doi :=
- 去掉表示析出的双斜杠