Функция elisp для переключения переменной, в то время как одна переменная установлена ​​по умолчанию - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть два org-latex-pdf-process для org-export и org-ref. Я хочу, чтобы функция переключала две переменные, но я хочу, чтобы значение для org-export было значением по умолчанию при запуске. Я написал:

(setq org-latex-pdf-process 
    '("xelatex -interaction nonstopmode %f"
      "xelatex -interaction nonstopmode %f")) ;; for multiple passes

 (defvar org-latex-pdf-process-tag 1 "Tag of org-latex-pdf-process.")
 (defun toggle-org-latex-pdf-process ()
   (interactive)
   (cond
    ((= org-latex-pdf-process-tag 1)
     (setq org-latex-pdf-process
        '("xelatex -interaction nonstopmode -output-directory %o %f"
          "bibtex %b"
          "xelatex -interaction nonstopmode -output-directory %o %f"
          "xelatex -interaction nonstopmode -output-directory %o %f"))
     (message "Changed for org-ref!")
     (setq org-latex-pdf-process-tag 2))
    ((= org-latex-pdf-process-tag 2)
     (setq org-latex-pdf-process 
        '("xelatex -interaction nonstopmode %f"
          "xelatex -interaction nonstopmode %f")) ;; for multiple passes
     (message "Changed for xelatex!")
     (setq org-latex-pdf-process-tag 1))))

Это работает, но выглядит как-то избыточно. Поэтому я хочу спросить, есть ли какой-нибудь способ сделать его компактным, например, с использованием вспомогательного режима и т. Д.

...