# Office_BibCite **Repository Path**: OpenCEz961/office_bibbcite ## Basic Information - **Project Name**: Office_BibCite - **Description**: 一款Office Word参考文献管理插件,能够在文档中插入、管理、引用文献的标签,并根据指定路径的BibTeX文献库,按照GB/T7714格式生成参考文献列表。 - **Primary Language**: Visual Basic - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-03-20 - **Last Updated**: 2025-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Office_BibCite #### 介绍 一款Office Word参考文献管理插件,能够在文档中插入、管理、引用文献的标签,并根据指定路径的BibTeX文献库,按照GB/T7714格式生成参考文献列表。 在论文写作中,文献管理是一项非常重要但容易出错的任务。在Word环境下,能做到类似LaTeX的标签化引用工具很少,并且这类工具在开发时主要集中在自身的图形化界面和管理当中,对Word的支持有限,因此导致了一个奇怪的现象:小白还在手动写标签、手动给文献排序、手动移除未引用文献,而能熟练使用Tex排版的人基本已经抛弃Word。处在两者之间,或者离不开Word的人则缺少趁手的工具。 部分文献管理工具,例如Zotero在Word当中的集成度有限,并且格式调整较为不便,例如不支持按需进行上标、下标的调整:当对“正文”进行样式调整后,逐个手动调整的上下标全部变成了常规格式,且不支持标签去重。除了自身在生成参考文献的过程中易用性差之外,此类软件最大的缺点在于不能对产生的参考文献进行格式检查和标注,例如期刊在引用时所缺少的卷、年、页码等信息,通过人工逐行校对无疑是一项及其繁琐的工作。 引文的质量与相关性是首要考虑的问题。其格式也很重要,但不需要变得那么的重要。于是在一种非常憋屈且无可奈何的氛围下,小工具诞生了。 #### 软件功能 在Word环境下,小工具能够以最低的学习成本提供: 1. 文献按标签进行绝对引用并自动编号,能处理连续文献的连字符 2. 标签自动去重和固定上标、下标格式化 3. 参考文献缺失项提示,无效引用项以0作为编号,便于快速搜索 4. 生成符合GB/T7714格式的参考文献列表 5. 快捷的文献内容预览,并以正则表达式检索文献库 6. 能够通过编程定制功能和输出格式(VB.Net) 小工具通过解析载入的BibTeX文献库获得其中包含的所有标签与对应文献信息。典型的BibTeX文献格式如下: ``` @book{dirac, title = {The Principles of Quantum Mechanics}, author = {Paul Adrien Maurice Dirac}, year = 1981, publisher = {Clarendon Press}, series = {International series of monographs on physics}, isbn = 9780198520115, keywords = {physics}, } @online{knuthwebsite, title = {Knuth: Computers and Typesetting}, author = {Donald Knuth}, url = {http://www-cs-faculty.stanford.edu/~uno/abcde.html}, keywords = {latex,knuth}, } ``` 每个BibTeX文献以@[文献类别]开头,其后花括弧右侧部分为Key,也就是引用文献时所需的标签。多个文献所组成的文本文件即为BibTeX文献库。 中部为具体内容,以 [子项名称]={[子项内容]} 或 [子项名称]="[子项内容]" 划分。小工具通过正则表达式解析文献库并根据Key和内容生成字典。 当用户引用Key时,首先在文献库字典中查找,若存在对应项则进行编号,最终写入引用的数字序号。在生成参考文献时,根据格式需要去获取文献内部的子项内容,并最终列为参考文献表。 小工具使用域作为标签/字符串存储,利用了ADDIN类型支持Code和Result单独控制的特性进行文献编排。按照域/标签的属性,分为Citation Field 和 Bibliography Placeholder两类,前者提供引用的Key并承载生成的引用序号文本,后者提供文献库的路径信息承载生成的参考文献列表。因此当你展开域时,能够跳过图形界面,按近似于TeX的方式对引用标签进行直接操作。Citation Field在展开后,其中花括号内通过逗号隔开的文本便是文献的引用标签,最终通过刷新文献并写入文档后形成正常的引用序号: ``` ADDIN \obCite{MyCitationKey1,Key2,Key3,…,KeyN} 这是引述文献相关的内容[1,2,3-8]。 ``` 以下是对宏的常用操作: ``` Alt+F9:切换当前文档的所有域显示模式 Ctrl+F9:在当前位置插入域 Shift+F9:切换当前选中域的显示模式 ``` #### 安装教程 1. 首先确保已安装Office Word。小工具需要运行在x64系统上,能够应用于32位和64位的Word程序。需要VSTO2010 Runtime,且.NET Framework版本高于4.7.2,在运行安装程序时会进行检查。已在Office 2016下测试。 2. 下载并安装发行版下的 util_OfficeBibCite_x64.msi 3. 关闭所有Word实例,重新打开Word,顶部应出现 "Office Helper Suite"一栏,选中即能看到 "Office BibCite"相关操作按钮。 3.1 如果安装后未出现“Office Helper Suite”或小工具操作界面,需要通过 文件-选项-加载项进行检查,确认util_OfficeBibCite一项存在。如果该项位域“非活动应用程序加载项”,则需要点击窗口下方的”转到(G)…”按钮,在弹出窗口中勾选该项并确认,此后小工具应正常显示界面。 #### 使用说明 1. 插入文献表占位符,并提供BibTeX文献库相对于当前文档的路径。 ![插入文献表占位符,并提供BibTeX文献库相对路径](demo/pic/util_OfficeBibCite%20%E6%8F%92%E5%85%A5%E6%96%87%E7%8C%AE%E8%A1%A8%E5%8D%A0%E4%BD%8D%E7%AC%A6.gif) 2. 添加引用,并生成文献表 ![添加引用,并生成文献表](demo/pic/util_OfficeBibCite%20%E6%B7%BB%E5%8A%A0%E5%BC%95%E7%94%A8%E5%B9%B6%E7%94%9F%E6%88%90%E6%96%87%E7%8C%AE%E8%A1%A8.gif) 3. 设置文献表段落样式 ![设置文献表段落样式](demo/pic/util_OfficeBibCite%20%E8%AE%BE%E7%BD%AE%E6%96%87%E7%8C%AE%E8%A1%A8%E6%AE%B5%E8%90%BD%E6%A0%BC%E5%BC%8F.gif) 4. 设置引用上下标格式,按住Alt并双击引用标签可选中并打开编辑窗口 ![设置引用上下标格式](demo/pic/util_OfficeBibCite%20%E8%AE%BE%E7%BD%AE%E5%BC%95%E7%94%A8%E4%B8%8A%E4%B8%8B%E6%A0%87%E6%A0%BC%E5%BC%8F.gif) 5. 检查文献表中是否存在标红的部分,并根据提示在BibTeX文献库当中进行修改 6. 生成的引用序号中,若存在无法在文献库中查找到的key,则会生成以0为标号的项目。利用Ctrl+F搜索功能,并检查文档当中是否存在"[0",确认引用标签全部有效。 #### 与文献管理工具结合使用 小工具能够根据导出的BibTeX文献库对引用进行编号并生成参考文献列表,但文献管理工具仍然是必不可少的,除了能够利用内置阅读器快速地查看文章并添加注释外,还能够利用其提供的文献库导出功能和图形化界面,大幅降低对文献管理的难度。 为了兼容GB/T7714所增加的文献类型,一款支持自定义文献类型,并能够添加自定义文献子项的软件能够简化导出文献库之后的修改操作。 Zotero在安装插件Better BibTeX之后,能够通过在文献的“其他”类别下,添加部分指定性文字,在通过Better BibTeX导出时进行替换或增加子项。对其余文献管理软件则大同小异,一般都会有调整输出项或进行手动添加的功能。 例如对于标准“信息与文献 参考文献著录规范”,由于Zotero并未提供标准(standard)类型,以及在文档类型下设置标准号(Number)、标准发行地点(Address)、页码(pages)的功能,但借由Better BibTeX,可以在“其他”输入框当中,按照[entry]=[content]的方式添加非直接支持项,例如: ``` Citation Key: refbibrules2015 Number: GB/T 7714-2015 Pages: 1-18 Address: 北京 tex.entrytype: standard ``` tex.entrytype:指定了生成文献项的类型,强制修改为标准(standard)。 Citation Key: refbibrules2015则强制指定引用标签不使用自动生成的标签,而规定为冒号之后的内容。其余部分则增加了不被Zotero直接支持的文献子项。当通过Better BibTeX导出后,该文献则包含了实际按照标准(standard)所必须的项目。 ``` @standard{refbibrules2015 title={信息与文献 参考文献著录规则}, author={全国信息与文献标准化技术委员会}, number={GB/T 7714-2015}, address={北京}, publisher={中国标准出版社}, year={2015}, pages={1-18}, } ``` 为了适应于GB/T7714标准,在标准的BibTeX类别下增加了对行业标准(standard)、专利(patent)的支持。 特别地,对于Online类别,则囊括了所有需要特殊载体(medium)的文献,例如磁带(MT, magnetic tape)、光盘(CD)、在线资源(OL, online),需要通过手动分配。对于资源类型,常见的有图书(M)、期刊文章(J, journal)、会议论文(C, conference)、新闻(N, news)、网页(EB, electronic bulletin)等,根据实际情况进行设定。 在仓库demo文件夹下,export.bib提供了示例BibTeX文献,可以参考该文件进行修改。 #### 文本文件编码 文本文件编码存在多种格式,如ANSI和UTF-8,不同的编码方式能够覆盖不同的字符集。UTF-8是一种可变字节数编码方式,每个字符由1至4个字节进行编码,是在互联网上使用最广的一种能够覆盖Unicode字符集的实现方式。 小工具使用以UTF-8进行编码的文本文件作为文献库,而Windows记事本的默认编码方式为ANSI,因此请勿直接通过系统的记事本编辑或保存内容,否则编码方式将改变,而解析后的文件若包含中文等内容将显示乱码。可以使用VS Code等默认使用UTF-8编码的软件对文件进行操作。 #### 正则表达式搜索 则表达式是非常有效的文本处理、匹配、提取工具,能够检查文本是否“形如某种格式”,并按照设定的规则对内容进行提取和拆分。 小工具提供了对文献库的正则表达式搜索功能,匹配项目主要包含: ``` 1. 文献类型 2. 文献名 3. 作者 4. 摘要 5. 出版社/机构/学校/组织/出版地 6. 出版年 ``` 例如需要搜索包含关键字adaptive的书目,可以输入 ``` adaptive|book ``` 若需要搜索Elsevier或者IEEE出版的内容,可以输入 ``` elsevier|ieee ``` 匹配内容不区分大小写。若输入的正则表达式有误,输入框将显示红色文字。 若希望进一步了解正则表达式,可以在[regexr](http://www.regexr.com)上快速体验正则表达式,或通过[正则表达式语言 - 快速参考](https://learn.microsoft.com/zh-cn/dotnet/standard/base-types/regular-expression-language-quick-reference?redirectedfrom=MSDN)进行初步学习。 #### 帮助改进小工具 欢饮通过新开Issue,提出小工具在性能、功能上需要改善的地方。