sjtug / SJTUThesis

上海交通大学 LaTeX 论文模板 | Shanghai Jiao Tong University LaTeX Thesis Template
Apache License 2.0
3.31k stars 790 forks source link

参考文献的顺序 #300

Closed zhulinmath closed 6 years ago

zhulinmath commented 6 years ago

问题描述: 你好,我是数学系的学生。老师说数学博士学位论文中的参考文献要按照字母顺序排不是按照文中出现顺序排,请问有没有办法实现

修改于20180327上午: 你好, 昨天刚刚预答辩完成, 导师对于参考文献还是不太满意, 我不知道哪里规定要用国家标准,但是问了数学院里的管研究生答辩的老师,她推荐了如下的《上海交通大学博士、硕士学位论文撰写指南》,其中说"参考文献、公式一律采用阿拉伯数字连续(或分章)编号",所以估计你的建议不行(按照出版者编年制连数字编号都没有了),最后说到"学院学位评定委员会可根据学科特点自行制定论文撰写格式",所以我希望 1.能否不按国家标准实现论文按作者字母顺序编号 2.能否改掉那个三名以上作者之后必须省略的规定,因为我们数学专业本来作者就不多,最多就4到5个,而昨天有一篇论文正好导师是第四作者,他说你怎么碰到我就给我“等掉了”, 我希望能改一下这种设定,谢谢!

系统信息:

日志信息:

AlexaraWu commented 6 years ago

根据国家标准,参考文献表可以按顺序编码制组织,也可以按著者-出版年制组织。模版默认使用的是顺序编码制,不过模版使用的 biblatex-gb7714-2015 宏包也提供了著者-出版年制的实现。我不知道你所说的是不是指著者-出版年制,你可试一下看看。设置 stylegb7714-2015ay 即可:

\RequirePackage[backend=biber,style=gb7714-2015ay]{biblatex}

国家标准中的相关规定可见《GB/T 7714-2015 信息与文献 参考文献著录规则》中第 9、10 节。

zhulinmath commented 6 years ago

你好, 昨天刚刚预答辩完成, 导师对于参考文献还是不太满意, 我不知道哪里规定要用国家标准,但是问了数学院里的管研究生答辩的老师,她推荐了如下的《上海交通大学博士、硕士学位论文撰写指南》,其中说"参考文献、公式一律采用阿拉伯数字连续(或分章)编号",所以估计你的建议不行,最后说到"学院学位评定委员会可根据学科特点自行制定论文撰写格式",所以我希望 1.能否不按国家标准实现论文按作者字母顺序编号 2.能否改掉那个三名以上作者之后必须省略的规定,因为我们数学专业本来作者就不多,最多就4到5个,而昨天有一篇论文正好导师是第四作者,他说你怎么碰到我就给我“等掉了”, 我希望能改一下这种设定,谢谢!

hushidong commented 6 years ago

这个问题可以通过添加选项来解决,比如:

\usepackage[backend=biber,style=gb7714-2015ay,maxbibnames=5,minbibnames=5]{biblatex}

具体示例如下:

`\documentclass[twoside]{article} \usepackage{ctex} \usepackage{geometry} \geometry{paperwidth=21cm,paperheight=29cm,top=1.5cm, bottom=1.5cm, left=2.54cm,right=2.54cm} \usepackage{xcolor} \usepackage[CJKbookmarks,colorlinks,bookmarksnumbered=true,pdfstartview=FitH,linkcolor=blue]{hyperref} \usepackage[backend=biber,style=gb7714-2015ay,maxbibnames=5,minbibnames=5]{biblatex}%align=gb7714-2015 \usepackage{filecontents} \begin{filecontents}{\jobname.bib} @Book{中国企业投资协会2015--, Title = {投资台湾:大陆企业赴台投资指南}, Address = {北京}, Author = {中国企业投资协会 and 台湾并购与私募股权协会 and 汇盈国际投资集团 and 国际投资集团}, Publisher = {九州出版社}, Year = {2015} } @Inproceedings{r27-BenHadjAlaya-FekiA.2008-1-5, Title = {Interference cartography for hierarchical dynamic spectrum access}, Address = {Chicago, IL}, Author = {{Ben Hadj Alaya-Feki A.} and B. Sayrac and S. Ben Jemaa and E. Moulines}, Booktitle = {Proc. IEEE Symp. on New Frontiers in Dynamic Spectrum Access Networks (DySPAN)}, Date = {2008-10}, Pages = {1-5} } @Book{Simon2001--, Title = {Spread Spectrum Communications Handbook}, Address = {New York City}, Author = {Simon, M. K. and Omura,J. K. and Scholtz,R. A. and Levitt,B. K.}, Publisher = {McGraw-Hill, Inc.}, Year = {2001} } \end{filecontents} \addbibresource{\jobname.bib}

\begin{document} 编译信息:biblatex v\versionofbiblatex;gb7714-2015. version number \versionofgbtstyle.

\section{文献表} 文献 \cite{中国企业投资协会2015--} \cite{r27-BenHadjAlaya-FekiA.2008-1-5} \cite{Simon2001--}

\printbibliography%[heading=subbibintoc,title=【参考文献】] \end{document} `

具体结果为:

default

zhulinmath commented 6 years ago

你好,谢谢你关于作者数量大于3的完美解决,但是国标中的参考文献按年份排序的格式有点让人不好接受,而且与学校规定中"参考文献、公式一律采用阿拉伯数字连续(或分章)编号"不符,这里完全没有编号了,我在想能否不利用这句代码\usepackage[backend=biber,style=gb7714-2015ay,maxbibnames=5,minbibnames=5], 例如用style=其他的包来进行编译,但是我也不清楚有什么样的包。 总之,我希望的参考文献能既按字母顺序排又有连续的数字编号,所以可能解决的办法是不采用国标gb7714。再次感谢!

hushidong commented 6 years ago

你的要求是,正文中标注标签用作者和年份表示,然后文献表是用数字序号的么?

那么你可以采用如下方式:

`\documentclass[twoside]{article} \usepackage{ctex} \usepackage{geometry} \geometry{paperwidth=21cm,paperheight=29cm,top=1.5cm, bottom=1.5cm, left=2.54cm,right=2.54cm} \usepackage{xcolor} \usepackage[CJKbookmarks,colorlinks,bookmarksnumbered=true,pdfstartview=FitH,linkcolor=blue]{hyperref} \usepackage[backend=biber,bibstyle=gb7714-2015,citestyle=gb7714-2015ay,maxbibnames=5,minbibnames=5]{biblatex}%align=gb7714-2015 \usepackage{filecontents} \begin{filecontents}{\jobname.bib} @Book{中国企业投资协会2015--, Title = {投资台湾:大陆企业赴台投资指南}, Address = {北京}, Author = {中国企业投资协会 and 台湾并购与私募股权协会 and 汇盈国际投资集团 and 国际投资集团}, Publisher = {九州出版社}, Year = {2015} } @Inproceedings{r27-BenHadjAlaya-FekiA.2008-1-5, Title = {Interference cartography for hierarchical dynamic spectrum access}, Address = {Chicago, IL}, Author = {{Ben Hadj Alaya-Feki A.} and B. Sayrac and S. Ben Jemaa and E. Moulines}, Booktitle = {Proc. IEEE Symp. on New Frontiers in Dynamic Spectrum Access Networks (DySPAN)}, Date = {2008-10}, Pages = {1-5} } @Book{Simon2001--, Title = {Spread Spectrum Communications Handbook}, Address = {New York City}, Author = {Simon, M. K. and Omura,J. K. and Scholtz,R. A. and Levitt,B. K.}, Publisher = {McGraw-Hill, Inc.}, Year = {2001} } \end{filecontents} \addbibresource{\jobname.bib}

\begin{document} 编译信息:biblatex v\versionofbiblatex;gb7714-2015. version number \versionofgbtstyle.

\section{文献表} 文献 \cite{中国企业投资协会2015--} \cite{r27-BenHadjAlaya-FekiA.2008-1-5} \cite{Simon2001--}

\printbibliography%[heading=subbibintoc,title=【参考文献】] \end{document} `

结果为:

default

如果正文中也是用数字序号的话,那就更简单了,直接用gb7714-2015即可:

\usepackage[backend=biber,style=gb7714-2015,maxbibnames=5,minbibnames=5]{biblatex}

zhulinmath commented 6 years ago

你好,我的要求是参考文献要按照字母顺序排序且要用数字编号,而hushidong同学你的解答方案似乎又回到了按文章中出现的顺序排序了,注意参考文献的顺序和数字编号是两码事情。 例如,我想实现如下的形式 这是一篇数学论文的部分参考文献截图,其中参考文献是按照第一作者字母顺序排序(并非是文中出现的顺序),并用数字编号,由于参考文献较少这是我用手输的,由于没用国标gb7714所以一些不符合国标的输入格式请忽视 default

hushidong commented 6 years ago

哦,我之前没有理解你的需求,你这样解析就清楚了。也是可以实现的,比如:

\usepackage[backend=biber,bibstyle=gb7714-2015,citestyle=gb7714-2015ay,maxbibnames=5,minbibnames=5,sorting=nyt]{biblatex}

举例:

\documentclass[twoside]{article}
\usepackage{ctex}
\usepackage{geometry}
\geometry{paperwidth=21cm,paperheight=29cm,top=1.5cm, bottom=1.5cm, left=2.54cm,right=2.54cm}
\usepackage{xcolor}
\usepackage[CJKbookmarks,colorlinks,bookmarksnumbered=true,pdfstartview=FitH,linkcolor=blue]{hyperref}
%\usepackage[backend=biber,style=gb7714-2015,maxbibnames=5,minbibnames=5]{biblatex}
\usepackage[backend=biber,bibstyle=gb7714-2015,citestyle=gb7714-2015ay,maxbibnames=5,minbibnames=5,sorting=nyt]{biblatex}%align=gb7714-2015
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}

@Inproceedings{refa,
  Title                    = {Interference cartography for hierarchical dynamic spectrum access},
  Address                  = {Chicago, IL},
  Author                   = {AlayaFeki, A. and B. Sayrac and S. Ben Jemaa and E. Moulines},
  Booktitle                = {Proc. IEEE Symp. on New Frontiers in Dynamic Spectrum Access Networks (DySPAN)},
  Date                     = {2008-10},
  Pages                    = {1-5}
}

@Inproceedings{refb,
  Title                    = {Interference cartography for hierarchical dynamic spectrum access},
  Address                  = {Chicago, IL},
  Author                   = {BlayaFeki, A. and B. Sayrac and S. Ben Jemaa and E. Moulines},
  Booktitle                = {Proc. IEEE Symp. on New Frontiers in Dynamic Spectrum Access Networks (DySPAN)},
  Date                     = {2008-10},
  Pages                    = {1-5}
}

@Inproceedings{refb,
  Title                    = {Interference cartography for hierarchical dynamic spectrum access},
  Address                  = {Chicago, IL},
  Author                   = {BlayaFeki, A. and B. Sayrac and S. Ben Jemaa and E. Moulines},
  Booktitle                = {Proc. IEEE Symp. on New Frontiers in Dynamic Spectrum Access Networks (DySPAN)},
  Date                     = {2008-10},
  Pages                    = {1-5}
}

@Inproceedings{refc,
  Title                    = {Interference cartography for hierarchical dynamic spectrum access},
  Address                  = {Chicago, IL},
  Author                   = {MlayaFeki, A. and B. Sayrac and S. Ben Jemaa and E. Moulines},
  Booktitle                = {Proc. IEEE Symp. on New Frontiers in Dynamic Spectrum Access Networks (DySPAN)},
  Date                     = {2008-10},
  Pages                    = {1-5}
}

@Book{Simon2001--,
  Title                    = {Spread Spectrum Communications Handbook},
  Address                  = {New York City},
  Author                   = {Simon, M. K. and Omura,J. K. and Scholtz,R. A. and Levitt,B. K.},
  Publisher                = {McGraw-Hill, Inc.},
  Year                     = {2001}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
编译信息:biblatex v\versionofbiblatex;gb7714-2015*.* version number \versionofgbtstyle.

\section{文献表}
文献
\cite{refc}
\cite{refa}
\cite{refb}
\cite{Simon2001--}

\printbibliography%[heading=subbibintoc,title=【参考文献】]
\end{document} 

结果为:

a

zhulinmath commented 6 years ago

非常感谢你的解答,我试了一下,是可以的,唯一的问题新增的sorting命令对于中文文献的作用是变成了逆序了,就是现在中文文献是先排z最后再排a,例如参见下面 default 不知能否改进?

hushidong commented 6 years ago

你是要按拼音还是笔画排序? 这个排序需要biber编译时加选项,默认是按unicode编码顺序排列的。biber命令为

%按拼音排序,biber命令 biber -l zhpinyin jobname %按笔画排序,biber命令 biber -l zhstroke jobname

zhulinmath commented 6 years ago

你好,我需要拼音排序,现在是按unicode编码排序是吗?现在的中文四篇文献是按朱、章、陈、鲍的顺序排的。 另外,我现在编译是直接双击compile.bat文件进行编译的,编译一气呵成,我想请问怎么在编译的时候输入如上的选项?

hushidong commented 6 years ago

可以手动编译

xelatex -no-pdf thesis biber --l zh__pinlin thesis xelatex thesis xelatex thesis

把这几条命令一条一条执行。或者把他们放一个bat文件中自动执行。

或者

hushidong commented 6 years ago

修改makefile文件中的 biber --debug $(THESIS) 为 biber --l zh__pinyin $(THESIS)

然后再用compile.bat

这种方法我没试,你也可以问一下模板开发者改哪。

hushidong commented 6 years ago

可以请教一下@AlexaraWu ,编译脚本怎么改。

AlexaraWu commented 6 years ago

bat 脚本使用 latexmk 编译文档,在 .latexmkrc 文件里加一行:

$biber = 'biber -l zh__pinyin %O %S';

应该就可以了。

zhulinmath commented 6 years ago

问题已经完美解决了,谢谢各位大神!