AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1537887
Accepted
Rok
Rok
Asked: 2020-04-02 06:34:42 +0800 CST2020-04-02 06:34:42 +0800 CST 2020-04-02 06:34:42 +0800 CST

如何在 Microsoft Word 中添加新的引文和书目样式?

  • 772

在 Microsoft Word 中,有 12 种可用的引文和参考书目样式,如以下屏幕截图所示:

Microsoft Word 中提供的 12 种引文和参考书目样式。

但是,似乎没有一种简单的方法可以添加自定义或新的引文和书目样式。不幸的是,我的大学使用了自己独特的引文和参考书目风格,这是一种稍微修改过的芝加哥风格。基本上,例如,他们使用与号 &,而不是“and”来指代两位作者。他们将年份放在作者之后,在参考书目中没有中间的句点。

所以我基本上需要在 Microsoft Word 中添加一个新的引文和参考书目样式,它是芝加哥样式的副本,但有这两个细微的差别。

我对此的研究表明,这可以通过 XML 文件实现。我以前编辑过 XML 文件,但是芝加哥风格的 XML 文件在哪里?[编辑:路径似乎是 %APPDATA%\Microsoft\Bibliography)

我需要在芝加哥风格中更改哪些部分,以便将作者之间的“和”变成与号“&”,并删除参考书目中作者和年份之间的句点(它没有t 存在于在线引用中)?

APA 风格使用 & 符号,但不幸的是,它的其余格式与芝加哥有很大不同,总体而言,芝加哥更接近我的目标风格。我尝试比较 APASixthEditionOfficeOnline.xsl 和 CHICAGO.XSL 文件,看看我是否能发现差异,让我知道我需要改变什么,因为 APA 使用 & 符号而芝加哥使用“and”,但是不幸的是,我的 XML 知识水平以及这些文件的大小使我无法发现需要更改的部分。此外,两种样式都在参考书目中的作者之后加上句号。

感谢您提供任何帮助或提示。

microsoft-word bibliography
  • 3 3 个回答
  • 16133 Views

3 个回答

  • Voted
  1. Best Answer
    user1079414
    2020-04-03T08:45:57+08:002020-04-03T08:45:57+08:00

    使用内置样式 .xsl 样式表很困难,因此以下只是一些建议。主要的困难是确定更改的适当点 - 根据它是什么,您可能能够进行单个更改,或者您可能必须进行许多相当相似的更改。这主要是因为这些样式表试图实现一组相当大的“小”规则。然而,实现者这样做,总是很难确定更改样式表中的 XSL 模板会产生正确影响的点。使用不是特别熟悉的语言并且不提供内部文档也无济于事。

    另一个不幸的问题是,您可能必须将修改后的 .xsl 提供给需要处理您的文档的任何其他人。

    但是,例如,我建议您首先将 Chicago.xsl 的副本保存在您确定的文件夹中(用户区域中的那个,而不是 Program Files 或 Program Files (86) 下的那个。称之为 Xhicago.xsl , 也许。

    然后,当您重新启动 Word 时,您应该会在相关下拉列表中看到两个相同的样式。现在在合适的编辑器中打开 .xsl(我目前在这里使用 Visual Studio Code,带有适用于 .xml 和其他文件类型的合适插件)。

    综上所述,您至少可以尝试以下方法,因为它可以帮助您确定它是否足以满足您当前的需求。

    我建议您首先将 Chicago.xsl 的副本保存在您确定的文件夹中(用户区域中的那个,而不是 Program Files 或 Program Files (86) 下的那个。也许将其命名为 Xhicago.xsl。

    然后,当您重新启动 Word 时,您应该会在相关下拉列表中看到两个相同的样式。现在打开一个已经包含一些引文和参考书目的测试文档,并使用 Word 的下拉菜单在两个芝加哥样式表之间切换。您应该看到输出没有任何变化,但 Word 可能会闪烁一下。

    在合适的编辑器中打开 Xhicago.xsl(我目前在这里使用 Visual Studio Code,带有适用于 .xml 和其他文件类型的合适插件)。

    IMO 首先要更改的是 XmlVersion,因此您可以看到原始芝加哥和新芝加哥之间的区别。搜索

    b:XmlVersion
    

    并且您应该看到这样的代码(如果您使用的是明显不同的 Chicago.xsl 版本,您可能会看到与我看到的有所不同)。

    <xsl:when test="b:XslVersion">
    
      <xsl:text>16</xsl:text>
    
    </xsl:when>
    

    将 16 更改为(比如说)18(我认为微软可能已经在我的版本之后继续前进)然后保存 .xsl。在这里,我通常不需要在测试更改时关闭它。就我个人而言,我也会写一个 XML 注释——除此之外,它确实可以帮助您找到您更改的内容。例如

    <xsl:when test="b:XslVersion">
    
      <!-- 20200402 changed 16 to 18 -->
    
      <xsl:text>18</xsl:text>
    
    </xsl:when>
    

    就我个人而言,我也更喜欢将旧代码包装起来,以防我再次需要它。

    现在,再次重新启动 Word 并重新打开您的测试文档。您应该能够在下拉列表中看到两种不同的“芝加哥”样式,具有两个不同的版本号。

    接下来,在 .xsl 中,查找

      <xsl:template name="templ_str_AndUnCap" >
    

    你应该会看到一大段这样的代码:

      <xsl:template name="templ_str_AndUnCap" >
        <xsl:param name="LCID" />
        <xsl:variable name="_LCID">
          <xsl:call-template name="localLCID">
            <xsl:with-param name="LCID" select="$LCID"/>
          </xsl:call-template>
        </xsl:variable>
        <xsl:value-of select="/*/b:Locals/b:Local[@LCID=$_LCID]/b:Strings/b:AndUnCap"/>
      </xsl:template>
    

    这样做是设置一个局部变量,其中包含 .xsl 在需要“and”时将使用的单词,至少在您使用英语语言 ID 时。

    每当 Word 想要为引文或整个参考书目生成文本时,它都会将 XML 文件传递​​给 .xsl。该文件包含所有相关引用,以及一大堆其他设置。其中一些是一般设置,例如“作者列表中的最终作者之前是否应该有一个'和'”,还有一些是与不同的内置样式表相关联的设置。此外,可能有许多不同语言代码的设置。例如,XML 可能包含表示英语的“and”,而表示法语的“et”。据我所知,没有任何地方可以让您配置这些设置 - 它们在 Word 中的某个地方进行了硬编码。

    因此,在更改此代码之前,您需要考虑可能产生的影响。

    首先,据我所知,“and”这个词只定义在传入 XML 的一个元素中。因此,如果您想要“and”作为作者列表,而不是“Translators”,则不能依赖传入的 XML 将其提供给您。我将建议的更改将在 .xsl 引用此传入值的每个位置将“and”更改为“&”。此外,它不会考虑语言 ID。但这是我建议的代码:

    <xsl:template name="templ_str_AndUnCap" >
        <xsl:param name="LCID" />
        <xsl:variable name="_LCID">
          <xsl:call-template name="localLCID">
            <xsl:with-param name="LCID" select="$LCID"/>
          </xsl:call-template>
        </xsl:variable>
        <!--20200402 use &amp; instead of <xsl:value-of select="/*/b:Locals/b:Local[@LCID=$_LCID]/b:Strings/b:AndUnCap"/>-->
        <xsl:text>&amp;</xsl:text>
      </xsl:template>
    

    现在再次保存 .xsl。当您切换到 Chicago 样式并返回 Xhicago 样式时,您应该会看到参考书目中反映的更改(尽管您可能需要更新参考书目)。如果您犯了任何编码错误,您可能不会看到任何更改,事实上,下次重新启动 Word 时,您可能也不会在列表中看到 Xhicago 样式 - Word 不会加载工作表,除非它是一个有效的 .xsl,并且有一些 Word 需要的特殊模板。

    但是,如果一切正常,并且您有一本与作者在一起的书

    Ionawr, Chwefror, Mawrth and Ebrill
    

    在芝加哥的引文中你应该看到

    Ionawr, Chwefror, Mawrth and Ebrill
    

    在参考书目中你应该看到

    Ionawr, Chwefror, Mawrth, and Ebrill
    

    在 Xhicago 你应该看到

    Ionawr, Chwefror, Mawrth & Ebrill
    

    和

    Ionawr, Chwefror, Mawrth, & Ebrill
    

    分别。

    现在我不太喜欢卢克之后的那个逗号,你可以通过寻找来摆脱它(再次,可能比你希望的影响更广泛)

      <xsl:template name="templ_prop_NoCommaBeforeAnd" >
    

    并将那里的文字更改为

      <xsl:template name="templ_prop_NoCommaBeforeAnd" >
        <xsl:param name="LCID" />
        <xsl:variable name="_LCID">
          <xsl:call-template name="localLCID">
            <xsl:with-param name="LCID" select="$LCID"/>
          </xsl:call-template>
        </xsl:variable>
        <!-- 20200402 hard code this one
        <xsl:value-of select="/*/b:Locals/b:Local[@LCID=$_LCID]/b:General/b:NoCommaBeforeAnd"/>
        -->
        <xsl:text>yes</xsl:text>
      </xsl:template>
    

    保存它,然后测试它。

    最后,摆脱作者和年份之间的点是有问题的,原因比我们上面讨论的还要多。例如,它不一定是“年前的点”。例如,如果没有一年怎么办?(我们甚至还没有讨论过您使用“et. al.”而不是实际作者姓名的情况)。

    可以为书籍作者列表解决此问题的方法是搜索

    <xsl:variable name="theAuthorSufixDot">
    

    并将代码更改为

    <xsl:variable name="theAuthorSufixDot">
      <!--this may be enough to suppress the dot between the authors and the year
      <xsl:call-template name="appendField_Dot">
        <xsl:with-param name="field" select="$theAuthorSufix"/>
      </xsl:call-template>
      -->
      <xsl:value-of select="$theAuthorSufix" />
    </xsl:variable>
    

    顺便说一句,可能值得四处看看是否有人在你的大学里。已经完成了这项工作。我当然不时为人​​们做了一些小的修改,但我不认为在所有情况下都能做到这一点“文化”确实是一个实际的命题,无需花费大量时间在这个问题上。虽然我认为 Word 传递给 XSL 的 XML 的内部结构可能在 .docx 的 ISO 29500 标准中进行了描述,但我发现整个领域非常混乱,并决定唯一有帮助的就是拥有一个样式表遍历 Word 提供的所有 XML。我确信它可以通过多种方式进行改进,但这是我的“explore.xsl”。显然,您不能像使用普通工作表一样使用它,而是将其与其他 .xsl 文件放在同一个文件夹中,并在 Word 中以通常的方式切换到它。

    顺便说一句,微软关于你需要在 .xsl 中添加什么的文档现在已经很老了。我认为它不能很好地解释主要“选择”中的代码实现的一些“选项”,例如

    <xsl:when test="b:XslVersion">
    

    在早期版本的 Word 中需要,但在以后的版本中不需要,反之亦然。此外,Mac 版本的 Word 一度支持与正常引文布局不同的脚注引文布局。然而,这在 Mac Word 2016 中消失了,我认为它不会回来了。

    最后,您将在 Program Files(或 (86) 版本)下的 Microsoft Office 文件夹中找到参考书目系统使用的其他 .XSL 文件。据我所知,这些不用于生成引文和书目文本,仅用于 Word 使用的部分或全部与书目相关的对话框。

    但这里是 explore.xsl:

    urn:schemas-microsoft-com:xslt" 
       xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography" 
       xmlns:t="http://www.microsoft.com/temp">
       <xsl:output method="html" encoding="utf-8"/>
    
       <!--Match the root element, and dispatch to its children-->
    
       <xsl:template match="/">
          <!--<xsl:apply-templates select="*" />-->
          <xsl:choose>
             <xsl:when test="b:Version">
                <xsl:text>2019.10.16</xsl:text>
             </xsl:when>
    
             <xsl:when test="b:XslVersion">
                <xsl:text>2</xsl:text>
             </xsl:when>
    
    
    
             <xsl:when test="b:StyleNameLocalized">
                <xsl:text>explore</xsl:text>
             </xsl:when>
    
          <!--<xsl:variable name="book_Title">
             <xsl:value-of select="(b:Title)" />
          </xsl:variable>-->
    
             <xsl:when test="b:Citation">
                <xsl:call-template name="output-data"/>
             </xsl:when>
    
             <xsl:when test="b:Bibliography">
                <xsl:call-template name="output-data"/>
             </xsl:when>
    
          </xsl:choose>
    
       </xsl:template>
    
       <xsl:template name="output-data" >
          <html xmlns="http://www.w3.org/TR/REC-html40">
             <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
             </head>
             <body>
                <table>
                   <tr>
                      <td>Name</td><td>Value</td>
                   </tr>
                   <xsl:apply-templates select="node()" />
                </table>
             </body>
          </html>
       </xsl:template>
    
        <xsl:template match="node()"> 
          <xsl:if test="text()"> 
          <tr>
             <td>
             <!--From the Answer by Daniel Haley in 
                https://stackoverflow.com/questions/953197/how-do-you-output-the-current-element-path-in-xslt -->
                <xsl:for-each select="ancestor-or-self::*">
                   <xsl:value-of select="concat('/',local-name())"/>
                   <!--Predicate is only output when needed.-->
                   <xsl:if test="(preceding-sibling::*|following-sibling::*)[local-name()=local-name(current())]">
                      <xsl:value-of select="concat('[',count(preceding-sibling::*[local-name()=local-name(current())])+1,']')"/>
                   </xsl:if>
                </xsl:for-each>
             </td>
             <td>
                <xsl:value-of select="text()"/>
             </td>
          </tr>
          </xsl:if>
          <xsl:apply-templates select="@*"/>
          <xsl:apply-templates select="node()"/>
    
        </xsl:template>
    
       <xsl:template match="@*">
          <tr>
             <td>
                <xsl:text>@</xsl:text>
                <xsl:value-of select="name(.)"/>
             </td>
             <td>
                <xsl:value-of select="text()"/>
             </td>
          </tr>
       </xsl:template>
    
    </xsl:stylesheet>
    
    • 3
  2. DavidPostill
    2020-04-02T06:46:09+08:002020-04-02T06:46:09+08:00

    我基本上需要添加一个新的引文和参考书目样式

    您可以安装其他样式。其中之一可能更适合您:

    • Associação Brasileira de Normas Técnicas (ABNT)
    • 计算机协会 (ACM)
    • 美国医学会 (ACS)
    • 美国医学会 (AMA)
    • 美国社会学协会 (ASA)
    • 科学编辑委员会 (CSE)
    • 哈佛——AGPS
    • 哈佛 - 安格利亚
    • 哈佛——埃克塞特
    • 哈佛-利兹
    • 人道出版社
    • IEEE
    • 计算机科学讲义 (LNCS)
    • 现代人文研究协会(MHRA)
    • 自然
    • 温哥华

    源安装额外的 Word 参考样式 (Mac + Windows)

    您还可以使用自定义样式来获得所需的确切格式。有关详细信息,请参阅以下链接:

    • 参考书目和引文 102 – 构建自定义样式

    • 创建自定义书目样式

    • 为 MS Word 创建新的引用样式

    • 2
  3. Ramhound
    2020-04-02T06:55:01+08:002020-04-02T06:55:01+08:00

    我对此的研究表明,这可以通过 XML 文件实现。我以前编辑过 XML 文件,但是芝加哥风格的 XML 文件在哪里?

    它位于Office 2016Bibliography/Style内部C:\Program Files (x86)\Microsoft Office\Office16\Bibliography\Style。具体路径将根据您安装的 Office 版本而有所不同。

    创建自定义书目样式指示新引文样式所需的一切。鉴于该过程需要多个 XML 文件,因此很难引用链接,但无论如何创建自己的样式并不是问题。

    • 1

相关问题

  • MS Word – 如何在每页的右边缘插入一列

  • 使用 Microsoft Word 保存不带 BOM 的 UTF-8 文件

  • 如何去除Word中奇怪的空格符号

  • 在word中编辑模板以删除难看的空格

  • Microsoft Word - 如何减小所有样式的文本大小

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve