nuaatug / nuaathesis

LaTeX document class for NUAA, supporting bachelor/master/PH.D thesis in Chinese/English/Japanese. 南航本科、硕士、博士学位论文 LaTeX 模板
Apache License 2.0
299 stars 68 forks source link

gb7714-2015参考文献格式与南航要求格式不符 #1

Open cvcore opened 7 years ago

cvcore commented 7 years ago

GB包对各文献种类编译后的文件请见:http://ftp.jaist.ac.jp/pub/CTAN/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-beamer.pdf

其中存在明显不符之处包括:

  1. 对于会议论文,GB的格式使用了双斜杠标注会议地点,而南航要求中无双斜杠。
  2. 南航格式中默认忽略了“出版地不详”等情况,而GB包中默认自动利用:[出版地不详], [出版者不详],[S.l.],[s.n.] 等填补缺省信息。
cvcore commented 7 years ago

对于第2个问题,最新版gb7714-2015包中新增了gbpub=false选项,用于关闭[出版地不详], [出版者不详],[S.l.],[s.n.] 缺省信息

第1个问题目前正在考虑通过修改gb7714-2015的bbx文件相应代码实现

JackLiar commented 7 years ago

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 你当时是直接在源文件上修改的,还是在本地新建两个文件然后编译的呢?

cvcore commented 7 years ago

@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.texbiblatex-gb7714-2015.tex都没有问题

JackLiar commented 7 years ago

@cvcore 编译倒是没编译错文件😂,可能是我的MiKTeX或者电脑的的问题吧……

summershrimp commented 7 years ago

@JackWzh 我是直接改了gb7714的包

JackLiar commented 7 years ago

已在v2.0-developing branch中解决

yzwduck commented 7 years ago

@JackWzh v2.0-developing branch没解决参考文献的格式问题啊,虽然用了别的包,但它还是遵照gb7714-2015,和学校要求的格式不一样。

JackLiar commented 7 years ago

@yzwduck 我以为你已经把新的部分整合到experiment分支了,我的问题 :(

@cvcore 和我使用biblatex和新的.bbx.cbx文件实现了新的格式,但是biblatex和natbib不兼容,目前卡在这个问题上

yzwduck commented 7 years ago

参考文献换包的主要原因,是双语题注…

我没找到怎么同时用 newfloatbiblatex 的方法,所以把后者换掉了,顺便抄了点 CQUThesis 的代码。

如果放弃双语题注功能,应该可以用 biblatex(理论上,没测试过)。


附:boom 的代码实例,有三种改法可以编译通过:

JackLiar commented 7 years ago

.bst 文件中产生//的FUNCTION是punct.slash,这个方法又被output.nonnull和output.after调用,所以应该只要在conference类型对应的FUNCTION进行改进,就能去除//这个问题了

没仔细看测试用例,不知道第二个问题现在的模板现在还存不存在

明天晚上我去仔细看一下.bst文件的说明,然后看看能不能直接该.bst文件解决吧 @yzwduck @cvcore

yzwduck commented 7 years ago

存在的。bst 去掉“XX不详”应该能直接改,不过会比去掉//麻烦不少。

cvcore commented 7 years ago

@JackWzh 插个问题,为什么要用natbib这个包?

JackLiar commented 7 years ago

@cvcore @yzwduck他的branch就是那样实现的,我没做任何改动,所以就有了natbib

yzwduck commented 7 years ago

@cvcore ↑5楼 有详细解释

summershrimp commented 7 years ago

@cvcore 我当时在第一版里启用natbib是为了让biblatex支持\citep

cvcore commented 7 years ago

好的,多谢 @summershrimp @yzwduck @JackWzh

Phantato commented 6 years ago

现在使用gbpub=false能解决这个问题吗?我没找到写这个设置的位置

yzwduck commented 6 years ago

2.0 里的参考文献不是用 biblatex 来实现的,所以没有这个设置。

ljlin commented 6 years ago

2.0 版本生成的参考文献样式与学校 Word 模板略有不同,体现在

Word 模板内容见下图 image

模板生成的内容为: image

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}
}
yzwduck commented 6 years ago

谢谢回馈,笔者努力在下一次写论文前解决参考文献格式问题。

summershrimp commented 6 years ago

不过用GB7714-2015的小伙伴们并未在提交论文时遇阻,而且使用GB7714-2015更规范一些。

ljlin commented 6 years ago

我在 biblatex-gb7714-2015说明文档 1.2.2节新增选项中看到可以调整双斜杠或者“In:” 的样式,是不是说这个部分标准规定的比较宽松。 image

[A] 和 [C] 字样的问题看起来像是如果是学校的模板跟主流标准不同。

缺少主编项目,主编前应有“In:”字样的问题,来不及更新也没有关系,如果有答辩老师提出的,也可以把信息塞到 booktitle 项来应付,当然就 ugly 一些。

感谢开发者们的持续维护。

Triple-Z commented 5 years ago

使用 nuaathesis v2.1b 版本生成的文章与学校的“参考文献格式”略有不同:

对于文献有多个作者的,只著录前3位作者,从第4位开始该用“,等”或者“et al.”代替;

中文文献应该是用 ,等 代替,英文使用 et al. 。然而目前编译出的结果中文参考文献也是用 et al. 来代替,如下图所示:

image

请问有方法解决这个问题吗?

Triple-Z commented 5 years ago

使用 nuaathesis v2.1b 版本生成的文章与学校的“参考文献格式”略有不同:

对于文献有多个作者的,只著录前3位作者,从第4位开始该用“,等”或者“et al.”代替;

中文文献应该是用 ,等 代替,英文使用 et al. 。然而目前编译出的结果中文参考文献也是用 et al. 来代替,如下图所示:

image

请问有方法解决这个问题吗?

问题已解决。在 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},
}

image

不过又发现了新的问题:在使用 phdthesis 或者 mastersthesis 的 BibTeX Style 中填写 lang = {zh} 编译会出错,分析了一下原因是没有定义 \thumasterbib\thuphdbib THU嘻嘻嘻(其实可以去掉这个规则,学位论文的格式好像跟语言没什么关系 :P)。

还有就是 nuaabib.bst 中的 mastersthesis.type 函数(nuaabib.bst:1003)的名字写错了,写成了 masterthesis.type ,少了一个 s ,因此使用 matsersthesis 格式的引用会出错。

感谢开发者为该模版的付出,真的节省了我大量排版的时间!

zepinglee commented 3 years ago

我注意到这个 nuaabib.bst 是从 thuthesis 早期版本的 bst 修改的,不过那个版本没有完全遵循 GB/T 7714,而且有很多问题。目前 thuthesisbst 是从 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 的。

ButteredCat commented 3 years ago

4月份把硕士学位论文交掉了。根据我的折腾经验,学校老师根本不认《研究生学位论文撰写要求》里的那种参考文献格式,还不如直接用gbt7714-numerical.bst代替nuaabib.bst

注意修改配置:

  1. 作者名只要首字母大写#0 'uppercase.name :=
  2. 不显示doi#0 'show.doi :=
  3. 去掉表示析出的双斜杠