:::

Zotero排序時排除題名上的"a", "an", "the"等冠詞 / Ignoring "a", "an", "the" on the Leading of the Title when Sorting in Zotero

10月 09, 2023 , , 0 Comments Edit Copy Download

2023-0704-182919.png

原來「leading-noise-words」只能用在<text variable="title" leading-noise-words="drop" />這種變數標籤上。


APA的排序規則 / Sorting bibliographies in APA

2023-0704-174242.png

https://www.bibliography.com/apa/how-to-alphabetize-your-apa-reference-list/ 

APA樣式的排序中,大多都是以作者(author)的姓氏或機關名字的字母順序來排序。如果沒有作者,則是以作品的題名(title)來排序。

2023-0704-174540.png

然而,使用題名排序的時候,還要注意一個細節:忽略「A」、「An」以及「The」這三個冠詞。

舉例來說,現在有三個文獻,個別如下:

  • a. Author: Chen, Y.-T. ; Date: 2023
  • b. Author: Zaydan, Ibn; Date: 1873
  • c. Author: (no data); Date: 1993; Title: The Blue Sky

其中c書目沒有作者,因此是以題名「The Blue Sky」作為排序的依據。如果沒有考慮到冠詞的問題,書目會以「C」、「T」、「Z」的順序排序。但這是錯誤的排序:

  1. Chen (2023)
  2. The Blue Sky (1993)
  3. Zaydan (1873)

正確的排序中,「The Blue Sky」應該要以去掉「The」之後的「B」為依據來排序。正確的排序應是「B」、「C」、「Z」,結果如下:

  1. The Blue Sky (1993)
  2. Chen (2023)
  3. Zaydan (1873)

2023-0704-175804.png

https://archive.org/search?query=title%3A%28The%29 

為什麼要這樣做呢?這是因為英文裡以「A」、「An」、「The」開頭的題名實在是太多了,而這些冠詞能夠呈現的意義並不多。如果將冠詞納入排序,那麼就會出現「A」、「The」數量龐大的清單。這對按照字母順序來找資料的人來說,非常不方便。所以APA才特別強調要移除掉「a」、「an」、「the」之後再進行排序。


Zotero如何實作排序 / How to sorting in Zotero?

https://docs.citationstyles.org/en/stable/specification.html#sorting

https://docs.citationstyles.org/en/stable/specification.html#sorting 

姑且先不論冠詞的問題,Zotero是怎麼排序書目的呢?Zotero排序書目的規則是靠各個樣式檔(style)來控制。樣式檔本身是由CSL (Citation Style Language)撰寫而成。目前Zotero使用的CSL版本是1.0.2。規格裡面有說明排序的規則。

<citation>
  <sort>
    <key macro="author" names-min="3" names-use-first="3"/>
    <key variable="issued" sort="descending"/>
  </sort>
  <layout>
    <!-- rendering elements -->
  </layout>
</citation>

上面是在文中引用(citation)使用的排序規則。它用了兩種資料。一個是名為「author」的函式,另一個是「issued」(發佈日期)的變數。雖然從這裡不能知道「author」函式內容到底寫了什麼,但可以看得出來,應該是指作者。

2023-0704-180659.png

https://www.zotero.org/styles?q=APA 

接著讓我們看一下Wiernik發佈的APA第七版的寫法。

<citation et-al-min="3" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" collapse="year" givenname-disambiguation-rule="primary-name-with-initials">
    <sort>
      <key macro="author-bib" names-min="3" names-use-first="1"/>
      <key macro="date-sort-group"/>
      <key macro="date-bib" sort="ascending"/>
      <key variable="status"/>

    </sort>
    <layout prefix="(" suffix=")" delimiter="; ">
      <!-- (省略) -->
    </layout>
  </citation>

APA第七版在文中引用的排序使用了四種資料。仔細分析APA第七版CSL的內容,可以得知author-bib函式內包含的規則中,當沒有作者資料的時候,實際上會顯示題名。

2023-0704-181435.png

儘管如此,Wiernik發佈的APA第七版並沒有考慮到略過冠詞的規則。因此排序時,題名「The Blue Sky」是以「T」作為排序的依據,而這是錯誤的做法。


使用leading-noise-words過濾冠詞 / Using "leading-noise-words" to filter "a", "an", "the"

https://citeproc-js.readthedocs.io/en/latest/csl-m/index.html#leading-noise-words-extension

https://citeproc-js.readthedocs.io/en/latest/csl-m/index.html#leading-noise-words-extension 

這時候我們要使用CSL-M語法中的「leading-noise-words」來忽略冠詞。

2023-0704-181926.png

https://github.com/pulipulichen/Zotero-Style-apa-7th-zh-Hant-TW/blob/main/dist/apa-7th-zh_Hant-TW.csl

根據說明,我們要先在樣式的開頭<locale>的設定中,宣告那些文字可被忽略。

2023-0704-182002.png

接著就能在<text variable />使用變數時,搭配「leading-noise-words="drop"」屬性來移除冠詞。然而由於leading-noise-words是CSL-M的語法,它不能像一般的CSL屬性一樣,上層設定的屬性會影響到下層去。它必須直接設定在<text variable />上才能生效。

舉例來說,題名「The Blue Sky」在CSL語法裡要顯示題名時,如果使用的語法是最基本的方式「<text variable="title" />」,那顯示的結果會是「The Blue Sky」。

如果改成「<text variable="title" leading-noise-words="drop" />」,則顯示的結果會是「Blue Sky」。如果將後者結果拿去排序,就會以「B」作為排序的依據了。

2023-0704-182306.png

然而這也表示,除了原本「顯示」使用的函式之外,我們還必須要為「排序」撰寫另外一組函式。這讓CSL程式的長度又增加了許多。但最終結果將能呈現省略掉「a」、「an」與「the」來進行排序,較為符合APA的規範。


文章最後要來問的是:你有發現到排序時要略過「a」、「an」跟「the」嗎?

  • 1. 沒有。從來沒注意過。
  • 2. 有。不略過那些冠詞的話,找資料會找個半死啊!

歡迎在下面留言喔!