diff --git a/README.org b/README.org index a32c31a..919048d 100644 --- a/README.org +++ b/README.org @@ -133,7 +133,7 @@ packages. Quit Emacs and invoke Emacs again. #+caption[Prepare the user-emacs-directory]: #+caption: Clone and initialize the user-emacs-directory. -#+label: lst:prepare-user-emacs-directory +#+name: lst:prepare-user-emacs-directory #+begin_src shell :noeval :tangle no cd ~ git clone ccdr@mercury.grenoble.cnrs.fr:SERVER/emacs.d.git .emacs.d @@ -213,7 +213,7 @@ Try to load [[https://github.com/emacscollective/no-littering][no-littering]] as #+caption[Tangle the early-init-file]: #+caption: Tangle the early-init-file. -#+label: lst:tangle-early-init-file +#+name: lst:tangle-early-init-file #+begin_src emacs-lisp :tangle early-init.el ;;; early-init.el --- user early-init file -*- lexical-binding: t -*- ;;; Commentary: @@ -232,8 +232,8 @@ Try to load [[https://github.com/emacscollective/no-littering][no-littering]] as #+end_src In order to get help in understanding the code block above in a buffer showing -the original [[info:org#Top][Org]] source file, move point (or cursor) to one of the items of the -list the and type =C-c C-c=: +the original [[info:org#Top][Org]] source file, type {{{kbd(C-c C-c)}}} after moving point (or +cursor) to one of the items of the list: 1. src_emacs-lisp{(describe-variable #'load-prefer-newer t)} 2. src_emacs-lisp{(apropos-library "no-littering")} 3. src_emacs-lisp{(find-function #'hack-local-variables)} @@ -261,7 +261,7 @@ the ~custom-file~ as [[info:emacs#Saving Customizations][saving customizations ( #+caption[Customize the first set of Emacs variables]: #+caption: Customize the first set of Emacs variables. -#+label: lst:1st-custom-set-variables-call +#+name: lst:1st-custom-set-variables-call #+begin_src emacs-lisp ;;; init.el --- user init file -*- lexical-binding: t -*- ;;; Commentary: @@ -291,7 +291,7 @@ the ~custom-file~ as [[info:emacs#Saving Customizations][saving customizations ( #+caption[Customize the second set of Emacs variables]: #+caption: Customize the second set of Emacs variables. -#+label: lst:2nd-custom-set-variables-call +#+name: lst:2nd-custom-set-variables-call #+begin_src emacs-lisp (custom-set-variables `(package-selected-packages @@ -340,7 +340,7 @@ the ~custom-file~ as [[info:emacs#Saving Customizations][saving customizations ( #+caption[Customize the third set of Emacs variables]: #+caption: Customize the third set of Emacs variables. -#+label: lst:3rd-custom-set-variables-call +#+name: lst:3rd-custom-set-variables-call #+begin_src emacs-lisp (custom-set-variables '(recentf-mode t) @@ -392,7 +392,7 @@ the contents of packages and allows to update packages to the latest version. #+caption[Install the selected packages]: #+caption: Install the selected packages. -#+label: lst:install-selected-packages +#+name: lst:install-selected-packages #+begin_src emacs-lisp (unless (require 'no-littering nil 'noerror) (package-refresh-contents) @@ -419,7 +419,7 @@ The code in listing [[lst:start-emacs-server]] starts the Emacs server. #+caption[Start the Emacs server]: #+caption: Start the Emacs server. -#+label: lst:start-emacs-server +#+name: lst:start-emacs-server #+begin_src emacs-lisp (when window-system (unless (or noninteractive (daemonp)) @@ -440,7 +440,7 @@ variable in section are compatible. The local variable ~compile-command~ in the #+caption[Tangle the Latexmk resource file]: #+caption: Tangle the Latexmk resource file. -#+label: lst:latexmkrc +#+name: lst:latexmkrc #+begin_src perl :tangle latexmkrc :comments none # pdf previewer and update pdf previewer $pdf_previewer = "emacsclient -e '(find-file-other-window %S)'"; @@ -482,7 +482,7 @@ may hang or die. #+caption: Tangle a qutebrowser userscript. #+header: :comments none #+header: :tangle-mode (identity #o755) -#+label: lst:qutebrowser-userscript +#+name: lst:qutebrowser-userscript #+begin_src python :noeval :tangle org-store-link #!/usr/bin/env python from urllib.parse import urlencode @@ -533,7 +533,7 @@ file. #+caption[Enable =savehist-mode= and =vertico-mode=]: #+caption: Enable =savehist-mode= and =vertico-mode=. -#+label: lst:enable-vertico-mode +#+name: lst:enable-vertico-mode #+begin_src emacs-lisp (unless noninteractive (custom-set-variables @@ -559,7 +559,7 @@ Listing [[lst:configure-orderless]] enables =orderless=. #+caption[Configure =orderless=]: #+caption: Configure =orderless=. -#+label: lst:configure-orderless +#+name: lst:configure-orderless #+begin_src emacs-lisp (unless noninteractive (when (fboundp 'orderless-filter) @@ -583,7 +583,7 @@ Listing [[lst:configure-embark]] configures =embark=. #+caption[Configure =embark=]: #+caption: Configure =embark=. -#+label: lst:configure-embark +#+name: lst:configure-embark #+begin_src emacs-lisp (unless noninteractive (when (cl-every #'fboundp '(embark-act embark-bindings embark-dwim)) @@ -601,7 +601,7 @@ Listing [[lst:enable-marginalia-mode]] enables =marginalia-mode=. #+caption[Enable =marginalia-mode=]: #+caption: Enable =marginalia-mode=. -#+label: lst:enable-marginalia-mode +#+name: lst:enable-marginalia-mode #+begin_src emacs-lisp (unless noninteractive (when (fboundp 'marginalia-mode) @@ -713,7 +713,7 @@ Listing [[lst:configure-company]] configures =company=. #+caption[Configure =company=]: #+caption: Configure =company=. -#+label: lst:configure-company +#+name: lst:configure-company #+begin_src emacs-lisp (unless noninteractive (when (fboundp 'company-mode) @@ -740,7 +740,7 @@ previous input in the minibuffer. Listing #+caption[Enable =minibuffer-history-completion=]: #+caption: Enable =minibuffer-history-completion=. -#+label: lst:enable-minibuffer-history-completion +#+name: lst:enable-minibuffer-history-completion #+begin_src emacs-lisp (defun minibuffer-setup-history-completions () (unless (or minibuffer-completion-table minibuffer-completion-predicate) @@ -758,14 +758,14 @@ previous input in the minibuffer. Listing end)))) ;; Adapted from ‘minibuffer-complete’: - (defun my-minibuffer-complete-history () + (defun minibuffer-complete-history () "Allow minibuffer completion on previous input." (interactive) (completion-in-region (minibuffer--completion-prompt-end) (point-max) (symbol-value minibuffer-history-variable) nil)) - (define-key minibuffer-local-map [C-tab] 'my-minibuffer-complete-history) + (define-key minibuffer-local-map (kbd "C-") 'minibuffer-complete-history) #+end_src ** Prefix key-binding help @@ -779,7 +779,7 @@ keys available after the prefix key. Listing [[lst:enable-which-key-mode]] enab #+caption[Enable =which-key-mode=]: #+caption: Enable =which-key-mode=. -#+label: lst:enable-which-key-mode +#+name: lst:enable-which-key-mode #+begin_src emacs-lisp (when (fboundp 'which-key-mode) (custom-set-variables @@ -803,7 +803,7 @@ Listing [[lst:enable-nov-mode]] enables =nov-mode=. #+caption[Enable =nov-mode=]: #+caption: Enable =nov-mode=. -#+label: lst:enable-nov-mode +#+name: lst:enable-nov-mode #+begin_src emacs-lisp (when (fboundp 'nov-mode) (add-to-list 'auto-mode-alist `(,(rx ".epub" eos) . nov-mode))) @@ -824,7 +824,7 @@ rebuild the =epdfinfo= executable that serves the [[https://en.wikipedia.org/wik #+caption[Enable =pdf-tools=]: #+caption: Enable =pdf-tools=. -#+label: lst:enable-pdf-tools +#+name: lst:enable-pdf-tools #+begin_src emacs-lisp ;; 'pdf-loader-install' is the lazy equivalent of 'pdf-tools-install': ;; see the README file. @@ -855,7 +855,7 @@ a LaTeX file that sets ~TeX-master~. Listing [[lst:require-auctex]] initializes #+caption[Require =AUCTeX=]: #+caption: Require =AUCTeX=. -#+label: lst:require-auctex +#+name: lst:require-auctex #+begin_src emacs-lisp ;; Use `require' to make `TeX-master' a safe local variable. (when (require 'tex nil 'noerror) @@ -871,7 +871,7 @@ backwards compatibility. #+caption[Configure =bibtex=]: #+caption: Configure =bibtex=. -#+label: lst:configure-bibtex +#+name: lst:configure-bibtex #+begin_src emacs-lisp (with-eval-after-load 'bibtex (custom-set-variables '(bibtex-dialect 'BibTeX))) @@ -881,7 +881,7 @@ Listing [[lst:configure-font-latex]] disables font scaling of section titles. #+caption[Configure =font-latex=]: #+caption: Configure =font-latex=. -#+label: lst:configure-font-latex +#+name: lst:configure-font-latex #+begin_src emacs-lisp (with-eval-after-load 'font-latex (custom-set-variables @@ -893,7 +893,7 @@ Listing [[lst:configure-latex]] configures =latex= for a full featured #+caption[Configure =latex=]: #+caption: Configure =latex=. -#+label: lst:configure-latex +#+name: lst:configure-latex #+begin_src emacs-lisp (with-eval-after-load 'latex (custom-set-variables @@ -910,7 +910,7 @@ in listing [[lst:configure-tex]] corrects this by advising to override #+caption[Configure =TeX=]: #+caption: Configure =TeX=. -#+label: lst:configure-tex +#+name: lst:configure-tex #+begin_src emacs-lisp (with-eval-after-load 'tex ;; https://emacs.stackexchange.com/questions/17396/ @@ -954,7 +954,7 @@ in listing [[lst:configure-tex]] corrects this by advising to override #+caption[Activate =Org=]: #+caption: Activate =Org=. -#+label: lst:activate-org +#+name: lst:activate-org #+begin_src emacs-lisp ;; Inspect: ;; function with "C-h f" @@ -977,7 +977,7 @@ The code in listing [[lst:customize-org-babel]], [[lst:customize-org]], and #+caption[Customize =org-babel=]: #+caption: Customize =org-babel=. -#+label: lst:customize-org-babel +#+name: lst:customize-org-babel #+begin_src emacs-lisp (with-eval-after-load 'ob-core (custom-set-variables @@ -990,7 +990,7 @@ The code in listing [[lst:customize-org-babel]], [[lst:customize-org]], and #+caption[Customize =Org=]: #+caption: Customize =Org=. -#+label: lst:customize-org +#+name: lst:customize-org #+begin_src emacs-lisp (with-eval-after-load 'org (custom-set-variables @@ -1036,7 +1036,7 @@ The code in listing [[lst:customize-org-babel]], [[lst:customize-org]], and #+caption[Customize =org-export=]: #+caption: Customize =org-export=. -#+label: lst:customize-org-export +#+name: lst:customize-org-export #+begin_src emacs-lisp (with-eval-after-load 'ox-latex (custom-set-variables @@ -1058,8 +1058,10 @@ The code in listing [[lst:customize-org-babel]], [[lst:customize-org]], and }\n") '(org-latex-listings 'minted) '(org-latex-minted-options '(("bgcolor" "LightGoldenrodYellow"))) - '(org-latex-logfiles-extensions '("blg" "lof" "log" "lot" "out" "toc")) - '(org-latex-prefer-user-labels t))) + `(org-latex-logfiles-extensions + ',(cl-union '("lof" "lot") org-latex-logfiles-extensions :test #'equal)) + '(org-latex-prefer-user-labels t) + '(org-latex-subtitle-separate t))) #+end_src *** [[https://github.com/bdarcus/citar][Citar: citing bibliography]] with [[https://orgmode.org/][Org Mode]] @@ -1077,7 +1079,7 @@ and =org=. #+caption[Configure =org-cite= with =citar=]: #+caption: Configure =oc-cite= with =citar=. -#+label: lst:configure-oc-cite+citar +#+name: lst:configure-oc-cite+citar #+begin_src emacs-lisp (with-eval-after-load 'oc (require 'oc-biblatex) @@ -1120,7 +1122,7 @@ backwards compatibility with [[https://github.com/jkitchin/org-ref][org-ref]]. #+caption[Define =org-link= types]: #+caption: Define =org-link= types. -#+label: lst:define-org-link-types +#+name: lst:define-org-link-types #+begin_src emacs-lisp (with-eval-after-load 'ol (org-link-set-parameters @@ -1207,7 +1209,7 @@ this document to =html= and LaTeX correctly. #+caption[Convert upper to lower case keywords]: #+caption: Convert upper to lower case keywords. -#+label: lst:convert-upper-to-lower-case-keywords +#+name: lst:convert-upper-to-lower-case-keywords #+begin_src emacs-lisp (with-eval-after-load 'org (defun org-syntax-convert-keyword-case-to-lower () @@ -1231,7 +1233,7 @@ this document to =html= and LaTeX correctly. #+caption[Evaluate specific source blocks at load-time]: #+caption: Evaluate specific source blocks at load-time. -#+label: lst:load-time-specific-source-block-evaluation +#+name: lst:load-time-specific-source-block-evaluation #+begin_src emacs-lisp (defun my-org-eval-blocks-named (infix) "Evaluate all source blocks having INFIX in their name." @@ -1353,6 +1355,11 @@ this broken function (broken, since it relies on support only in org-mode before (reverse blocks)))))) #+end_src +*** [[info:org#LaTeX specific export settings][Advanced LaTeX export settings]] +:PROPERTIES: +:CUSTOM_ID: sec:advanced-latex-export-settings +:END: + [[https://emacs.stackexchange.com/questions/47347/customizing-org-latex-title-command-to-edit-title-page][How to customize =org-latex-title-command= only in this buffer]] #+caption[Define =my-ox-latex-export-buffer-local-variables=]: @@ -1395,20 +1402,22 @@ this broken function (broken, since it relies on support only in org-mode before (setq org-latex-subtitle-format ""))) #+end_src -[[lst:emacs-lisp-setup-call]] +Listing [[lst:emacs-lisp-setup-call]] initializes the buffer local variables +=org-export-before-parsing-hook=, =org-latex-classes=, +=org-latex-title-command=, =org-latex-toc-command=, and +=org-latex-subtitle-format=. #+caption[Call =my-ox-latex-export-local-variables=]: #+caption: Use the setup macro for =ox-latex=. #+name: lst:emacs-lisp-setup-call -#+header: :var title-page=title-page +#+header: :var title-page=lst/title-page #+begin_src emacs-lisp :exports code :results silent :tangle no (my-ox-latex-export-buffer-local-variables title-page) #+end_src #+caption[Show a title-page example for =org-latex-title-command=]: #+caption: Show a title-page example for =org-latex-title-command=. -#+label: lst:title-page -#+name: title-page +#+name: lst/title-page #+begin_src latex :exports code :results silent :tangle no \begin{titlepage} %% https://tex.stackexchange.com/questions/506102/ @@ -1441,7 +1450,7 @@ users from shooting themselves in the feet. #+caption[Configure the =disabled-command-function=]: #+caption: Configure the =disabled-command-function=. -#+label: lst:configure-disabled-command-function +#+name: lst:configure-disabled-command-function #+begin_src emacs-lisp (setq disabled-command-function (defun my-enable-this-command (&rest _args) @@ -1510,7 +1519,7 @@ on tables by means of =org-narrow-to-table=. #+caption[Enable =iedit=]: #+caption: Enable =iedit=. -#+label: lst:enable-iedit +#+name: lst:enable-iedit #+begin_src emacs-lisp (unless noninteractive (require 'iedit nil 'noerror)) @@ -1520,7 +1529,7 @@ on tables by means of =org-narrow-to-table=. #+caption[Configure =ws-butler=]: #+caption: Configure =ws-butler=. -#+label: lst:configure-ws-butler +#+name: lst:configure-ws-butler #+begin_src emacs-lisp (unless noninteractive (when (require 'ws-butler nil 'noerror) @@ -1566,7 +1575,7 @@ LaTeX, Org, and Python. #+caption[Configure =smartparens=]: #+caption: Configure =smartparens=. -#+label: lst:configure-smartparens +#+name: lst:configure-smartparens #+begin_src emacs-lisp (unless noninteractive ;; To disables pairing of the quote character for lisp modes, @@ -1635,7 +1644,7 @@ formatter for Python]]. #+caption[Enable =yas-global-mode=]: #+caption: Enable =yas-global-mode=. -#+label: lst:enable-yas-global-mode +#+name: lst:enable-yas-global-mode #+begin_src emacs-lisp (when (require 'yasnippet nil 'noerror) (custom-set-variables @@ -1918,7 +1927,7 @@ themes fail to display ~hl-line-mode~ properly with Emacs-27.2 on Darwin. #+caption[Hack =leuven-theme=]: #+caption: Hack =leuven-theme=. -#+label: lst:hack-leuven-theme +#+name: lst:hack-leuven-theme #+begin_src emacs-lisp (unless noninteractive ;; Try to detect `leuven-theme` from MELPA. @@ -1961,7 +1970,7 @@ themes fail to display ~hl-line-mode~ properly with Emacs-27.2 on Darwin. #+caption[Implement =my-pulse-one-line=]: #+caption: Implement =my-pulse-one-line=. -#+label: lst:my-pulse-one-line +#+name: lst:my-pulse-one-line #+begin_src emacs-lisp (unless noninteractive ;; https://karthinks.com/software/batteries-included-with-emacs/ @@ -1984,7 +1993,7 @@ themes fail to display ~hl-line-mode~ properly with Emacs-27.2 on Darwin. #+caption[Enable =elfeed=]: #+caption: Enable =elfeed=. -#+label: lst:enable-elfeed +#+name: lst:enable-elfeed #+begin_src emacs-lisp (autoload 'elfeed "elfeed" nil t) (global-set-key (kbd "C-x w") #'elfeed) @@ -2015,7 +2024,7 @@ themes fail to display ~hl-line-mode~ properly with Emacs-27.2 on Darwin. #+caption[Enable =emms=]: #+caption: Enable =emms=. -#+label: lst:enable-emms +#+name: lst:enable-emms #+begin_src emacs-lisp (custom-set-variables '(emms-mode-line-format "") @@ -2060,7 +2069,7 @@ themes fail to display ~hl-line-mode~ properly with Emacs-27.2 on Darwin. #+caption[Tangle the =user-init-file= footer]: #+caption: Tangle the =user-init-file= footer. -#+label: lst:tangle-user-init-file-footer +#+name: lst:tangle-user-init-file-footer #+begin_src emacs-lisp (provide 'init)