latex参考文献中修改指定作者的格式来突出显示

1.引言

在撰写学位论文过程中,特别是在附作者在学期间的研究或工作成果的时候,往往需要突出显示文献列表作者的信息方便他人看到(假设研究成果以文献表的形式呈现),所以需要修改参考文献中指定作者的格式来突出进行显示。

传统的方法是直接在bib文件中在作者域附加上一些格式信息来实现突出显示。比如:

@MISC{Article1,
AUTHOR = {Zhang\textsuperscript{*}, San and \textbf{Li}, \textbf{Si} and Last3, First3}
}

这个bib信息中,我们对第一个作者的姓后面添加了一个星号,并采用粗体显示了第二个作者。
然而这种方式首先破坏了bib文件的纯净性,并可能会影响作者信息的解析,而且这种方式不那么的优雅,复用度低,无论格式需求或者信息需求有更改,都需要修改bib文件。所以这并不是一种令人满意的方式。

为此我们介绍一种比较优雅的方式来实现(需要注意的是这种方式是基于biblatex的数据注解机制的)。

2. biblatex的数据注解机制

数据注解(data annotations)就是一种方便解决附加信息问题的方法。通过允许用户在文献数据源中添加某种语义信息(而不是排版标记),使得文献样式可以在标记时使用该信息。参考:biblatex.pdf,biblatex-zh-cn.pdf.

数据注解同样是在bib文件中做修改,但不修改关键的数据域,而是添加一个注解的域。比如:

@MISC{Article1,
AUTHOR = {Zhang, San and Li, Si and Last3, First3}
}
AUTHOR+an={1=corresponding,2=thesisauthor}

通过添加AUTHOR+an域,其形式是:{要被注解的域名+an}。对应内容(等号后面花括号内的)的形式则是:{=信息}。
对于存在多个项的域比如author域,用数字表示其中的第几项,比如{1=corresponding;2=thesisauthor}表示第一个作者注释corresponding信息,第二个作者注释thesisauthor信息,便于强调显示。注意内部的多个注释信息用–分号–分割。

如此,由于我们为author添加了注解信息,那么这些信息在处理过程中会被biblatex读取,基于这些信息我们可以做需要格式修改。

3. 根据注解信息做格式修改

biblatex的格式修改在无法通过选项修改的情况下,通常需要修改宏来实现,但很容易理解。比如我们要给通信作战加上星号,给学位论文作者加粗,那么可以做如下格式修改:

\renewcommand*{\mkbibnamegiven}[1]{%
\ifitemannotation{thesisauthor}
{\textbf{#1}}%
{#1}\ifitemannotation{corresponding}{\textsuperscript{*}}{}%
}\renewcommand*{\mkbibnamefamily}[1]{%
\ifitemannotation{thesisauthor}
{\textbf{#1}}
{#1}}

这样就对注释为thesisauthor的作者的姓和名加粗,并在名后面加上信号。

也可以添加其它格式比如颜色,并只在文献表中显式,而不在标注中显示:

\renewcommand*{\mkbibnamegiven}[1]{%
\ifitemannotation{thesisauthor}
{\ifbibliography{\textcolor{red}{\textbf{#1}}}{#1}}%
{#1}\ifbibliography{\ifitemannotation{corresponding}{\textsuperscript{*}}{}}{}%
}\renewcommand*{\mkbibnamefamily}[1]{%
\ifitemannotation{thesisauthor}
{\ifbibliography{\textcolor{red}{\textbf{#1}}}{#1}}
{#1}}

其中\ifbibliography做一个判断是否在文献表中。\textcolor是加上颜色。

4. 在文献末尾添加注释信息

在文献末尾添加注释信息,我们则不采用这种数据注解的方式,而是直接使用annotation域来保存注释信息,比如:

@MISC{Article1,
AUTHOR = {Zhang, San and Li, Si and Last3, First3}
}
AUTHOR+an={1=corresponding,2=thesisauthor},
annotation={(SCI检索)}

在使用gb7714-2015样式情况下,将选项gbannote设置为true即可输出该注释信息。

5. 代码实践

我们用一个完整的示例来测试:


\begin{filecontents*}{\jobname.bib}
@phdthesis{zhao2003,author  = {赵某某},title   = {学位论文题名},school  = {某大学},year    = {2003},type    = {[博士]},address = {某地},pages={21-24},AUTHOR+an = {1=thesisauthor},annotation={优秀论文}
}@Inproceedings{Nemec1997-209-214,Title                    = {Force control of redundant robots},Author                   = {B Nemec and Zhao, Mou Mou},Booktitle                = {Processings of Symposium on Robot Control},Pages                    = {209-214},Country                  = {Nantes France},Year                     = {1997},AUTHOR+an = {1=corresponding;2=thesisauthor},annotation={EI检索}
}@Article{Chiani1998-2998-3008,Title                    = {Error probability for block codes over channels with block interference},Author                   = {Zhao, Mou Mou and Chiani, M.},Journal                  = {IEEE Trans. Inf. Theory},Number                   = {7},Pages                    = {2998-3008},Volume                   = {44},Year                     = {1998},AUTHOR+an = {1=thesisauthor;2=corresponding},annotation={SCI检索}
}
\end{filecontents*}\documentclass{ctexart}
\usepackage{xcolor}
\usepackage[style=gb7714-2015ay,gbannote=true]{biblatex}%,gbnamefmt=pinyin\makeatletter
\renewcommand*{\mkbibnamegiven}[1]{%
\ifitemannotation{thesisauthor}
{\ifbibliography{\textcolor{red}{\textbf{#1}}}{#1}}%
{#1}\ifbibliography{\ifitemannotation{corresponding}{\textsuperscript{*}}{}}{}%
}\renewcommand*{\mkbibnamefamily}[1]{%
\ifitemannotation{thesisauthor}
{\ifbibliography{\textcolor{red}{\textbf{#1}}}{#1}}
{#1}}
\makeatother\addbibresource{\jobname.bib}\begin{document}\cite{zhao2003,Nemec1997-209-214,Chiani1998-2998-3008}\printbibliography[title=在学期间研究成果]\end{document}

结果为:

6. 小结

文本介绍了利用biblatex的数据注解机制将latex生成参考文献中的制定作者突出显示,提供了一种优雅的实现机制。可以用于学位论文撰写过程中参考文献,特别是附录的研究成果列表的输出。

7. 参考:

  1. biblatex.pdf
  2. biblatex-zh-cn.PDF

latex参考文献中修改指定作者的格式来突出显示相关推荐

  1. LaTeX参考文献中遇到错误:Missing $ inserted. [\printbibliography[heading=bibintoc]]

    博主最近在撰写论文的过程中,由于需要在参考文献中添加网址,在编译过程中遇到了如下报错: Missing $ inserted. [\printbibliography[heading=bibintoc ...

  2. 使用EndNote X9引用参考文献并在Word中修改生成的引文格式(编号、字体大小)GBT7714(numeric)

    使用endnote写论文引用参考文献并进行管理真的很方便,根据个人需求,碰到的一些小问题和解决方法如下: 1.修改word中插入后生成的引用文献的字体,首先是如下操作,可修改一种字体和大小,行间距,缩 ...

  3. Latex参考文献中作者姓名显示为横线

    文章目录 1 问题描述 2 问题解决 参考文献 1 问题描述   窝使用的IEEE的模板,其他的模板暂时没有遇见这样的情况.原因为出现了同样的作者的文献.显示如下: 2 问题解决   即使改变bib文 ...

  4. latex参考文献中输入

    $\&$ 示例 \bibitem{ref_article3} LIM W Y B, LUONG N C, HOANG D T, et al. Federated learning in mob ...

  5. 微信小程序中new Date()转换时间时间格式时IOS 显示NaN异常问题

    原因是ios不支持时间为 2020-05-29这种格式的日期,必须转换为2020/05/29这种格式才能使用new Date()进行转换 解决方法: let data= '2020-05-29 12: ...

  6. 去掉a标签下划线_条码软件如何修改条码标签的字体格式

    在中琅条码软件制作条码标签时,设置修改字体格式是非常常用的一项操作,在其他的办公软件中,我们可以直接看到修改字体的工具,直接选中文字点击对应工具就可以修改,那么在条码软件中如何修改条码标签上的字体格式 ...

  7. 如何隐藏table 中的指定列?

    欢迎关注博主公众号:[纯洁的明依]文章由陈晓阳原创. 本人微信:chenxiaoyangzxy. 免费提供本人大量学习资料. 如何隐藏table 中的指定列?当页面需要显示的内容太多,而页面宽度又不够 ...

  8. biblatex中如何修改参考文献中日期的著录格式

    biblatex中如何修改参考文献中日期的著录格式 日期是参考文献中重要著录项,因此通常具有一定格式要求.根据国标GB/T 7714-2015要求,不同日期具有不同的格式,比如: 引用日期通常由方括号 ...

  9. CAS latex模板中参考文献使用APA引用格式的解决方案

    CAS latex模板中参考文献使用APA引用格式的解决方案 问题描述 解决方案 转发说明 问题描述 CAS模板中参考文献如何使用apa引用格式 解决方案 \usepackage[natbibapa] ...

最新文章

  1. modelsim 各版本 网盘_阿里云盘官方下载-阿里云盘最新版本 v1.0.1
  2. 【计算机网络】HTTP 与 HTTPS ( HTTPS 简介 | HTTP 通信过程 )
  3. aspx后缀映射成html
  4. 【题解】luogu P1941 飞扬的小鸟
  5. java 8 方法引用(method references)
  6. CS 期刊哪家强?CCF 发布最新期刊分级目录!
  7. 【Day01】你有封装过 axios 吗?主要是封装哪些方面?如何中断 axios 请求?
  8. Java Web实训项目:西蒙购物网(下)
  9. Linux进不了进程,既然在Linux中程序不是进程,那么到底什么才算是进程呢?
  10. Codeforces Gym 101142 C. CodeCoder vs TopForces(思维+图论)
  11. redhat7 配置静态ip
  12. 欧姆龙NX1P控制器及ST编程
  13. Python学习第五弹【正则表达式】-kidult
  14. android高仿股票源码,StockChart 自定义股票行情图,高仿某币 app 行情图 @codeKK Android开源站...
  15. 快速学习Groovy
  16. 有哪些值得推荐的,关于脑科学认知研究的经典书籍 ?
  17. 论文投稿指南——中国(中文EI)期刊推荐(第6期)
  18. Arduino框架下 ESP32看门狗使用示例
  19. CentOS7 配置搭建安装LNMP
  20. lammps教程:平均值输出fix ave/time命令详解

热门文章

  1. php做微信支付和支付宝支付的方法
  2. android异步加载视频缩略图,Android 视频缩略图的缓存机制和异步加载
  3. 数据挖掘 第四篇:OLS回归分析
  4. 4大区块链技术高盈利方式盘点
  5. Linux C/C++编程:netstat分析tcp状态转移(socket通信)
  6. 【刷机】nubia z17 root 刷入twrp
  7. navicat设计表怎么给列加注释(简洁版)
  8. 物流科技杂志物流科技杂志社物流科技编辑部2022年第11期目录
  9. 神秘代码(链接至steam指南)
  10. Symantec赛门铁克官网下载地址