From bfe0be49dc3240fc75bd9633c29511f625794f4c Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Mon, 13 Apr 2020 17:28:32 +0200 Subject: much improved arabluatex.el - Thanks to Arash Esbati --- arabluatex.el | 110 +++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 66 insertions(+), 44 deletions(-) diff --git a/arabluatex.el b/arabluatex.el index 7db86e8..8c16c9e 100644 --- a/arabluatex.el +++ b/arabluatex.el @@ -4,6 +4,10 @@ ;; ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX ;; Copyright (C) 2016--2020 Robert Alessi +;; The author would like to express his grateful thanks to Arash +;; Esbati whose comments helped to improve this file +;; immensely. + ;; Please send error reports and suggestions for improvements to Robert ;; Alessi @@ -22,8 +26,7 @@ ;; . (defvar LaTeX-arabluatex-preamble-options - '(;; - ("voc") + '(("voc") ("fullvoc") ("novoc") ("trans") @@ -32,21 +35,17 @@ (defun LaTeX-arabluatex-package-options () "Prompt for package options for arabluatex package." - (TeX-read-key-val t - (append LaTeX-arabluatex-preamble-options))) + (TeX-read-key-val t LaTeX-arabluatex-preamble-options)) (defvar LaTeX-arabluatex-mode-options - '(;; - ("voc") - ("fullvoc") - ("novoc") - ("trans") - ) - "Local options.") + '("voc" + "fullvoc" + "novoc" + "trans") + "List of local options for arabluatex macros.") (defvar LaTeX-arabluatex-key-val-options - '(;; - ("mode" ("voc" "fullvoc" "novoc" "trans")) + '(("mode" ("voc" "fullvoc" "novoc" "trans")) ("width") ("gutter") ("metre") @@ -56,19 +55,17 @@ ("export" ("true" "false"))) "Key=value options for arabverse environment.") -(defvar LaTeX-arabluatex-color-options - '(())) +;; (defvar LaTeX-arabluatex-color-options +;; '(())) (defvar LaTeX-arabluatex-outfile-options - '(;; - ("newline")) - "Option for outfile command.") + '(("newline")) + "List of options for outfile command.") (defvar LaTeX-arabluatex-arbmark-options - '(;; - ("rl") + '(("rl") ("lr")) - "Option for arbmark command.") + "List of options for arbmark command.") (defvar LaTeX-arabluatex-arind-options '(;; @@ -81,10 +78,11 @@ (TeX-add-style-hook "arabluatex" (lambda () + ;; Run the style hook for loaded packages: + (TeX-run-style-hooks "xcolor") ;; Folding features: (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list) - '("[i]" ("arind")) - ) + '("[i]" ("arind"))) ;; This package relies on lualatex, so check for it: (TeX-check-engine-add-engines 'luatex) (TeX-add-symbols @@ -105,24 +103,28 @@ "uc" "prname" "txarb" - '("arb" [ (TeX-arg-eval completing-read "Mode: " - LaTeX-arabluatex-mode-options) ] + '("arb" [ TeX-arg-eval completing-read + (TeX-argument-prompt optional nil "Mode") + LaTeX-arabluatex-mode-options ] t) - '("arbcolor" [ (TeX-arg-eval completing-read "Color: " - LaTeX-arabluatex-color-options) ] + '("arbcolor" [ TeX-arg-eval completing-read + (TeX-argument-prompt optional nil "Color") + (LaTeX-xcolor-definecolor-list) ] t) - '("arbmark" [ (TeX-arg-eval completing-read "Option: " - LaTeX-arabluatex-arbmark-options) ] + '("arbmark" [ TeX-arg-eval completing-read + (TeX-argument-prompt optional nil "Option") + LaTeX-arabluatex-arbmark-options ] t) - '("ArbOutFile" [ (TeX-arg-eval completing-read "Color: " - LaTeX-arabluatex-outfile-options) ] + '("ArbOutFile" [ TeX-arg-eval completing-read + (TeX-argument-prompt optional nil "Option") + LaTeX-arabluatex-outfile-options ] t) - '("ArbOutFile*" [ (TeX-arg-eval completing-read "Option: " - LaTeX-arabluatex-outfile-options) ] - t) - '("arind" [ (TeX-arg-key-val - LaTeX-arabluatex-arind-options) ] + '("ArbOutFile*" [ TeX-arg-eval completing-read + (TeX-argument-prompt optional nil "Option") + LaTeX-arabluatex-outfile-options ] t) + '("arind" [ TeX-arg-key-val LaTeX-arabluatex-arind-options ] + TeX-arg-index) "SetHemistichDelim" '("bayt" 2) "abjad" @@ -130,24 +132,44 @@ "abraces" "LR" "RL" - "LRmarginpar" - "LRfootnote" - "RLfootnote" + '("LRmarginpar" [ "Left margin text" ] "Text") + '("LRfootnote" + (TeX-arg-conditional TeX-arg-footnote-number-p ([ "Number" ]) nil) + t) + '("RLfootnote" + (TeX-arg-conditional TeX-arg-footnote-number-p ([ "Number" ]) nil) + t) "FixArbFtnmk" "MkArbBreak" '("newarbmark" 3) '("setRL" 0) '("setLR" 0)) + (LaTeX-add-environments '("arab" LaTeX-env-args - [ (TeX-arg-eval completing-read "Mode: " - LaTeX-arabluatex-mode-options) ] - 0) + [ TeX-arg-eval completing-read + (TeX-argument-prompt optional nil "Mode") + LaTeX-arabluatex-mode-options ] + ) "txarab" "arabexport" '("arabverse" LaTeX-env-args - [ TeX-arg-key-val LaTeX-arabluatex-key-val-options ] 0)) - ) + [ TeX-arg-key-val LaTeX-arabluatex-key-val-options ] )) + + ;; Fontification + (when (and (featurep 'font-latex) + (eq TeX-install-font-lock 'font-latex-setup)) + (font-latex-add-keywords '(("aemph" "{")) + 'italic-command) + (font-latex-add-keywords '(("LRmarginpar" "[{") + ("LRfootnote" "[{") + ("RLfootnote" "[{") + ("arind" "[{")) + 'reference) + (font-latex-add-keywords '(("SetTranslitFont" "{") + ("SetTranslitStyle" "{") + ("SetTranslitConvention" "{")) + 'function))) LaTeX-dialect) ;;; arabluatex.el ends here -- cgit v1.2.3