From 9a49230095fce847264bc0630dde3906772e7954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Madeleine=20Sydney=20=C5=9Alaga?= Date: Tue, 11 Nov 2025 00:40:32 -0700 Subject: [PATCH] feat(emacs): xetex and plex --- modules/home/users/msyds/emacs.nix | 1 + .../home/users/msyds/emacs/lisp/syd/fonts.el | 2 +- .../users/msyds/emacs/lisp/syd/org/latex.el | 34 ++++--------------- .../home/users/msyds/emacs/nix/plex-latex.nix | 20 +++++++++++ users/msyds/default.nix | 2 -- 5 files changed, 29 insertions(+), 30 deletions(-) create mode 100644 modules/home/users/msyds/emacs/nix/plex-latex.nix diff --git a/modules/home/users/msyds/emacs.nix b/modules/home/users/msyds/emacs.nix index 8d85bec..83dbbe6 100644 --- a/modules/home/users/msyds/emacs.nix +++ b/modules/home/users/msyds/emacs.nix @@ -25,6 +25,7 @@ in { sydnix.users.msyds.emacs = { jinx.enable = true; tufte-latex.enable = true; + plex-latex.enable = true; }; sydnix.emacs = { diff --git a/modules/home/users/msyds/emacs/lisp/syd/fonts.el b/modules/home/users/msyds/emacs/lisp/syd/fonts.el index 4792d58..4688e9b 100644 --- a/modules/home/users/msyds/emacs/lisp/syd/fonts.el +++ b/modules/home/users/msyds/emacs/lisp/syd/fonts.el @@ -5,7 +5,7 @@ "Default fixed-pitch (monospace) font.") (defvar syd-variable-pitch-font - (font-spec :family "IBM Plex Serif" :size 15) + (font-spec :family "IBM Plex Serif" :size 17) "Default variable-pitch font.") (defvar syd-alt-fixed-pitch-font diff --git a/modules/home/users/msyds/emacs/lisp/syd/org/latex.el b/modules/home/users/msyds/emacs/lisp/syd/org/latex.el index 4e9b34f..0e52cca 100644 --- a/modules/home/users/msyds/emacs/lisp/syd/org/latex.el +++ b/modules/home/users/msyds/emacs/lisp/syd/org/latex.el @@ -15,7 +15,8 @@ (org-latex-preview 'buffer)) (use-package org - :custom (org-startup-with-latex-preview t) + :custom ((org-startup-with-latex-preview t) + (org-latex-compile "xelatex")) :general (:keymaps 'org-mode-map :states '(normal visual motion emacs insert) :major-modes t @@ -38,32 +39,11 @@ (org-latex-preview-live-debounce 0.25) ;; Increase size of previews. (org-latex-preview-appearance-options - (plist-put org-latex-preview-appearance-options :zoom 1.2))) - :hook (org-mode . org-latex-preview-mode) - :config - (add-to-list - 'org-latex-preview-process-alist - `(dvisvgm - :programs ("latex" "dvisvgm") :description "dvi > svg" :message - "you need to install the programs: latex and dvisvgm." - :image-input-type "dvi" :image-output-type "svg" :latex-compiler - ("%l -interaction nonstopmode -output-directory %o %f") - :latex-precompiler - ("%l -output-directory %o -ini -jobname=%b \"&%L\" mylatexformat.ltx %f") - :image-converter - (,(syd-str - " " - "dvisvgm" - "--page=1-" - "--optimize" - "--clipjoin" - "--relative" - "--no-fonts" - "-v3" - "--message='processing page {?pageno}: output written to {?svgpath}'" - "--bbox=min" - "-o %B-%%9p.svg" - "%f"))))) + (plist-put org-latex-preview-appearance-options :zoom 1.0)) + (org-latex-preview-process-precompile + ;; Not suported by XeLaTeX or LuaLaTeX }:(. + (eq org-latex-compiler "pdflatex"))) + :hook (org-mode . org-latex-preview-mode)) (use-package org-contrib) diff --git a/modules/home/users/msyds/emacs/nix/plex-latex.nix b/modules/home/users/msyds/emacs/nix/plex-latex.nix new file mode 100644 index 0000000..de75f7e --- /dev/null +++ b/modules/home/users/msyds/emacs/nix/plex-latex.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.sydnix.users.msyds.emacs.plex-latex; +in { + options.sydnix.users.msyds.emacs.plex-latex = { + enable = lib.mkEnableOption "the IBM Plex font within Org-mode LaTeX"; + }; + + config = lib.mkIf cfg.enable { + sydnix.emacs.tex.extraTexPackages = { + inherit (pkgs.texlive) + plex + plex-otf + fontaxes + unicode-math + xetex + ; + }; + }; +} diff --git a/users/msyds/default.nix b/users/msyds/default.nix index 9858d10..9f15c32 100644 --- a/users/msyds/default.nix +++ b/users/msyds/default.nix @@ -19,8 +19,6 @@ home.file.".ssh/id_ed25519.pub".source = ../../public-keys/ssh/crumb-at-nixos-testbed.pub; - home.packages = []; - fonts.fontconfig.enable = true; sydnix = {