branch: externals/engrave-faces commit 1b50efc32038aa76614737992a130bde0db51fa2 Author: TEC <t...@tecosaur.com> Commit: TEC <t...@tecosaur.com>
LaTeX: improve background boxes by adding a strut --- engrave-faces-latex.el | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el index 4d19d9a201..f7c867ebc0 100644 --- a/engrave-faces-latex.el +++ b/engrave-faces-latex.el @@ -21,14 +21,24 @@ When preset, short commands are generated for `engrave-faces-preset-styles'." :type '(choice nil preset) :group 'engrave-faces) +(defcustom engrave-faces-latex-colorbox-strut + "\\vrule height 2.1ex depth 0.8ex width 0pt" + "LaTeX code which sets the height and depth for any colorboxes." + :type 'string + :group 'engrave-faces) + (defun engrave-faces-latex-gen-preamble () "Generate a preamble which provides short commands for the preset styles. See `engrave-faces-preset-styles' and `engrave-faces-latex-output-style'." - (mapconcat - (lambda (face-style) - (engrave-faces-latex-gen-preamble-line (car face-style) (cdr face-style))) - engrave-faces-preset-styles - "\n")) + (concat + (unless (cl-notany (lambda (s) (plist-get (cdr s) :background)) + engrave-faces-preset-styles) + (format "\\newcommand\\efstrut{%s}\n" engrave-faces-latex-colorbox-strut)) + (mapconcat + (lambda (face-style) + (engrave-faces-latex-gen-preamble-line (car face-style) (cdr face-style))) + engrave-faces-preset-styles + "\n"))) (defun engrave-faces-latex-gen-preamble-line (face style) "Generate a LaTeX preamble line for STYLE representing FACE." @@ -41,7 +51,7 @@ See `engrave-faces-preset-styles' and `engrave-faces-latex-output-style'." (concat (when fg (format "\\definecolor{EF%s}{HTML}{%s}\n" short (substring fg 1))) (when bg (format "\\definecolor{Ef%s}{HTML}{%s}\n" short (substring bg 1))) "\\newcommand{\\EF" short "}[1]{" - (when bg (concat "\\colorbox{Ef" short "}{")) + (when bg (concat "\\colorbox{Ef" short "}{\\efstrut{}")) (when fg (concat "\\textcolor{EF" short "}{")) (when st "\\sout{") (when bl "\\textbf{") (when it "\\textit{") "#1}" @@ -98,15 +108,16 @@ See `engrave-faces-preset-styles' and `engrave-faces-latex-output-style'." (goto-char (point-min)) (insert "\\documentclass{article} + +\\usepackage[margin=1.5cm]{geometry} \\usepackage{xcolor} \\usepackage{fvextra} -\\usepackage[margin=1.5cm]{geometry} \\usepackage{sourcecodepro} \\pagestyle{empty}\n\n" (engrave-faces-latex-gen-preamble) " \\begin{document} - +\\setlength{\\fboxsep}{0pt} \\begin{Verbatim}[breaklines=true, commandchars=\\\\\\{\\}]\n") (goto-char (point-max)) (insert "\\end{Verbatim}