我需要更改使用插入引文>添加新来源时插入的文本。
默认情况下,您会得到(Author,Year)
。
我希望能够自由修改它。理想情况下,我希望能够Title, Author, Year
不带括号。
所有可用的引文和参考书目样式都不符合我的要求。
我该如何实现我想要的效果?我需要创造一种新风格吗?如果需要,我该怎么做?
答案1
我希望能够获得不带括号的标题、作者、年份。
下面介绍如何在 Word 中创建基本的自定义参考书目样式。此链接还包含创建更复杂样式的说明。
创建自定义书目样式
首先,创建自定义样式将遵循的基本参考书目样式。设置参考书目样式
要创建书目样式,我们将创建一个 XML 样式表;即,使用您最喜欢的 XML 编辑器,创建一个
.xsl
名为 的文件。就足够了。顾名思义,我们的示例将是“书籍”源类型的样式。MyBookStyle.xsl
Notepad
在文件顶部添加以下代码:
<?xml version="1.0" ?>
<!--List of the external resources that we are referencing-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography">
<!--When the bibliography or citation is in your document, it's just HTML-->
<xsl:output method="html" encoding="us-ascii"/>
<!--Match the root element, and dispatch to its children-->
<xsl:template match="/">
<xsl:apply-templates select="*" />
</xsl:template>
正如注释所示,Word 使用 HTML 来表示文档中的参考书目或引文。前面的大多数 XML 代码只是为样式中更有趣的部分做准备。例如,您可以为样式指定一个版本号来跟踪所做的更改,如以下示例所示。
<!--Set an optional version number for this style-->
<xsl:template match="b:version">
<xsl:text>2006.5.07</xsl:text>
</xsl:template>
更重要的是,您可以为您的样式命名。添加此标签:
<xsl:when test="b:StyleNameLocalized">
;然后使用以下代码以您选择的语言为您的样式命名。
<xsl:when test="b:StyleNameLocalized/b:Lcid='1033'">
<xsl:text>[Your Style Name]</xsl:text>
</xsl:when>
此部分包含样式的语言环境名称。在我们的示例文件中,我们希望自定义书目样式名称“简单书籍样式”出现在“引用”选项卡上的“样式”下拉列表中。为此,请添加以下 XML 代码以指定样式名称采用英语语言环境(Lcid 确定语言)。
<!--Defines the name of the style in the References dropdown list-->
<xsl:when test="b:StyleNameLocalized">
<xsl:choose>
<xsl:when test="b:StyleNameLocalized/b:Lcid='1033'">
<xsl:text>Simple Book Style</xsl:text>
</xsl:when>
</xsl:when>
您的样式现在将以其自己的名称出现在应用程序的参考书目样式下拉列表框中。
现在,检查样式细节。Word 中的每种源类型(例如,书籍、电影、期刊文章等)都有一个内置的字段列表,可用于参考书目。要查看给定源类型的所有可用字段,请在“引用”选项卡上选择“管理源”,然后在“源管理器”对话框中选择“新建”以打开“创建源”对话框。然后选择“显示所有参考书目字段”。
书籍来源类型有以下可用字段:
- 作者
- 标题
- 年
- 城市
- 州/省
- 国家/地区
- 发行商
- 编辑
- 体积
- 卷数
- 翻译者
- 简称
- 标准编号
- 页面
- 版
- 评论
在代码中,您可以指定对您的书目样式很重要的字段。即使清除了“显示所有书目字段”,这些字段仍会出现,并且旁边会有一个红色星号。对于我们的图书示例,我想确保输入了作者、书名、年份、城市和出版商,因此我希望这些字段旁边出现一个红色星号,以提醒用户这些是建议填写的字段。
<!--Specifies which fields should appear in the Create Source dialog box when in a collapsed state (The Show All Bibliography Fields check box is cleared)-->
<xsl:template match="b:GetImportantFields[b:SourceType = 'Book']">
<b:ImportantFields>
<b:ImportantField>
<xsl:text>b:Author/b:Author/b:NameList</xsl:text>
</b:ImportantField>
<b:ImportantField>
<xsl:text>b:Title</xsl:text>
</b:ImportantField>
<b:ImportantField>
<xsl:text>b:Year</xsl:text>
</b:ImportantField>
<b:ImportantField>
<xsl:text>b:City</xsl:text>
</b:ImportantField>
<b:ImportantField>
<xsl:text>b:Publisher</xsl:text>
</b:ImportantField>
</b:ImportantFields>
</xsl:template>
标签中的文本
<xsl:text>
是对Sources.xml
文件的引用。这些引用提取将填充每个字段的数据。检查Sources.xml
(%APPDATA%\Microsoft\Bibliography\Sources.xml
) 以更好地了解这些引用如何与 XML 文件中的内容相匹配。设计布局
书目和引文的输出在 Word 文档中以 HTML 形式表示,因此要定义自定义书目和引文样式在 Word 中的外观,我们必须在样式表中添加一些 HTML。
假设您想按照以下方式格式化参考书目中的每个条目:
Last Name, First Name. (Year). Title. City: Publisher
执行此操作所需的 HTML 将嵌入到您的样式表中,如下所示。
<!--Defines the output format for a simple Book (in the Bibliography) with important fields defined-->
<xsl:template match="b:Source[b:SourceType = 'Book']">
<!--Label the paragraph as an Office Bibliography paragraph-->
<p>
<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:First"/>
<xsl:text>. (</xsl:text>
<xsl:value-of select="b:Year"/>
<xsl:text>). </xsl:text>
<i>
<xsl:value-of select="b:Title"/>
<xsl:text>. </xsl:text>
</i>
<xsl:value-of select="b:City"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="b:Publisher"/>
<xsl:text>.</xsl:text>
</p>
</xsl:template>
当您在 Word 文档中引用书籍来源时,Word 需要访问此 HTML,以便它可以使用自定义样式来显示来源,因此您必须向自定义样式表中添加代码以使 Word 能够执行此操作。
<!--Defines the output of the entire Bibliography-->
<xsl:template match="b:Bibliography">
<html xmlns="http://www.w3.org/TR/REC-html40">
<body>
<xsl:apply-templates select ="b:Source[b:SourceType = 'Book']">
</xsl:apply-templates>
</body>
</html>
</xsl:template>
类似地,您需要对引文输出执行相同的操作。遵循文档中单个引文的模式(作者、年份)。
<!--Defines the output of the Citation-->
<xsl:template match="b:Citation/b:Source[b:SourceType = 'Book']">
<html xmlns="http://www.w3.org/TR/REC-html40">
<body>
<!-- Defines the output format as (Author, Year)-->
<xsl:text>(</xsl:text>
<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="b:Year"/>
<xsl:text>)</xsl:text>
</body>
</html>
</xsl:template>
用以下几行关闭文件。
<xsl:template match="text()" /> </xsl:stylesheet>
将文件另存为
MyBookStyle.XSL
并将其放入 Styles 目录 (%appdata%\Microsoft\Bibliography\Style
)。重新启动 Word,您的样式现在位于样式下拉列表中。您可以开始使用新样式。