Zotero如何在word中引用跳转到参考文献/建立超链接

2023-11-01

省流目录

问题:如标题

Zotero不支持引用和参考文献之间的超链接。
什么坑爹的玩意。。。最重要的功能竟然没有!!!
刚从endnote换到Zotero就遇到这。。。。好感度-1-1-1-1-1~~~

解决方案

警告⚠️仅测试个人案例,运行前请备份!
警告⚠️仅测试个人案例,运行前请备份!
警告⚠️仅测试个人案例,运行前请备份!
软件:word2019
引用格式:数字类型的2015年国标7714
引用格式

1.打开word->视图->宏->点击,选查看宏

在这里插入图片描述

2.创建宏

在这里插入图片描述

3.将代码全部替换为下面这个

Public Sub ZoteroLinkCitation()
    
' get selected area (if applicable)
    Dim nStart&, nEnd&
    nStart = Selection.Start
    nEnd = Selection.End
    
' toggle screen updating
    Application.ScreenUpdating = False
    
' define variables
    Dim title As String
    Dim titleAnchor As String
    Dim style As String
    Dim fieldCode As String
    Dim numOrYear As String
    Dim pos&, n1&, n2&, n3&

    ActiveWindow.View.ShowFieldCodes = True
    Selection.Find.ClearFormatting
 
' find the Zotero bibliography
    With Selection.Find
        .Text = "^d ADDIN ZOTERO_BIBL"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    
    ' add bookmark for the Zotero bibliography
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="Zotero_Bibliography"
        .DefaultSorting = wdSortByName
        .ShowHidden = True
    End With
    
    ' loop through each field in the document
    For Each aField In ActiveDocument.Fields
        ' check if the field is a Zotero in-text reference
        '##################################################
        If InStr(aField.Code, "ADDIN ZOTERO_ITEM") > 0 Then
            fieldCode = aField.Code
            '#############
            ' Prepare
            ' Plain citation== Format of Textfield shown
            ' must be in Brackets
            Dim plain_Cit As String
            plCitStrBeg = """plainCitation"":""["
            plCitStrEnd = "]"""
            n1 = InStr(fieldCode, plCitStrBeg)
            n1 = n1 + Len(plCitStrBeg)
            n2 = InStr(Mid(fieldCode, n1, Len(fieldCode) - n1), plCitStrEnd) - 1 + n1
            plain_Cit = Mid$(fieldCode, n1 - 1, n2 - n1 + 2)
            'Reference 'as shown' in word as a string
            
            'Title array in fieldCode (all referenced Titles within this field)
            Dim array_RefTitle(32) As String
            i = 0
            Do While InStr(fieldCode, """title"":""") > 0
                n1 = InStr(fieldCode, """title"":""") + Len("""title"":""")
                n2 = InStr(Mid(fieldCode, n1, Len(fieldCode) - n1), """,""") - 1 + n1
                If n2 < n1 Then 'Exception the type 'Article'
                    n2 = InStr(Mid(fieldCode, n1, Len(fieldCode) - n1), "}") - 1 + n1 - 1
                End If
                array_RefTitle(i) = Mid(fieldCode, n1, n2 - n1)
                fieldCode = Mid(fieldCode, n2 + 1, Len(fieldCode) - n2 - 1)
                i = i + 1
            Loop
            Titles_in_Cit = i
            
            'Number array with References shown in PlainCit
            'Numer is equal or less than Titels, depending on the type
            '[3], [8]-[10]; [2]-[4]; [2], [4], [5]
            ' All citations have to be in Brackets each! [3], [8] not [3, 8]
            ' This doesnt work otherwise!
            ' --> treatment of other delimiters could be implemented here
            Dim RefNumber(32) As String
            i = 0
            Do While (InStr(plain_Cit, "]") Or InStr(plain_Cit, "[")) > 0
                n1 = InStr(plain_Cit, "[")
                n2 = InStr(plain_Cit, "]")
                RefNumber(i) = Mid(plain_Cit, n1 + 1, n2 - (n1 + 1))
                plain_Cit = Mid(plain_Cit, n2 + 1, Len(plain_Cit) - (n2 + 1) + 1)
            i = i + 1
            Loop
            Refs_in_Cit = i
                 'treat only the shown references (skip the rest)
            '[3], [8]-[10] --> skip [9]
            'Order of titles given from fieldcode, not checked!
            If Titles_in_Cit > Refs_in_Cit Then
                array_RefTitle(Refs_in_Cit - 1) = array_RefTitle(Titles_in_Cit - 1)
                i = 1
                Do While Refs_in_Cit + i <= Titles_in_Cit
                    array_RefTitle(Refs_in_Cit + i - 1) = ""
                    i = i + 1
                Loop
            End If
            
            '#############
            'Make the links
            For Refs = 0 To Refs_in_Cit - 1 Step 1
                title = array_RefTitle(Refs)
                array_RefTitle(Refs) = ""
                ' make title a valid bookmark name
                titleAnchor = title
                titleAnchor = MakeValidBMName(titleAnchor)
                
                ActiveWindow.View.ShowFieldCodes = False
                Selection.GoTo What:=wdGoToBookmark, Name:="Zotero_Bibliography"
                
                '' locate the corresponding reference in the bibliography
                '' by searching for its title
                Selection.Find.ClearFormatting
                With Selection.Find
                    .Text = Left(title, 255)
                    .Replacement.Text = ""
                    .Forward = True
                    .Wrap = wdFindContinue
                    .Format = False
                    .MatchCase = False
                    .MatchWholeWord = False
                    .MatchWildcards = False
                    .MatchSoundsLike = False
                    .MatchAllWordForms = False
                End With
                Selection.Find.Execute
                               
                ' select the whole caption (for mouseover tooltip)
                Selection.MoveStartUntil ("["), Count:=wdBackward
                Selection.MoveEndUntil (vbBack)
                lnkcap = "[" & Selection.Text
                lnkcap = Left(lnkcap, 70)
                
                ' add bookmark for the reference within the bibliography
                Selection.Shrink
                With ActiveDocument.Bookmarks
                    .Add Range:=Selection.Range, Name:=titleAnchor
                    .DefaultSorting = wdSortByName
                    .ShowHidden = True
                End With
                
                ' jump back to the field
                aField.Select
                ' find and select the numeric part of the field which will become the hyperlink
                Selection.Find.ClearFormatting
                With Selection.Find
                    .Text = RefNumber(Refs)
                    .Replacement.Text = ""
                    .Forward = True
                    .Wrap = wdFindContinue
                    .Format = False
                    .MatchCase = False
                    .MatchWholeWord = False
                    .MatchWildcards = False
                    .MatchSoundsLike = False
                    .MatchAllWordForms = False
                End With
                Selection.Find.Execute
                        
                numOrYear = Selection.Range.Text & ""
                                    
                ' store current style
                style = Selection.style
                ' Generate the Hyperlink -->Forward!
                ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="", SubAddress:=titleAnchor, ScreenTip:=lnkcap, TextToDisplay:="" & numOrYear
                ' reset the style
                Selection.style = style

                ' comment if you want standard link style
                aField.Select
                With Selection.Font
                     .Underline = wdUnderlineNone
                     .ColorIndex = wdBlack
                End With
                    
            Next Refs 'References in Cit

        End If  'If Zotero-Field
        '#########################

        Next aField ' next field

        ' go back to original range selected
        ActiveWindow.View.ShowFieldCodes = False
        ActiveDocument.Range(nStart, nEnd).Select
        
    End Sub
    Function MakeValidBMName(strIn As String)
        Dim pFirstChr As String
        Dim i As Long
        Dim tempStr As String
        strIn = Trim(strIn)
        pFirstChr = Left(strIn, 1)
        If Not pFirstChr Like "[A-Za-z]" Then
            strIn = "A_" & strIn
        End If
        For i = 1 To Len(strIn)
            Select Case Asc(Mid$(strIn, i, 1))
            Case 49 To 57, 65 To 90, 97 To 122
                tempStr = tempStr & Mid$(strIn, i, 1)
            Case Else
                tempStr = tempStr & "_"
            End Select
            Next i
            tempStr = Replace(tempStr, "  ", " ")
            MakeValidBMName = Left(tempStr, 40)
        End Function

4. Ctrl+s保存,左下角重命名为ZoteroLinkCitation,关闭页面

在这里插入图片描述

5.查看宏

在这里插入图片描述

6.运行宏

前提:你已经插入好引用,并构建好参考文献了。这个宏只是将两者添加超链接

在这里插入图片描述

完美解决!!!★,°:.☆( ̄▽ ̄)/$:.°★。撒花!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zotero如何在word中引用跳转到参考文献/建立超链接 的相关文章

  • 研究生必备:从0到1使用Zotero

    一 初识zotero 文献导入与引用 1 安装地址 https www zotero org 点击下一步一直安装 编辑 首选项 高级 选择语言为中文 2 文献导入 1 在我的文库下面可以新建文件夹 在中间标题部分可以拖进去本地下载的PDF
  • JAVA-Word转PDF各种版本实现方式--亲测有效。。。持续更新中

    当下做一个项目 就是各种操作office 客户的需求总是各种不按常理 来需求就得搞啊 对JAVA操作office这方面真是头大 弟弟是真滴不懂不会啊 无奈只好试啊试的 网上一大堆好使的 一大堆不好使的 整了一大堆word转PDF的方法 但是
  • 让 AI 真正读懂人类语言,5分钟搞懂 word embedding 技术

    大家好啊 我是董董灿 在学习自然语言处理 NLP Natural Language Processing 时 最先遇到的一个概念 可能就是词嵌入 word embedding 了 词嵌入 是让AI真正理解人类自然语言的技术 看完本文再回过头
  • word:表格中的文字居中

    如 操作 如下图 选择布局 点击2就可以把表格居中了 居中结果
  • pandoc提取word中的图片

    pandoc提取word中的图片 pandoc i xxx docx o xxx tex extract media pathName 会将word中的图片提取到 pathName下的media中 如图所示 更多参数可以参考pandoc的用
  • POI 操作word

    关于POI 操作word的基础知识在这个博客 http elim iteye com blog 2049110 中有非常清晰的解释 在这里我就不多解释了 本文研究的内容就是 XWPFParagraph 代表一个段落 XWPFRun 代表具有
  • word中插入公式实现换行和对齐

    一 准备阶段 默认Unicode模式 进入公式编辑模式 输入 eqarray 紧接着按下空格键输入空格 如下 二 实现换行和对齐 将要编辑的公式输入到括号内 实现位置对齐 实现换行 三 结束公式编辑 输入完所有公式后 输入右括号 紧接着按下
  • 【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列)

    背景需求 工会老师求助 如何在word里面插入4 8的框 我怎么也拉不到4 8大小 她用的是我WORD 文本框 我一听 这又是要手动反复黏贴 文本框 照片 文字 的节奏哦 我问 你要做几个人 超过20个 我写个程序批量插图 写代码测试要费时
  • word2016如何插入目录以及页码

    不废话 直接写入步骤 具体步骤如下 插入目录 第一步 切换到视图 在视图页面点击大纲视图 第二步 左上角设置各个标题的级别 如下 分别点击引用 目录 选择一个即可设置好目录 第二步的图片 从第二页插入页码 双击调出页眉页脚 设置页码格式 起
  • word文件丢失怎么办?恢复Word文档的3个方案

    电脑里面有很多大大小小的文件数据 有时对我们可有可无 有时是很重要的 在清理电脑过程中 要是不小心误删了重要的文件 word文件丢失如何恢复 只需要下面的3个方案 就可以轻松找回Word文档 方案一 回收站恢复Word文档 要说电脑最容易误
  • 用Zotero在word中添加参考文献的方法记录

    插件安装 首先 安装了zotero的话应该默认会安装word插件 如果word里面有这个选项卡 就行 如果没有的话 可以手动安装一下 方法参见官网 word中打开文件 选项 高级 常规 文件位置 启动 修改 不要修改 而是复制一下这个路径
  • 怎样把pdf转换成word-多语言ocr支持

    http jingyan baidu com article 86fae34699bb4e3c49121a23 html PDF格式良好的视觉阅读性和通用性使得PDF文件的使用越来越广泛了 网络上的PDF资料也越来越多 但是我们往往想要提出
  • 不要再狂按空格键了!Word 里文字对齐推荐这4种方法

    到底如何才能快速对齐Word文字呢 今天就教大家4个好方法 不用敲空格键 2秒对齐所有文字 1 Tab键对齐 首先选中要对齐的文本 点击 视图 选中 标尺 在文字需要对齐的位置设置 制表位 接着鼠标点击文本前 然后再按一个 Tab键 立马就
  • 如何将照片中的文字转变成可编辑的文章(如何将书上的文字转变为可编辑的文字)

    在工作中 我常常在想 要是能把纸上有用的文字快速输入到电脑中 不用打字录入便可以大大提高工作效率该有多好呀 随着科技的发展 这个问题在不断的解决 例如 现在市场上的扫描仪就带有OCR软件 可以把扫描的文字转换到电脑中进行编辑 但是 对于我们
  • Java将PDF文件转为Word文档

    Java将PDF文件转为Word文档 一 创建Springboot Maven项目 二 导入依赖信息
  • 适用于 Windows 11/1 0电脑的 8 款最佳免费数据恢复软件

    在这个数字办公时代 我们总是在电脑前工作 处理海量数据 存储重要文件 然而 系统崩溃 病毒攻击或人为错误都会导致极度绝望的数据丢失 此时 专业的数据备份和恢复工具就是不幸者的救命稻草 因此 这篇文章将向您介绍适用于Windows 11 10
  • word添加gif

    word添加gif动图最简单的方法 无需链接无需插件 X to Y的博客 CSDN博客 word插入动图 原文链接 https blog csdn net X To Y article details 124415532 文章目录 word
  • MathType改变字体大小

    目录 一 MathType中的公式字体 二 临时自定义字体大小 三 更改默认字体大小 四 总结 一 MathType中的公式字体 MathType中默认的字体大小为12pt 在word中即小四 word字体对应MathType的字体大小如下
  • 使用Spring Boot实现在服务器上在线打开、编辑和保存Word文档

    使用Spring Boot实现在服务器上在线打开 编辑和保存Word文档 在本文中 我们将探讨如何使用Spring Boot框架实现在服务器上实现在线打开 编辑和保存Word文档的功能 为此 我们将使用pageOffice插件来实现这一目标
  • 通过Java编程提取Word文档的文本

    提取Word文档中的文本是一种常见的操作 便于单独获取Word文档中的内容以进行进一步的处理 分析等操作 我们可以直接复制并粘贴保存到指定文件中 但这一方法一般适用于文本内容较少时 除了费时费力地手动保存以外 我们也可以通过代码来一次性批量

随机推荐

  • git 提交新的工程

    git cmd exe 环境 windows git 提交新的工程 查看版本号 E software Git gt git version git version 2 15 1 windows 2 添加用户配置 E software Git
  • Error: EBUSY: resource busy or locked, lstat ‘D:\DumpStack.log.tmp‘

    问题 vue项目启动成功后报错 Error EBUSY resource busy or locked lstat D DumpStack log tmp 解决 1 npm cache clean force 2 npm install
  • 关于Apache/Tomcat/JBOSS/Nginx/lighttpd/Jetty等一些常见服务器的区别比较和理解

    今天是个很丰富的日子 早上一上班 第一个听到的惊爆消息就是楷子得了肠胃炎 一大早去医院挂水了 随后风胜和笑虎也没来 后来得知他们俩去去华星现代产业园参加培训 内容是关于Apache与Nginx的 于是乎 我非常感兴趣地查了一下培训用的PPT
  • C#按钮事件中有循环,用另一个按钮控制停止,暂停,继续程序执行

    首先在窗体上有 lable1 运行显示 button1 开始 button2 暂停和继续 button3 停止 窗体上还放Timer控件timer1 代码实现如下 using System using System Collections
  • vue+elementUI table表格嵌套表单,功能包含联动下拉框、动态增加行

    一 需求说明 vue elementUI table表格里嵌套表单 支持动态增加一行和删除一行 含checkbox复选框 联动下拉框 不同的活动名称 所对应的活动选项下拉框的值不同 针对不同的选项 值的表现形式也要发生对应的变化 如 日期形
  • An attempt was made to call a method that does not exist. The attempt was made from the following lo

    APPLICATION FAILED TO START Description An attempt was made to call a method that does not exist The attempt was made fr
  • springboot学习(三)——使用HttpMessageConverter进行http序列化和反序列化

    以下内容 如有问题 烦请指出 谢谢 对象的序列化 反序列化大家应该都比较熟悉 序列化就是将object转化为可以传输的二进制 反序列化就是将二进制转化为程序内部的对象 序列化 反序列化主要体现在程序I O这个过程中 包括网络I O和磁盘I
  • 链塔智库

    链塔智库整理最近一周内区块链相关政策 业内动态 人物观点 为大家梳理呈现各个领域的最新发展 目录 一 各地政策要闻 四川 探索建立基于区块链技术的数字资产交易平台 首个区块链领域国家标准在成都举行首场征求意见会 重庆出台优化工业园区规划建设
  • 云计算概念详解

    1 云计算的定义 1 云计算是一种能够通过网络以便利的按需的方式获取云计算资源 网络 服务器 存储 应用和服务 的模式 2 这些资源来自一个共享的 可配置的资源池 并能够快速获取和释放 提供资源的网络称为云 3 云模式能够提高可用性 4 云
  • IDEA下载与安装,保姆级教程

    这里写自定义目录标题 1 搜索idea 2 选择官方网站 3 官网进入下载页面 4 版本选择问题 5 Ultimate和Community对比 6 下载 7 安装 1 搜索idea 2 选择官方网站 以前idea的官网后面有官网俩字 现在没
  • Open NMT-py 玩具模型使用说明

    前排提示 本文仅适合纯萌新玩家 算是官方指南的补档 大佬请直接关闭网页 避免浪费时间 截至到2023 3 15 最新的OpenNMT py环境要求 Python gt 3 7 PyTorch gt 1 9 0 如果是老版本的OpenNMT
  • https网络编程——使用openssl库自建根证书

    参考 如何自建根证书 使用openssl库自建根证书带图详解 地址 https qingmu blog csdn net article details 108217572 spm 1001 2014 3001 5502 目录 根证书的普通
  • spring boot最新教程(三):Spring Boot整合JdbcTemplate以及事务管理

    一 JdbcTemplate的使用 Spring对数据库的操作在jdbc上面做了深层次的封装 使用spring的注入功能 可以把DataSource注册到JdbcTemplate之中 JdbcTemplate 是在JDBC API基础上提供
  • python:日期时间处理

    目录 一 time模块 二 秒转换为时分秒 三 计算前后几天的日期 一 time模块 1 time strftime format t 格式 说明 a 本地 locale 简化星期名称 A 本地完整星期名称 b 本地简化月份名称 B 本地完
  • 【STM32Cube】学习笔记(六):DHT11温湿度传感器

    文章目录 摘要 一 简介 1 DHT11数字温湿度传感器 2 DHT11性能参数 2 DHT11数据结构 2 DHT11传输时序 二 硬件电路设计 1 模块内部电路 2 与单片机相连接电路 三 软件设计 1 CubeMX配置 2 CubeI
  • Spark Streaming(组件、updateStateByKey、Windows)总结

    Spark Streaming 1 SparkStreaming 是什么 2 实时计算框架对比 3 Spark Streaming组件 4 Spark Streaming 编码实战 无状态 4 1 Spark Streaming编码步骤 4
  • MiniMeters for Mac - 独立音频计量软件,创意音乐的最佳伙伴

    MiniMeters for Mac是一款专为Mac用户设计的音频计量软件 它提供了一套功能强大 直观易用的工具 帮助你更好地理解和处理音频 这款软件不仅具备高度的专业性 同时也极具创新性 它的出现将彻底改变你对音频处理的认知 安装 Min
  • 神经网络的几点思考

    2022 04 09 1 小卷积核和大卷积核有没有可能组合使用效果更好 比如在目标检测网络 人脸识别网络 2 人脸识别中共享卷积有效吗 共享卷积和局部卷积有没有可能组合使用效果会更好 人脸识别 人脸属性 人脸关键点 活体检测应该都可以用局部
  • PGCM-PostgreSQL备份工具 pgBackRest使用

    更多精彩内容 请登录 ke sandata com cn 前言 PGCM pgBackRest是一款开源的备份还原工具 目标旨在为备份和还原提供可靠易用的备份 特性 并行备份和还原 备份操作期间压缩通常是其瓶颈所在 pgBackRest通过
  • Zotero如何在word中引用跳转到参考文献/建立超链接

    省流目录 文章目录 问题 如标题 解决方案 1 打开word gt 视图 gt 宏 gt 点击 选查看宏 2 创建宏 3 将代码全部替换为下面这个 4 Ctrl s保存 左下角重命名为ZoteroLinkCitation 关闭页面 5 查看