summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/fancyhdr.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/style/fancyhdr.el')
-rw-r--r--elpa/auctex-13.1.3/style/fancyhdr.el187
1 files changed, 187 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/style/fancyhdr.el b/elpa/auctex-13.1.3/style/fancyhdr.el
new file mode 100644
index 0000000..eb9751a
--- /dev/null
+++ b/elpa/auctex-13.1.3/style/fancyhdr.el
@@ -0,0 +1,187 @@
+;;; fancyhdr.el --- AUCTeX style for `fancyhdr.sty' -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2012, 2013, 2018-2022 Free Software Foundation, Inc.
+
+;; Author: Mads Jensen <mje@inducks.org>
+;; Maintainer: auctex-devel@gnu.org
+;; 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 `fancyhdr.sty', v4.0 from 2021/01/04.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+ "font-latex"
+ (keywords class))
+
+;; Because there can be many places, `TeX-completing-read-multiple' is
+;; used instead of just `completing-read', and a `collection' argument
+;; is provided as the list of places differs between the macros
+(defun TeX-arg-fancyhdr-place (optional
+ &optional prompt collection full)
+ "Prompt for fancyhdr places with completion.
+If OPTIONAL is non-nil, insert the resulting value as an optional
+argument, otherwise as a mandatory one. If non-nil, PROMPT is
+used as the prompt. If non-nil, COLLECTION is used as the
+completion list for the place.
+
+If FULL is non-nil, a full list of places is offered for
+completion, otherwise a reduced one omitting place combinations
+for H(eader) or F(ooter)."
+ (let* ((places (or collection
+ ;; Standard places with no restrictions.
+ ;; Lower-case versions, and reverse versions
+ ;; (e.g., OC) are left out for simplicity.
+ (if full
+ '("L" "LO" "LE" "LOH" "LOF" "LEH" "LEF"
+ "C" "CO" "CE" "COH" "COF" "CEH" "CEF"
+ "R" "RO" "RE" "ROH" "ROF" "REH" "REF")
+ '("L" "LO" "LE" "C" "CO" "CE" "R" "RE" "RO"))))
+ (arguments (mapconcat #'identity
+ (TeX-completing-read-multiple
+ (TeX-argument-prompt optional
+ prompt
+ "Places")
+ places)
+ ",")))
+ (TeX-argument-insert arguments optional)))
+
+(defvar LaTeX-fancyhdr-fancypagestyle-regexp
+ '("\\\\fancypagestyle{\\([^}]+\\)}"
+ 1 LaTeX-auto-pagestyle)
+ "Regexp matching the first argument of \\fancypagestyle macro.")
+
+(TeX-add-style-hook
+ "fancyhdr"
+ (lambda ()
+ (TeX-add-symbols
+
+ ;; 2 Using fancyhdr
+ '("fancyhead" [ TeX-arg-fancyhdr-place ] t)
+ '("fancyfoot" [ TeX-arg-fancyhdr-place ] t)
+ '("fancyhf" [ (TeX-arg-fancyhdr-place nil nil t) ] t)
+
+ '("fancyheadoffset"
+ [ (TeX-arg-fancyhdr-place nil ("L" "LO" "LE" "R" "RO" "RE")) ]
+ TeX-arg-length)
+ '("fancyfootoffset"
+ [ (TeX-arg-fancyhdr-place nil ("LO" "LE" "L" "RO" "RE" "R")) ]
+ TeX-arg-length)
+ '("fancyhfoffset"
+ [ (TeX-arg-fancyhdr-place nil ("L" "LO" "LE" "LOH" "LOF" "LEH" "LEF"
+ "R" "RO" "RE" "ROH" "ROF" "REH" "REF")) ]
+ TeX-arg-length)
+
+ "headrulewidth" "footrulewidth"
+ "headruleskip" "footruleskip"
+ "headrule" "footrule"
+ "headwidth"
+
+ '("fancyheadinit" t)
+ '("fancyfootinit" t)
+ '("fancyhfinit" t)
+
+ '("fancycenter"
+ [ TeX-arg-length "Distance" ] [ "Stretch" ] 3)
+
+ '("iftopfloat" 2)
+ '("ifbotfloat" 2)
+ '("iffloatpage" 2)
+ '("iffootnote" 2)
+
+ '("fancypagestyle"
+ ;; Always add the chosen pagestyle to list of known pagestyles,
+ ;; dupes are removed when retrieving with the function
+ ;; `LaTeX-pagestyle-list':
+ (TeX-arg-pagestyle nil t)
+ [ TeX-arg-pagestyle "Base pagestyle" ]
+ t)
+
+ ;; 15 The scoop on LATEX’s marks
+ '("nouppercase" t))
+
+ ;; Don't increase indentation at various \if* macros:
+ (let ((exceptions '("iftopfloat"
+ "ifbotfloat"
+ "iffloatpage"
+ "iffootnote")))
+ (dolist (elt exceptions)
+ (add-to-list 'LaTeX-indent-begin-exceptions-list elt t))
+ (LaTeX-indent-commands-regexp-make))
+
+ ;; 30 Deprecated commands
+ ;; Don't offer deprecated commands in V4.0 for completion anymore.
+ ;; '("lhead" t)
+ ;; '("lfoot" t)
+ ;; '("chead" t)
+ ;; '("cfoot" t)
+ ;; '("rhead" t)
+ ;; '("rfoot" t)
+ ;; "plainfootrulewidth"
+ ;; "plainheadrulewidth"
+
+ ;; `fancyhdr.sty' supplies these two pagestyles. Pagestyle
+ ;; `fancyplain' is now deprecated.
+ (LaTeX-add-pagestyles "fancy" "fancydefault")
+
+ ;; Add \fancypagestyle{pagestyle} to AUCTeX parser
+ (TeX-auto-add-regexp LaTeX-fancyhdr-fancypagestyle-regexp)
+
+ ;; Fontification
+ (when (and (fboundp 'font-latex-add-keywords)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("fancyhead" "[{")
+ ("fancyfoot" "[{")
+ ("fancyhf" "[{")
+ ("fancyheadoffset" "[{")
+ ("fancyfootoffset" "[{")
+ ("fancyhfoffset" "[{")
+ ("fancyheadinit" "{")
+ ("fancyfootinit" "{")
+ ("fancyhfinit" "{")
+ ;; Fontify deprecated commands for
+ ;; older documents; to be removed
+ ;; sometimes ...
+ ("lhead" "[{")
+ ("lfoot" "[{")
+ ("chead" "[{")
+ ("cfoot" "[{")
+ ("rhead" "[{")
+ ("rfoot" "[{")
+ ;; Don't fontify the last argument;
+ ;; all macros used there should have
+ ;; their own fontification since they
+ ;; can also be used in a document
+ ;; top-level.
+ ("fancypagestyle" "{["))
+ 'function)))
+ TeX-dialect)
+
+(defvar LaTeX-fancyhdr-package-options
+ '("nocheck" "compatV3" "headings" "myheadings")
+ "Package options for fancyhdr package.")
+
+;;; fancyhdr.el ends here