VBA替换中文文献引用出现的et al.和and

news2024/11/23 3:13:05

  问题描述:Endnote是常用的文献管理工具,并提供国标模板Chinese Std GBT7714 (numeric).ens,但Endnote在中英文混排上略欠考虑。Chinese Std GBT7714使用序号的形式(******1)对文献进行引用,但有时我们需要以作者-年份的形式进行引用,例如:使用******(张三 等)或者******(张三和李四),而endnote出现的引用经常是******(张三 et al.)或者******(张三 and 李四)。虽然用替换或手动修改也可以解决上述问题,但如果论文篇幅较长(如:学位论文)或者需要反复修改(好不容易把et al.改成了,若需要再插入文献,更新Endnote后又变回et al.了),手动修改或替换就过于繁琐了。

  为了解决该问题,也有博客介绍了:将secondary author填为中文名的方法,具体可参考:

endnote管理中文文献及其双语引用: https://blog.csdn.net/rookieWhoCanProduce/article/details/115326114

  但该方法将中文作者设定为secondary author,背离了Endnote的使用逻辑。而且仅能解决参考文献中的et al.,不能解决文中引用et al.

  本文采用更加直接的思路——编写VBA程序,使用的方法一键修改张三 et al.或者张三 and 李四张三 等或者张三和李四。不仅修改文章引用中的张三 et al.或者张三 and 李四问题,也修改文末中文参考文献中出现的张三, et al.

VBA代码的实现思路:

  1. 模糊查找[中文] et al.的内容,将其替换为[中文] 等.
  2. 模糊查找[中文] and [中文].的内容,将其替换为[中文]和[中文].
  3. 模糊查找[中文], et al.的内容,将其替换为[中文], 等.

VBA代码如下:

Sub UCAS_Thesis_Formate()
Attribute UCAS_Thesis_Formate.VB_ProcData.VB_Invoke_Func = "Normal.NewMacros.宏2"

'replace 'et al.' in citation with '等'

    ActiveDocument.Content.Select
        With Selection.Find
            .ClearFormatting
            .Text = "[一-龥] et al."
            .MatchWildcards = True
        End With
        While Selection.Find.Execute = True
            c = Selection.Range
            Selection.Range = Left(c, 1) & " 等"
        Wend
        
'replace 'and' in citation with '和'

    ActiveDocument.Content.Select
        With Selection.Find
            .ClearFormatting
            .Text = "[一-龥] and [一-龥]"
            .MatchWildcards = True
        End With
        While Selection.Find.Execute = True
            c = Selection.Range
            Selection.Range = Left(c, 1) & "和" & Right(c, 1)
        Wend
        
'replace 'et al.' in reference with '等'

    ActiveDocument.Content.Select
        With Selection.Find
            .ClearFormatting
            .Text = "[一-龥], et al"
            .MatchWildcards = True
        End With
        While Selection.Find.Execute = True
            c = Selection.Range
            Selection.Range = Left(c, 1) & " 等"
        Wend
End Sub

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
修改的gif动画:
在这里插入图片描述

测试数据如下,以中科院学位论文的参考文献要求为例,包含基于国标GBT7714修改后的Endnote模板修改用的VBA代码测试文档

VBA替换中文文献引用出现的et al.和and——以中科院学位论文的参考文献要求为例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/477530.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python毕业设计之django+vue医院医疗救助系统

(1) 信息发布 当有基金的申请审批通过时,慈善机构信息维护部门应与慈善机构进行对接,保证信息的真实性,信息发布之后患者可以进行相应的基金申请。 (2) 基金管理 此项功能是保证基金信息的动态刷…

HR员工管理的三重境界:管事、管人、管心

在一个公司里,员工来来往往是常态,虽说我们不能替他们决定,但是一定是与公司的管理者有一定的关系。马云曾经说过:“一个员工离职,不外乎两种原因,一是钱没给到位;二是心里委屈了”。一句话就是…

笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

计算机网络体系结构 计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的…

2023.04.30 学习周报

文章目录 摘要文献阅读1.题目2.摘要3.介绍4.本文贡献5.数据处理6.模型6.1 look - up操作6.2 LSTM6.3 周期模拟及额外因素 7.实验7.1 数据集7.2 基线7.3 实验表现 8.结论 ISOMAP1.基本思想2.欧氏距离3.折线近似曲线4.计算折线长度5.Floyd-Warshall算法6.ISOMAP算法7.总结 数学建…

Educoder/头歌JAVA——Java Web:基于JSP的网上商城

目录 一、商品列表 本关任务 具体要求 结果输出 实现代码 二、商品详情 本关任务 JDBC查询方法封装 商品相关信息介绍 具体要求 结果输出 实现代码 三、商品搜索 编程要求 测试说明 实现代码 四、购物车列表 本关任务 JDBC查询方法封装 购物车相关信息介绍…

IPsec中IKE与ISAKMP过程分析(主模式-消息4)

IPsec中IKE与ISAKMP过程分析(主模式-消息1)_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析(主模式-消息2)_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析(主模式-消息3)_搞搞搞高傲的博客…

Jenkins+Docker+gitee 持续部署spring boot 应用教程

目录 参考安装jenkinsci拉取镜像创建目录安装maven启动镜像配置输入密码安装推荐的插件 创建用户密码配置环境变量安装gitee和dingtalk插件创建SpringBoot并创建Dockfile配置gitee的webhook配置构建shell脚本配置监听gitee webhook触发构建 配置dingtalk钉钉通知 参考 Jenkins…

归纳截图小结

文章目录 web服务器、缓存和PHP加速对比没有做软连接http状态码cookie是什么图形管理界面nginx的访问路径LANM架构redisd服务整体框架免密连接kubeletk8s架构图kubeadm、kubectl、kubelet作用k8s集群token失效时,重新创建tokenk8s网络通信OSI总结pod的理解k8s核心知…

springboot+vue高校实验室预约管理系统

开发环境 开发语言:Java 后端框架:springbootweb 前端框架:vue.js 服务器:tomcat 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 校实验…

K8S集群原理(IT枫斗者)

K8S集群原理(IT枫斗者) 看图说K8S 先从一张大图来观看一下K8S是如何运作的,再具体去细化K8S的概念、组件以及网络模型。从上图,我们可以看到K8S组件和逻辑及其复杂,但是这并不可怕,我们从宏观上先了解K8S…

【设计模式】责任链模式的设计与示例

前言 责任链模式是一种行为设计模式,执行上它允许请求沿着一条处理链路依次向下传递,每个处理节点都能对当前状态的请求进行处理,满足一定条件后传递给下一个处理节点,亦或者直接结束这一次处理流程。 在现实生产环境中&#xf…

工作流框架研究

工作流框架研究 主流开源框架介绍OsWorkFlowJBPMActivitiFlowableCamundaCamunda 和Flowable对比功能上对比性能上对比 总结 主流开源框架介绍 OsWorkFlow 对于比较简单的流程,OsWorkFlow会是一个比较好的选择,对于复杂的流程就不推荐了,Os…

小 C 的数学(math)

祝大家劳动节快乐!!小手动起来 言归正传┏ (゜ω゜)☞ 题目描述 小 C 想要成为一名 OIer,于是他提前学习数学,为 OI 做好铺垫。这一天,他的数学老师给了一道题:给定正整数 a,以及给定一个区间 …

Python基础之列表元组

1.列表 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 去锁定它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作…

HTB-Forge

HTB-Forge 信息收集80端口 立足user -> root 信息收集 80端口 试试上传图片看看有什么限制。 jpg上传成功,并且会给一个随机的文件名存储图片,过了一阵子图片就会被清除。 上传phpinfo后访问界面出现报错。 看来没有执行上传的PHP代码&#xff0…

第43天-DP-第九章 ● 139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

文章目录 1. 单词拆分2.多重背包3. 背包总结 1. 单词拆分 s class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());// 1. dp[i] 为true代表 可以拆分为一个或者多…

PySyft框架

openmined社区开源的pysyft框架可以提供安全的联邦学习&#xff0c;有助于解决基于“不可见数据”的统计分析与建模开发。在PySyft中&#xff0c;syft是重要的张量&#xff0c;通过建立SyftTensor抽象类来表现张量链的运算或数据状态转换。如图5-7所示&#xff0c;张量链的结构…

3.3 泰勒公式例题分析

例1 写出函数f(x)带有拉格朗日余项的n阶麦克劳林公式 我的答案&#xff1a; 一、信息 1.f(x)的表达式 2.目标求这个f(x)的n阶麦克劳林公式 二、分析 条件1&#xff1a;告诉我f(x)的表达式为我后续带入公式做准备 条件2&#xff1a;告诉我用什么公式和此次求解的方向 三…

【ONE·C++ || 二叉搜索树】

总言 二叉树进阶&#xff1a;主要介绍二叉搜索树相关内容。 文章目录 总言1、基本介绍1.1、什么是二叉搜索树 2、相关实现2.1、基本框架2.1.1、如何构建二叉树单节点2.1.2、如何定义一个二叉搜索树 2.2、非递归实现&#xff1a;插入、查找、删除2.2.1、二叉搜索树插入&#xf…

系统集成项目管理工程师 笔记(第16章:变更管理)

文章目录 16.1.2 项目变更的分类 50416.1.3 项目变更产生的原因 50516.2 变更管理的基本原则 50516.3 变更管理角色职责与工作程序 50616.3.1 角色职责 50716.3.2 工作程序 50716.4.1 变更管理操作要点 511 第16章 变更管理 504 16.1 项目变更的基本概念 504 项目变更是指在信息…