调整Word 2013参考书目样式,根据源语言环境显示APA引文(名字姓氏,年份)

时间:2016-08-19 15:07:28

标签: xslt ms-word

我的论文使用了APA引文。但是,对于使用泰语撰写的研究文档,内联引用必须采用(名字姓氏,年份)而不是APA(姓氏,年份)的形式。这应该可以使用自定义Microsoft Word 2013参考书目样式,这需要调整C:\ Program Files(x86)\ Microsoft Office \ Office14 \ Bibliography \ Style中的APA.XSL文件以包含类似于以下的其他逻辑:

<xsl:choose>
    <xsl:when test="b:LCID='1054'">
        (Firstname Lastname, year)
    </xsl:when>
    <xsl:otherwise>
        (Lastname, year)
    </xsl:otherwise>
</xsl:choose>

我认为应该在本节中添加额外的逻辑,并且它必须涉及对xsl:template formatNameCore的调整。

<xsl:variable name="author0">
</xsl:variable>

然而,我的想法正在画一个空白。我想知道是否有人能指出我正确的方向。非常感谢帮助。

Here's the current xsl file

2 个答案:

答案 0 :(得分:1)

经过一些搜索(和阅读)之后,我偶然发现了this post,其中指定了所有temp1_prop_APA_ _ ,如下所示:

templ_prop_APA_MainAuthors_FML = %L, %f %m
templ_prop_APA_MainAuthors_FM = %f %m
templ_prop_APA_MainAuthors_ML = %L, %m
templ_prop_APA_MainAuthors_FL = %L, %f

没有任何损失;因此,我试过了。虽然我不知道这些%L,%F或%M和它们的小写对应物是如何形成的(解释会很好),但表达式确实有效。反过来,下面包括调整后的代码部分。到目前为止,它似乎是为了这个目的。

<xsl:template name="templ_prop_APA_CitationLong_FML" >
    <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:choose>
        <xsl:when test="$_LCID='1054'">
            <xsl:value-of select="'%F %M %L'"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="'%L, %F %M'"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

<xsl:template name="templ_prop_APA_CitationLong_FM" >
    <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:choose>
        <xsl:when test="$_LCID='1054'">
            <xsl:value-of select="'%F %M'"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="'%F %M'"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

<xsl:template name="templ_prop_APA_CitationLong_ML" >
    <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:choose>
        <xsl:when test="$_LCID='1054'">
            <xsl:value-of select="'%M %L'"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="'%L, %M'"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

<xsl:template name="templ_prop_APA_CitationLong_FL" >
    <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:choose>
        <xsl:when test="$_LCID='1054'">
            <xsl:value-of select="'%F %L'"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="'%L, %F'"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

<xsl:template name="templ_prop_APA_CitationShort_FML" >
    <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:choose>
        <xsl:when test="$_LCID='1054'">
            <xsl:value-of select="'%F %M %L'"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="'%L'"/>
        </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

<xsl:template name="templ_prop_APA_CitationShort_FM" >
    <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:choose>
        <xsl:when test="$_LCID='1054'">
            <xsl:value-of select="'%F %M'"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="'%F'"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

<xsl:template name="templ_prop_APA_CitationShort_ML" >
    <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:choose>
        <xsl:when test="$_LCID='1054'">
            <xsl:value-of select="'%M %L'"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="'%L'"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

<xsl:template name="templ_prop_APA_CitationShort_FL" >
    <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:choose>
        <xsl:when test="$_LCID='1054'">
            <xsl:value-of select="'%F %L'"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="'%L'"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

注意:包含完整文件here

答案 1 :(得分:0)

它与这些模板有关:

<xsl:template name="templ_prop_APA_CitationShort_FML" >
  <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:APA/b:CitationShort/b:FML"/>
</xsl:template>
<!-- ... -->
<xsl:template name="templ_prop_APA_CitationShort_FL" >
  <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:APA/b:CitationShort/b:FL"/>
</xsl:template>

尝试:

<xsl:template name="templ_prop_APA_CitationShort_FML" >
  <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:APA/b:CitationShort/b:FM"/>
  <xsl:text> </xsl:text>
  <xsl:value-of select="/*/b:Locals/b:Local[@LCID=$_LCID]/b:APA/b:CitationShort/b:FML"/>
</xsl:template>
<!-- ... -->
<xsl:template name="templ_prop_APA_CitationShort_FL" >
  <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:APA/b:CitationShort/b:FM"/>
  <xsl:text> </xsl:text>
  <xsl:value-of select="/*/b:Locals/b:Local[@LCID=$_LCID]/b:APA/b:CitationShort/b:FL"/>
</xsl:template>

我无法弄清楚这些值的填充位置,所以这是我现在能做的最好的。

在这里进行此更改似乎是安全的,而不是<xsl:variable name="author0">...</xsl:variable>中的循环,因为它只是从那里调用过。此更改不会影响您的参考书目。

您可能还需要修改其他temp1_prop_APA_*_*模板。