summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/fontspec.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/style/fontspec.el')
-rw-r--r--elpa/auctex-13.1.3/style/fontspec.el449
1 files changed, 0 insertions, 449 deletions
diff --git a/elpa/auctex-13.1.3/style/fontspec.el b/elpa/auctex-13.1.3/style/fontspec.el
deleted file mode 100644
index 6970b75..0000000
--- a/elpa/auctex-13.1.3/style/fontspec.el
+++ /dev/null
@@ -1,449 +0,0 @@
-;;; fontspec.el --- AUCTeX style for `fontspec.sty' version 2.7i. -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2013--2021 Free Software Foundation, Inc.
-
-;; Maintainer: auctex-devel@gnu.org
-;; Author: Mosè Giordano <mose@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 `fontspec.sty' version 2.7i. Starting
-;; with `fontspec.sty' v2.4, the order of mandatory font names and
-;; optional font features in related macros has changed, i.e. optional
-;; argument comes after the mandatory one. This change is now (April
-;; 2017) implemented in this file. Fontification support retains
-;; backward compatibility.
-
-;;; Code:
-
-(require 'tex)
-(require 'latex)
-
-;; Silence the compiler:
-(declare-function font-latex-add-keywords
- "font-latex"
- (keywords class))
-
-(declare-function LaTeX-color-definecolor-list "color" ())
-(declare-function LaTeX-xcolor-definecolor-list "xcolor" ())
-
-(defvar LaTeX-fontspec-font-features
- '(;; I General font selection
- ("Extension" (".otf" ".ttf" ".ttc" ".dfont"))
- ("Path")
- ;; I 4.1 More control over font shape selection
- ("UprightFont")
- ("BoldFont")
- ("ItalicFont")
- ("BoldItalicFont")
- ("SlantedFont")
- ("BoldSlantedFont")
- ("SmallCapsFont")
- ;; I 4.2 Specifically choosing the NFSS family
- ("NFSSFamily")
- ;; I 4.3 Choosing additional NFSS font faces
- ("FontFace")
- ;; III 3. Different features for different font shapes
- ("BoldFeatures")
- ("ItalicFeatures")
- ("BoldItalicFeatures")
- ("SlantedFeatures")
- ("BoldSlantedFeatures")
- ("SmallCapsFeatures")
- ("UprightFeatures")
- ;; III 4. Different features for different font sizes
- ("SizeFeatures")
- ;; III 6. Font independent options
- ("Color")
- ("Scale" ("MatchLowercase" "MatchUppercase"))
- ("WordSpace")
- ("PunctuationSpace")
- ("HyphenChar" ("None"))
- ("OpticalSize")
- ("AutoFakeBold")
- ("AutoFakeSlant")
- ("FakeSlant")
- ("FakeStretch")
- ("FakeBold")
- ("LetterSpace")
- ;; IV.3 OpenType options
- ;; IV.3.1.1 Alternates. The next 2 are synonyms:
- ("Alternate" ("Random"))
- ("StylisticAlternate" ("Random"))
- ;; IV.3.1.2 Character Variants
- ("CharacterVariant")
- ;; IV 3.1.3 Contextuals
- ("Contextuals" ("Swash" "SwashOff" "SwashReset"
- "Alternate" "AlternateOff" "AlternateReset"
- "WordInitial" "WordInitialOff" "WordInitialReset"
- "WordFinal" "WordFinalOff" "WordFinalReset"
- "LineFinal" "LineFinalOff" "LineFinal"
- "Inner" "InnerOff" "InnerReset"
- "ResetAll"))
- ;; IV 3.1.4 Diacritics
- ("Diacritics" ("MarkToBase" "MarkToBaseOff" "MarkToBaseReset"
- "MarkToMark" "MarkToMarkOff" "MarkToMarkReset"
- "AboveBase" "AboveBaseOff" "AboveBaseReset"
- "BelowBase" "BelowBaseOff" "BelowBaseReset"
- "ResetAll"))
- ;; IV 3.1.5 Fractions
- ("Fractions" ("On" "Off" "Reset" "Alternate"
- "AlternateOff" "AlternateReset" "ResetAll"))
- ;; IV 3.1.6 Kerning
- ("Kerning" ("On" "Off" "Reset" "ResetAll"
- "Uppercase" "UppercaseOff" "UppercaseReset"))
- ;; IV 3.1.7 Letters
- ("Letters" ("SmallCaps" "SmallCapsOff" "SmallCapsReset"
- "PetiteCaps" "PetiteCapsOff" "PetiteCapsReset"
- "UppercaseSmallCaps" "UppercaseSmallCapsOff" "UppercaseSmallCapsReset"
- "UppercasePetiteCaps" "UppercasePetiteCapsOff" "UppercasePetiteCapsReset"
- "Unicase" "UnicaseOff" "UnicaseReset"
- "ResetAll"))
- ;; IV 3.1.8 Ligatures
- ("Ligatures" ("Required" "RequiredOff" "RequiredReset"
- "Common" "CommonOff" "CommonReset"
- "Contextual" "ContextualOff" "ContextualReset"
- "Rare" "RareOff" "RareReset"
- "Discretionary" "DiscretionaryOff" "DiscretionaryReset"
- "Historic" "HistoricOff" "HistoricReset"
- "TeX" "TeXOff" "TeXReset"
- "ResetAll"))
- ;; IV 3.1.9 Localised Forms
- ("LocalForms" ("On" "Off" "Reset"))
- ;; IV 3.1.10 Numbers
- ("Numbers" ("Uppercase" "UppercaseOff" "UppercaseReset"
- "Lowercase" "LowercaseOff" "LowercaseReset"
- "Lining" "LiningOff" "LiningReset"
- "OldStyle" "OldStyleOff" "OldStyleReset"
- "Proportional" "ProportionalOff" "ProportionalReset"
- "Monospaced" "MonospacedOff" "MonospacedReset"
- "SlashedZero" "SlashedZeroOff" "SlashedZeroReset"
- "Arabic" "ArabicOff" "ArabicReset"
- "ResetAll"))
- ;; IV 3.1.11 Ornament
- ("Ornament")
- ;; IV 3.1.12 Style
- ("Style" ("Alternate" "AlternateOff" "AlternateReset"
- "Italic" "ItalicOff" "ItalicReset"
- "Ruby" "RubyOff" "RubyReset"
- "Swash" "SwashOff" "SwashReset"
- "Cursive" "CursiveOff" "CursiveReset"
- "Historic" "HistoricOff" "HistoricReset"
- "Titling" "TitlingOff" "TitlingReset"
- "HorizontalKana" "HorizontalKanaOff" "HorizontalKanaReset"
- "VerticalKana" "VerticalKanaOff" "VerticalKanaReset"
- "Uppercase" "UppercaseOff" "UppercaseReset"
- "ResetAll"))
- ;; IV 3.1.13 Stylistic Set variations. The next 2 are synonyms:
- ("StylisticSet")
- ("Variant")
- ;; IV 3.1.14 Vertical Position
- ("VerticalPosition" ("Superior" "SuperiorOff" "SuperiorReset"
- "Inferior" "InferiorOff" "InferiorReset"
- "Numerator" "NumeratorOff" "NumeratorReset"
- "Denominator" "DenominatorOff" "DenominatorReset"
- "ScientificInferior" "ScientificInferiorOff" "ScientificInferiorReset"
- "Ordinal" "OrdinalOff" "OrdinalReset"
- "ResetAll"))
- ;; IV 3.2.1 Annotation
- ("Annotation")
- ;; IV 3.2.2 Character width
- ("CharacterWidth" ("Proportional" "ProportionalOff" "ProportionalReset"
- "Full" "FullOff" "FullReset"
- "Half" "HalfOff" "HalfReset"
- "Third" "ThirdOff" "ThirdReset"
- "Quarter" "QuarterOff" "QuarterReset"
- "AlternateProportional" "AlternateProportionalOff" "AlternateProportionalReset"
- "AlternateHalf" "AlternateHalfOff" "AlternateHalfReset"
- "ResetAll"))
- ;; IV 3.2.3 CJK shape
- ("CJKShape" ("Traditional"
- "Simplified"
- "JIS1978"
- "JIS1983"
- "JIS1990"
- "Expert"
- "NLC"))
- ;; IV 3.2.4 Vertical typesetting
- ("Vertical" ("RotatedGlyphs" "RotatedGlyphsOff" "RotatedGlyphsReset"
- "AlternatesForRotation" "AlternatesForRotationOff" "AlternatesForRotationReset"
- "Alternates" "AlternatesOff" "AlternatesReset"
- "KanaAlternates" "KanaAlternatesOff" "KanaAlternatesReset"
- "Kerning" "KerningOff" "KerningReset"
- "AlternateMetrics" "AlternateMetricsOff" "AlternateMetricsReset"
- "HalfMetrics" "HalfMetricsOff" "HalfMetricsReset"
- "ProportionalMetrics" "ProportionalMetricsOff" "ProportionalMetricsReset"
- "ResetAll"))
- ;; VIII 3. Going behind fontspec's back: Offer only an excerpt of
- ;; all possible tags:
- ("RawFeature" ("frac" "lnum" "onum" "pnum" "smcp" "tnum" "zero")))
- "Font features options for macros of the fontspec package.")
-
-(defvar LaTeX-fontspec-font-list nil
- "List of the fonts accessible to fontspec.")
-
-(defun LaTeX-fontspec-arg-font (optional &optional prompt)
- "Prompt for a font name with completion.
-If OPTIONAL is non-nil, insert the resulting value as an optional
-argument, otherwise as a mandatory one. Use PROMPT as the prompt
-string.
-
-Customize `LaTeX-fontspec-arg-font-search' in order to decide how
-to retrieve the list of fonts."
- (unless LaTeX-fontspec-font-list
- (when (if (eq LaTeX-fontspec-arg-font-search 'ask)
- (not (y-or-n-p "Find font yourself? "))
- LaTeX-fontspec-arg-font-search)
- (message "Searching for fonts...")
- (with-temp-buffer
- (shell-command "luaotfload-tool --list=basename" t)
- ;; Search for the font base names and full names, and add them to
- ;; `LaTeX-fontspec-font-list'. The list is in the form
- ;; <base name><TAB><full name><TAB><version>
- (while
- (re-search-forward "^\\([^\n\r\t]*\\)\t\\([^\n\r\t]*\\)\t.*$" nil t)
- (add-to-list 'LaTeX-fontspec-font-list (match-string-no-properties 1))
- (add-to-list 'LaTeX-fontspec-font-list
- (match-string-no-properties 2))))
- (message "Searching for fonts...done")))
- (TeX-argument-insert
- (completing-read
- (TeX-argument-prompt optional prompt "Font name")
- (or LaTeX-fontspec-font-list LaTeX-fontspec-font-list-default))
- optional))
-
-(defun LaTeX-fontspec-font-features ()
- "Return an updated list of font features.
-This function retrieves values from various sources and adds them
-to appropriate keys which are eventually prepended to
-`LaTeX-fontspec-font-features' shadowing the predefined one."
- (append
- ;; Check for color packages, prefer xcolor over color. Note that
- ;; we run the function `TeX-style-list' only once and after that we
- ;; use the updated `TeX-active-styles'.
- (when (or (member "xcolor" (TeX-style-list))
- (member "color" TeX-active-styles))
- (let ((colorcmd (if (member "xcolor" TeX-active-styles)
- #'LaTeX-xcolor-definecolor-list
- #'LaTeX-color-definecolor-list)))
- `(("Color" ,(mapcar #'car (funcall colorcmd))))))
- ;; If `LaTeX-fontspec-font-list' is set, use it for other `*Font'
- ;; related keys:
- (when LaTeX-fontspec-font-list
- `(("UprightFont" ,LaTeX-fontspec-font-list)
- ("BoldFont" ,LaTeX-fontspec-font-list)
- ("ItalicFont" ,LaTeX-fontspec-font-list)
- ("BoldItalicFont" ,LaTeX-fontspec-font-list)
- ("SlantedFont" ,LaTeX-fontspec-font-list)
- ("BoldSlantedFont" ,LaTeX-fontspec-font-list)
- ("SmallCapsFont" ,LaTeX-fontspec-font-list)))
- ;; This is a LuaTeX only feature. VI. 1 Different font
- ;; technologies and shapers
- (when (eq TeX-engine 'luatex)
- '(("Renderer" ("Harfbuzz" "OpenType" "AAT" "Graphite"))))
- ;; This is a XeTeX only feature. VII. 1 Different font
- ;; technologies
- (when (eq TeX-engine 'xetex)
- '(("Renderer" ("OpenType" "AAT" "Graphite"))))
- ;; Predefined features:
- LaTeX-fontspec-font-features))
-
-;; Setup for \newfontfamily and \newfontface:
-(TeX-auto-add-type "fontspec-newfontcmd" "LaTeX")
-
-(defvar LaTeX-fontspec-newfontcmd-regexp
- '("\\\\newfontfa\\(?:ce\\|mily\\)[ \t\n\r%]*\\\\\\([a-zA-Z]+\\)"
- 1 LaTeX-auto-fontspec-newfontcmd)
- "Matches new macros defined with \\newfontface and \\newfontfamily.")
-
-(defun LaTeX-fontspec-auto-prepare ()
- "Clear `LaTeX-auto-fontspec-newfontcmd' before parsing."
- (setq LaTeX-auto-fontspec-newfontcmd nil))
-
-(defun LaTeX-fontspec-auto-cleanup ()
- "Process parsed elements for fontspec package."
- (dolist (mac (mapcar #'car (LaTeX-fontspec-newfontcmd-list)))
- ;; Add macro to list of known macros
- (TeX-add-symbols mac)
- ;; Cater for fontification
- (when (and (featurep 'font-latex)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords `((,mac ""))
- 'type-declaration))))
-
-(add-hook 'TeX-auto-prepare-hook #'LaTeX-fontspec-auto-prepare t)
-(add-hook 'TeX-auto-cleanup-hook #'LaTeX-fontspec-auto-cleanup t)
-(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
-
-(TeX-add-style-hook
- "fontspec"
- (lambda ()
-
- (TeX-check-engine-add-engines 'luatex 'xetex)
- (TeX-run-style-hooks "expl3" "xparse")
-
- ;; Add fontspec to the parser.
- (TeX-auto-add-regexp LaTeX-fontspec-newfontcmd-regexp)
-
- (TeX-add-symbols
- ;; 4.3 Commands for old-style and lining numbers: \oldstylenums is
- ;; already provided by LaTeX, so just add \liningnums here
- '("liningnums" "Numbers")
-
- ;; 4.5 Emphasis and nested emphasis
- ;; \emshape seems to be an internal macro
- "emshape"
- '("emfontdeclare" t)
- "emreset"
-
- ;; 4.6 Strong emphasis
- '("strong" t)
- '("strongfontdeclare" t)
- "strongreset"
-
- ;; 5 Font selection
- '("fontspec"
- LaTeX-fontspec-arg-font
- [TeX-arg-key-val (LaTeX-fontspec-font-features) "Font features"])
-
- ;; Default font families
- '("setmainfont"
- (LaTeX-fontspec-arg-font "Main font name")
- [TeX-arg-key-val (LaTeX-fontspec-font-features) "Font features"])
- '("setsansfont"
- (LaTeX-fontspec-arg-font "Sans font name")
- [TeX-arg-key-val (LaTeX-fontspec-font-features) "Font features"])
- '("setmonofont"
- (LaTeX-fontspec-arg-font "Mono font name")
- [TeX-arg-key-val (LaTeX-fontspec-font-features) "Font features"])
-
- ;; 5.3 Querying whether a font exists
- '("IfFontExistsTF" LaTeX-fontspec-arg-font 2)
-
- ;; 6 commands to select font families
- '("newfontfamily" TeX-arg-define-macro
- LaTeX-fontspec-arg-font
- [TeX-arg-key-val (LaTeX-fontspec-font-features) "Font features"])
-
- '("newfontface" TeX-arg-define-macro
- LaTeX-fontspec-arg-font
- [TeX-arg-key-val (LaTeX-fontspec-font-features) "Font features"])
-
- ;; 6.4 Math(s) fonts
- '("setmathrm" "Font name" [ "Font features" ])
- '("setmathsf" "Font name" [ "Font features" ])
- '("setmathtt" "Font name" [ "Font features" ])
- '("setboldmathrm" "Font name" [ "Font features" ])
-
- ;; 8 Default settings
- '("defaultfontfeatures" [ LaTeX-fontspec-arg-font ]
- (TeX-arg-key-val (LaTeX-fontspec-font-features) "Font features"))
- '("defaultfontfeatures+" [ LaTeX-fontspec-arg-font ]
- (TeX-arg-key-val (LaTeX-fontspec-font-features) "Font features"))
-
- ;; 10 Working with the currently selected features
- '("IfFontFeatureActiveTF"
- [TeX-arg-key-val (LaTeX-fontspec-font-features) "Font feature"] 2)
-
- ;; Changing the currently selected features
- '("addfontfeatures"
- (TeX-arg-key-val (LaTeX-fontspec-font-features) "Font features"))
-
- ;; 23 Defining new features
- '("newAATfeature"
- (TeX-arg-eval completing-read
- (TeX-argument-prompt nil nil "Existing feature")
- (LaTeX-fontspec-font-features))
- "New option" 2)
-
- '("newopentypefeature"
- (TeX-arg-eval completing-read
- (TeX-argument-prompt nil nil "Existing feature")
- (LaTeX-fontspec-font-features))
- "New option" t)
-
- '("newfontfeature" "New feature" t)
-
- ;; 24 Defining new scripts and languages
- '("newfontscript" "Script name" "OpenType tag")
- '("newfontlanguage" "Language name" "OpenType tag")
-
- ;; 26 Renaming existing features & options
- '("aliasfontfeature"
- (TeX-arg-eval completing-read
- (TeX-argument-prompt nil nil "Existing feature")
- (LaTeX-fontspec-font-features))
- "New name")
-
- '("aliasfontfeatureoption"
- (TeX-arg-eval
- (lambda ()
- (let* ((key (completing-read
- (TeX-argument-prompt nil nil "Feature")
- (LaTeX-fontspec-font-features)))
- (val (completing-read
- (TeX-argument-prompt nil nil "Existing name")
- (cadr (assoc key (LaTeX-fontspec-font-features))))))
- (TeX-argument-insert key nil)
- (format "%s" val))))
- "New name") )
-
- (LaTeX-add-environments
- ;; 4.6 Strong emphasis
- '("strong"))
-
- ;; Fontification
- (when (and (featurep 'font-latex)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords '(("fontspec" "[{[")
- ("setmainfont" "[{[")
- ("setsansfont" "[{[")
- ("setmonofont" "[{[")
- ("newfontfamily" "\\[{[")
- ("newfontface" "\\[{[")
- ("setmathrm" "[{[")
- ("setmathsf" "[{[")
- ("setmathtt" "[{[")
- ("setboldmathrm" "[{[")
- ("defaultfontfeatures" "+[{")
- ("addfontfeature" "{")
- ("addfontfeatures" "{")
- ("newfontscript" "{{")
- ("newfontlanguage" "{{")
- ("emfontdeclare" "{")
- ("strongfontdeclare" "{")
- ("newAATfeature" "{{{{")
- ("newopentypefeature" "{{{")
- ("newfontfeature" "{{")
- ("aliasfontfeature" "{{")
- ("aliasfontfeatureoption" "{{{"))
- 'function)
- (font-latex-add-keywords '(("liningnums" "{"))
- 'type-command)
- (font-latex-add-keywords '(("strong" "{"))
- 'bold-command)))
- TeX-dialect)
-
-(defvar LaTeX-fontspec-package-options
- '("tuenc" "euenc" "math" "no-math" "config" "no-config" "quiet" "silent")
- "Package options for the fontspec package.")
-
-;;; fontspec.el ends here