# ‎
Author: hasp138dw

If exporting only a subtree; the heading will be the document title if not overwritten by the property `EXPORT_TITLE`.

Inside emacs org use `org-ref-list-of-tables` and `org-ref-list-of-figures` to open a list of tables or figures.

## 1. Requirements

`latexmk`: for glossary and acronym add the following to `~/.config/latexmk/latexmkrc`

    add_cus_dep( 'acn', 'acr', 0, 'makeglossaries' );
    add_cus_dep( 'glo', 'gls', 0, 'makeglossaries' );
    $clean_ext .= " acr acn alg glo gls glg";
    sub makeglossaries {
      my ($base_name, $path) = fileparse( $_[0] );
      my @args = ( "-q", "-d", $path, $base_name );
      if ($silent) { unshift @args, "-q"; }
      return system "makeglossaries", "-d", $path, $base_name;
    }

    add_cus_dep('glo', 'gls', 0, 'makeglo2gls');
    sub makeglo2gls {
        system("makeindex -s '$_[0]'.ist -t '$_[0]'.glg -o '$_[0]'.gls '$_[0]'.glo");
    }

    add_cus_dep('acn', 'acr', 0, 'makeacn2acr');
    sub makeacn2acr {
        system("makeindex -s \"$_[0].ist\" -t \"$_[0].alg\" -o \"$_[0].acr\" \"$_[0].acn\"");
    }

## 2. Preamble

The preamble is defined by Org-keywords.

First line of the file can be used to define the spelling language of the document.

    # -*- ispell-local-dictionary: "english" -*-
    # -*- ispell-local-dictionary: "german" -*-

The title (also used in pdf metadata field)

     The title

The subtitle

     The subtitle

The date

     May 16, 2022
     \today

Author(s) (also used in pdf metadata field)

     Max Muster
     Max Muster and Maxi Muster
     Max Muster, Maxi Muster

Email(s)

     max.muster@example.com
     max.muster@example.com and maxi.muster@example.com
     max.muster@example.com, maxi.muster@example.com

Keywords (also used in pdf metadata field)

    #+KEYWORDS: manual, examples

Export options

    # draft:t - display a block at the end of a line, which is too long (indication bad line break)
    # fontsize:"12pt" - set fontsize to 12pt (default: 11pt)
    #+OPTIONS: draft:t fontsize:"12pt"

Language (en default)

    #+LANGUAGE: en
    #+LANGUAGE: de

Description (also used in pdf metadata field: subject). Keyword can be used multiple times to extend the description.

    #+DESCRIPTION: Multiline
    #+DESCRIPTION: description

Type of the document. (The abstract template uses or can reference to the keyword variable ’document_type’ via the macro ’title-name’)

    #+DOCUMENT_TYPE: Seminararbeit

Overwrite references setup

    #+BIBLATEX: \usepackage[backend=biber,citestyle=alphabetic,bibstyle=authoryear,sorting=nyt,sortcase=false]{biblatex}\setlength{\bibhang}{0pt}\addbibresource{references.bib}

Additional peamble setup

    #+LATEX_HEADER_EXTRA: \usepackage{layout}

## 3. Text

### 3.1. Headline

    * 1st level heading
    ** this is 2nd level heading
    *** this is 3rd level heading

To have a headline in Org but not in an export set the header tag `:ignore:`.

    * Header not listed in toc but its content                           :ignore:
    bla bla bla

To have a headline with its content in Org but not in an export set the header tag `:noexport:`.

    * Section not exported                                             :noexport:
    bla bla bla, this will not be exported

To have a headline unnumbered in the table of contents set the header property `:UNNUMBERED: t`.

    * Header listed unnumbered
    :PROPERTIES:
    :UNNUMBERED: t
    :END:
    bla bla bla

To have a headline in a LaTeX export started on a new page use the header property `:CLEARPAGE: t`.

    * Section will start on a clear page (LaTeX)
    :PROPERTIES:
    :CLEARPAGE: t
    :END:
    bla bla bla

### 3.2. Formatting

      *bold*
      /italic/
      _underlined_
      =verbatim=
      ~code~
      +strike-through+
      X_{subscript}
      X^{superscript}

### 3.3. Line break

      Hello, \\  (enforce line break within a paragraph)
      World.

### 3.4. Color

- via link-decorator : colored text in orange
- via makro : colored text in darkblue

### 3.5. Glyphs & More

- in text
  - `\LaTeX{}` LaTeX (do not miss the brackets to get an whitespace after)
  - `\euro{}` €
  - `\leftarrow` ←
  - `\rightarrow` →
  - `\uparrow` ↑
  - `\downarrow` ↓
- in math
  - `\ho{}` (hochstellen) for math mode similar to `^{}` but sets roman font
  - `\ti{}` (tiefstellen) for math mode similar to `_{}` but sets roman font
  - `\rom{3}` iii
  - `\Rom{3}` III

### 3.6. Makros

Active Org macros (`org-macro-templates`):

- Org built-ins (see https://www.gnu.org/software/emacs/manual/html_node/org/Macro-Replacement.html)
  `{{{title}}}`
    The title
  `{{{author}}}`
    Max Muster Max Muster and Maxi Muster Max Muster, Maxi Muster
  `{{{email}}}`
    max.muster@example.com
  `{{{date}}}`
    May 16, 2022
  `{{{time(FORMAT)}}}`
    Mar : format see function `format-time-string`
  `{{{input-file}}}`
    my-org-article.org
  `{{{modification-time(FORMAT[,VC])}}}`
    2024-03-05 Tue 11:06:17 : vc is a toogle (nil,t) to retrieve the time from version control system
  `{{{keyword(KEYWORD)}}}`
    The subtitle
  `{{{property(PROPERTY-NAME[,LOCATION])}}}`

        optional location see function

    `org-link-search` (https://www.gnu.org/software/emacs/manual/html_node/org/Search-Options.html)

  `{{{n}}}` `{{{n(COUNTER[,ACTION])}}}`
    1 1 1 5 6 1 : increment counter name, if optional action is ’-’ do not increment, if number set to number, if somthing else reset to 1
- custom
  `{{{textsc(text)}}}`
    Gauß
  `{{{color(hex,text)}}}`
    text
  `{{{kbd(text)}}}`
    `text`
  `{{{highlight(text[,options])}}}`
    text highlighted in default color, text highlighted in red, text highlighted in green and blue borders

## 4. Links

    [[http://example.com/]]
    [[http://example.com/][description]]

## 5. Rule

a horizontal rule, 5 or more only dashes

## 6. Blocks

Easy Templates (enter `<x[TAB]`)

- s #+BEGIN_SRC … #+END_SRC
- e #+BEGIN_EXAMPLE … #+END_EXAMPLE
- q #+BEGIN_QUOTE … #+END_QUOTE
- v #+BEGIN_VERSE … #+END_VERSE
- c #+BEGIN_CENTER … #+END_CENTER
- l #+BEGIN_EXPORT latex … #+END_EXPORT
- L #+LATEX:
- h #+BEGIN_EXPORT html … #+END_EXPORT
- H #+HTML:
- a #+BEGIN_EXPORT ascii … #+END_EXPORT
- A #+ASCII:
- I #+INCLUDE: file
- I #+INCLUDE: interactive version

### 6.1. Lists

Org reference: https://orgmode.org/manual/Plain-lists-in-LaTeX-export.html#Plain-lists-in-LaTeX-export

Inline list: Some ways to say “Hello”:

- Hola
- Bonjour
- Guten Tag.

Unordered list

- One
  - Two
    - Three
      - Four
      - Four 2
      - Four 3

Ordered list

1. One
2. Two
   1. Two one
   2. Two two
      1. Two two one
      2. Two two two
         1. Two two two one
3. Test
4. foo
5. baz

List with custom item spacing

- One
- Two
- Three
- Four
- Five

Description list

an item
  a description

### 6.2. Tables, Figures, Listings

#+CAPTION[Optional short version for the lot, lof, lol]: Caption of the table, figure or listing

### 6.3. Tables

Default tables having a placement atrribute set to `[htbp]` (still allows to find a sweet spot). For a ’here in place’ placement use `:placement [h]` (approximately at the same point) `:placement [H]` (precisely at point, will deactivate settings from the `float` package, similar to `[h!]`)

Org reference: https://www.gnu.org/software/emacs/manual/html_node/org/Tables-in-LaTeX-export.html

Alignment using column type `#+ATTR_LATEX: :align xxx`

- built-in
  - l: left-aligned cells
  - c: center-aligned cells
  - r: right-aligned cells
  - p{width}: top-aligned cells with fixed width
  - m{width}: middle-aligned cells with fixed width
  - b{width}: bottom-aligned cells with fixed width
  - >{declaration}: pre-column-declaration, used before lcrpmb
  - <{declaration}: post-column-type declaration, user after lcrpmb
  - @{text}: column containing the text in every cell of the column
- custom
  - L{width}: left-aligned cells with fixed width
  - C{width}: center-aligned cells with fixed width
  - R{width}: right-aligned cells with fixed width

#### 6.3.1. Alignment and Bookstab style

Table 1: Table using bookstab and align
right | center | left
--- | --- | ---
A1 | A2 | A2
B1.1 | B2.1 | B3.1
C1.1.1 | C2.1.1 | C3.1.1

#### 6.3.2. Alignment

Table 2: Table using align
right | center | left
--- | --- | ---
A1 | A2 | A3
B1.1 | B2.1 | B3.1
C1.1.1 | C2.1.1 | C3.1.1

#### 6.3.3. Fixed width / multi-line cells

Multi-line cells with fixed width cells using `pmbLCR` and forced newline using `\newline`.

Table 3: Table using `#+ATTR_LATEX: :align rC{0.6\textwidth}l` and `\newline`
right | center | left
--- | --- | ---
A1 | A2 | A3

B1.1

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\newline Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

B3.1

C1.1.1 | C2.1.1 | C3.1.1

#### 6.3.4. Multi-page table / longtable

Table 4: Longtable
… | …
… | 3.456
… | 2,842

#### 6.3.5. Number alignment

Alignment of numbers (numprint) using column type n (numbers in math) and N (numbers in text)

Table 5: Table using column type n and N
`n{5}{3}` | `n[3]{5}{3}` | `n[3][1]{5}{3}` | `N{5}{3}`
--- | --- | --- | ---
123.45e12 | 123.45e12 | 123.45e12 | 123.45e12
12345.678e123 | 12345.678e123 | 12345.678e123 | 12345.678e123
123.45e12.3 | 123.45e12.3 | 123.45e12.3 | 123.45e12.3
12345.678e123.3 | 12345.678e123.3 | 12345.678e123.3 | 12345.678e123.3

#### 6.3.6. Custom caption command for LaTeX

Set caption with \LaTeX{} command

… | …
… | …

#### 6.3.7. Overlay using tikz

Table 6: Table with tikz overlay
| 1, 2, 7 | 3 | 4, 6 | 5 | ← Oberseite
--- | --- | --- | --- | --- | ---
Schicht | 8, 13, 14 | 12 | 9, 11 | 10 | ← Unterseite
1 | \tikzmark{LAa}Gelcoat | \tikzmark{LAc}Gelcoat | \tikzmark{LAe}Gelcoat | \tikzmark{LAg}Gelcoat | \tikzmark{LAi}Saertex(DB)
2 | SNL(Triax) | SNL(Triax) | SNL(Triax) | SNL(Triax) | FOAM
3 | SNL(Triax) | SNL(Triax) | SNL(Triax) | SNL(Triax) | \tikzmark{LAj}Saertex(DB)
4 | \tikzmark{LAb}SNL(Triax) | E-LT-5500(UD) | FOAM | Carbon(UD) |
5 |  | FOAM | \tikzmark{LAf}SNL(Triax) | \tikzmark{LAh}SNL(Triax) | \(\uparrow\) Längsver-
6 |  | \tikzmark{LAd}SNL(Triax) |  |  | \phantom{\(\uparrow\)} steifungen

#### 6.3.8. From Python src block output

b | foo
\(R^{2}\) | 1.363

### 6.4. Figures

#### 6.4.1. file svg

Figure 1: svg figure

See figure fig-svg-import as a reference.

#### 6.4.2. file png

Figure 2: png figure

#### 6.4.3. latex using tikz with data file

file path to data file need to be an absolute path, bacause the compilation is done in a tmp directory (`/tmp/babel-XXXXXX/`).

#### 6.4.4. python using matplotlib

SRC block header `:prologue (mpl-prologue)` for non-latex exports (.svg exports) to loads my.mplstyle including kpfonts. Other style via optional argument, e.g. `:prologue (mpl-prologue "my-tex")` rendering via latex including kpfonts.

SRC block header `:var fname=(mpl-var "<file_name>")` to export figure as .pgf for latex and .svg otherwise, like HTML.

##### 6.4.4.1. using my.mplstyle

Python matplotlib figure using matplotlib `my`. The style `my` renders without LaTeX but using the kpfonts.

    import math as m
    import matplotlib as mpl

    n = 30
    t = [i/n*m.pi for i in range(n+1)]

    fig, ax = plt.subplots()
    [ax.plot(t, [m.sin(i+j/12*m.pi) for i in t], color=f'C{j}', label=f'$C_{j}$') for j in range(10)]
    ax.legend()
    ax.set_title(r'Functions: $\sin(x + \pi \, i/12)$')
    ax.set_xlabel(r'$x ~ \times \pi$')
    ax.set_ylabel('$y$')
    ax.set_xticks([0, m.pi/4, m.pi/2, m.pi*3/4, m.pi])
    ax.set_xticklabels([0.00, 0.25, 0.50, 0.75, 1.00])
    ax.xaxis.set_minor_locator(mpl.ticker.AutoMinorLocator(3))
    ax.grid()
    ax.grid(which='minor', linestyle=':')

    fig.savefig(fname)
    plt.close()
    print(fname, end='')

##### 6.4.4.2. using my-tex.mplstyle

Python matplotlib figure using matplotlib `my-tex`. The style `my-tex` renders with LaTeX and uses the kpfonts.

    import math as m
    import matplotlib as mpl

    n = 30
    t = [i/n*m.pi for i in range(n+1)]

    fig, ax = plt.subplots()
    [ax.plot(t, [m.sin(i+j/12*m.pi) for i in t], color=f'C{j}', label=f'$C_{j}$') for j in range(10)]
    ax.legend()
    ax.set_title(r'Functions: $\sin(x + \pi \, i/12)$')
    ax.set_xlabel(r'$x ~ \times \pi$')
    ax.set_ylabel('$y$')
    ax.set_xticks([0, m.pi/4, m.pi/2, m.pi*3/4, m.pi])
    ax.set_xticklabels([0.00, 0.25, 0.50, 0.75, 1.00])
    ax.xaxis.set_minor_locator(mpl.ticker.AutoMinorLocator(3))
    ax.grid()
    ax.grid(which='minor', linestyle=':')

    fig.savefig(fname)
    plt.close()
    print(fname, end='')

#### 6.4.5. dot graphviz

### 6.5. Example / Verbatim

      verbatime example

or using `:` (start the example lines with a colon followed by a space.)

    a single line example
    can be indented

### 6.6. Source

      <body>

    string = 'hello' + ', world' + !*3  # comment
    print(string)

## 7. Math

### 7.1. Symbols and Functions

#### 7.1.1. Quotation, Fraction

    - \[\underbracket[1pt][0pt]{bla}_\text{blo}\]
    - \[\Dfrac{3}{7}\]
    - \[\slfrac{3}{7}\]
    - \[\sfrac{3}{7}\]
    - \[\nicefrac{3}{7}\]
    - \[\faktor{3}{7}\]
    - \[\Faktor{3}{7}\]

#### 7.1.2. Units

    - \(\unit{123.45}{\milli\meter}\)

#### 7.1.3. Fields

    - \(\field{X}\) : field
    - \(\fA{}\) : Affine field
    - \(\fC\) : Complex field
    - \(\fFp\) : Finite field
    - \(\fFq\) : Finite field
    - \(\fGa\) : Group scheme
    - \(\fK\) : Generic field (Körper)
    - \(\fN\) : Natural numbers
    - \(\fPj\) : Projective field
    - \(\fR\) : Real numbers
    - \(\fQ\) : Rational numbers
    - \(\fI\) : Irrational numbers
    - \(\fZ\) : Integers
    - \(\Def\) : Domain of a function D (Definitionsbereich)
    - \(\LM\) : Solution set L (Lösungsmenge)

#### 7.1.4. Functions

    - \(\sins\) : Short sin
    - \(\coss\) : Short cos

#### 7.1.5. Operators

    - \(\norm{x}\) : ||x||
    - \(\abs{x}\) : |x|
    - \(\innerProd{x}{y}\) : <x,y>
    - \(\Bild U\) : Map of a function (mapping, transformation)
    - \(\rank U\) : Rank of a matrix
    - \(\tr U\) : Matrix trace
    - \(\dev U\) : Matrix deviation
    - \(\var U\) : Variance
    - \(\grad U\) : Gradiant
    - \(\divergence U\) : Divergence div
    - \(\rot U\) : Rotation
    - \(\diag U\) : Diagonal matrix
    - \(\adj\) : Adjoint operator H
    - \(\adjugate U\) : Classical adjoint adj (adjugate)
    - \(()^\T\) : Transpose operator

#### 7.1.6. Others

    - \(\corresponds\) : equal sign with a hat
    - \(\dt{u}\) : dot above symbol (time derivative)
    - \(\ddt{u}\) : two dots above symbol (time derivative)
    - \(\Eval{a}{b}{c}\) : evaluation limits a|_b^c
    - \(\fdg\) : 'für die gilt' | (vertical bar)
    - \(\E\) : E
    - \(\qed\) : Q.E.D. quod erat demonstrandum "what was to be shown" -> "which was to be demonstrated"
    - \(\euler\) : Euler e
    - \(\deg\) : Degree °
    - \(\degC\) : °C
    - \(\TF\) : sign for transfomed values: low tilde
    - \(\dif\) : d

#### 7.1.7. Tensor

    - \(\tensor{U}\) : general bold, no further decoration
    - \(\tensorI{U}\) : underline
    - \(\tensorII{U}\) : two underlines
    - \(\tensorIII{U}\) : tilde 3 below symbol
    - \(\tensorIV{U}\) : tilde 4 below symbol
    - \(\tensori{U}\) : harpoon right
    - \(\tensorii{U}\) : harpoon right and left
    - \(\tensoriii{U}\) : arrow right and harpoon left
    - \(\tensoriv{U}\) : arrow right and left

### 7.2. Equation

named equation:

\begin{equation} \label{org9245c59} e^x = 4 \end{equation}

And refer to Eq. eq-in-name in document.

### 7.3. Matrix

Create math matrix objects with org tables

a | b
c | d

1 | 2
3 | 4

## 8. Glossary and Acronym and References

### 8.1. Glossary

See command `org-ref-glossary-gls-commands` and use `org-ref-insert-glossary-link` to insert a link with completion (`C-c C-l`).

Use a glossary entry using

- only link location tree or shrub
- link location and description shrub, the description is only visible in Org
- not recommended latex command \gls{tree}

Table 7: Glossary types
`gls` | The term associated with the label
`glspl` | The plural term
`Gls` | The capitalized term
`Glspl` | The plural capitalized term
`glssymbol` | The symbol defined (only with latex definition)
`Glssymbol` | The capitalized symbol defined (only with latex definition)
`glsdesc` | The description associated with the label
`Glsdesc` | The capitalized description associated with the label

### 8.2. Acronym

See command `org-ref-acronym-types` and use `org-ref-insert-acronym-link` to insert a link with completion (`C-c C-l`).

Use a acronyms entry using

- only link location BB
- link location and description BB QOS

Table 8: Acronym types
`acrshort` | The acronym for label
`acrshortpl` | The acronym for label in plural
`Acrshort` | Capitalized acronym
`Acrshortpl` | Plural capitalized acronym
`ACRshort` | ALL-CAPS acronym
`ACRshortpl` | ALL-CAPS plural acronym
`acrlong` | The label definition
`acrlongpl` | The plural definition
`Acrlong` | Capitalized definition
`Acrlongpl` | Plural capitalized definition
`ACRlong` | ALL-CAPS definition
`ACRlongpl` | plural ALL-CAPS definition
`acrfull` | Both the acronym and its definition
`acrfullpl` | Both the acronym and its definition in plural
`Acrfull` | Capitalized both the acronym and its definition
`Acrfullpl` | Capitalized both the acronym and its definition in plural
`ACRfull` | Both the acronym and its definition in ALL-CAPS
`ACRfullpl` | Both the acronym and its definition in plurall ALL-CAPS

### 8.3. References

check regarding the style defined in the preamble

    biber --validate-datamodel <texfilebasename>

this only checks the bib with default style

    biber --tool --validate-datamodel <filename>.bib

Insert cite entry with (`C-c C-l`).

Table 9: `org-ref-biblatex-types`
Cite | basic citation with capitalization
parencite | similar to cite with parentheses
Parencite | similar to cite with parentheses and capitalization
footcite | Put the citation in a footnote
footcitetext | Put the citation in a footnote using `\footnotetext`
textcite | print the authors or editors as a subject of the sentence
Textcite | print the authors or editors as a subject of the sentence with capitalization
smartcite | like parencite in a footnote, and footcite in the body
Smartcite | like parencite in a footnote, and footcite in the body with capitalization
cite | “similar to cite, but prints the year or title
parencite | “similar to parencite, but prints the year or title
supercite | superscripted numeric citation (only in numberic styles)
autocite | handles some punctuation nuances
Autocite | handles some punctuation nuances with punctuation
autocite | “same as autocite but * is passed to the backend
Autocite | “same as Autocite but * is passed to the backend
citetitle | the shorttitle or title field
citetitle | “the full title
citeyear | the year field
citeyear | “the year field and extradate information if available
citedate | the full date or year
citedate | “the full date or year, including extradate information if available
citeurl | the url field
fullcite | create a full citation similar to what is in the bibliography
footfullcite | create a full citation as a footnote
notecite | print prenote and postnote, but no citation
Notecite | print prenote and postnote, but no citation with capitalization
pnotecite | similar to notecite with parentheses
Pnotecite | similar to Notecite with parentheses
fnotecite | similar to notecite in a footnote

Table 10: `org-ref-biblatex-multitypes`
cites | multicite version of cite
Cites | multicite version of Cite
parencites | multicite version of parencite
Parencites | multicite version of Parencite
footcites | multicite version of footcite
footcitetexts | multicite version of footcitetext
smartcites | multicite version of smartcite
Smartcites | multicite version of Smartcite
textcites | multicite version of textcite
Textcites | multicite version of Textcite
supercites | multicite version of supercite
autocites | multicite version of autocite
Autocites | multicite version of Autocite

Example: See reference [manual] (will be [1]) or [article,book] (will be [2,3]) and [article,book,manual] (will be [1-3]).

## 9. LaTeX

Current setup uses the lualatex compiler.

packages

- general
  - fontenc
  - hyperref
  - kpfonts
  - luainputenc
  - xurl
- text and glyphs
  - eurosym
  - menukeys
  - xcolor
- math
  - faktor
  - madthds
  - mathtools
  - MnSymbol
  - nicefrac
  - SIunits
  - xfrac
- lists
  - enumitem
- tables, figures and listings
  - float
  - caption
- tables
  - booktabs
  - longtable
  - numprint
  - array
- figures
  - svg
  - tikz
  - gnuplot-lua-tikz
  - pgfplots
- listings
  - listingsutf8
- glossaries
- pdf
  - pdfpages
  - pdflscape

## 10. Examples

### 10.1. Org table to data file

0 | 1 | 1
1 | 2 | 4
2 | 3 | 5
3 | 4 | 9

    with open("data.dat", "w") as f:
      f.write("\n".join([" ".join(list(map(str, i))) for i in data]))

### 10.2. Data file to Org table

    with open("data.dat", "r") as f:
      data = f.read()
    return data

0 | 1 | 1
1 | 2 | 4
2 | 3 | 5
3 | 4 | 9

Author: hasp138dw

Created: 2024-03-05 Tue 11:11