将内联引用从 MS Word 转换为 BibLaTeX

将内联引用从 MS Word 转换为 BibLaTeX

这个答案解释,指的是本文,如何将书目从 MS Word 导出到.bib。脚本已略有改进这里。但是,此脚本对于将实际的内联引用转换为 LaTeX 引用没有多大作用。例如,让我们将其应用于以下示例文档:

在此处输入图片描述

我得到:

在此处输入图片描述

其实这还不算太糟。引用已被括号中的标签名称替换。让我们稍微更新一下脚本,具体来说,修改第 773-837 行的脚本,使每个引用输出看起来都像这样:

<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>@@@parencite{</xsl:text> 
        <xsl:value-of select="b:Tag"/>
        <xsl:text>}</xsl:text> 
    </body> 
  </html> 
</xsl:template>

然后我得到下面的结果:

在此处输入图片描述

现在,使用例如pandocwriter2latex将其转换为 LaTeX 代码后,我要做的就是@@@用字符串替换\,然后我就会得到一个可以运行的 BibLaTeX 文档。

唯一的问题是第二次引用的页码(“p. 223”)不见了。@@@parencite[223]{Johnson22}在这种情况下,我该如何输出它?

我尝试查看其他引用样式的 8000 行以上源代码,但不幸的是它们非常复杂。我设法在某处找到了这行代码<xsl:value-of select="$pages"/>,因此我尝试了以下方法:

<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>@@@parencite[</xsl:text>
        <xsl:value-of select="$pages"/>     
        <xsl:text>]{</xsl:text> 
        <xsl:value-of select="b:Tag"/>
        <xsl:text>}</xsl:text> 
    </body> 
  </html> 
</xsl:template>

但是 MS Word 不再识别该样式,这(根据我的简要经验)意味着该脚本不再有效。

我怎样才能让它工作?

相关内容