Org Mode Notes
Table of Contents
Plotting Data
- You need gnuplotand thegnuplotemacs package installed
- To plot the below example table from the manual use C-c " g
- This will open gnuplot and bring up an interactive graph
| Sede | Max cites | H-index | 
|---|---|---|
| Chile | 257.72 | 21.39 | 
| Leeds | 165.77 | 19.68 | 
| Sao Paolo | 71.00 | 11.50 | 
| Stockholm | 134.19 | 14.33 | 
| Morelia | 257.56 | 17.67 | 
Using Babel to Export Plots
- Worg: Org-babel-gnuplot
- Before this will work you need to enable gnuplotin theorg-babel-load-languagesvariable
| x | y1 | y2 | 
|---|---|---|
| 0 | 3 | 6 | 
| 1 | 4 | 7 | 
| 2 | 5 | 8 | 
| 3 | 3 | 6 | 
| 4 | 4 | 7 | 
| 5 | 5 | 8 | 
set title "Example Org Babel Plot"
set xlabel "X Axis"
set ylabel "Y Axis"
plot data using 1:2 with lp lw 2 title 'Series 1', \
     data using 1:3 with lp lw 2 title 'Series 2'
 
Editing the Structure
- C-c C->can be used to demote (add more stars) to an entire subtree
- Similarly C-c C-<can be use to promote an entire subtree
Publishing
- This section walks through how this org repository is published into an html site
Appearance
Pretty Entities
- You can toggle pretty entities with org-toggle-pretty-entites
- This will render ordinals and exponents using superscripts
- If enabled these should have superscripts, 1st and xy
- This is an example of superscript syntax, x^{3}
 
Graphviz
- Worg: Dot Source Code Blocks in Org Mode
- Grapviz DOT Language Documentation
- Rene Nyffenegger: Graphviz Examples
- Graphviz is a tool that compiles graph descriptions in the dotlanguage into images
- Org mode ships with dotlanguage support, it just needs to be enabled withorg-babel-load-languages
- For an emacs major mode that supports graphviz use graphviz-dot-mode
- Graphviz has a new layout engines: dot, neato, fdp etc.
- To set the layout engine use :cmd <LAYOUT_ENGINE>in the header args of a graphviz, for example:cmd neatowill use the neato layout engine
- The differences between the layouts is documented here.
digraph {
    a->b;
    b->c;
    c->b;
    c->a;
}
 
LaTex
- To view the Embedded LaTex section of the manual execute:
(info "(org) Embedded LaTex")
- Worg: LaTex Source Code Blocks in Org Mode
- AucTeX is an Emacs major mode for editing LaTex
- You will need a texlive distribution (like texlive-moston Arch Linux) installed on your system to access the LaTex programs
- In order to export to SVG you need to have inkscapeinstalled on your computer
- Ensure that LaTex is added to the org-babel-load-languages
Hello World
(a + b)^2 = a^2 +2ab + b^2
TikZ
PlantUML
Setup
- PlantUML: Integration with Emacs
- Install the plantuml-modepackage from MELPA- With straight.el(straight-use-package 'plantuml-mode)
 
- With 
- Download the latest PlantUML jar file from the Github releases page
- Save it to a known location, for example ~/jars/plantuml-1.2022.1.jar
- Set the emacs variable org-plantuml-jar-pathto the location of the jar file
(setq org-plantuml-jar-path (expand-file-name "~/jars/plantuml-1.2022.1.jar"))
- Enable plantumlin theorg-babel-load-languages
Example
- The example diagram was borrowed from: Github mattjhayes: PlantUML Examples
@startuml
skinparam shadowing false
title Class Diagram Example
skinparam class {
    BackgroundColor #94de5e
    ArrowColor #darkblue
    BorderColor black
}
class Vehicle {
	speed
    direction
	make
    model
	run()
}
class Car {
    driver_name
    road
	run()
}
class Plane {
    pilot_name
    altitude
	run()
}
class Ship {
    captain_name
    ocean
	run()
}
Vehicle <|-- Car
Vehicle <|-- Plane : inherits
Vehicle <|-- Ship
legend
    <size:18>Key</size>
    |<#94de5e> Class |
endlegend
@enduml
 
Database Example
@startuml
!define primary_key(x) <b><color:#b8861b><&key></color> x</b>
!define foreign_key(x) <color:#aaaaaa><&key></color> x
!define column(x) <color:#efefef><&media-record></color> x
!define table(x) entity x << (T, white) >>
left to right direction
skinparam roundcorner 5
skinparam linetype ortho
skinparam shadowing false
skinparam handwritten false
skinparam class {
    BackgroundColor white
    ArrowColor #2688d4
    BorderColor #2688d4
}
table( user ) {
  primary_key( id ): UUID
  column( isActive ): BOOLEAN
  foreign_key( cityId ): INTEGER <<FK>>
}
table( city ) {
  primary_key( id ): UUID
  column( name ): CHARACTER VARYING
  column( country ): CHARACTER VARYING
  column( postCode ): INTEGER
}
user }|--|| city
@enduml
