- (add-to-list 'org-structure-template-alist
- '("E" "#+BEGIN_SRC emacs-lisp :tangle yes :results silent\n?\n#+END_SRC"))
- (add-to-list 'org-structure-template-alist
- '("S" "#+BEGIN_SRC sh :results output replace\n?\n#+END_SRC"))
- (add-to-list 'org-structure-template-alist
- '("p" "#+BEGIN_SRC plantuml :file uml.png \n?\n#+END_SRC"))
- (add-to-list 'org-structure-template-alist
- '("P" "#+BEGIN_SRC perl \n?\n#+END_SRC"))
- (add-to-list 'org-structure-template-alist
- '("f" "#+BEGIN_SRC fundamental :tangle ?\n\n#+END_SRC"))
+ ;; ‘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_LaTeX ... #+END_LaTeX’
+ ;; ‘L’ ‘#+LaTeX:’
+ ;; ‘h’ ‘#+BEGIN_HTML ... #+END_HTML’
+ ;; ‘H’ ‘#+HTML:’
+ ;; ‘a’ ‘#+BEGIN_ASCII ... #+END_ASCII’
+ ;; ‘A’ ‘#+ASCII:’
+ ;; ‘i’ ‘#+INDEX:’ line
+ ;; ‘I’ ‘#+INCLUDE:’ line
+
+
+ (add-to-list 'org-structure-template-alist
+ '("E" "#+BEGIN_SRC emacs-lisp :tangle yes :results silent\n?\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("R" "#+BEGIN_SRC racket :tangle no :results output replace\n?\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("S" "#+BEGIN_SRC sh :results output replace\n?\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("p" "#+BEGIN_SRC plantuml :file uml.png \n?\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("P" "#+BEGIN_SRC perl \n?\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("f" "#+BEGIN_SRC fundamental :tangle ?\n\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("C" "#+BEGIN_SRC c :tangle ?\n\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("m" "\\begin{equation}\n?\n\\end{equation}"))
+ (add-to-list 'org-structure-template-alist
+ '("b" "#+STARTUP: showall
+ ,#+STARTUP: inlineimages
+ ,#+OPTIONS: toc:nil\n"))
+ (add-to-list 'org-structure-template-alist
+ '("d" "#+BEGIN_SRC ditaa :file ? :cmdline -r -s 0.8 :cache yes \n\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("u" "#+BEGIN_SRC plantuml :file ? \n\n#+END_SRC"))
+
+#+END_SRC
+
+** Org theme
+*** variable-pitch-mode and fixed-pitch-mode
+[[https://yoo2080.wordpress.com/2013/05/30/monospace-font-in-tables-and-source-code-blocks-in-org-mode-proportional-font-in-other-parts/][monospace font in tables and source code blocks in org-mode, proportional font in other parts]]
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (set-face-attribute 'variable-pitch nil :font "Calibri" :height 160)
+ (set-face-attribute 'fixed-pitch nil :font "Source Code Pro" :height (face-attribute 'default :height))
+
+ (add-hook 'text-mode-hook 'variable-pitch-mode)
+
+ ;; Install Ubuntu Mono fonts and apply it in org-table to align Chinese fonts
+ (with-eval-after-load "org"
+ (mapc (lambda (face)
+ (set-face-attribute face nil :inherit 'fixed-pitch))
+ (list 'org-code 'org-block 'org-block-background))
+ (set-face-attribute 'org-table nil :family "Ubuntu Mono" :height 140)
+ ;; org-special-keyword inherited from font-lock-keywork originally; as org is changed to variable-pitch, it cause
+ ;; the font in special-keywords are not monospace
+ (set-face-attribute 'org-special-keyword nil :inherit '(font-lock-keyword-face fixed-pitch))
+ ;; same as above
+ (set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch))
+
+ ;; fix indent broken by variable-pitch-mode
+ ;; http://emacs.stackexchange.com/questions/26864/variable-pitch-face-breaking-indentation-in-org-mode
+ (require 'org-indent)
+ (set-face-attribute 'org-indent nil :inherit '(org-hide fixed-pitch)))
+#+END_SRC
+
+Also correct the face of =org-meta-line= in =org-table=
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (with-eval-after-load "org"
+ (set-face-attribute 'org-meta-line nil :font "Source Code Pro" :height 120 :slant 'italic :inherit 'font-lock-comment-face))