Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

natbib后端无法正确排版online类型文献 #630

Closed
gaotongsh opened this issue Mar 30, 2021 · 9 comments
Closed

natbib后端无法正确排版online类型文献 #630

gaotongsh opened this issue Mar 30, 2021 · 9 comments
Labels

Comments

@gaotongsh
Copy link
Contributor

gaotongsh commented Mar 30, 2021

编译环境

编译的系统:Windows 10
TeX 发行版:MiKTeX
模板版本:v7.2.1
模板类型:master

描述问题

《研究生学位论文写作指南》第19页要求引用电子资源必须标注引用日期。而在BibTeX文件中按要求加入urldate项后,正文中文献编号错误,参考文献中排版也有错误(在最前面出现多余字符)。如不添加urldate项,排版结果正确,但不符合要求。

报错为:

Package natbib Warning: Citation `info' on page 1 undefined on input line 5.
(d:/Downloads\test\test.bbl [1])
Package natbib Warning: There were undefined citations.

正文截图:
image

参考文献截图:
image

复现上述问题的代码:

\documentclass[degree=master]{thuthesis}
\usepackage[sort]{natbib}
\bibliographystyle{thuthesis-numeric}

\begin{filecontents}{ref.bib}
@online{info,
  author = {清华大学},
  title = {清华大学信息门户},
  url = {http://info.tsinghua.edu.cn/},
  urldate = {2021-03-30}
}
\end{filecontents}

\begin{document}
abc\cite{info}
\bibliography{ref}
\end{document}
@gaotongsh
Copy link
Contributor Author

经测试,改用BibLaTeX后端后可以排版成功。
解决问题的代码:

\documentclass[degree=master]{thuthesis}
\usepackage[backend=biber,style=thuthesis-numeric]{biblatex}
\addbibresource{ref.bib}
\begin{document}
Test\cite{info}
\printbibliography
\end{document}

正文截图:
image

参考文献截图:
image

不过我另外发现,BibLaTeX和NatBib排版参考文献的斜杠(EB/OL)居然不太一样。但这是另一个问题了。

@gaotongsh gaotongsh changed the title 无法正确排版online类型文献 natbib后端无法正确排版online类型文献 Mar 30, 2021
@gaotongsh
Copy link
Contributor Author

但是据我测试,改用BibLaTeX后端后,在Overleaf上编译论文会超时,而原有的natbib后端没问题……所以还是希望尽快修复。

@yaox12
Copy link

yaox12 commented Mar 30, 2021

@gaotongsh 原因是你的bib条目里没有写year字段,所以会报错。加上之后就可以正常编译了。另外,按照规范,应该还需要date字段。

@zepinglee
Copy link
Contributor

zepinglee commented Mar 30, 2021

我能复现你的问题。

这主要是你的 .bib 中缺了 year 或者 date,但是 natbib 要求必须提供年份,所以我在 bst 中就根据 urldate 估计一个年份,所以 .bbl 中会有 \bibitem[{清华大学([2021])}]{info}
Screen Shot 2021-03-30 at 23 28 42

不过这样写导致 LaTeX 中处理有误,需要调整下花括号的位置,应该改成 \bibitem[清华大学({[2021]})]{info}。稍后我修改一下 .bst

@zepinglee
Copy link
Contributor

@gaotongsh 原因是你的bib条目里没有写year字段,所以会报错。加上之后就可以正常编译了。另外,按照规范,应该还需要date字段。

year 或者 date 都可以避免这个问题。不过国标和《指南》中的这个例子既没有 date 也没有 year
Screen Shot 2021-03-30 at 23 33 19

许多网站也不太适合给出合适的年份和公告日期,我认为是可以省略的。

@gaotongsh
Copy link
Contributor Author

许多网站也不太适合给出合适的年份和公告日期,我认为是可以省略的。

对,我也这么觉得,所以我看BibLaTeX排出来结果还挺符合要求的。

@zepinglee zepinglee added the bug label Apr 3, 2021
@zepinglee
Copy link
Contributor

这个问题主要是跟 bibunits(本科生必需)同时使用时导致的,我修改了 bst 可以规避这个问题。

@zepinglee
Copy link
Contributor

对,我也这么觉得,所以我看BibLaTeX排出来结果还挺符合要求的。

BibLaTeX 的方案已经经过配置,也是符合学校要求的。两种方法都可以用但略有区别,具体参考 thuthesis 的文档和 biblatex-gb7714-2015 的文档

@zepinglee
Copy link
Contributor

但是据我测试,改用BibLaTeX后端后,在Overleaf上编译论文会超时,而原有的natbib后端没问题……所以还是希望尽快修复。

居然能超时……我在本地用 biblatex 的时候有时也能卡个十几秒。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants