Files
emacs/README.md

13 KiB
Raw Blame History

Table of Contents

  1. Requirements
  2. Installation
  3. Packages
    1. Org
    2. Multiple cursors
    3. Other packages
  4. Information
  5. Errors
  6. TODOs

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

Requirements

external packages:

# fonts (opensans in latex article preamble)
yay -S ttf-inconsolata ttf-opensans
# spelling flyspell-buffer
yay -S aspell aspell-de aspell-en \
hunspell hunspell-de hunspell-en_US \
languagetool
# org-mode latex-mode ox-latex
yay -S biber bibtex2html texlive-bibtexextra texlive-core \
texlive-fontsextra texlive-formatsextra texlive-langgreek \
texlive-langjapanese texlive-latexextra texlive-pgf-pie \
texlive-pgfopts texlive-pictures texlive-pstricks \
texlive-publishers texlive-science texlive-slashbox
# ledger-mode
yay -S ledger
# python-mode
yay -S python-pylint
# emacs-application-famework EAF
yay -S --needed git nodejs aria2 libreoffice wmctrl xdotool jre-openjdk \
python-pyqt5 python-pyqt5-sip python-pyqtwebengine python-qrcode \
python-feedparser python-dbus python-pyinotify python-markdown \
python-grip filebrowser-bin python-epc
# other
yay -S ditaa plantuml r

Optional package for EAF see in Installation.

Installation

Install into ~/.config/emacs (must be empty)

git clone http://gogs.weseng.de/daniel/emacs.git ~/.config/emacs

or copy all files of this directory into your ~/.config/emacs directory

  • for Emacs version < 27 create symbolic link to the init file
  • ln -s ~/.config/emacs/init ~/.emacs (or ~/.emacs.el, ~/.emacs.d/init.el)

LaTeX sytling files: copy/merge the texmf directory into your home directory ~/texmf

optional for EAF

yay --editmenu -S mupdf python-pymupdf

edit PGKBUILD file for python-pymupdf to:

prepare() {
  cd "${_name}-${pkgver}"
  patch --forward --strip=1 --input="${HOME}/.config/emacs/scripts/fix-pymupdf-library-linking-for-arcolinux.patch"
}

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

Links

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