biblatex-gb7714-2015
biblatex-gb7714-2015 copied to clipboard
会议论文集格式
我校要求的会议论文集格式为 [序号] 作者1, 作者2, 作者3. 论文题目(首字母大写,其它字母小写)[C]. 会议名称(首字母大写 虚词小写), 会议年份: 开始页-结束页. 例: [4] Dong C, Loy C, He K, et al. Learning a deep convolutional network for image super-resolution[C]. European Conference on Computer Vision, 2014: 184-199. 即,不论是中文还是英文文献,在会议名称前都没有“in: ”或者“见”;并且论文题目仅首字母大写(专有名词除外)。我已在CTAN查阅biblatex-gb7714-2015的相关文档,未找到相应的控制符。请问欲实现此要求,应当如何撰写?
-
不要开重复 issue
-
即,不论是中文还是英文文献,在会议名称前都没有“in: ”或者“见”;
你需要
gbpunctin = false
-
并且论文题目仅首字母大写(专有名词除外)
现有格式就是如此,请证明你的输出不符合你的期望
不要开重复 issue
即,不论是中文还是英文文献,在会议名称前都没有“in: ”或者“见”;
你需要
gbpunctin = false
并且论文题目仅首字母大写(专有名词除外)
现有格式就是如此,请证明你的输出不符合你的期望
- 因为网络原因不慎重复开issue,抱歉
- 我已经使用了
gbpunctin = false
,输出仍然包含“in:” - 现编译结果如图
我使用的TeXLive版本为2023,编译器为XeLaTeX
第二个问题可以通过在导言区添加
\DefineBibliographyStrings{english}{in={}}
\DefineBibliographyStrings{english}{incn={}}
来解决,但现在仍然不明白第三个问题发生的原因
1. 我搜索过之前的issue,没有找到相关题目
指 #180 已经开了,不需要再开 #181
2. 我已经使用了`gbpunctin = false`,输出仍然包含“in:”
看错了问题,但手册中 gbpunctin
选项部分已经给出了你想要的答案:
若要完全去掉该符号则可以在导言区增加命令 \DefineBibliographyStrings{english}{in={}}, \DefineBibliographyStrings{english}{incn={}}
3. 现编译结果如图
需要使用 texdoc biblatex
p. 265 提供的 \MakeSentenceCase
命令,在导言区添加
\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}
需要使用
texdoc biblatex
p. 265 提供的\MakeSentenceCase
命令,在导言区添加\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}
在导言区添加该指令会使得包括booktitle
和journal
在内的title
都变为句首字母大写,详见如图。我查阅了texdoc biblatex
和https://github.com/hushidong/biblatex-gb7714-2015/blob/15db5aaf6834b2359c605227726c67d1350bc660/biblatex-gb7714-2015.pdf,目前并没有找到解决方法。
在导言区添加该指令会使得包括
booktitle
和journal
在内的title
都变为句首字母大写
这是由于 biblatex 对样式精细度控制不足导致的^1,解决方案为^2:
\documentclass{article}
\usepackage[backend=biber,style=gb7714-2015]{biblatex}
\addbibresource[location=local]{gdutthesis-template.bib}
\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}
\DeclareFieldFormat{titlecase:journaltitle}{#1}
\renewbibmacro*{booktitle}{%ref gb7714-2015.bbx
\ifboolexpr{
test {\iffieldundef{booktitle}}
and
test {\iffieldundef{booksubtitle}}
}
{}
{\printtext[booktitle]{\bibtitlefont%
\printfield[titlecase:journaltitle]{booktitle}%
\setunit{\subtitlepunct}%
\printfield[titlecase:journaltitle]{booksubtitle}}%
\newunit%标点换成下一句
\setunit{\subtitlepunct}}%
\printfield{booktitleaddon}}
\renewbibmacro*{journal}{%ref biblatex.def
\ifboolexpr{
test {\iffieldundef{journaltitle}}
and
test {\iffieldundef{journalsubtitle}}
}
{}
{\printtext[journaltitle]{%
\printfield[titlecase:journaltitle]{journaltitle}%
\setunit{\subtitlepunct}%
\printfield[titlecase:journaltitle]{journalsubtitle}}%
\newunit}%
\iffieldundef{journaltitleaddon}
{}
{\printfield{journaltitleaddon}}}
\begin{document}
\cite{5595728,8739605}
\printbibliography[heading=bibliography]
\end{document}