Files
emacs/README.md
2022-01-11 02:08:02 +01:00

361 lines
12 KiB
Markdown

# Table of Contents
1. [Installation](#installation)
2. [Packages](#packages)
1. [Org](#org)
1. [Template for an article export (HTML and LaTeX)](#export-article)
2. [Template for a letter export (LaTex)](#export-letter)
2. [Multiple cursors](#multiple-cursors)
3. [Other packages](#other-packages)
3. [Information](#information)
4. [Errors](#errors)
5. [TODOs](#todos)
This is an ongoing evolution of Emacs configuration files, inspired by
a bunch of online resources.
<a id="installation"></a>
# Installation
Run one of the following install script commands (using curl, wget or fetch).
sh -c "$(curl -fsSL http://gitea.weseng.de/daniel/emacs/raw/master/scripts/install.sh)"
sh -c "$(wget -O- http://gitea.weseng.de/daniel/emacs/raw/master/scripts/install.sh)"
sh -c "$(fetch -o - http://gitea.weseng.de/daniel/emacs/raw/master/scripts/install.sh)"
Installation path is `~/.config/emacs`. See details and other
installed linux packages as requirements inside `sripts/install.sh`.
<a id="packages"></a>
# Packages
General key bindings and functions
- `M->` (`end-of-buffer`)
- `M-<` (`begin-of-buffer`)
- `C-x b` (`counsel-switch-buffer`)
- `C-x |` (`toggle-window-split`) toggle horizontal/vertical of 2 window split
- `C-x h` (`mark-whole-buffer`)
- `C-x TAB` (`indent-rigidly`) indent lines in the region
- `C-r` (`query-replace-regexp`) replace text
- `M-<up>` (`move-line-up`)
- `M-<down>` (`move-line-down`)
- `C-x RET f` (`set-buffer-file-coding-system`) e.g. set to =utf-8
- (`decode-coding-region`) e.g. decode to `utf-8` (郭富城Aaron Kwok)
- (`diff-buffer-with-file`) show a diff between buffer (current state) and file (saved state)
- `C-h f` (`helpful-callable`)
- `C-h v` (`helpful-variable`)
- `mouse-6` scroll right
- `mouse-7` scroll left
- `mouse-8` (`previous-buffer`)
- `mouse-9` (`next-buffer`)
Spelling (flyspell ispell) bindings and functions
- (`flyspell-mode`) toggle spelling
- (`flyspell-buffer`)
- `C-;` (`flyspell-correct-wrapper`)
<a id="org"></a>
## Org
Org key bindings and functions
- `C-c |` (`org-table-create-or-convert-from-region`) convert seperator 1. TAB, 2. comma, 3. space
- `C-u C-c |` (`org-table-create-or-convert-from-region`) convert using comma (CSV) seperator
- `C-u C-u C-c |` (`org-table-create-or-convert-from-region`) convert using TAB
- `C-u <integer> C-c |` (`org-table-create-or-convert-from-region`) convert using N spaces
- `C-u REGEX C-c |` (`org-table-create-or-convert-from-region`) convert using regex to match seperator
- `C-c C-x \` (`org-toggle-pretty-entries`) e.g. displays `\pm` as ±
Org table
- `S-<right>` (`org-shiftright`) move cell right
- `S-<left>` (`org-shiftleft`) move cell left
- `S-<up>` (`org-shiftup`) move cell up
- `S-<down>` (`org-shiftdown`) move cell down
- (`org-table-blank-field`) clear cell
Org src block
- `C-c C-v t` (`org-babel-tangle`) create a file with the content of the block; use in `header:` `:tangle filename`
Org export
- `<f5>` (`my-org-export-html`)
- `<f6>` (`my-org-export-pdf`)
- `C-<f5>` (`my-org-export-html-async`)
- `C-<f6>` (`my-org-export-pdf-async`)
- `C-c C-e h h` (`org-html-export-to-html`)
- `C-c C-e T t` (`org-tufte-export-to-file`) HTML export with tufte syling
- `C-c C-e h a` (`my-org-article-html-export-to-html`) HTML-article file, see also Article export
- `C-c C-e l l` (`org-latex-export-to-pdf`)
- `C-c C-e l a` (`my-org-article-latex-export-to-pdf`) PDF-article file, see also Article export
- `C-c C-e l t` (`my-org-article-latex-export-to-letter`) PDF-letter file
**Important**
- For **Gnuplot** source blocks: Do not use `%` inside Gnuplot source
block but `\%` or in format command `\%%`
- % starts a comment in LaTeX and therefore stops further
interpretations like a closing bracket `}` etc.
- Gnuplot graphics are imported as .tex (text, axis, legend) and
.eps (figure) files.
- `\%` `\%%` can also be used for HTML SVG export
<a id="export-article"></a>
### Template for an article export (HTML and LaTeX)
Template for an article
# -*- ispell-local-dictionary: "english" -*-
#+LANGUAGE: en
#+TITLE: My article
#+SUBTITLE:
#+AUTHOR: Daniel
#+EMAIL: name@example.org
#+DATE: May 12, 2021
#+KEYWORDS:
#+DESCRIPTION:
* Abstract :ignore:noexport:
#+BEGIN_ABSTRACT
*Abstract*\\
This is the abstract of the article.
#+END_ABSTRACT
* List of contents & figures & tables & listings :ignore:
:PROPERTIES:
:VISIBILITY: folded
:CLEARPAGE: t
:END:
#+LATEX: \begin{spacing}{1.25}\begingroup\renewcommand*{\addvspace}[1]{}
#+LATEX: \clearpage
# #+LATEX: \tableofcontents
#+TOC: headlines
#+LATEX: \clearpage
#+LATEX: \listoffigures
# #+LATEX: \phantomsection\addcontentsline{toc}{section}{Abbildungsverzeichnis}\listoffigures
# #+TOC: figures is not implemented yet in the HTML backend. And not working with LaTeX, see listing
# #+TOC: figures
# #+LATEX: \listoftables
# #+LATEX: \phantomsection\addcontentsline{toc}{section}{Tabellenverzeichnis}
#+TOC: tables
# for latex listing is figures
# #+LATEX: \phantomsection\addcontentsline{toc}{section}{Programmausdrucke}
#+TOC: listings
#+LATEX: \endgroup\end{spacing}
* List of Symbols :ignore:
:PROPERTIES:
:CUSTOM_ID: list-of-symbols
:UNNUMBERED: t
:END:
#+LATEX: \pagenumbering{arabic}\setcounter{page}{1}
Examples for an article
# -*- ispell-local-dictionary: "german" -*-
#+LANGUAGE: de
* Header not listed in toc :ignore:
bla bla bla
* Section not exported :noexport:
bla bla bla, this will not be exported
* Header listed unnumbered
:PROPERTIES:
:UNNUMBERED: t
:END:
bla bla bla
* Section will start on a clear page (LaTeX)
:PROPERTIES:
:CLEARPAGE: t
:END:
bla bla bla
# For PDF/LaTeX export we do not want to use org-ref ox-bibtex, as its output is
# already defined in the preamble. The output for 'bibliography:references.bib'
# is something like '\bibliography{references}'
# reftex version
# bibliography:references.bib
# ox-bibtex version
# #+BIBLIOGRAPHY: references mbunsrtdin option:-a option:-unicode option:-nobibsource limit:t
* References-en :ignore:
:PROPERTIES:
:VISIBILITY: folded
:END:
#+LATEX: \newpage\thispagestyle{plain}
#+LATEX: \sloppy\printbibliography
#+LATEX: \begin{comment}
#+BIBLIOGRAPHY: references acmu option:-a option:-unicode option:-nobibsource limit:t
#+LATEX: \end{comment}
* References-de :ignore:
:PROPERTIES:
:VISIBILITY: folded
:END:
#+LATEX: \newpage\thispagestyle{plain}
#+LATEX: \sloppy\printbibliography
#+LATEX: \begin{comment}
#+BIBLIOGRAPHY: references mbunsrtdin option:-a option:-unicode option:-nobibsource limit:t
#+LATEX: \end{comment}
* References-rott :ignore:
:PROPERTIES:
:VISIBILITY: folded
:END:
#+LATEX: \newpage\thispagestyle{plain}
# all references from the bib
#+LATEX: \nocite{*}
#+BIBLIOGRAPHY: references rottbibsty option:-a option:-unicode option:-nobibsource
<a id="export-letter"></a>
### Template for a letter export (LaTex)
# -*- ispell-local-dictionary: "german" -*-
:FORM:
#+LANGUAGE: de
#+FROM_ASSOCIATION: XYZ AG
#+FROM_NAME: Max Mustermann
#+FROM_STREET: Regenbogenstrasse 7
#+FROM_PLACE: 12345 Hamburg
#+FROM_PHONE: 0123456789
#+FROM_URL: www.beispiel.de
#+FROM_EMAIL: mail@example.de
#+TO_ASSOCIATION: Firma AG
#+TO_NAME: Karl Marx
#+TO_STREET: Firmstrasse 13
#+TO_PLACE: Berlin
#+PLACE: Hamburg
#+DATE: \today
# #+DATE: 3. Januar 2020
:END:
#+SUBJECT: Abrechnung
#+SUBJECT: 2020
#+SUBJECT_EXTRA: Kontonummer
#+SUBJECT_EXTRA: März
#+OPENING: Sehr geehte Frau \toname,
hiermit sende ich Ihnen die angeforderten Unterlagen zu und ...
#+CLOSING: MfG,
#+ATTACHMENT: analage 1
#+ATTACHMENT: anlage 2
#+ATTACHMENT: analage 3
#+ATTACHMENT: analage 6
<a id="multiple-cursors"></a>
## Multiple cursors
Multiple cursors key bindings and functions
- `M-m s m a` (`mc/mark-all-dwim`) try to mark all at point
- `C-v` jump to next cursor
- `M-v` jump to previous cursor
- `C-'` hide/unhide lines without a cursor
<a id="other-packages"></a>
## Other packages
- **rainbow-mode.el:** <https://elpa.gnu.org/packages/rainbow-mode.html>
rainbow-mode is a minor mode for Emacs which displays strings representing
colors with the color they represent as background.
<a id="information"></a>
# Information
Interlock symlinks and auto-save files.
Be aware that symbolic links of the form “.#\*” are not auto-save files
but interlocks to prevent the simultaneous editing of the same
file. See [Interlocking](https://www.emacswiki.org/info-ref?find=Interlocking) in the [EmacsManual](https://www.emacswiki.org/emacs/EmacsManual) for details.
<a id="errors"></a>
# Errors
- failed execution of bibtex2html
- see bib2htmlxxxxxx.blg for errors, e.g.
- I couldn&rsquo;t open style file acmu.bst
- copy/merge the texmf directory into your home directory.
- when using this in an Org mode buffer:
`#+HEADER: :fit yes :imagemagick yes :iminoptions -density 300`
- can leads to:
- ``convert: attempt to perform an operation not allowed by the security policy `gs' @ error/delegate.c/ExternalDelegateCommand/378.``
- ``convert: no images defined `DESY_logo_tikz.png' @ error/convert.c/ConvertImageCommand/3282.``
- edit `/etc/ImageMagick-7/policy.xml` and comment out
- `<policy domain="delegate" rights="none" pattern="gs" />`
<a id="todos"></a>
# TODOs
- Org / global configuration
- Page formatting
- Modify HTML styling
- Printed page layout, white styled figures
- Custom export function for HTML and $\LaTeX$, with;
- `Shift` - `<f5>`, `Shift` - `<f6>` with open file
- delete temp. generated export files
- Figures
- Gnuplot
- plot transposed files/tables
- preamble in function and call this function for every gnuplot block either
manually or automatically with a hook?!
- Tables
- Wrap Table in div element. For smartphone scrolling.
- Table of contents
- $\LaTeX$; currently headers with no-number property means not included in TOC
- HTML; currently generated list, like lot and lol, are not included in toc
but own headers without numbers are.
- Equation cancel/strike out with color line
- hcancel[color]{}
- Example: `\(\hcancel[red]{f_{X_2}(x_2)}}\)`
- Definition:
- Preamle: `#+LATEX_HEADER: \usepackage{cancel}`
`#+LATEX_HEADER: \newcommand\hcancel[2][black]{\setbox0=\hbox{$#2$}%`
`#+LATEX_HEADER: \rlap{\raisebox{.45\ht0}{\textcolor{#1}{\rule{\wd0}{1pt}}}}#2}`
- `hcancel: [\"{\\\\setbox0=\\\\hbox{$#2$}\\\\rlap{\\\\raisebox{.45\\\\ht0}{\\\\textcolor{#1}{\\\\rule{\\\\wd0}{1pt}}}}#2}\",2]`
MathJax.Ajax.config.path[\"Contrib\"] = \"https://cdn.mathjax.org/mathjax/contrib\";
MathJax.Hub.Register.StartupHook(\"TeX Jax Ready\",function () {
MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions.macros,{
cancel: [\"Extension\",\"cancel\"],
bcancel: [\"Extension\",\"cancel\"],
xcancel: [\"Extension\",\"cancel\"],
cancelto: [\"Extension\",\"cancel\"]
});
});