Files
emacs/README.md

17 KiB
Raw Blame History

Table of Contents

  1. Installation
  2. Packages
    1. Org
      1. HTML export
      2. LaTeX export
      3. Article export (HTML and LaTeX)
      4. Letter export (LaTex)
    2. Multiple cursors
    3. Other packages
  3. Information
  4. Errors
  5. TODOs

This is an ongoing evolution of Emacs configuration files, inspired by a bunch of online resources.

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.

Packages

Table 1: General key bindings and functions
M-> end-of-buffer  
M-< beginning-of-buffer  
C-x h mark-whole-buffer mark the whole buffer
C-x TAB indent-rigidly indent selected region
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 and file
C-h v counsel-describe-variable help text of variable
C-h f counsel-describe-funtion help text of function
C-r query-replace-regexp replace text. (former isearch-backward)
C-x C-b ibuffer list buffers (former list-buffers)
C-x | toggle-window-split toggle horizontal/vertical 2 window split
M-up move-line-up move current line up
M-down move-line-down move current line down
mouse-6   scroll right
mouse-7   scroll left
mouse-8 previous-buffer  
mouse-9 next-buffer  

Org

Table 2: 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 N 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 a single cell right
S-left org-shiftleft move a single cell left
C-c SPC 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   in org export to html
f6   in org export to LaTeX

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

HTML export

  • C-c C-e h h (org-html-export-to-html) to export Org document as HTML file, i.e. no spectial settings.
  • C-c C-e T t (org-tufte-export-to-file) to export Org document as Tufte-HTML file, i.e. with tufte syling.
  • C-c C-e h a (my-org-article-html-export-to-html) to export Org document as HTML-article file, see also Article export

LaTeX export

  • C-c C-e l l (org-latex-export-to-pdf) to export Org document as PDF file, i.e. no spectial settings.
  • C-c C-e l a (my-org-article-latex-export-to-pdf) to export Org document as PDF-article file, see also Article export.
  • C-c C-e l t (my-org-article-latex-export-to-letter) to export Org document as PDF-letter file.

Links

Article export (HTML and LaTeX)

  • C-c C-e h a (my-org-article-html-export-to-html) to export Org document as HTML-article file.
  • C-c C-e l a (my-org-article-latex-export-to-pdf) to export Org document as PDF-article file.

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

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

Multiple cursors

Table 3: 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

Other packages

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 in the EmacsManual for details.

Errors

  • failed execution of bibtex2html
    • see bib2htmlxxxxxx.blg for errors, e.g.
      • I couldnt 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" />

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\"]
            });
        });