diff options
Diffstat (limited to 'biblio/citation-style-language/apa.csl')
-rw-r--r-- | biblio/citation-style-language/apa.csl | 480 |
1 files changed, 321 insertions, 159 deletions
diff --git a/biblio/citation-style-language/apa.csl b/biblio/citation-style-language/apa.csl index 3734d8d76e..ad86a91b7f 100644 --- a/biblio/citation-style-language/apa.csl +++ b/biblio/citation-style-language/apa.csl @@ -14,7 +14,7 @@ <category citation-format="author-date"/> <category field="psychology"/> <category field="generic-base"/> - <updated>2023-07-16T18:56:49-04:00</updated> + <updated>2024-02-12T22:12:55-05:00</updated> <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights> </info> <locale xml:lang="en"> @@ -40,6 +40,8 @@ <multiple>issues</multiple> </term> <term name="software">computer software</term> + <term name="at" form="long">before the</term> + <term name="hearing" form="verb">testimony of</term> </terms> </locale> <locale xml:lang="da"> @@ -176,7 +178,7 @@ <!-- TODO: New creator roles --> <!-- TODO: Add new item types --> <choose> - <if type="bill legal_case legislation treaty" match="any"> + <if type="bill hearing legal_case legislation regulation treaty" match="any"> <text macro="title-intext"/> </if> <else-if type="interview personal_communication" match="any"> @@ -228,6 +230,16 @@ </else> </choose> </macro> + <macro name="author-sort"> + <choose> + <if type="bill hearing legal_case legislation regulation treaty" match="any"> + <text macro="title-legal"/> + </if> + <else> + <text macro="author-bib"/> + </else> + </choose> + </macro> <macro name="date-bib"> <!-- TODO: Add new item types --> <group delimiter=" " prefix="(" suffix=")"> @@ -239,32 +251,34 @@ <group> <choose> <if variable="issued"> - <date variable="issued"> - <date-part name="year"/> - </date> - <text variable="year-suffix"/> - <choose> - <if type="article-magazine article-newspaper broadcast interview motion_picture pamphlet personal_communication post post-weblog song speech webpage" match="any"> - <!-- Many video and audio examples in manual give full dates. Err on the side of too much information. --> - <date variable="issued"> - <date-part prefix=", " name="month"/> - <date-part prefix=" " name="day"/> - </date> - </if> - <else-if type="paper-conference"> - <!-- Capture 'speech' stored as 'paper-conference' --> - <choose> - <if variable="collection-editor editor editorial-director issue page volume" match="none"> - <date variable="issued"> - <date-part prefix=", " name="month"/> - <date-part prefix=" " name="day"/> - </date> - </if> - </choose> - </else-if> - <!-- Only year: article article-journal book chapter entry entry-dictionary entry-encyclopedia dataset figure graphic - manuscript map musical_score paper-conference[published] patent report review review-book thesis --> - </choose> + <group delimiter=", "> + <group> + <date variable="issued" date-parts="year" form="numeric"/> + <text variable="year-suffix"/> + </group> + <choose> + <if type="article-magazine article-newspaper broadcast interview motion_picture pamphlet personal_communication post post-weblog song speech webpage" match="any"> + <!-- Many video and audio examples in manual give full dates. Err on the side of too much information. --> + <date variable="issued"> + <date-part name="month"/> + <date-part name="day" prefix=" "/> + </date> + </if> + <else-if type="paper-conference"> + <!-- Capture 'speech' stored as 'paper-conference' --> + <choose> + <if variable="collection-editor editor editorial-director issue page volume" match="none"> + <date variable="issued"> + <date-part name="month"/> + <date-part name="day" prefix=" "/> + </date> + </if> + </choose> + </else-if> + <!-- Only year: article article-journal book chapter entry entry-dictionary entry-encyclopedia dataset figure graphic + manuscript map musical_score paper-conference[published] patent report review review-book thesis --> + </choose> + </group> </if> <else-if variable="status"> <group> @@ -281,6 +295,35 @@ </group> </group> </macro> + <macro name="date-sort"> + <choose> + <if type="article article-journal book chapter entry entry-dictionary entry-encyclopedia dataset figure graphic manuscript map musical_score patent report review review-book thesis" match="any"> + <date variable="issued" date-parts="year" form="numeric"/> + </if> + <else-if type="paper-conference"> + <!-- Capture 'speech' stored as 'paper-conference' --> + <choose> + <if variable="collection-editor editor editorial-director issue page volume" match="any"> + <date variable="issued" date-parts="year" form="numeric"/> + </if> + <else> + <date variable="issued"> + <date-part name="year" form="long"/> + <date-part name="month" form="numeric-leading-zeros"/> + <date-part name="day" form="numeric-leading-zeros"/> + </date> + </else> + </choose> + </else-if> + <else> + <date variable="issued"> + <date-part name="year" form="long"/> + <date-part name="month" form="numeric-leading-zeros"/> + <date-part name="day" form="numeric-leading-zeros"/> + </date> + </else> + </choose> + </macro> <macro name="date-sort-group"> <!-- APA sorts 1. no-date items, 2. items with dates, 3. in-press (status) items --> <choose> @@ -366,10 +409,22 @@ </group> </if> <else> - <group delimiter=" "> - <text macro="bracketed"/> - <text macro="parenthetical"/> - </group> + <choose> + <if type="bill report" match="any"> + <!-- Bills, resolutions, and congressional reports are not italicized and substitute bill number if no title. --> + <!-- Can't distinguish congressional reports from other reports, + but giving the genre and number seems fine for other reports too. --> + <text macro="number"/> + <text macro="bracketed"/> + <text macro="parenthetical"/> + </if> + <else> + <group delimiter=" "> + <text macro="bracketed"/> + <text macro="parenthetical"/> + </group> + </else> + </choose> </else> </choose> </macro> @@ -433,15 +488,10 @@ <macro name="title-intext"> <!-- TODO: Add new item types --> <choose> - <if variable="title" match="none"> - <text macro="bracketed-intext" prefix="[" suffix="]"/> - </if> - <else-if type="hearing"> - <!-- Hearings are italicized --> - <text variable="title" form="short" font-style="italic" text-case="title"/> - </else-if> - <else-if type="bill"> - <!-- Bills are not italicized and substitute bill number if no title. --> + <if type="bill report"> + <!-- Bills, resolutions, and congressional reports are not italicized and substitute bill number if no title. --> + <!-- Can't distinguish congressional reports from other reports, + but giving the genre and number seems fine for other reports too. --> <choose> <if variable="title"> <text variable="title" form="short" text-case="title"/> @@ -452,7 +502,7 @@ <group delimiter=" "> <choose> <if variable="chapter-number container-title" match="none"> - <label variable="number" form="short"/> + <label variable="number" form="short" text-case="capitalize-first"/> </if> </choose> <text variable="number"/> @@ -460,25 +510,36 @@ </group> </else> </choose> - </else-if> - <else-if type="legal_case" match="any"> - <!-- Cases are italicized --> - <text variable="title" font-style="italic"/> - </else-if> - <else-if type="legislation treaty" match="any"> - <!-- Legislation and treaties not italicized or quoted --> - <text variable="title" form="short" text-case="title"/> - </else-if> - <else-if type="post webpage" match="any"> - <!-- Webpages are always italicized --> - <text variable="title" form="short" font-style="italic" text-case="title"/> - </else-if> - <else-if variable="container-title" match="any"> - <!-- Other types are italicized or quoted based on presence of container-title. As in title macro. --> - <text variable="title" form="short" quotes="true" text-case="title"/> - </else-if> + </if> <else> - <text variable="title" form="short" font-style="italic" text-case="title"/> + <choose> + <if variable="title" match="none"> + <text macro="bracketed-intext"/> + </if> + <else-if type="hearing"> + <!-- Hearings are italicized --> + <text variable="title" form="short" font-style="italic" text-case="title"/> + </else-if> + <else-if type="legal_case" match="any"> + <!-- Cases are italicized --> + <text variable="title" font-style="italic"/> + </else-if> + <else-if type="legislation regulation treaty" match="any"> + <!-- Legislation, regulations, and treaties not italicized or quoted --> + <text variable="title" form="short" text-case="title"/> + </else-if> + <else-if type="post webpage" match="any"> + <!-- Webpages are always italicized --> + <text variable="title" form="short" font-style="italic" text-case="title"/> + </else-if> + <else-if variable="container-title" match="any"> + <!-- Other types are italicized or quoted based on presence of container-title. As in title macro. --> + <text variable="title" form="short" quotes="true" text-case="title"/> + </else-if> + <else> + <text variable="title" form="short" font-style="italic" text-case="title"/> + </else> + </choose> </else> </choose> </macro> @@ -514,6 +575,30 @@ <text macro="locators-booklike"/> </group> </else-if> + <else-if type="report" match="any"> + <choose> + <if variable="title" match="none"> + <!-- If there is no title, then genre and number are already printed as the title. --> + <group delimiter="; "> + <text macro="secondary-contributors"/> + <text macro="database-location"/> + <text macro="locators-booklike"/> + </group> + </if> + <!-- If the report is a chapter in a larger report, then most parenthetical information is printed after the container. --> + <else-if variable="container-title"> + <text macro="secondary-contributors"/> + </else-if> + <else> + <group delimiter="; "> + <text macro="secondary-contributors"/> + <text macro="database-location"/> + <text macro="number"/> + <text macro="locators-booklike"/> + </group> + </else> + </choose> + </else-if> <else-if variable="container-title"> <group delimiter="; "> <text macro="secondary-contributors"/> @@ -974,15 +1059,10 @@ <group delimiter=", "> <group delimiter=" "> <text variable="genre" text-case="title"/> - <choose> - <if is-numeric="number"> - <label variable="number" form="short" text-case="capitalize-first"/> - <text variable="number"/> - </if> - <else> - <text variable="number"/> - </else> - </choose> + <group delimiter=" "> + <label variable="number" form="short" text-case="capitalize-first"/> + <text variable="number"/> + </group> </group> <choose> <if type="thesis"> @@ -1427,62 +1507,83 @@ </macro> <!-- Legal citations have their own rules --> <macro name="legal-cites"> - <!-- TODO: Add new item types --> + <!-- `treaty`: for treaties --> + <!-- `legal_case`: for all legal and court cases --> + <!-- `bill`: for bills, resolutions, federal reports --> + <!-- `hearing`: TODO for hearings and testimony --> + <!-- `legislation`: for statutes, constitutional items, and charters --> + <!-- `regulation`: TODO codified regulations, uncodified regulations, executive orders --> + <group delimiter=" "> + <choose> + <if type="treaty"> + <group delimiter=", " suffix="."> + <!-- APA generally defers to Bluebook for legal citations, but diverges without + explanation for treaty items. We follow the Bluebook format that was used + in APA 6th ed. --> + <!-- APA manual omits treaty parties/authors, but per Bluebook + they should be included at least for bilateral treaties. --> + <names variable="author"> + <name initialize-with="." form="short" delimiter="-"/> + </names> + <text macro="date-legal"/> + <!-- APA manual omits treaty source/report called for by Bluebook in favor of just URL. + Both are included here, following the APA style used for all other item types + to end the reference with a period, then give the URL afterward. --> + <text macro="container-legal"/> + </group> + </if> + <else> + <group delimiter=" " suffix="."> + <group delimiter=", "> + <text macro="title-legal"/> + <text macro="container-legal"/> + </group> + <text macro="date-legal"/> + <text macro="parenthetical-legal"/> + </group> + </else> + </choose> + <text variable="references"/> + <text macro="access"/> + </group> + </macro> + <macro name="title-legal"> <choose> - <if type="treaty"> - <!-- APA generally defers to Bluebook for legal citations, but diverges without - explanation for treaty items. The Bluebook format that was used in APA 6th - ed. is used here. --> - <group delimiter=", "> - <text variable="title" text-case="title"/> - <names variable="author"> - <name initialize-with="." form="short" delimiter="-"/> - </names> - <text macro="date-legal"/> - <text macro="container-legal"/> - <text macro="access"/> - </group> + <if type="bill legal_case legislation regulation treaty" match="any"> + <text variable="title" text-case="title"/> </if> - <else> - <!-- For `bill`: currently designed to handle bills, resolutions, federal reports. --> - <!-- For `legislation`: currently designed to handle statutes, codified regulations, executive orders. --> - <group delimiter=". "> - <group delimiter=", "> - <choose> - <if type="bill legal_case legislation" match="any"> - <text variable="title"/> - </if> - <else-if type="hearing"> - <text variable="title" font-style="italic"/> - </else-if> - </choose> + <else-if type="hearing"> + <!-- APA uses a comma delimiter and omits "hearing before the" for hearings with testimony, + but follows Bluebook rules (colon delimiter, prefix before the committee name) for + references to the whole hearing. We simply follow the Bluebook rules for both, but + use APA style capitalization (not capitalizing "Before" or the title of the hearing). --> + <group delimiter=": " font-style="italic"> + <text variable="title" text-case="capitalize-first"/> + <group delimiter=" "> + <text term="hearing" form="long" text-case="capitalize-first"/> <group delimiter=" "> - <text macro="container-legal"/> - <text macro="date-legal"/> - <choose> - <if type="hearing"> - <names variable="author" prefix="(testimony of " suffix=")"> - <!-- TODO: Localize this with the hearing term. --> - <name and="symbol" delimiter=", "/> - </names> - </if> - <else-if type="bill legislation" match="any"> - <!-- `legislation`: For uncodified regulations, assume future code section is in status. --> - <text variable="status" prefix="(" suffix=")"/> - </else-if> - </choose> + <group delimiter=" "> + <!-- APA manual omits the bill number, but it should be included per Bluebook if relevant --> + <text term="on"/> + <text variable="number"/> + </group> + <group delimiter=" "> + <!-- Use the `at` term to hold "before the" --> + <text term="at" form="long"/> + <text variable="section"/> + </group> </group> - <text variable="references"/> </group> - <text macro="access"/> </group> - </else> + </else-if> </choose> </macro> <macro name="date-legal"> - <!-- TODO: Add new item types --> <choose> - <if type="legal_case"> + <if type="treaty"> + <date variable="issued" form="text"/> + </if> + <else-if type="legal_case"> <group prefix="(" suffix=")" delimiter=" "> <text variable="authority"/> <choose> @@ -1491,12 +1592,14 @@ <date variable="issued" form="numeric" date-parts="year"/> </if> <else> + <!-- APA manual doesn't include examples of cases not yet + published in a reporter, but this is Bluebook style. --> <date variable="issued" form="text"/> </else> </choose> </group> - </if> - <else-if type="bill legislation hearing" match="any"> + </else-if> + <else-if type="bill hearing legislation regulation" match="any"> <group prefix="(" suffix=")" delimiter=" "> <group delimiter=" "> <date variable="original-date"> @@ -1504,21 +1607,46 @@ </date> <text term="and" form="symbol"/> </group> - <date variable="issued"> - <date-part name="year"/> - </date> + <choose> + <if variable="issued"> + <!-- APA manual includes "rev." before the revision year, + but this isn't part of the Bluebook rules. --> + <date variable="issued"> + <date-part name="year"/> + </date> + </if> + <else> + <!-- Show proposal date for uncodified regualtions. + Assume date is entered literally ala "proposed May 23, 2016". + TODO: Add 'proposed' term here if that becomes available --> + <date variable="submitted" form="text"/> + </else> + </choose> </group> </else-if> - <else-if type="treaty"> - <date variable="issued" form="text"/> - </else-if> </choose> </macro> <macro name="container-legal"> - <!-- TODO: Add new item types --> <!-- Expect legal item container-titles to be stored in short form --> <choose> - <if type="legal_case"> + <if type="treaty"> + <group delimiter=" "> + <number variable="volume"/> + <text variable="container-title"/> + <choose> + <if variable="page page-first" match="any"> + <text variable="page-first"/> + </if> + <else> + <group delimiter=" "> + <label variable="number" form="short" text-case="capitalize-first"/> + <text variable="number"/> + </group> + </else> + </choose> + </group> + </if> + <else-if type="legal_case"> <group delimiter=" "> <choose> <if variable="container-title"> @@ -1541,32 +1669,34 @@ </if> <else> <group delimiter=" "> - <choose> - <if is-numeric="number"> - <label variable="number" form="short" text-case="capitalize-first"/> - </if> - </choose> + <label variable="number" form="short" text-case="capitalize-first"/> <text variable="number"/> </group> </else> </choose> </group> - </if> + </else-if> <else-if type="bill"> <group delimiter=", "> <group delimiter=" "> <text variable="genre"/> <group delimiter=" "> <choose> + <!-- TODO: What was the logic for this? Do we still need this? --> + <!-- If there is no session number or code/record title, print number. + Is that trying to capture congressional reports/documents? --> <if variable="chapter-number container-title" match="none"> - <label variable="number" form="short"/> + <label variable="number" form="short" text-case="capitalize-first"/> </if> </choose> <text variable="number"/> </group> </group> - <text variable="authority"/> - <text variable="chapter-number"/> + <group delimiter=" "> + <text variable="authority"/> + <!-- 'session' is `chapter-number` --> + <text variable="chapter-number"/> + </group> <group delimiter=" "> <text variable="volume"/> <text variable="container-title"/> @@ -1574,10 +1704,17 @@ </group> </group> </else-if> + <else-if type="hearing"> + <group delimiter=" "> + <text variable="authority"/> + <!-- 'session' is `chapter-number` --> + <text variable="chapter-number"/> + </group> + </else-if> <else-if type="legislation"> <choose> <if variable="number"> - <!--There's a public law number--> + <!-- There's a public law number. --> <group delimiter=", "> <text variable="number" prefix="Pub. L. No. "/> <group delimiter=" "> @@ -1594,8 +1731,7 @@ <choose> <if variable="section"> <group delimiter=" "> - <!-- TODO: Change to label variable="section" --> - <text term="section" form="symbol"/> + <label variable="section" form="symbol"/> <text variable="section"/> </group> </if> @@ -1607,25 +1743,51 @@ </else> </choose> </else-if> - <else-if type="treaty"> - <group delimiter=" "> - <number variable="volume"/> - <text variable="container-title"/> - <choose> - <if variable="page page-first" match="any"> - <text variable="page-first"/> - </if> - <else> - <group delimiter=" "> - <label variable="number" form="short" text-case="capitalize-first"/> - <text variable="number"/> - </group> - </else> - </choose> + <else-if type="regulation"> + <group delimiter=", "> + <group delimiter=" "> + <text variable="genre"/> + <group delimiter=" "> + <label variable="number" form="short" text-case="capitalize-first"/> + <text variable="number"/> + </group> + </group> + <group delimiter=" "> + <text variable="volume"/> + <text variable="container-title"/> + <choose> + <if variable="section"> + <group delimiter=" "> + <label variable="section" form="symbol"/> + <text variable="section"/> + </group> + </if> + <else> + <text variable="page-first"/> + </else> + </choose> + </group> </group> </else-if> </choose> </macro> + <macro name="parenthetical-legal"> + <choose> + <if type="hearing"> + <group prefix="(" suffix=")" delimiter=" "> + <!-- Use the 'verb' form of the hearing term to hold 'testimony of' --> + <text term="hearing" form="verb"/> + <names variable="author"> + <name and="symbol" delimiter=", "/> + </names> + </group> + </if> + <else-if type="bill legislation regulation" match="any"> + <!-- For uncodified regulations, assume future code section is in `status`. --> + <text variable="status" prefix="(" suffix=")"/> + </else-if> + </choose> + </macro> <macro name="citation-locator"> <!-- TODO: Add new locator types? --> <group delimiter=" "> @@ -1642,9 +1804,9 @@ </macro> <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 macro="author-sort" names-min="3" names-use-first="1"/> + <key macro="date-sort-group" sort="ascending"/> + <key macro="date-sort" sort="ascending"/> <key variable="status"/> </sort> <layout prefix="(" suffix=")" delimiter="; "> @@ -1657,16 +1819,16 @@ </citation> <bibliography hanging-indent="true" et-al-min="21" et-al-use-first="19" et-al-use-last="true" entry-spacing="0" line-spacing="2"> <sort> - <key macro="author-bib"/> - <key macro="date-sort-group"/> - <key macro="date-bib" sort="ascending"/> + <key macro="author-sort"/> + <key macro="date-sort-group" sort="ascending"/> + <key macro="date-sort" sort="ascending"/> <key variable="status"/> <key macro="title"/> </sort> <layout> <choose> <!-- TODO: Add new item types --> - <if type="bill legal_case legislation treaty" match="any"> + <if type="bill hearing legal_case legislation regulation treaty" match="any"> <!-- Legal items have different orders and delimiters --> <choose> <if variable="DOI URL" match="any"> |