[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 192f201f 2/2: Add new style/microtype.el
From: |
Arash Esbati |
Subject: |
master 192f201f 2/2: Add new style/microtype.el |
Date: |
Tue, 21 Jun 2022 16:35:06 -0400 (EDT) |
branch: master
commit 192f201f969de321dc44dd9367175d78b692a9eb
Author: Arash Esbati <arash@gnu.org>
Commit: Arash Esbati <arash@gnu.org>
Add new style/microtype.el
* Makefile.in (STYLESRC): Add new style.
* style/microtype.el: New file.
---
Makefile.in | 2 +-
style/microtype.el | 240 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 241 insertions(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index dc76b35d..d62644f9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -183,7 +183,7 @@ STYLESRC = style/prosper.el \
style/ifpdf.el style/iftex.el style/ifvtex.el \
style/ifxetex.el style/multibib.el style/ltcaption.el \
style/keyval.el style/kvoptions.el style/kvsetkeys.el \
- style/proc.el
+ style/proc.el style/microtype.el
STYLEELC = $(STYLESRC:.el=.elc)
diff --git a/style/microtype.el b/style/microtype.el
new file mode 100644
index 00000000..9287ccaa
--- /dev/null
+++ b/style/microtype.el
@@ -0,0 +1,240 @@
+;;; microtype.el --- AUCTeX style for `microtype.sty' -*- lexical-binding: t;
-*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <arash@gnu.org>
+;; Maintainer: auctex-devel@gnu.org
+;; Created: 2022-06-19
+;; 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 Street, Fifth Floor, Boston,
+;; MA 02110-1301 USA.
+
+;;; Commentary:
+
+;; This file adds support for `microtype.sty' v3.0e form 2022-06-20.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+ "font-latex"
+ (keywords class))
+
+(defvar LaTeX-microtype-key-val-options
+ '(;; 3.1 Enabling the micro-typographic features
+ ("protrusion" ("true" "false" "compatibility" "nocompatibility"
+ "all" "alltext" "allmath"
+ "alltext-nott" "allmath-nott"
+ "basictext" "basicmath"
+ "smallcaps" "footnotesize" "scriptsize" "normalfont"))
+ ("expansion" ("true" "false" "compatibility" "nocompatibility"
+ "all" "alltext" "allmath"
+ "alltext-nott" "allmath-nott"
+ "basictext" "basicmath"
+ "smallcaps" "footnotesize" "scriptsize" "normalfont"))
+ ("activate" ("true" "false" "compatibility" "nocompatibility"))
+ ("tracking" ("true" "false"
+ "all" "alltext" "allmath"
+ "alltext-nott" "allmath-nott"
+ "basictext" "basicmath"
+ "smallcaps" "footnotesize" "scriptsize" "normalfont"))
+ ("kerning" ("true" "false"
+ "all" "alltext" "allmath"
+ "alltext-nott" "allmath-nott"
+ "basictext" "basicmath"
+ "smallcaps" "footnotesize" "scriptsize" "normalfont"))
+ ("spacing" ("true" "false"
+ "all" "alltext" "allmath"
+ "alltext-nott" "allmath-nott"
+ "basictext" "basicmath"
+ "smallcaps" "footnotesize" "scriptsize" "normalfont"))
+ ;; 3.2 Character protrusion
+ ("factor")
+ ("patch" ("all" "none" "item" "toc" "footnote" "eqnum"))
+ ("nopatch" ("all" "none" "item" "toc" "footnote" "eqnum"))
+ ("unit")
+ ;; 3.3 Font expansion
+ ("auto" ("true" "false"))
+ ("stretch")
+ ("step")
+ ("selected" ("true" "false"))
+ ;; 3.4 Tracking
+ ("letterspace")
+ ;; 3.5 Miscellaneous options
+ ("disable" ("true" "false" "ifdraft"))
+ ("verbose" ("true" "false" "errors" "silent"))
+ ("babel" ("true" "false"))
+ ;; "config" is allowed only when the package is loaded, so we add
+ ;; it below:
+ ;; ("config")
+ ("DVIoutput" ("true" "false")))
+ "Key=value options for microtype package.")
+
+(TeX-add-style-hook
+ "microtype"
+ (lambda ()
+
+ (TeX-add-symbols
+ '("microtypesetup"
+ (TeX-arg-key-val LaTeX-microtype-key-val-options))
+
+ ;; 4 Selecting fonts for micro-typography
+ '("DeclareMicrotypeSet"
+ [TeX-arg-completing-read-multiple ("protrusion" "expansion"
+ "tracking" "kerning" "spacing")
+ "Features"]
+ "Set name"
+ (TeX-arg-key-val (("encoding") ("family") ("series")
+ ("shape") ("size") ("font"))))
+
+ '("DeclareMicrotypeSet*"
+ [TeX-arg-completing-read-multiple ("protrusion" "expansion"
+ "tracking" "kerning" "spacing")
+ "Features"]
+ "Set name"
+ (TeX-arg-key-val (("encoding") ("family") ("series")
+ ("shape") ("size") ("font"))))
+
+ '("UseMicrotypeSet"
+ [TeX-arg-completing-read-multiple ("protrusion" "expansion"
+ "tracking" "kerning" "spacing")
+ "Features"]
+ "Set name")
+
+ '("DeclareMicrotypeSetDefault"
+ [TeX-arg-completing-read-multiple ("protrusion" "expansion"
+ "tracking" "kerning" "spacing")
+ "Features"]
+ "Set name")
+
+ ;; 5.1 Character protrusion
+ '("SetProtrusion"
+ [TeX-arg-key-val (("name") ("load") ("factor") ("unit") ("preset")
+ ("inputenc") ("context"))]
+ 2)
+
+ ;; 5.2 Font expansion
+ '("SetExpansion"
+ [TeX-arg-key-val (("name") ("load") ("factor") ("unit") ("preset")
+ ("inputenc") ("context")
+ ("auto") ("stretch") ("shrink") ("step"))]
+ 2)
+
+ ;; 5.3 Tracking
+ '("SetTracking"
+ [TeX-arg-key-val (("name") ("unit") ("context") ("spacing")
+ ("outer spacing") ("outer kerning") ("no ligatures"))]
+
+ 2)
+
+ ;; 5.4 Additional kerning
+ '("SetExtraKerning"
+ [TeX-arg-key-val (("name") ("load") ("factor") ("preset") ("inputenc")
+ ("unit") ("context"))]
+ 2)
+
+ ;; 5.5 Interword spacing
+ '("SetExtraSpacing"
+ [TeX-arg-key-val (("name") ("load") ("factor") ("preset")
+ ("inputenc") ("context") ("unit"))]
+ 2)
+
+ ;; 5.6 Character inheritance
+ '("DeclareCharacterInheritance"
+ [TeX-arg-key-val (("inputenc"))]
+ 2)
+
+ ;; 5.7 Configuration files
+ '("DeclareMicrotypeVariants" t)
+ '("DeclareMicrotypeVariants*" t)
+ '("DeclareMicrotypeAlias" "Font name" "Alias name")
+ '("LoadMicrotypeFile" "Font name")
+
+ ;; 6 Context-sensitive setup
+ '("microtypecontext"
+ (TeX-arg-key-val (("protrusion") ("expansion") ("activate")
+ ("tracking") ("spacing") ("kerning"))))
+
+ '("textmicrotypecontext"
+ (TeX-arg-key-val (("protrusion") ("expansion") ("activate")
+ ("tracking") ("spacing") ("kerning")))
+ "Text")
+
+ '("DeclareMicrotypeBabelHook"
+ "Language(s)"
+ (TeX-arg-key-val (("protrusion") ("expansion") ("activate")
+ ("tracking") ("spacing") ("kerning"))))
+
+ ;; 7 Letterspacing revisited
+ '("textls" ["Amount"] "Text")
+ "lsstyle"
+ '("lslig" "Ligature")
+
+ ;; 8 Disabling ligatures
+ '("DisableLigatures" ["Characters"] t)
+
+ ;; 9 Being pedantic about protrusion
+ '("leftprotrusion" "Text")
+ '("rightprotrusion" "Text")
+ "noprotrusion"
+ "noprotrusionifhmode")
+
+ (LaTeX-add-environments
+ '("microtypecontext" LaTeX-env-args
+ (TeX-arg-key-val (("protrusion") ("expansion") ("activate")
+ ("tracking") ("spacing") ("kerning")))))
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("microtypesetup" "{")
+ ("DeclareMicrotypeSet" "*[{{")
+ ("UseMicrotypeSet" "[{")
+ ("DeclareMicrotypeSetDefault" "[{")
+ ("SetProtrusion" "[{{")
+ ("SetExpansion" "[{{")
+ ("SetTracking" "[{{")
+ ("SetExtraKerning" "[{{")
+ ("SetExtraSpacing" "[{{")
+ ("DeclareCharacterInheritance" "[{{")
+ ("DeclareMicrotypeVariants" "*{")
+ ("DeclareMicrotypeAlias" "{{")
+ ("LoadMicrotypeFile" "{")
+ ("microtypecontext" "{")
+ ("DeclareMicrotypeBabelHook" "{{")
+ ("DisableLigatures" "[{"))
+ 'function)
+ (font-latex-add-keywords '(("textmicrotypecontext" "{{")
+ ("textls" "*[{"))
+ 'textual)
+ (font-latex-add-keywords '(("textls" "*[{"))
+ 'type-command)
+ (font-latex-add-keywords '("lsstyle")
+ 'type-declaration)))
+ TeX-dialect)
+
+(defun LaTeX-microtype-package-options ()
+ "Read the microtype package options from the user."
+ (TeX-read-key-val t (append
+ '((config))
+ LaTeX-microtype-key-val-options)))
+
+;;; microtype.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 192f201f 2/2: Add new style/microtype.el,
Arash Esbati <=