diff options
author | mattkae <mattkae@protonmail.com> | 2022-06-07 08:23:47 -0400 |
---|---|---|
committer | mattkae <mattkae@protonmail.com> | 2022-06-07 08:23:47 -0400 |
commit | bd18a38c2898548a3664a9ddab9f79c84f2caf4a (patch) | |
tree | 95b9933376770381bd8859782ae763be81c2d72b /elpa/auctex-13.1.3/style/fontspec.el | |
parent | b07628dddf418d4f47b858e6c35fd3520fbaeed2 (diff) | |
parent | ef160dea332af4b4fe5e2717b962936c67e5fe9e (diff) |
Merge conflict
Diffstat (limited to 'elpa/auctex-13.1.3/style/fontspec.el')
-rw-r--r-- | elpa/auctex-13.1.3/style/fontspec.el | 449 |
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 |