diff --git a/.gitignore b/.gitignore index e51b696..b1c34c7 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,7 @@ latexmkrc org-store-link -setupfile.org +setup-include.org /_minted-README /eln-cache diff --git a/README.org b/README.org index 08b5ee3..4bd1802 100644 --- a/README.org +++ b/README.org @@ -2,113 +2,8 @@ #+author: Gerard Vermeulen #+latex_class: article #+latex_class_options: [11pt,a4paper,english,svgnames,tables] -#+setupfile: setupfile.org - -* LaTeX headers :noexport: - -#+begin_src latex-header - % LANGUAGE: - \usepackage{babel} - \usepackage{fvextra} - \usepackage{csquotes} - % LISTS: - \usepackage{enumitem} - \setlist{noitemsep} - % TECHNICS: - \usepackage{siunitx} - \usepackage{tikz} - % LISTINGS: - % Section 2.6 of caption-eng.pdf (texdoc caption) explains that the sign - % of "skip" depends on the assumption "position=above" or "position=below". - % The assumption should match the real caption position in the LaTeX code. - \usepackage{caption} - \usepackage[newfloat]{minted} - \captionsetup[listing]{position=below,skip=0em} - \usemintedstyle{xcode} - % TABLES: - % https://tex.stackexchange.com/questions/341205/ - % what-is-the-difference-between-tabular-tabular-and-tabularx-environments - % https://emacs.stackexchange.com/questions/26179/ - % change-org-mode-table-style-just-for-latex-export - % https://tex.stackexchange.com/questions/468585/ - % table-formatting-using-siunitx - \usepackage{booktabs} - \usepackage{colortbl} - \usepackage{tabularx} % DANGER: beware of Org table :width and :align options! - % FANCY HEADERS: - \usepackage{fancyhdr} - \usepackage{lastpage} - % PAGE GEOMETRY: - \usepackage[ - headheight=20mm, - top=40mm, - bottom=20mm, - left=60pt, - right=60pt, - heightrounded, - verbose, - ]{geometry} -#+end_src - -#+begin_src latex-header - % FLOAT BARRIERS: - % https://tex.stackexchange.com/questions/118662/use-placeins-for-subsections - % Make section an implicit float barrier: - \usepackage[section]{placeins} - % Make subsection an implicit float barrier: - \makeatletter - \AtBeginDocument{% - \expandafter\renewcommand\expandafter\subsection\expandafter{% - \expandafter\@fb@secFB\subsection - }% - } - \makeatother - % Make subsubsection an implicit float barrier: - \makeatletter - \AtBeginDocument{% - \expandafter\renewcommand\expandafter\subsubsection\expandafter{% - \expandafter\@fb@secFB\subsubsection - }% - } - \makeatother -#+end_src - -#+begin_src latex-header - % Add fancy headers and footers to normal pages. - \pagestyle{fancy} - \fancyhf{} - \renewcommand{\footrulewidth}{0.4pt} - \fancyfoot[C]{\emph{ - Emacs setup for use with \LaTeX{}, Org, and Python -- Gerard Vermeulen}} - \renewcommand{\headrulewidth}{0.4pt} - \fancyhead[L]{\includegraphics[height=1.8cm]{Org-mode-unicorn.png}} - \fancyhead[C]{ - Page: \thepage/\pageref{LastPage} \\ - \text{ } \\ - \text{ } \\ - DRAFT - } - \fancyhead[R]{\includegraphics[height=1.8cm]{Emacs-logo.png}} - - % Add fancy header and footer to custom titlepage. - % https://tex.stackexchange.com/questions/506102/ - % adding-header-and-footer-to-custom-titlepage - \fancypagestyle{titlepage}{% - \fancyhf{} - \renewcommand{\footrulewidth}{0.4pt} - \fancyfoot[C]{\emph{ - Emacs setup for use with \LaTeX{}, Org, and Python -- Gerard Vermeulen}} - \renewcommand{\headrulewidth}{0.4pt} - \fancyhead[L]{\includegraphics[height=1.8cm]{Org-mode-unicorn.png}} - \fancyhead[C]{ - \pageref{LastPage} pages \\ - \text{ } \\ - \text{ } \\ - DRAFT - } - \fancyhead[R]{\includegraphics[height=1.8cm]{Emacs-logo.png}} - } -#+end_src +#+setupfile: "setup-include.org" +#+include: "setup-include.org" * Quick start :PROPERTIES: @@ -1066,7 +961,7 @@ The code in listing [[lst:customize-org-babel]], [[lst:customize-org]], and (cperl "perl") (shell-script "bash") (caml "ocaml") - (org "text"))) + (Org "latex"))) '(org-latex-minted-options '(("bgcolor" "LightGoldenrodYellow"))) `(org-latex-logfiles-extensions ',(cl-union '("lof" "lot") org-latex-logfiles-extensions :test #'equal)) @@ -1378,7 +1273,7 @@ this broken function (broken, since it relies on support only in org-mode before #+caption[Define =my-ox-latex-export-buffer-local-variables=]: #+caption: Define =my-ox-latex-export-buffer-local-variables=. #+name: lst:emacs-lisp-setup-defun -#+begin_src emacs-lisp +#+begin_src emacs-lisp :results silent (defun my-ox-latex-export-buffer-local-variables (title-page) (with-eval-after-load 'ox (make-variable-buffer-local 'org-export-before-parsing-hook) @@ -1451,19 +1346,156 @@ Listing [[lst:emacs-lisp-setup-call]] initializes the buffer local variables \end{titlepage} #+end_src -*** [[info:org#Export Settings][SETUPFILE export keyword usage]] +*** [[info:org#Export Settings][#+SETUPFILE: and #+INCLUDE: usage]] :PROPERTIES: -:CUSTOM_ID: sec:setupfile-export-keyword-usage +:CUSTOM_ID: sec:setupfile+include-usage :END: #+caption[Setup file export keyword settings]: #+caption: Setup file export keyword settings. #+name: lst:setup-file-export-keyword-settings -#+begin_src org :tangle setupfile.org -#+babel: :cache no -#+macro: kbd @@html:$1@@@@latex:\colorbox{PowderBlue}{\texttt{$1}}@@ -#+property: header-args:emacs-lisp :exports code :results silent :tangle init.el -#+startup: content +#+begin_src org + ,#+babel: :cache no + ,#+macro: kbd @@html:$1@@@@latex:\colorbox{PowderBlue}{\texttt{$1}}@@ + ,#+property: header-args:emacs-lisp :exports code :results silent :tangle init.el + ,#+property: header-args:org :tangle setup-include.org + ,#+startup: content +#+end_src + +#+caption[LaTeX preamble: language, lists and floats]: +#+caption: LaTeX preamble: language, lists and floats. +#+name: lst:use-latex-header-1 +#+begin_src org + ,#+begin_src latex-header + + % LANGUAGE: + \usepackage{babel} + \usepackage{fvextra} + \usepackage{csquotes} + + % LISTS: + \usepackage{enumitem} + \setlist{noitemsep} + + % LISTINGS: + % Section 2.6 of caption-eng.pdf (texdoc caption) explains that the sign + % of "skip" depends on the assumption "position=above" or "position=below". + % The assumption should match the real caption position in the LaTeX code. + \usepackage{caption} + \usepackage[newfloat]{minted} + \captionsetup[listing]{position=below,skip=0em} + \usemintedstyle{xcode} + + % TABLES: + % https://tex.stackexchange.com/questions/341205/ + % what-is-the-difference-between-tabular-tabular-and-tabularx-environments + % https://emacs.stackexchange.com/questions/26179/ + % change-org-mode-table-style-just-for-latex-export + % https://tex.stackexchange.com/questions/468585/ + % table-formatting-using-siunitx + \usepackage{booktabs} + \usepackage{colortbl} + \usepackage{tabularx} % DANGER: beware of Org table :width and :align options! + + ,#+end_src +#+end_src + +#+caption[LaTeX preamble: page layout]: +#+caption: LaTeX preamble: page layout. +#+name: lst:use-latex-header-2 +#+begin_src org + ,#+begin_src latex-header + % PAGE LAYOUT: + \usepackage{fancyhdr} + \usepackage{lastpage} + \usepackage[ + headheight=20mm, + top=40mm, + bottom=20mm, + left=60pt, + right=60pt, + heightrounded, + verbose, + ]{geometry} + + % TECHNICS: + \usepackage{siunitx} + \usepackage{tikz} + + ,#+end_src +#+end_src + +#+caption[LaTeX preamble: float barriers]: +#+caption: LaTeX preamble: float barriers. +#+name: lst:use-latex-header-3 +#+begin_src org + ,#+begin_src latex-header + % FLOAT BARRIERS: + % https://tex.stackexchange.com/questions/118662/use-placeins-for-subsections + % Make section an implicit float barrier: + \usepackage[section]{placeins} + % Make subsection an implicit float barrier: + \makeatletter + \AtBeginDocument{% + \expandafter\renewcommand\expandafter\subsection\expandafter{% + \expandafter\@fb@secFB\subsection + }% + } + \makeatother + % Make subsubsection an implicit float barrier: + \makeatletter + \AtBeginDocument{% + \expandafter\renewcommand\expandafter\subsubsection\expandafter{% + \expandafter\@fb@secFB\subsubsection + }% + } + \makeatother + + ,#+end_src +#+end_src + +#+caption[LaTeX preamble: fancy headers and footers]: +#+caption: LaTeX preamble: fancy headers and footers. +#+name: lst:use-latex-header-4 +#+begin_src org + ,#+begin_src latex-header + % FANCY HEADERS AND FOOTERS: + % Add fancy headers and footers to normal pages. + \pagestyle{fancy} + \fancyhf{} + \renewcommand{\footrulewidth}{0.4pt} + \fancyfoot[C]{\emph{ + Emacs setup for use with \LaTeX{}, Org, and Python -- Gerard Vermeulen}} + \renewcommand{\headrulewidth}{0.4pt} + \fancyhead[L]{\includegraphics[height=1.8cm]{Org-mode-unicorn.png}} + \fancyhead[C]{ + Page: \thepage/\pageref{LastPage} \\ + \text{ } \\ + \text{ } \\ + DRAFT + } + \fancyhead[R]{\includegraphics[height=1.8cm]{Emacs-logo.png}} + + % Add fancy header and footer to custom titlepage. + % https://tex.stackexchange.com/questions/506102/ + % adding-header-and-footer-to-custom-titlepage + \fancypagestyle{titlepage}{% + \fancyhf{} + \renewcommand{\footrulewidth}{0.4pt} + \fancyfoot[C]{\emph{ + Emacs setup for use with \LaTeX{}, Org, and Python -- Gerard Vermeulen}} + \renewcommand{\headrulewidth}{0.4pt} + \fancyhead[L]{\includegraphics[height=1.8cm]{Org-mode-unicorn.png}} + \fancyhead[C]{ + \pageref{LastPage} pages \\ + \text{ } \\ + \text{ } \\ + DRAFT + } + \fancyhead[R]{\includegraphics[height=1.8cm]{Emacs-logo.png}} + } + % #+latex_header: END. + ,#+end_src #+end_src * Editing diff --git a/org-babel-tangle-file b/org-babel-tangle-file index 28cc851..f4c44ff 100755 --- a/org-babel-tangle-file +++ b/org-babel-tangle-file @@ -24,7 +24,7 @@ emacs -Q --batch --eval " (setq python-indent-guess-indent-offset nil) (org-babel-tangle-file \"$1\" \"init.el\" \"emacs-lisp\") - (org-babel-tangle-file \"$1\" \"setupfile.org\" \"org\")) + (org-babel-tangle-file \"$1\" \"setup-include.org\" \"org\")) " # Local Variables: