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

更新清华大学 thuthesis 的示例 #79

Merged
merged 1 commit into from
Aug 2, 2020
Merged

更新清华大学 thuthesis 的示例 #79

merged 1 commit into from
Aug 2, 2020

Conversation

zepinglee
Copy link
Contributor

清华大学刚刚更新了研究生的学位论文写作指南(tuna/thuthesis#564 ),其中的参考文献格式更新为 GB/T 7714-2015 版。 我在实现新版本的同时也打算加入 biblatex 的支持,顺便也更新一下这边的示例。

@hushidong
Copy link
Owner

太好了,清华的我不是很熟悉,你帮忙更新最好。

@hushidong hushidong merged commit be8637f into hushidong:master Aug 2, 2020
@hushidong
Copy link
Owner

后面我稍微修了一下,主要是bib中几个期刊条目的日期问题。

由于biber需要把日期解析成年,月,日。且年月日之间用-分隔,因此如果要表示两个起止日期,两个日期之间用/分隔。

而卷和期的起止信息解析,还是用-分隔,因为/用于表示article的和期的情况,解析函数是我用tex写的,刚测了一下似乎用--也没问题。

@zepinglee
Copy link
Contributor Author

BibTeX 的标准域没有 date,也没有表示起止范围的用法,所以我在早期设计时仿照 pages 的用法用 -- 分隔。不过我刚刚看了一下 biblatex 的 date 的格式,使用“/”是标准用法,所以我决定改一下 bst 的标准用法。

卷和期的话,我更推荐用 --,因为通常用 en dash 比 hyphen 更常用于表示起止范围。不过我的 bst 实现也兼容 - 的用法。

@hushidong
Copy link
Owner

好的,这样咱们的bib就完全兼容了。

@zepinglee
Copy link
Contributor Author

另外请教一下如何将全局的 citation style 切换为非上标的样式?

文档中提到使用 \parencite 可以将单个引用设置为非上标的形式,但是有没有全局的切换方法?

我注意到 biblatex 的文档中有 autocite = inline,但是直接使用并不 work:

\documentclass{article}
\usepackage[
  backend   = biber,
  style     = gb7714-2015,
  autocite  = inline,
]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inproceedings{dupont1974bone,
  author     = {Dupont, B},
  title      = {Bone marrow transplantation in severe combined immunodeficiency with an unrelated MLC compatible donor},
  editor     = {White, H J and Smith, R},
  booktitle  = {Proceedings of the third annual meeting of the International Society for Experimental Hematology},
  address    = {Houston},
  publisher  = {International Society for Experimental Hematology},
  year       = {1974},
  pages      = {44--46},
}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
Citation: \cite{dupont1974bone}

\printbibliography

\end{document}

Screen Shot 2020-08-03 at 18 54 09

@hushidong
Copy link
Owner

hushidong commented Aug 3, 2020

autocite
选项是针对autocite命令的,用这个命令就ok的。

biblatex没有全局的设置上下标的,因为每个命令都可以定制格式的,parencite不上标只是习惯这么用,重定义一下变成上标也是可以的,所以要全局设置,只能用简单粗暴的方法。直接将所有命令let等价于满足格式要求的命令。

当然我们可以定义选项来处理这个事请。

所以说因为他的高度可定制性,他的思路和natbib不太一样。

@zepinglee
Copy link
Contributor Author

感谢!

natbib 中的 \cite 有点类似 biblatex 的 \autocite,其具体格式可以通过 \citestyle 进行全局设置。

我感觉用 biblatex 这样设置的话最好还是另开个 cbx 文件用 \DeclareCiteCommand 重定义比较好。

@hushidong
Copy link
Owner

这样也行,再开numbers
和super两个cbx,就和natbib习惯一致了。

@zepinglee
Copy link
Contributor Author

再请教一个问题,清华的本科生格式中要求附录 A 是英文的调研报告,其中有独立的参考文献,要求格式为符合英文习惯的格式(比如 APA/MLA/Chicago/IEEE 等),区别于主文档的参考文献(格式为国标)。

我研究了一下 biblatex 提供了 refsection,但是并不能设置独立的样式。PLK 似乎也并不打算支持这个 feature (plk/biblatex#592 )。gb7714-2015mx 提供了 \setaystylesection 命令,但是无法用于 APA、MLA 等格式。请问一下有没有其他的实现方式?

@hushidong
Copy link
Owner

由于style是加载时选项,所以无法直接在后面加载样式,解决方法就是把需要样式的代码拷过来,放文件里加载也行,然后做一些局部化处理,比如选项的局部化。比如有的作者数没有要求,而国标要求3个,那么就要把控制选项实现局部化。

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

Successfully merging this pull request may close these issues.

2 participants