summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/csquotes.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/style/csquotes.el')
-rw-r--r--elpa/auctex-13.1.3/style/csquotes.el404
1 files changed, 404 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/style/csquotes.el b/elpa/auctex-13.1.3/style/csquotes.el
new file mode 100644
index 0000000..d5714a3
--- /dev/null
+++ b/elpa/auctex-13.1.3/style/csquotes.el
@@ -0,0 +1,404 @@
+;;; csquotes.el --- AUCTeX style for `csquotes.sty' (v5.2j) -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2004--2022 Free Software Foundation, Inc.
+
+;; Author: Ralf Angeli <angeli@caeruleus.net>
+;; Maintainer: auctex-devel@gnu.org
+;; Created: 2004-11-29
+;; Keywords: tex
+
+;; This file is part of AUCTeX.
+
+;; AUCTeX is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; AUCTeX is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with AUCTeX; see the file COPYING. If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+;; 02110-1301, USA.
+
+;;; Commentary:
+
+;; This file adds support for `csquotes.sty', version 5.2j from
+;; 2019/12/06.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+ "font-latex"
+ (keywords class))
+
+(defun LaTeX-csquotes-read-language (optional &optional prompt)
+ "Read and return a language for csquotes macros.
+If OPTIONAL is non-nil, indicate it in minibuffer while reading
+user input. PROMPT replaces the standard one \"Language\". This
+function checks if the functions `LaTeX-babel-active-languages'
+or `LaTeX-polyglossia-active-languages' are bound and use them to
+retrieve the active languages. If none available, user is
+requested to enter a language."
+ (cond ((and (fboundp 'LaTeX-babel-active-languages)
+ (LaTeX-babel-active-languages))
+ (completing-read
+ (TeX-argument-prompt optional prompt "Language")
+ (LaTeX-babel-active-languages)))
+ ((and (fboundp 'LaTeX-polyglossia-active-languages)
+ (LaTeX-polyglossia-active-languages))
+ (completing-read
+ (TeX-argument-prompt optional prompt "Language")
+ (LaTeX-polyglossia-active-languages)))
+ (t
+ (TeX-read-string
+ (TeX-argument-prompt optional prompt "Language")))))
+
+(defun LaTeX-arg-csquotes-language (optional &optional prompt)
+ "Insert a language for csquotes macros.
+If OPTIONAL is non-nil, insert the language in square brackets.
+PROMPT replaces the standard one \"Language\"."
+ (TeX-argument-insert
+ (LaTeX-csquotes-read-language optional prompt)
+ optional))
+
+(TeX-add-style-hook
+ "csquotes"
+ (lambda ()
+ (let ((quote-style-variant-list '(("american") ("brazilian")
+ ("british") ("german")
+ ("guillemets") ("guillemets*")
+ ("mexican") ("portuguese")
+ ("quotes") ("quotes*")
+ ("spanish") ("swiss")))
+ (quote-style-name-list '(("austrian") ("croatian") ("czech")
+ ("danish") ("dutch") ("english")
+ ("finnish") ("french") ("german")
+ ("greek") ("italian") ("norwegian")
+ ("portuguese") ("russian") ("serbian")
+ ("spanish") ("swedish"))))
+ ;; New symbols
+ (TeX-add-symbols
+
+ ;; 3.1 Quoting Regular Text
+ '("enquote" 1)
+ '("enquote*" 1)
+
+ ;; 3.2 Quoting Text in a Foreign Language
+ '("foreignquote" LaTeX-arg-csquotes-language 1)
+ '("foreignquote*" LaTeX-arg-csquotes-language 1)
+ '("hyphenquote" LaTeX-arg-csquotes-language 1)
+ '("hyphenquote*" LaTeX-arg-csquotes-language 1)
+
+ ;; 3.3 Formal Quoting of Regular Text
+ '("textquote" ["Citation"] ["Punctuation"] t)
+ '("textquote*" ["Citation"] ["Punctuation"] t)
+
+ ;; 3.4 Formal Quoting of Text in a Foreign Language
+ '("foreigntextquote"
+ LaTeX-arg-csquotes-language ["Citation"] ["Punctuation"] t)
+ '("foreigntextquote*"
+ LaTeX-arg-csquotes-language ["Citation"] ["Punctuation"] t)
+ '("hyphentextquote"
+ LaTeX-arg-csquotes-language ["Citation"] ["Punctuation"] t)
+ '("hyphentextquote*"
+ LaTeX-arg-csquotes-language ["Citation"] ["Punctuation"] t)
+
+ ;; 3.5 Block Quoting of Regular Text
+ '("blockquote" ["Citation"] ["Punctuation"] t)
+
+ ;; 3.6 Block Quoting of Text in a Foreign Language
+ '("foreignblockquote"
+ LaTeX-arg-csquotes-language ["Citation"] ["Punctuation"] t)
+ '("hyphenblockquote"
+ LaTeX-arg-csquotes-language ["Citation"] ["Punctuation"] t)
+ '("hybridblockquote"
+ LaTeX-arg-csquotes-language ["Citation"] ["Punctuation"] t)
+
+ ;; 3.7 Selecting Quote Styles
+ `("setquotestyle"
+ [ (TeX-arg-eval completing-read "Quote style variant: "
+ ',quote-style-variant-list) ]
+ (TeX-arg-eval completing-read "Quote style name or alias: "
+ ',quote-style-name-list))
+ "setquotestyle*"
+
+ ;; 4.1 Quoting Regular Text
+ '("MakeInnerQuote" "Character")
+ '("MakeOuterQuote" "Character")
+ '("MakeAutoQuote" "Opening quotation mark" "Closing quotation mark")
+ '("MakeAutoQuote*" "Opening quotation mark" "Closing quotation mark")
+
+ ;; 4.2 Quoting Text in a Foreign Language
+ '("MakeForeignQuote" LaTeX-arg-csquotes-language
+ "Opening quotation mark" "Closing quotation mark")
+ '("MakeForeignQuote*" LaTeX-arg-csquotes-language
+ "Opening quotation mark" "Closing quotation mark")
+
+ '("MakeHyphenQuote" LaTeX-arg-csquotes-language
+ "Opening quotation mark" "Closing quotation mark")
+ '("MakeHyphenQuote" LaTeX-arg-csquotes-language
+ "Opening quotation mark" "Closing quotation mark")
+
+ ;; 4.3 Block Quoting of Regular Text
+ '("MakeBlockQuote" "Opening quotation mark" "Delimiter for citation"
+ "Closing quotation mark")
+
+ ;; 4.4 Block Quoting of Text in a Foreign Language
+ '("MakeForeignBlockQuote" LaTeX-arg-csquotes-language
+ "Opening quotation mark" "Delimiter for citation" "Closing quotation mark")
+ '("MakeHyphenBlockQuote" LaTeX-arg-csquotes-language
+ "Opening quotation mark" "Delimiter for citation" "Closing quotation mark")
+ '("MakeHybridBlockQuote" LaTeX-arg-csquotes-language
+ "Opening quotation mark" "Delimiter for citation" "Closing quotation mark")
+
+ ;; 4.5 Controlling Active Quotes
+ "EnableQuotes"
+ "DisableQuotes"
+ "VerbatimQuotes"
+ "DeleteQuotes"
+
+ ;; 5.1 Formal Quoting of Regular Text
+ '("textcquote" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+ '("textcquote*" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+
+ ;; 5.2 Formal Quoting of Text in a Foreign Language
+ '("foreigntextcquote" LaTeX-arg-csquotes-language
+ ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+ '("foreigntextcquote*" LaTeX-arg-csquotes-language
+ ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+ '("hyphentextcquote" LaTeX-arg-csquotes-language
+ ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+ '("hyphentextcquote*" LaTeX-arg-csquotes-language
+ ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+
+ ;; 5.3 Block Quoting of Regular Text
+ '("blockcquote" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+
+ ;; 5.4 Block Quoting of Text in a Foreign Language
+ '("foreignblockcquote" LaTeX-arg-csquotes-language
+ ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+ '("hyphenblockcquote" LaTeX-arg-csquotes-language
+ ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+ '("hybridblockcquote" LaTeX-arg-csquotes-language
+ ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
+
+ ;; 7 Auxiliary Commands
+ '("textelp" 1)
+ '("textelp*" 1)
+ '("textins" 1)
+ '("textins*" 1)
+ '("textdel" 1)
+
+ ;; 8.1 Defining Quote Styles
+ `("DeclareQuoteStyle"
+ [ (TeX-arg-eval completing-read "Quote style variant: "
+ ',quote-style-variant-list) ]
+ (TeX-arg-eval completing-read "Quote style name: "
+ ',quote-style-name-list)
+ ["Outer quote initialization"] ["Inner quote initialization"]
+ "Opening outer quotation mark" ["Middle outer quotation mark"]
+ "Closing outer quotation mark" ["Kerning between adjoining marks"]
+ "Opening inner quotation mark" ["Middle inner quotation mark"]
+ "Closing inner quotation mark")
+ `("DeclareQuoteAlias"
+ [ (TeX-arg-eval completing-read "Quote style variant: "
+ ',quote-style-variant-list) ]
+ (TeX-arg-eval completing-read "Quote style name: "
+ ',quote-style-name-list)
+ "Alias name")
+ '("DeclareQuoteOption" 1)
+ '("ExecuteQuoteOptions" 1)
+ '("DeclarePlainStyle" "Opening outer quotation mark"
+ "Closing outer quotation mark" "Opening inner quotation mark"
+ "Closing inner quotation mark")
+ '("SetBlockThreshold" "Number of lines")
+ '("SetBlockEnvironment" "Environment")
+ '("SetCiteCommand" "Command")
+
+ ;; 8.7 Hooks for Quotations and Citations
+ "mkcitation"
+ "mkccitation"
+ "mktextquote"
+ "mkblockquote"
+ "mkbegdispquote"
+ "mkenddispquote"
+
+ ;; 8.8 Additional Tests in Quotation Hooks
+ '("ifpunctmark" "Character" 2)
+ '("ifpunct" 2)
+ '("ifterm" 2)
+ '("iftextpunctmark" 4)
+ '("iftextpunct" 3)
+ '("iftextterm" 3)
+ '("ifblockquote" 2)
+ '("ifblank" 3)
+ "unspace"
+
+ ;; 8.9 Configuring Punctuation Look-Ahead
+ '("DeclareAutoPunct" "Characters"))
+
+ ;; Don't increase indentation at various \if* macros:
+ (let ((exceptions '("ifpunctmark"
+ "ifpunct"
+ "ifterm"
+ "iftextpunctmark"
+ "iftextpunct"
+ "iftextterm"
+ "ifblockquote"
+ "ifblank")))
+ (dolist (elt exceptions)
+ (add-to-list 'LaTeX-indent-begin-exceptions-list elt t))
+ (LaTeX-indent-commands-regexp-make))
+
+ ;; New environments
+ (LaTeX-add-environments
+
+ ;; 6.1 Basic Display Environments
+ '("displayquote" LaTeX-env-args
+ ["Citation"] ["Punctuation"])
+
+ '("foreigndisplayquote" LaTeX-env-args
+ LaTeX-arg-csquotes-language ["Citation"] ["Punctuation"])
+
+ '("hyphendisplayquote" LaTeX-env-args
+ LaTeX-arg-csquotes-language ["Citation"] ["Punctuation"])
+
+ ;; 6.2 Integrated Display Environments
+ '("displaycquote" LaTeX-env-args
+ ["Pre-note"] ["Post-note"] "Key" ["Punctuation"])
+
+ '("foreigndisplaycquote" LaTeX-env-args
+ LaTeX-arg-csquotes-language["Pre-note"] ["Post-note"] "Key" ["Punctuation"])
+
+ '("hyphendisplaycquote" LaTeX-env-args
+ LaTeX-arg-csquotes-language["Pre-note"] ["Post-note"] "Key" ["Punctuation"]))
+
+ ;; Quotation marks
+ (when (and (> (length LaTeX-csquotes-open-quote) 0)
+ (> (length LaTeX-csquotes-close-quote) 0))
+ (setq TeX-quote-language
+ `(override ,LaTeX-csquotes-open-quote ,LaTeX-csquotes-close-quote
+ ,LaTeX-csquotes-quote-after-quote)))
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("EnableQuotes" "")
+ ("DisableQuotes" "")
+ ("VerbatimQuotes" "")
+ ("DeleteQuotes" ""))
+ 'function)
+ (font-latex-add-keywords '(("enquote" "*{")
+ ("foreignquote" "*{{")
+ ("hyphenquote" "*{{")
+ ("textquote" "*[[{")
+ ("foreigntextquote" "*{[[{")
+ ("hyphentextquote" "*{[[{")
+ ("blockquote" "[[{")
+ ("foreignblockquote" "{[[{")
+ ("hyphenblockquote" "{[[{")
+ ("hybridblockquote" "{[[{")
+ ("textcquote" "*[[{[{")
+ ("foreigntextcquote" "*{[[{[{")
+ ("hyphentextcquote" "*{[[{[{")
+ ("blockcquote" "[[{[{")
+ ("foreignblockcquote" "{[[{[{")
+ ("hyphenblockcquote" "{[[{[{")
+ ("hybridblockcquote" "{[[{[{"))
+ 'textual)
+ (font-latex-add-keywords '(("setquotestyle" "[{")
+ ("MakeOuterQuote" "{")
+ ("MakeInnerQuote" "{")
+ ("MakeAutoQuote" "*{{")
+ ("MakeForeignQuote" "*{{{")
+ ("MakeHyphenQuote" "*{{{")
+ ("MakeBlockQuote" "{{{")
+ ("MakeForeignBlockQuote" "{{{{")
+ ("MakeHyphenBlockQuote" "{{{{")
+ ("DeclareQuoteStyle" "[{[[{[{[{[{")
+ ("DeclareQuoteAlias" "[{{")
+ ("DeclareQuoteOption" "{")
+ ("DeclarePlainStyle" "{{{{")
+ ("SetBlockThreshold" "{")
+ ("SetBlockEnvironment" "{")
+ ("SetCiteCommand" "{"))
+ 'variable))))
+ TeX-dialect)
+
+(defun LaTeX-csquotes-package-options ()
+ "Prompt for package options for the csquotes package."
+ (TeX-read-key-val t '(("strict" ("true" "false"))
+ ("style" ("american"
+ "australian"
+ "austrian"
+ "brazil"
+ "brazilian"
+ "british"
+ "canadian"
+ "croatian"
+ "czech"
+ "danish"
+ "dutch"
+ "english"
+ "finnish"
+ "french"
+ "german"
+ "greek"
+ "italian"
+ "mexican"
+ "naustrian"
+ "newzealand"
+ "ngerman"
+ "norsk"
+ "norwegian"
+ "nswissgerman"
+ "nynorsk"
+ "portuges"
+ "portuguese"
+ "russian"
+ "serbian"
+ "spanish"
+ "swedish"
+ "swiss"
+ "swissgerman"
+ "UKenglish"
+ "USenglish"))
+ ("autostyle" ("true" "false" "try" "once" "tryonce"))
+ ("austrian" ("quotes" "guillemets"))
+ ("croatian" ("quotes" "guillemets" "guillemets*"))
+ ("czech" ("quotes" "guillemets"))
+ ("danish" ("quotes" "guillemets" "topquotes"))
+ ("english" ("american" "british"))
+ ("estonian")
+ ("french" ("quotes" "quotes*" "guillemets" "guillemets*"))
+ ("galician" ("quotes" "guillemets"))
+ ("german" ("quotes" "guillemets" "swiss"))
+ ("hungarian")
+ ("italian" ("guillemets" "quotes"))
+ ("latvian")
+ ("norwegian" ("guillemets" "quotes"))
+ ("polish" ("guillemets" "guillemets*"))
+ ("portuguese" ("portuguese" "brazilian"))
+ ("serbian" ("quotes" "guillemets" "german"))
+ ("spanish" ("spanish" "mexican"))
+ ("swedish" ("quotes" "guillemets" "guillemets*"))
+ ("maxlevel")
+ ("autopunct" ("true" "false"))
+ ("threshold")
+ ("thresholdtype" ("lines" "words"))
+ ("parthreshold" ("true" "false"))
+ ("splitcomp" ("true" "false"))
+ ("csdisplay" ("true" "false"))
+ ("debug" ("true" "false"))
+ ;; "babel" key is deprecated, replaced by "autostyle":
+ ;; ("babel" ("true" "false" "try" "once" "tryonce"))
+ ("version" ("4.4" "3.6" "3.0")))))
+
+;;; csquotes.el ends here