+++ /dev/null
-;;; csquotes.el --- AUCTeX style for `csquotes.sty'
-
-;; Copyright (C) 2004, 2005, 2006 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 3.7.
-
-
-;;; Code:
-
-;; FIXME: It would be nice to be able to dump this function in favor
-;; of a generalized handling of additional arguments for environments
-;; specified via `LaTeX-add-environments'. `TeX-parse-arguments' and
-;; friends would be the functions to be used for that, but those
-;; functions currently insert text directly into the buffer. There
-;; would either have to be a way of preventing this and letting them
-;; return a string, or the insertion could happen in a temporary buffer
-;; and the buffer content be returned.
-(defun LaTeX-csquotes-insert-environment (env &rest args)
- "Insert environment ENV considering optional arguments ARGS.
-
-This is basically a variant of `LaTeX-environment-menu'
-specialized for csquotes.el. ARGS can be made up of strings and
-vectors containing single strings. Plain strings will be used as
-prompts for mandatory arguments and strings in vectors as prompts
-for optional arguments of the environment to be inserted.
-
-That means, in contrast to `LaTeX-environment-menu' it supports
-the insertion of optional arguments."
- (let (env-extra prompt optional user-input)
- (dolist (elt args)
- (if (vectorp elt)
- (setq prompt (aref elt 0)
- optional t)
- (setq prompt elt
- optional nil))
- (setq user-input (read-string (TeX-argument-prompt optional prompt nil)))
- (unless (and optional (zerop (length user-input)))
- (setq env-extra (concat env-extra
- (if optional LaTeX-optop TeX-grop)
- user-input
- (if optional LaTeX-optcl TeX-grcl)))))
- (LaTeX-insert-environment env env-extra)))
-
-(TeX-add-style-hook
- "csquotes"
- (lambda ()
- (let ((quote-style-variant-list '(("quotes") ("guillemets") ("american")
- ("british") ("oldstyle") ("imprimerie")
- ("swiss")))
- (quote-style-name-list '(("danish") ("dutch") ("english") ("finnish")
- ("french") ("german") ("italian")
- ("norwegian") ("swedish"))))
- ;; New symbols
- (TeX-add-symbols
- '("enquote" 1)
- '("enquote*" 1)
- '("foreignquote" 2)
- '("foreignquote*" 2)
- '("hyphenquote" 2)
- '("hyphenquote*" 2)
- '("textquote" ["Citation"] ["Punctuation"] t)
- '("textquote*" ["Citation"] ["Punctuation"] t)
- '("foreigntextquote" "Language" ["Citation"] ["Punctuation"] t)
- '("foreigntextquote*" "Language" ["Citation"] ["Punctuation"] t)
- '("hyphentextquote" "Language" ["Citation"] ["Punctuation"] t)
- '("hyphentextquote*" "Language" ["Citation"] ["Punctuation"] t)
- '("blockquote" ["Citation"] ["Punctuation"] t)
- '("foreignblockquote" "Language" ["Citation"] ["Punctuation"] t)
- '("hyphenblockquote" "Language" ["Citation"] ["Punctuation"] t)
- `("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*"
- '("MakeInnerQuote" "Character")
- '("MakeOuterQuote" "Character")
- '("MakeAutoQuote" "Opening quotation mark" "Closing quotation mark")
- '("MakeAutoQuote*" "Opening quotation mark" "Closing quotation mark")
- '("MakeForeignQuote" "Babel's language name"
- "Opening quotation mark" "Closing quotation mark")
- '("MakeForeignQuote*" "Babel's language name"
- "Opening quotation mark" "Closing quotation mark")
- '("MakeHyphenQuote" "Babel's language name"
- "Opening quotation mark" "Closing quotation mark")
- '("MakeHyphenQuote" "Babel's language name"
- "Opening quotation mark" "Closing quotation mark")
- '("MakeBlockQuote" "Opening quotation mark" "Delimiter for citation"
- "Closing quotation mark")
- '("MakeForeignBlockQuote" "Language" "Opening quotation mark"
- "Delimiter for citation" "Closing quotation mark")
- '("MakeHyphenBlockQuote" "Language" "Opening quotation mark"
- "Delimiter for citation" "Closing quotation mark")
- "EnableQuotes"
- "DisableQuotes"
- "VerbatimQuotes"
- "DeleteQuotes"
- '("textcquote" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
- '("textcquote*" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
- '("foreigntextcquote" "Language" ["Pre-note"] ["Post-note"] "Key"
- ["Punctuation"] t)
- '("foreigntextcquote*" "Language" ["Pre-note"] ["Post-note"] "Key"
- ["Punctuation"] t)
- '("hyphentextcquote" "Language" ["Pre-note"] ["Post-note"] "Key"
- ["Punctuation"] t)
- '("hyphentextcquote*" "Language" ["Pre-note"] ["Post-note"] "Key"
- ["Punctuation"] t)
- '("blockcquote" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t)
- '("foreignblockcquote" "Language" ["Pre-note"] ["Post-note"] "Key"
- ["Punctuation"] t)
- '("hyphenblockcquote" "Language" ["Pre-note"] ["Post-note"] "Key"
- ["Punctuation"] t)
- `("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")
- "mkcitation"
- "mkccitation"
- "mkpreblockpunct"
- "mkmidblockpunct"
- "mkfinblockpunct"
- "mkpretextpunct"
- "mkmidtextpunct"
- "mkfintextpunct"
- "mkpredisppunct"
- "mkmiddisppunct"
- "mkfindisppunct"
- '("ifblockquote" 2)
- '("ifquotepunct" 2)
- '("ifquoteterm" 2)
- '("ifquoteperiod" 2)
- '("ifquotecomma" 2)
- '("ifquotesemicolon" 2)
- '("ifquotecolon" 2)
- '("ifquoteexclam" 2)
- '("ifquotequestion" 2)
- '("ifstringblank" 2)
- '("BlockquoteDisable" 1))
- ;; New environments
- (LaTeX-add-environments
- "quoteblock"
- "quotetext"
- '("displayquote" LaTeX-csquotes-insert-environment ["Citation"]
- ["Punctuation"])
- '("foreigndisplayquote" LaTeX-csquotes-insert-environment "Language"
- ["Citation"] ["Punctuation"])
- '("hyphendisplayquote" LaTeX-csquotes-insert-environment "Language"
- ["Citation"] ["Punctuation"])
- '("displaycquote" LaTeX-csquotes-insert-environment
- ["Pre-note"] ["Post-note"] "Key" ["Punctuation"])
- '("foreigndisplaycquote" LaTeX-csquotes-insert-environment
- "Language" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"])
- '("hyphendisplaycquote" LaTeX-csquotes-insert-environment
- "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 '(("DisableQuotes" "")
- ("RestoreQuotes" ""))
- 'function)
- (font-latex-add-keywords '(("enquote" "*{")
- ("foreignquote" "*{{")
- ("hyphenquote" "*{{")
- ("textcquote" "*[[{[{")
- ("foreigntextcquote" "*{[[{[{")
- ("hyphentextcquote" "*{[[{[{")
- ("textquote" "*[[{")
- ("foreigntextquote" "*{[[{")
- ("hyphentextquote" "*{[[{")
- ("blockquote" "[[{")
- ("foreignblockquote" "{[[{")
- ("hyphenblockquote" "{[[{")
- ("blockcquote" "[[{[{")
- ("foreignblockcquote" "{[[{[{")
- ("hyphenblockcquote" "{[[{[{"))
- 'textual)
- (font-latex-add-keywords '(("setquotestyle" "[{")
- ("MakeOuterQuote" "{")
- ("MakeInnerQuote" "{")
- ("MakeAutoQuote" "*{{")
- ("MakeForeignQuote" "*{{{")
- ("MakeHyphenQuote" "*{{{")
- ("MakeBlockQuote" "{{{")
- ("MakeForeignBlockQuote" "{{{{")
- ("MakeHyphenBlockQuote" "{{{{")
- ("DeclareQuoteStyle" "[{[[{[{[{[{")
- ("DeclareQuoteAlias" "[{{")
- ("DeclareQuoteOption" "{")
- ("DeclarePlainStyle" "{{{{")
- ("SetBlockThreshold" "{")
- ("SetBlockEnvironment" "{")
- ("SetCiteCommand" "{"))
- 'variable)))))
-
-;;; csquotes.el ends here