web-dev-qa-db-ja.com

Microsoft Wordに新しい引用と参考文献スタイルを追加する方法

Microsoft Wordでは、次のスクリーンショットに示すように、12の引用および参考文献スタイルを使用できます。

The 12 Citation & Bibliography Styles available in Microsoft Word.

ただし、カスタムまたは新しい引用と参考文献スタイルを追加する簡単な方法はないようです。そして、残念ながら、私の大学は独自の引用と参考文献スタイルを使用しています。これは、少し変更されたシカゴスタイルです。基本的に、たとえば、「and」の代わりにアンパサンド&を使用して、2人の著者を参照します。そして、彼らは書誌に中間の期間なしで著者の翌年を入れました。

したがって、基本的には、シカゴスタイルのコピーであるMicrosoft Wordに新しい引用と参考文献スタイルを追加する必要がありますが、これらの2つのわずかな違いがあります。

これに関する私の調査は、これがXMLファイルを介して可能であることを示唆しています。以前にXMLファイルを編集したことがありますが、たとえばシカゴスタイルのXMLファイルはどこにありますか? [編集:パスは%APPDATA%\ Microsoft\Bibliographyのようです)

そして、著者間の "and"をアンパサンド "&"に変え、著者間のピリオドを削除するために、シカゴスタイルでどの部分を変更する必要がありますか?参考文献の年(インライン引用には存在しない)?

APAスタイルはアンパサンドを使用しますが、残念ながら、それ以外のフォーマットはシカゴとは大きく異なり、シカゴ全体が私のターゲットスタイルに近くなっています。 APASixthEditionOfficeOnline.xslファイルとCHICAGO.XSLファイルを比較して、APAがアンパサンドを使用し、シカゴが「and」を使用していることを考えると、何を変更する必要があるかについての手掛かりとなる違いを見つけられるかどうかを確認しようとしましたが、残念ながら、私のXMLレベルの知識とそれらのファイルのサイズにより、変更が必要な部分を見つけることができませんでした。また、どちらのスタイルも参考文献の著者の後にピリオドを付けています。

これに関するヘルプやヒントをありがとう。

2
Rok

組み込みスタイルの.xslスタイルシートを使用するのは難しいため、以下はほんの一部の提案です。主な難点は、変更の適切なポイントを特定することです-それが何であるかに応じて、あなたはmight単一の変更を行うことができます。これは主に、これらのスタイルシートがかなり大きな「小さな」ルールのセットを実装しようとするためです。ただし、実装者がそれを行うと、スタイルシート内のXSLテンプレートの変更が適切な影響を与えるポイントを特定することは常に困難になります。特に馴染みのない言語を使用し、内部ドキュメントを提供しないことは役に立ちません。

もう1つの不幸な問題は、変更した.xslを、ドキュメントで作業する必要がある他の人に提供する必要がある場合があることです。

ただし、たとえば、特定したフォルダー(ユーザー領域の1つで、Program FilesまたはProgram Files(86)の下にあるフォルダーではない)にChicago.xslのコピーを保存することから始めることをお勧めします。Xhicago.xslと呼びます、たぶん。

次に、Wordを再起動すると、関連するドロップダウンに2つの同一のスタイルが表示されます。次に、適切なエディターで.xslを開きます(現在、ここではVisual Studio Codeを使用しており、.xmlおよびその他のファイルタイプに適切なプラグインを使用しています)。

そうは言っても、現在のニーズに十分であるかどうかを確認するのに役立つ可能性があるため、少なくとも以下を試すことができます。

まず、特定したフォルダ(ユーザー領域の1つで、Program FilesまたはProgram Files(86)の下のフォルダではありません)にChicago.xslのコピーを保存することをお勧めします。Xhicago.xslと呼んでください。

次に、Wordを再起動すると、関連するドロップダウンに2つの同一のスタイルが表示されます。次に、すでに引用と参考文献が含まれているテストドキュメントを開き、Wordのドロップダウンを使用して2つのChicagoスタイルシートを切り替えます。出力に変化はないはずですが、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に変更します(Microsoftは私のバージョンから既に移動している可能性があると思います)、. xslを保存します。ここでは、変更をテストしている間、通常は閉じる必要はありません。個人的には、XMLコメントも書きます-他のものとは別に、変更したものを見つけるのに本当に役立ちます。例えば.

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

  <!-- 20200402 changed 16 to 18 -->

  <xsl:text>18</xsl:text>

</xsl:when>

個人的には、もう一度必要になった場合に備えて、古いコードを内側にまとめることも好みます。

次に、Wordを再起動して、テストドキュメントを再度開きます。ドロップダウンに2つの異なる「シカゴ」スタイルが表示され、2つの異なるバージョン番号が表示されます。

次に、.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>

これが行うことは、少なくとも英語のIDを使用している場合に、「and」が必要なときに.xslが使用するWordを含むローカル変数を設定することです。

Wordが引用または参考文献全体のテキストを生成する場合は常に、XMLファイルを.xslに渡します。このファイルには、関連するすべての引用、およびその他の設定がすべて含まれています。これらの一部は、「著者リストの最終著者の前に「and」があるべき」などの一般的な設定であり、一部は、異なる組み込みスタイルシートに関連付けられた設定です。さらに、多くの異なる言語コードの設定がある場合があります。したがって、たとえば、XMLには英語の場合は「and」、フランス語の場合は「et」が含まれる場合があります。私の知る限り、これらの設定を構成できる場所はありません-Wordのどこかにハードコードされています。

したがって、このコードを変更する前に、どのような影響があるかを検討する必要があります。

まず、私の知る限りでは、単語「and」は、着信XMLの1つの要素でのみ定義されています。したがって、「翻訳者」ではなく作者のリストの「and」が必要な場合は、受信XMLに依存して提供することはできません。私が提案しようとしている変更は、.xslがこの着信値を参照するevery placeの「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をもう一度保存します。シカゴスタイルに切り替えて、Xhicagoスタイルに戻すと、参考文献に変更が反映されているはずです(参考文献を更新する必要がある場合もあります)。 anyコーディングエラーを行った場合、変更が表示されない可能性があり、実際に次回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>

ところで、あなたの大学に誰かがいるかどうかを確認するのはおそらく価値があります。すでにこの作業を行っています。私は確かに時々人々のためにマイナーな修正を行いました、しかし私はそれを得るとは思いませんallallの状況allの状況文化」は、問題に多くの時間を費やすことなく、実際に実用的な命題です。 WordがXSLに渡すXMLの内部構造は.docxのISO 29500規格で記述されていると思いますが、この領域全体が非常に混乱しているので、次のようなスタイルシートを用意することだけが役立つと判断しました。 Wordが提供するすべてのXMLを繰り返し処理しました。いくつかの方法で改善できると確信していますが、ここに私の「explore.xsl」があります。もちろん、通常のシートのように使用することはできませんが、他の.xslファイルと同じフォルダに入れて、Wordで通常の方法で切り替えることができます。

ちなみに、.xslに挿入する必要があるものに関するMicrosoftのドキュメントは、かなり古いものです。メインの「選択」内のコードによって実装された「オプション」の一部について、それが十分に説明されているとは思いません。

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

以前のバージョンのWordでは必要でしたが、新しいバージョンでは必要ありません。その逆も同様です。また、かつて、MacバージョンのWordは、通常の引用レイアウトとは異なるFootnoteCitationレイアウトをサポートしていました。しかし、それはMac Word 2016で消え、私はそれが戻ってきたとは思いません。

最後に、参考文献システムで使用されている他の.XSLファイルが、Program Files(または(86)バージョン)のMicrosoft Officeフォルダにあります。私が知る限り、これらは引用やよだれかけのテキストの作成には使用されず、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>
2
yokki

基本的に、新しい引用と書誌スタイルを追加する必要があります

追加のスタイルをインストールできます。それらの1つがあなたに適しているかもしれません:

  • AssociaçãoBrasileira de NormasTécnicas(ABNT)
  • コンピューティング機械協会(ACM)
  • アメリカ医学会(ACS)
  • アメリカ医師会(AMA)
  • アメリカ社会学会(ASA)
  • 科学編集者評議会(CSE)
  • ハーバード– AGPS
  • ハーバード–アングリア
  • ハーバード–エクセター
  • ハーバード–リーズ
  • ヒューマナプレス
  • IEEE
  • コンピュータサイエンス(LNCS)の講義ノート
  • 現代人文科学研究協会(MHRA)
  • 自然
  • バンクーバー

ソース 追加のWord参照スタイルをインストール(Mac + Windows)

カスタムスタイルを使用して、希望する正確な形式を取得することもできます。詳細については、次のリンクを参照してください。

1
DavidPostill

これに関する私の調査は、これがXMLファイルを介して可能であることを示唆しています。以前にXMLファイルを編集したことがありますが、たとえばシカゴスタイルのXMLファイルはどこにありますか?

Office 2016のC:\Program Files (x86)\Microsoft Office\Office16\Bibliography\Style内のBibliography/Style内にあります。正確なパスは、インストールしたOfficeのバージョンによって異なります。

カスタム参考文献スタイルの作成 は、新しい引用スタイルに必要なすべてのものを示します。このプロセスには複数のXMLファイルが必要であるため、リンクを引用することは困難ですが、独自のスタイルを作成する方法は問題ではありませんでした。

1
Ramhound