latex中生成表格形式的参考文献表

1. 引言

一般数据中的参考文献表从内容上看是文本字符串,从格式上看是由一个一个段落构成的。通常latex中的参考文献表是一个由list环境构成的文本块,内部的每一项是由list环境设置参数确定格式的段落。所谓我们调整文献表的段落格式是:(1) 通过对thebibliography环境重定义(过程中设置list环境的参数),这是传统参考文献生成的方法。(2) 通过定义defbibenvironment命令重定义bibliography环境来实现的,这是基于biblatex生成参考文献的方法。

而我们有时有需求希望将参考文献放大一个框架里面,如果参考文献表作为整体放入,那么实现是比较简单的,只要在在参考文献表外面加上需要的框架即可。然而如果要将参考文献表中的每条参考文献单独的放入框架中,比如将参考文献表以表格形式来显示,即将每一条参考文献作为表格的一行来显示,显然这是一个比较麻烦的问题。

传统参考文献生成的方法,由于thebibliography环境是显示的核心,必须要对其做定义修改,比如在其内部使用表格,同时仍然兼具文献引用关联和超链接的功能。对于每条参考文献则需要显式的给出表格内容所需格式即加入&\hline等命令,这通过手写或者修改bst样式来直接在bbl文件中输出。上述虽然应该都可以实现,但却是一个相当复杂的过程。

而基于biblatex生成参考文献的方法,由于其完全获取参考文献信息的特点在这种复杂任务中是有优势的,可以比较方便的实现上述目标)。下面我们来介绍怎么操作。

2. 原理

biblatex生成参考文献完全是在tex环境中进行,因此每一条参考文献的输出实质上是一个递归的解析数据并输出数据的过程,在这个过程中如果我们能够在输出的过程中添加上表格格式的标识命令,并在全部参考文献信息外面套上一个表格环境就能够得到表格形式的参考文献表。而这个功能是由biblatex-ext 宏包完成了,因此对于我们使用者来说,问题就会简单得多了,只要学会使用即可。

表格形式的文献输出命令为:|\printbibtabular
其参数类似于\printbibliography,用法也相同。

其输出格式本质上是由|\defbibtabular定义的bibtabular环境决定的,所以我们要生成什么样的表格就是要定义什么样的bibtabular环境。

比如:

\defbibtabular{bibtabular}{\begin{longtable}{|c|p{0.85\textwidth}|}\hline序号 & 文献目录 \\\hline}{\end{longtable}}{\anchor{\printfield{labelnumber}} & \driver{}\\\hline}
\end{codetex}

基于上述设置,我们就可以利用printbibtabular输出一个两列的简单表格的文献表。

3. 实践

上面给出表格设置是比较简单的,展示基本原理,下面我们给出两个稍复杂的示例,内容不多介绍了,读者可以直接下载代码运行。

示例一:将作者和文献标题分两列显示

\documentclass{ctexart}\usepackage[style=gb7714-2015]{biblatex}
\usepackage{biblatex-ext-tabular}\usepackage{array,longtable}\newcolumntype{L}[1]{%>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}\defbibtabular{bibtabular}{\setlength{\LTpre}{0pt}%\setlength{\LTpost}{0pt}%\renewcommand*{\arraystretch}{2}%\begin{longtable}{%@{}|L{\dimexpr0.35\textwidth-\tabcolsep\relax}|L{\dimexpr0.65\textwidth-\tabcolsep\relax}|@{}}\hline\textbf{Author} & \textbf{Title}\\\hline\endfirsthead}{\end{longtable}}{\anchor{\printnames{author}}& \plainlang{\printfield{title}}\\\hline}\begin{filecontents}{\jobname.bib}
@book{brooks_TroublingConfessionsSpeaking_2000,title = {Troubling {{Confessions}}: Speaking {{Guilt}} in {{Law}} and {{Literature}}},author = {Brooks, Peter},date = {2000},publisher = {{University of Chicago Press}},location = {{Chicago}}
}@article{chamberlain_SearchCivilSociety_1993,title = {On the {{Search}} for {{Civil Society}} in {{China}}},author = {Chamberlain, Heath B.},date = {1993-04},volume = {19},number = {2},pages = {199--215}
}@incollection{duwei*fokema_ZouXiangXinShiJieZhuYi_1999,title = {走向新世界主义},booktitle = {全球化与后殖民批评},author = {杜威·佛克马},editor = {王宁 and 薛晓源},date = {1999},pages = {247--266},publisher = {中央编译出版社},location = {北京}
}@thesis{fangmingdong_LuoLongJiZhengZhiSiXiangYanJiu19131949_2000,type = {博士},title = {罗隆基政治思想研究(1913—1949)},author = {方明东},date = {2000},institution = {北京师范大学历史系},location = {北京}
}@incollection{schfield_ImpactScarcityPlenty_1983,title = {The {{Impact}} of {{Scarcity}} and {{Plenty}} on {{Population Change}} in {{England}}},booktitle = {Hunger and {{History}}: The {{Impact}} of {{Changing Food Production}} and {{Consumption Pattern}} on {{Society}}},author = {Schfield, R. S.},editor = {Rotberg, R. I. and Rabb, T. K.},date = {1983},pages = {55--88},publisher = {{Cambridge University Press}},location = {{Cambridge, MA}}
}@book{shitenghuixiu_ZhongGuoRenLiuXueRiBenShi_1982,title = {中国人留学日本史},author = {实藤惠秀},translator = {谭汝谦 and 林启彦},date = {1982},publisher = {香港中文大学出版社},location = {香港}
}@article{weiliying_LunJinDaiXiBeiRenKouBoDongDeZhuYaoYuanYin_1990,title = {论近代西北人口波动的主要原因},author = {{魏丽英}},date = {1990},journaltitle = {社会科学},number = {6}
}
\end{filecontents}\addbibresource{\jobname.bib}\begin{document}
\nocite{*}\printbibtabular
\end{document}

结果为:

示例二:将序号和文献内容分两列显示

\documentclass{ctexart}\usepackage[style=gb7714-2015]{biblatex}
\usepackage{biblatex-ext-tabular}\usepackage{array,longtable,booktabs}\newcolumntype{L}[1]{%>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}\newcolumntype{C}[1]{%>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}\defbibtabular{bibtabular}{\setlength{\LTpre}{0pt}%\setlength{\LTpost}{0pt}%\renewcommand*{\arraystretch}{2}%\begin{longtable}{%@{}|C{\dimexpr0.15\textwidth-\tabcolsep\relax}|L{\dimexpr0.85\textwidth-\tabcolsep\relax}|@{}}\hline序号 & \multicolumn{1}{c|}{作者、标题等文献信息}\\\hline\endfirsthead}{\end{longtable}}{\anchor{\mkgbnumlabel{\printfield{labelnumber}}}& \driver{} \\\hline}\begin{filecontents}{\jobname.bib}
@book{brooks_TroublingConfessionsSpeaking_2000,title = {Troubling {{Confessions}}: Speaking {{Guilt}} in {{Law}} and {{Literature}}},author = {Brooks, Peter},date = {2000},publisher = {{University of Chicago Press}},location = {{Chicago}}
}@article{chamberlain_SearchCivilSociety_1993,title = {On the {{Search}} for {{Civil Society}} in {{China}}},author = {Chamberlain, Heath B.},date = {1993-04},volume = {19},number = {2},pages = {199--215}
}@incollection{duwei*fokema_ZouXiangXinShiJieZhuYi_1999,title = {走向新世界主义},booktitle = {全球化与后殖民批评},author = {杜威·佛克马},editor = {王宁 and 薛晓源},date = {1999},pages = {247--266},publisher = {中央编译出版社},location = {北京}
}@thesis{fangmingdong_LuoLongJiZhengZhiSiXiangYanJiu19131949_2000,type = {博士},title = {罗隆基政治思想研究(1913—1949)},author = {方明东},date = {2000},institution = {北京师范大学历史系},location = {北京}
}@incollection{schfield_ImpactScarcityPlenty_1983,title = {The {{Impact}} of {{Scarcity}} and {{Plenty}} on {{Population Change}} in {{England}}},booktitle = {Hunger and {{History}}: The {{Impact}} of {{Changing Food Production}} and {{Consumption Pattern}} on {{Society}}},author = {Schfield, R. S.},editor = {Rotberg, R. I. and Rabb, T. K.},date = {1983},pages = {55--88},publisher = {{Cambridge University Press}},location = {{Cambridge, MA}}
}@book{shitenghuixiu_ZhongGuoRenLiuXueRiBenShi_1982,title = {中国人留学日本史},author = {实藤惠秀},translator = {谭汝谦 and 林启彦},date = {1982},publisher = {香港中文大学出版社},location = {香港}
}@article{weiliying_LunJinDaiXiBeiRenKouBoDongDeZhuYaoYuanYin_1990,title = {论近代西北人口波动的主要原因},author = {{魏丽英}},date = {1990},journaltitle = {社会科学},number = {6}
}
\end{filecontents}\addbibresource{\jobname.bib}\begin{document}
\nocite{*}\printbibtabular
\end{document}

结果为:

4. 小结

本文给出了latex中基于biblatex的参考文献生成方法中产生表格式的文献表的方法。用户可以通过自定义表格格式的方式比较方便的生成表格文献表,这有赖于biblatex维护者对于biblatex-ext的实现。这个功能也进一步展现了latex中biblatex生成参考文献表的强大能力。

latex中生成表格形式的参考文献表相关推荐

  1. java word模板占位符_word模板导出的几种方式:第一种:占位符替换模板导出(只适用于word中含有表格形式的)...

    1.占位符替换模板导出(只适用于word中含有表格形式的): /// /// 使用替换模板进行到处word文件 /// public class WordUtility { private objec ...

  2. java生成pdf表格_java在pdf中生成表格的方法

    1.目标 在pdf中生成一个可变表头的表格,并向其中填充数据.通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格. 每天生成一个文件夹存储 ...

  3. LaTex 中 控制表格的行距

    LaTex 中 控制表格的行距 一个比较简单的方法是:表格中,在\begin{table}下加上 \renewcommand\arraystretch{1.5} \begin{table*} \ren ...

  4. 使用spire.office在Word中生成表格

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 使用spire.office在Word中生成表格 前言 一.动态生成表格 二.使用步骤 1.引入库 2.实例 总结 前言 遇到一个需要 ...

  5. LaTeX中常用表格制作方法总结

    文章目录 前言 最基本的无线表格: tabbing 基本语法 一般表格: tabular/array 基本语法 基本调整命令 科研论文: 三线表(`toprule`) 基本语法 广泛应用: 定宽表(` ...

  6. Latex中的表格用法总结(三)——表格的合并分割,字体旋转,表头语句切割

    写在前面的话 无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程 https://w ...

  7. POI之PPT中生成表格简单实例

    开心一笑 昨晚被一道神题考住了! ( )( ) ( )2 4 6 7 8 让我填空-我按照数列组合算了一下午都不对 最后, 答案是这样的 (门前大桥下)(游过一群鸭) (快来快来数一数) 2 4 6 ...

  8. Python办公自动化实战 09 | Python-docx库:Python与Word的完美结合_ 如何在Word中生成表格?把Python办公自动化进行到底

    一.专题内容简介 本小节主要演示了怎么向Word文档中创建表格并插入数据,并且对表格格式做个性化的设定. 二.专题案例效果 三.专题内容 3.1 创建表格并赋值 在使用Python-docx包对表格进 ...

  9. LaTex 自动生成IEEE格式的参考文献

    因为IEEE要求的参考文献格式跟平时用到的有所不同,研究了一阵子才知道怎么弄,记录一下,怕忘了. 首先下一个IEEE的论文模板,进入官网后,点击下载ieeeconf.zip,解压后里面的就是latex ...

最新文章

  1. 阿里云服务器ECS配置LNMP
  2. 万字总结:学习MySQL优化原理,这一篇就够了!
  3. LA3602DNA序列
  4. python拟牛顿法迭代点绘制_拟牛顿法python
  5. jQuery:1.5.4.3,表格变色(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)...
  6. picsart旧版本_picsart旧版本中文下载-picsart老版本软件8.5.6 历史版本-东坡下载
  7. Python爬虫爬取淘宝天猫,处理url正确的解码方法
  8. likeshop单商户SAAS商城系统无限多开
  9. NOWAIT及SKIP LOCKED的使用
  10. Eclipse中出现无法找到Maven包Active Maven Profiles (comma separated)
  11. 服务器计算机性能测试,服务器平台计算性能工具Linpack服务器性能测试利器_一_.pdf...
  12. 51-20210316华为海思Hi3516DV300的linux系统编译2(SPI模式)
  13. 传统6大茶类都有哪些
  14. php网盘 开源 web版 手机版
  15. [NOI2017]蔬菜
  16. C++课程设计(校车订票系统)
  17. vue-recaptcha 谷歌机器人验证
  18. 从几个方面制作网站seo优化整体方案
  19. 文件同步详细操作(NFS,rsync)
  20. 如何让网站在360搜索结果中显示“官网”标志?

热门文章

  1. 怎么用python制作超级玛丽_Python实现超级玛丽游戏系列教程01玛丽登场
  2. Joomla模板安装需安装范例数据库
  3. 数控机床加工总出错,这些“防错知识”,牢记!
  4. b站python_B站最受欢迎的Python教程,免费教学视频可以下载了
  5. AndroidUtils:Android开发不得不收藏的Utils工具类
  6. 一个未完成的文字rpg打怪小游戏。。。(难得写点东西)
  7. shell输出彩虹色
  8. 三万英尺看 Access 2010
  9. linux下wma转换mp3统一音量的方法
  10. 后来,我去了拼多多,做了数据分析师。