diff --git a/src/cmos/formatter.py b/src/cmos/formatter.py index 1afe143..dc28ff0 100644 --- a/src/cmos/formatter.py +++ b/src/cmos/formatter.py @@ -235,6 +235,79 @@ Rules you must follow (CMOS 18th edition specifically): capitalization. When in doubt about whether a lowercased form is intentional, err on the side of preserving the source's form. +29. LOWERCASE PREPOSITIONS IN TITLES — CMOS 8.159. CMOS headline-style + capitalization lowercases ALL prepositions regardless of length, + UNLESS the preposition is the first word or last word of the title + or subtitle, or is used adverbially or adjectivally. This is a + distinctive CMOS rule and differs from AP style and many other + house styles, which capitalize prepositions of 5+ letters. Rule 6 + ("headline-style capitalization") does NOT override this — this + rule is the carve-out. + + Common prepositions that MUST be lowercased mid-title (illustrative, + not exhaustive): + about, above, across, after, against, along, among, around, as, at, + before, behind, below, between, beyond, by, during, for, from, in, + inside, into, of, on, onto, out, over, through, throughout, to, + toward, under, until, up, upon, with, within, without. + + The word "as" is specifically listed in CMOS 8.159 as always + lowercased in titles, whether functioning as a preposition or a + conjunction ("Information Literacy as Sociocultural Practice", NOT + "Literacy As Sociocultural"). + + The infinitive marker "to" is also lowercased ("How to Read a Book", + not "How To Read a Book"). + + SCOPE — PREPOSITIONS ONLY. This rule covers prepositions. Do NOT + apply it to SUBORDINATING CONJUNCTIONS such as "If", "That", + "Because", "Although", "Though", "Whether", "Unless" — these are + CAPITALIZED in headline-style titles. CMOS 8.159 lowercases only + COORDINATING conjunctions (and, but, for, or, nor, so, yet), not + subordinating conjunctions. Do not over-apply rule 29 and lowercase + words that are not prepositions. + + HYPHENATED COMPOUNDS — CMOS 8.161. In a hyphenated compound within + a title, the FIRST element is ALWAYS capitalized, regardless of + part of speech, even when that first element would be lowercased + as a standalone preposition under this rule. Do NOT apply rule 29's + lowercasing to the first element of a hyphenated compound. + Examples: + - "In-School Adolescents" (NOT "in-School") + - "On-Campus Housing" (NOT "on-Campus") + - "Post-Trump Academic Librarianship" (first element capitalized) + - "Anti-Racist Initiatives" (first element capitalized) + The second element of a hyphenated compound follows CMOS 8.161 + separately: usually capitalized if it is a noun, verb, or adjective, + but lowercased if it is a short article, preposition, or + coordinating conjunction. + + CRITICAL: apply this rule INDEPENDENTLY of the source's casing. The + source may have the preposition capitalized or lowercased; the + correct output is always lowercase (unless an exception applies). + Do not preserve a source's wrong capitalization, and do not flip a + source that already has it right. + + Correct examples: + - "Information among Librarians" (not "Information Among Librarians") + - "Libraries Moving beyond Performative Politics" (not "Moving Beyond") + - "Experience within Animal Environments" (not "Experience Within") + - "An Exploration into Archival Materials" (not "Exploration Into") + - "Testing Intentions among Young Men" (not "Intentions Among") + - "Bathrooms Inclusive If the Stacks Exclude" (NOT "if" — subord. conj.) + - "A Study That Changed Everything" (NOT "that" — subord. conj.) + + First-word / last-word exceptions (CAPITALIZE in these positions): + - "Beyond the Pale: A Study of X" ("Beyond" is the first word) + - "The Decade After" ("After" is the last word of the title) + - "A Report on Knowledge" ("on" is mid-title, stays lowercase) + - "In Academia and Beyond: Resisting Stigma" ("Beyond" is the last + word of the MAIN title immediately before a subtitle colon — it + is capitalized, not lowercased. The main title and the subtitle + are treated as SEPARATE units for the first/last-word exception. + Similarly, the first word of a subtitle is always capitalized + regardless of part of speech.) + Output ONLY the single reformatted entry. No preamble, no explanation. """