├── README.org ├── templates └── default.eld ├── .dir-locals.el ├── early-init.el ├── .gitignore ├── init.el ├── custom.el ├── straight └── versions │ └── default.el ├── org-config.org └── mytex-inputmethod.el /README.org: -------------------------------------------------------------------------------- 1 | Moved to https://codeberg.org/mrb/emacs-config 2 | -------------------------------------------------------------------------------- /templates/default.eld: -------------------------------------------------------------------------------- 1 | org-mode 2 | 3 | (src "#+begin_src " p n> r> n> "#+end_src" :post (org-edit-src-code)) 4 | (elsp "#+begin_src emacs-lisp" n> r> n "#+end_src" :post (org-edit-src-code)) 5 | -------------------------------------------------------------------------------- /.dir-locals.el: -------------------------------------------------------------------------------- 1 | ;;; Directory Local Variables 2 | ;;; For more information see (info "(emacs) Directory Variables") 3 | 4 | ((magit-status-mode . ((magit-todos-exclude-globs . ( 5 | "*.texi" 6 | "org-config.org"))))) 7 | -------------------------------------------------------------------------------- /early-init.el: -------------------------------------------------------------------------------- 1 | (setq package-enable-at-startup nil ; Disable package.el in favor of straight.el 2 | inhibit-startup-message t 3 | frame-resize-pixelwise t 4 | package-native-compile t) 5 | 6 | ;; Dont popup a warnings buffer for native-comp errors 7 | (setq native-comp-async-report-warnings-errors 'silent) 8 | 9 | (provide 'early-init) 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.aux 2 | *.elc 3 | *.el~ 4 | .tutor/ 5 | /.achievements 6 | /.cache/ 7 | /.cask/ 8 | /.litable-lists.el 9 | /.lsp-session-v1 10 | /.mc-lists.el 11 | /.org-id-locations 12 | /.org-id-locations.save 13 | /.persistent-scratch 14 | /_minted-mrb/ 15 | /bookmarks 16 | /eln-cache/ 17 | /elpa/ 18 | /elpa/archives/* 19 | /emms/ 20 | /gamify-stats 21 | /ido.last 22 | /image-dired/ 23 | /ircrooms.list 24 | /jabber-avatar-cache/ 25 | /licenses/* 26 | /ltximg/ 27 | /network-security.data 28 | /newsticker/* 29 | /nov-places 30 | /odoo-contacts.csv 31 | /org-caldav-backup.org 32 | /org-journal.cache 33 | /persist/ 34 | /places 35 | /recentf 36 | /secrets.el.gpg 37 | /smex-items 38 | /speed-type/ 39 | /straight/ 40 | /test.org 41 | /texfrag/ 42 | /transient/ 43 | /url/cache 44 | /url/cookies 45 | /var/ 46 | /var/pcache/gh/gh-gist-api/mrvdb 47 | /wl.el 48 | abbrev_defs 49 | ac-comphist.dat 50 | auto-save-list 51 | bbdb 52 | el-get 53 | emojis/ 54 | eshell 55 | forge-database.sqlite 56 | games 57 | hackernews/ 58 | magithub/ 59 | mastodon.plstore 60 | mrb.el 61 | mrb.html 62 | mrb.pdf 63 | mrb.tex 64 | notmuch-addresses 65 | org-gcal/ 66 | request 67 | session.* 68 | tramp 69 | tutorial/ 70 | -------------------------------------------------------------------------------- /init.el: -------------------------------------------------------------------------------- 1 | ;;;; Package --- Emacs initialisation of mrvdb 2 | ;;; Commentary: 3 | ;; Emacs initialisation starting point 4 | ;; 5 | ;; I want to have as little in here as possible. The configuration is 6 | ;; org-babel based. This means the bootstrap here is to load a proper 7 | ;; (part of) org-mode and be on our way. 8 | 9 | ;;; Code: 10 | 11 | (require 'cl) ; for remove-if 12 | 13 | ;; Set gc really large, during load, after that we are going to use gcmh 14 | ;; See: https://akrl.sdf.org/#orgc15a10d has the same as I had for years 15 | (setq gc-cons-threshold (* 16 1024 1024 1024)) 16 | 17 | ;; Assert native compilation is there 18 | (setq comp-deferred-compilation t) 19 | 20 | ;; HACK: Disable Org-mode that was shipped with Emacs and add one I control 21 | (setq load-path (remove-if (lambda (x) (string-match-p "org$" x)) load-path)) 22 | (add-to-list 'load-path "~/.emacs.d/straight/repos/org/lisp") 23 | 24 | ;; My org file is posted using writefreely, which uses local variables 25 | ;; we need them before the call to org-babel 26 | (add-to-list 'safe-local-variable-values '(writefreely-post-id . "wf83bq5jwz")) 27 | (add-to-list 'safe-local-variable-values '(writefreely-post-token . nil)) 28 | 29 | ;; config-file var gets used in mrb.el as well, not sure I like that 30 | (setq config-file (expand-file-name "mrb.org" user-emacs-directory)) 31 | 32 | ;; This produces mrb.el which is then loaded. It checks datetime before tangling. 33 | (org-babel-load-file config-file) 34 | 35 | ;; END init.el 36 | ;; Exception 1: 37 | ;; Apparently when disabled functions get enabled, Emacs puts them here 38 | ;; 39 | 40 | ;;; init.el ends here 41 | (put 'dired-find-alternate-file 'disabled nil) 42 | (put 'narrow-to-region 'disabled nil) 43 | (put 'downcase-region 'disabled nil) 44 | (put 'upcase-region 'disabled nil) 45 | (put 'list-timers 'disabled nil) 46 | -------------------------------------------------------------------------------- /custom.el: -------------------------------------------------------------------------------- 1 | ;;;; Custom file generated by emacs: best not to edit 2 | (custom-set-variables 3 | ;; custom-set-variables was added by Custom. 4 | ;; If you edit it by hand, you could mess it up, so be careful. 5 | ;; Your init file should contain only one such instance. 6 | ;; If there is more than one, they won't work right. 7 | '(ansi-color-names-vector 8 | ["#2e3440" "#88c0d0" "#bf616a" "#5e81ac" "#ebcb8b" "#a3be8c" "#ebcb8b" "#e5e9f0"]) 9 | '(autocrypt-accounts 10 | '(("marcel@hsdev.com" "BC19C9D32D968224572D74A84EF46170ABE2ACDE" none)) nil nil "Set by autocrypt.el") 11 | '(compilation-scroll-output t) 12 | '(custom-safe-themes t) 13 | '(epg-gpg-program "/home/mrb/.guix-profile/bin/gpg") 14 | '(explicit-shell-file-name "/bin/bash") 15 | '(font-lock-maximum-size nil) 16 | '(gud-gdb-command-name "gdb --annotate=1") 17 | '(guess-language-languages '(en de nl)) 18 | '(ispell-use-framepop-p t) 19 | '(org-M-RET-may-split-line '((default . t) (headline))) 20 | '(org-agenda-custom-commands 21 | '(("w" "Waiting For list" tags-todo "-inactive/WAITING" 22 | ((org-agenda-overriding-header "WAITING FOR-list") (org-agenda-dim-blocked-tasks t) 23 | (org-agenda-group-by-property "Responsible"))) 24 | ("b" "Buying list" 25 | ((tags-todo "-inactive+buy/-BUY" ((org-agenda-overriding-header "Buying list (tagged)"))) 26 | (tags-todo "-inactive/BUY" ((org-agenda-overriding-header "Buying list (keyword)")))) 27 | nil) 28 | ("p" "Active project list" tags-todo 29 | "-ignore-inactive+LEVEL>1-TODO=\"DONE\"-TODO=\"CANCELLED\"-TODO=\"INFO\"" 30 | ((org-agenda-overriding-header "Active project list") 31 | (org-agenda-skip-function 'mrb/skip-non-projects) (org-agenda-dim-blocked-tasks nil) 32 | (org-agenda-group-by-property "Group") (org-agenda-sorting-strategy '(alpha-up)))) 33 | ("A" "Active task list" tags-todo "+SCHEDULED=\"\"-inactive/TODO" 34 | ((org-agenda-group-by-property "Group") (org-agenda-dim-blocked-tasks 'invisible))) 35 | ("r" "To Review" 36 | ((tags-todo "SCHEDULED=\"\"+DEADLINE=\"\"-{.}/TODO" 37 | ((org-agenda-overriding-header "Untagged items"))) 38 | (tags-todo "-inactive+SCHEDULED=\"\"+DEADLINE=\"\"+TODO=\"TODO\"+{.}" 39 | ((org-agenda-overriding-header "Unscheduled active items")))) 40 | ((org-agenda-dim-blocked-tasks 'invisible))) 41 | ("c" "Scheduled overview" tags-todo "SCHEDULED<>\"\"|DEADLINE<>\"\"/TODO" 42 | ((org-agenda-overriding-header "SCHEDULED") (org-agenda-view-columns-initially t) 43 | (org-agenda-overriding-columns-format "%65ITEM %25Responsible %SCHEDULED %DEADLINE %TAGS") 44 | (org-agenda-dim-blocked-tasks t))) 45 | ("l" "Blocked projects and tasks" 46 | ((tags-todo "+BLOCKED=\"t\"/PROJ" 47 | ((org-agenda-overriding-header "Blocked projects") 48 | (org-agenda-dim-blocked-tasks t))) 49 | (tags-todo "+BLOCKED=\"t\"/TODO" 50 | ((org-agenda-overriding-header "Blocked tasks") (org-agenda-dim-blocked-tasks t) 51 | (org-agenda-group-by-property "Group")))) 52 | nil nil) 53 | ("n" "Next Action List [hides blocked/inactive/waiting/INBOX-ed]" tags-todo 54 | "+SCHEDULED=\"\"+DEADLINE=\"\"-BLOCKED=\"t\"-inactive-habit-ARCHIVE/-WAITING-INFO-HOWTO" 55 | ((org-agenda-overriding-header "Next Action List") (org-agenda-dim-blocked-tasks 'invisible) 56 | (org-agenda-group-by-property "CREATED"))) 57 | ("D" "Items ready for archiving" todo "DONE" 58 | ((org-agenda-overriding-header "Items ready for archiving") 59 | (org-agenda-group-by-property "CREATED"))) 60 | ("g" "AGENDA" 61 | ((agenda "" 62 | ((org-agenda-filter-preset '("-inactive")) (org-agenda-span 'day) 63 | (org-agenda-overriding-header "Day agenda"))) 64 | (tags-todo "carryover/-INFO-WAITING" 65 | ((org-agenda-overriding-header "Carry along list") 66 | (org-agenda-files `(,(org-journal--get-entry-path)))))) 67 | nil))) 68 | '(org-blocker-ignore-ancestor-siblings t) 69 | '(org-clock-x11idle-program-name "xprintidle") 70 | '(org-closed-keep-when-no-todo t) 71 | '(org-entities-user '(("cmd" "\\cmd{}" nil "⌘" "⌘" "⌘" "⌘"))) 72 | '(org-html-toplevel-hlevel 3) 73 | '(org-insert-heading-respect-content nil) 74 | '(org-list-allow-alphabetical t) 75 | '(org-mime-use-property-inheritance t) 76 | '(org-reverse-note-order 77 | '(("VerhuiIng van Zijlweg 1.org" . t) ("workshop.org" . t) (".*"))) 78 | '(org-stuck-projects '("-inactive/+TODO" ("TODO" "WAITING") nil "")) 79 | '(org-tags-exclude-from-inheritance '("area" "encrypt")) 80 | '(org-timestamp-custom-formats '("<%m/%d/%y %a>" . "<%H:%M>")) 81 | '(org-todo-state-tags-triggers 82 | '(("TODO" ("inactive")) ("DONE" ("inactive") ("fork")) ("BUY" ("buy" . t)))) 83 | '(reb-re-syntax 'string) 84 | '(request-log-level 'verbose) 85 | '(safe-local-variable-values 86 | '((magit-todos-exclude-globs "_minted-mrb/*" "*.texi" "org-config.org") 87 | (magit-todos-exclude-globs "*.org") (magit-todos-exclude-globs "*.texi" "org-config.org") 88 | (eval visual-fill-column-mode t) (eval visual-line-mode t) 89 | (eval setq visual-fill-column-width: nil) (writefreely-post-id . "jnzt62gruo") 90 | (writefreely-post-id . "dbv92wvpfi") (writefreely-post-id . "j9nqdr0edr") 91 | (writefreely-post-id . "3pn4uygr08") (writefreely-post-id . "gg3pfn4cb2") 92 | (writefreely-post-id . "t34o6ptyty") (writefreely-post-id . "jl860566j7") 93 | (writefreely-post-id . "xpuz7k4vf7") (writefreely-post-id . "m52wflcl7q") 94 | (writefreely-post-id . "wf83bq5jwz") (writefreely-post-id) (writefreely-post-token) 95 | (TeX-master . t) (hamlet/basic-offset . 4) (haskell-process-use-ghci . t) 96 | (haskell-indent-spaces . 4) (encoding . utf-8) (buffer-auto-save-file-name))) 97 | '(sgml-xml-mode t) 98 | '(warning-suppress-types '((comp) (undo))) 99 | '(x-select-enable-clipboard-manager nil)) 100 | (custom-set-faces 101 | ;; custom-set-faces was added by Custom. 102 | ;; If you edit it by hand, you could mess it up, so be careful. 103 | ;; Your init file should contain only one such instance. 104 | ;; If there is more than one, they won't work right. 105 | '(default ((t (:family "Hack" :slant normal :weight normal :height 112 :width normal)))) 106 | '(org-headline-done ((t (:inherit font-lock-comment-face))))) 107 | -------------------------------------------------------------------------------- /straight/versions/default.el: -------------------------------------------------------------------------------- 1 | (("adoc-mode" . "176db8ce532778ccf1846fff31e63dc2e413ae9b") 2 | ("ag.el" . "ed7e32064f92f1315cecbfc43f120bbc7508672c") 3 | ("all-the-icons.el" . "51bf77da1ebc3c199dfc11f54c0dce67559f5f40") 4 | ("ansible-doc" . "86083a7bb2ed0468ca64e52076b06441a2f8e9e0") 5 | ("apache-mode" . "f2c11aac2f5fc598123e04f4604bea248689a117") 6 | ("avy" . "be612110cb116a38b8603df367942e2bb3d9bdbe") 7 | ("base16-emacs" . "244ae9a10f3bd4e9f09705da434989cd3831ddf6") 8 | ("bui.el" . "f3a137628e112a91910fd33c0cff0948fa58d470") 9 | ("casual" . "006b3d4ba15969946c9aa9255c8ac6b1ac82a409") 10 | ("circe" . "a0aada8cbb381228c80d98b81ebdec30012c512e") 11 | ("cmake" . "2d61db8bf3d09e5dcaa8a3247784ec65dc49fe63") 12 | ("compat" . "8885b1cd3f5a2833c727b4448583213deb2d1d76") 13 | ("cond-let" . "7d3d9c6b28fadaa48f2015df4169c666dd9986dd") 14 | ("consult" . "1745b97acd48368ce295166f8fe773bdc832e220") 15 | ("corfu" . "c302b0526ad9d0c99d1d0639df63f6ca65accfc3") 16 | ("csv-mode" . "58d1b74e5ecdff748f314bf701f5048ad35984b3") 17 | ("dash-docs" . "29848b6b347ac520f7646c200ed2ec36cea3feda") 18 | ("dash.el" . "3df46d7d9fe74f52a661565888e4d31fd760f0df") 19 | ("debbugs" . "df159214e70394dbed8da1f7a408f1b8d6286eab") 20 | ("diminish.el" . "fbd5d846611bad828e336b25d2e131d1bc06b83d") 21 | ("docker.el" . "3bea08f1d221ef9aefd9c05954423175a42d8a7e") 22 | ("dockerfile-mode" . "52c6c00da1d31c0b6c29c74335b3af63ed6bf06c") 23 | ("edit-indirect" . "f80f63822ffae78de38dbe72cacaeb1aaa96c732") 24 | ("eimp" . "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f") 25 | ("el-get" . "ec5cba8d965980b2c47a8a11dce30dd5e845ed2a") 26 | ("el-job" . "6520508920acca44be090bd655ad943751e20ef1") 27 | ("eldoc" . "5b9fd6faa9a65409064207c29954edd8ad45dcda") 28 | ("elfeed" . "a39fb78e34ee25dc8baea83376f929d7c128344f") 29 | ("elfeed-org" . "3242ec0519800a58f20480c8a6e3b3337d137084") 30 | ("elfeed-tube" . "3f801e340ee92e4850486fea5f08bcbdbc89254c") 31 | ("elisp-refs" . "af73739084637c8ebadad337a8fe58ff4f1d2ec1") 32 | ("emacs-aio" . "da93523e235529fa97d6f251319d9e1d6fc24a41") 33 | ("emacs-ansible" . "d89ac0ee57742cca0f0e0a3453d9dcc521575690") 34 | ("emacs-async" . "270c3d0bd99386dd9a8538990401993a6a3cb1bc") 35 | ("emacs-easy-hugo" . "ecae28ef6bd70f3b7492592008bfa8776d81d2e7") 36 | ("emacs-guix" . "455272c5cc72ed4ba5bad13c669f024f51479a58") 37 | ("emacs-kv" . "721148475bce38a70e0b678ba8aa923652e8900e") 38 | ("emacs-request" . "6ddb4fc4d8a0746ee2dfd8473af315ebe8f6215b") 39 | ("emacs-scad-mode" . "e2477ebebcdd21d8c8394f2dffb551fadbfdff53") 40 | ("emacs-udev-mode" . "5ca236980662141518603672ebdbdf863756da5a") 41 | ("emacs-which-key" . "df6b0cb8449812e7fb200bc852107fa7eb708496") 42 | ("emacsmirror-mirror" . "9b69ae200045b6ec53f717b365c6ea0b2f821acd") 43 | ("embark" . "76f199644ae57960f2419c27a7e11ccd79706a03") 44 | ("envrc" . "dbb8f3e580909d1942fa4e27381b6f97b668b3c2") 45 | ("epl" . "78ab7a85c08222cd15582a298a364774e3282ce6") 46 | ("eros" . "a9a92bdc6be0521a6a06eb464be55ed61946639c") 47 | ("esxml" . "7ac1fec0e45f12836b301fd9b8e7297434db2f70") 48 | ("exec-path-from-shell" . "ddd24dc823de9a94435b4d8ea7569161657f31e2") 49 | ("f.el" . "1e7020dc0d4c52d3da9bd610d431cab13aa02d8c") 50 | ("flycheck" . "15f0759602f9a31aff134c44d001ab058fbe747c") 51 | ("flycheck-haskell" . "50425a8b96fea84ea15940a4a07b184e43bb8e7a") 52 | ("flycheck-pos-tip" . "dc57beac0e59669926ad720c7af38b27c3a30467") 53 | ("font-utils" . "abc572eb0dc30a26584c0058c3fe6c7273a10003") 54 | ("fullframe" . "886b831c001b44ec95aec4ff36e8bc1b3003c786") 55 | ("gcmh" . "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9") 56 | ("geiser" . "4e64934bd2ae7c6f0e4acb9f2ed017844c187223") 57 | ("geiser-eros" . "004835504db103d9daa52d7c9fd99220c753c27a") 58 | ("ggtags" . "40635a1effd3a9c2adef63c4760010c9468a7a4d") 59 | ("git-auto-commit-mode" . "a7b59acea622a737d23c783ce7d212fefb29f7e6") 60 | ("gnu-elpa-mirror" . "4809077cd69544e81d946c7bb64c3d7e33e24ff1") 61 | ("gnuplot" . "4c6b18f71ff7604e2640033207f5a882ddce78af") 62 | ("gnuplot-mode" . "601f6392986f0cba332c87678d31ae0d0a496ce7") 63 | ("go-mode.el" . "166dfb1e090233c4609a50c2ec9f57f113c1da72") 64 | ("guile" . "ee33af6b4ef8fdaccbdf93c62b50fe17c07a1ade") 65 | ("haml-mode" . "bf5b6c11b1206759d2b28af48765e04882dd1fc4") 66 | ("hamlet-mode" . "7362b955e556a3d007fa06945a27e5b99349527d") 67 | ("haskell-mode" . "a34ccdc54be15043ff0d253c3c20087524255491") 68 | ("helm" . "6faca20c0ca0d202ad9a120e8609d07a0aa566ce") 69 | ("helm-dash" . "7f853bd34da666f0e9a883011c80f451b06f6c59") 70 | ("helpful" . "a32a5b3d959a7fccf09a71d97b3d7c888ac31c69") 71 | ("ht.el" . "e83fdb8bc0a3cc8cd2687a947e2610b20b68b7d3") 72 | ("htmlize" . "c9a8196a59973fabb3763b28069af9a4822a5260") 73 | ("hydra" . "317e1de33086637579a7aeb60f77ed0405bf359b") 74 | ("i3wm-Config-Mode" . "188e3978807ec39eba3cb69d973c0062af324215") 75 | ("inheritenv" . "00106bb208d06e5f1ec25d0c2f41c000cbb25076") 76 | ("js2-mode" . "a297ec2c2d9aa50ddc6c06959bb5a054e17b692a") 77 | ("let-alist" . "021fc10df2e44faba4728d849ee767cf890aa51a") 78 | ("list-utils" . "ca9654cd1418e874c876c6b3b7d4cd8339bfde77") 79 | ("llama" . "9802c215a3eea748d9d7f81a1465850388006897") 80 | ("lsp-haskell" . "3249cde75fb411f95fe173c222b848182fd0b752") 81 | ("lsp-mode" . "40f412d4c15d06770b307603da534cb2f735b5bf") 82 | ("lua-mode" . "ad639c62e38a110d8d822c4f914af3e20b40ccc4") 83 | ("magit" . "a47b5098c812b7a7932df802378cb754e3ad8639") 84 | ("magit-popup" . "d8585fa39f88956963d877b921322530257ba9f5") 85 | ("marginalia" . "18b3fcfba0c4af8b7bcff99ebf5891e8c0037bca") 86 | ("markdown-mode" . "6024f2d78e1c3e8e4fb4a9cb375291baa44c7cf2") 87 | ("markup-faces" . "98a807ed82473eb41c6a201ed7ef816d6bcd67b0") 88 | ("mastodon.el" . "e68871ef7f9b51c89701a65a7452704f47e564d3") 89 | ("melpa" . "06f8868ff6e2966b8482cd100271e1d1afc2ce79") 90 | ("mic-paren" . "d0410c7d805c9aaf51a1bcefaaef092bed5824c4") 91 | ("multiple-cursors.el" . "16223efc2d6dece2d43bbccc189d7a4bab6de571") 92 | ("nano-modeline" . "355fdf607c9c8fce5a69dcf0d08f521d09b146c1") 93 | ("nongnu-elpa" . "435a9cbbd41817391dcdcd98ca5b677ca96db7ca") 94 | ("nov.el" . "cb5f45cbcfbcf263cdeb2d263eb15edefc8b07cb") 95 | ("orderless" . "082a487f79ca5e960046a31599a5f97dac79a858") 96 | ("org" . "499bd92e26e125ca770ca144e5179749b9c8d827") 97 | ("org-agenda-property" . "3b469f3e93de0036547f3631cd0366d53f7584c8") 98 | ("org-appear" . "81eba5d7a5b74cdb1bad091d85667e836f16b997") 99 | ("org-bullets" . "767f55feb58b840a5a04eabfc3fbbf0d257c4792") 100 | ("org-contrib" . "4f767bb0aea18ae0bf8c03fa3b019b775b4fe63f") 101 | ("org-edna" . "de6454949045453e0fa025e605b445c3ca05c62a") 102 | ("org-journal" . "c72d7c75f8a05d1032250e307d35797ceee7e578") 103 | ("org-mem" . "a99cd068737caf5d9d6c1ea7444f8a6b3c2e57a7") 104 | ("org-noter" . "9ead81d42dd4dd5074782d239b2efddf9b8b7b3d") 105 | ("org-pdftools" . "967f48fb5038bba32915ee9da8dc4e8b10ba3376") 106 | ("org-screenshot" . "55fa23e69c8ac4c40f8600300301a9cdc5c6732f") 107 | ("orgit" . "ae5252fd47dd49a908d257fb59e9e8f53c5aad08") 108 | ("osm" . "4e83414299ebaf1966a0a61a188bbc58fd2760f2") 109 | ("ox-gfm" . "46faa67dbb3fb0cd7a76c3fe518f16e4195c22c7") 110 | ("pass" . "2391d6ee4e3b65d6c6ae522e362a0ec1f2d57866") 111 | ("password-store" . "3ca13cd8882cae4083c1c478858adbf2e82dd037") 112 | ("password-store-otp.el" . "be3a00a981921ed1b2f78012944dc25eb5a0beca") 113 | ("pcache" . "507230d094cc4a5025fe09b62569ad60c71c4226") 114 | ("pdf-tools-org" . "c243fa21e2dd1bd138f6216263d440e03e8af84a") 115 | ("persist" . "c10835478d9f916534a07fad0174d497adf85729") 116 | ("persistent-scratch" . "f9c1361ad69073af8133174f9e37b594df9be361") 117 | ("persistent-soft" . "a1e0ddf2a12a6f18cab565dee250f070384cbe02") 118 | ("php-mode" . "cf9481ccb7fbd50847e5a8c1da37f68771c2532e") 119 | ("pkg-info" . "76ba7415480687d05a4353b27fea2ae02b8d9d61") 120 | ("plantuml-mode" . "ea45a13707abd2a70df183f1aec6447197fc9ccc") 121 | ("popup-el" . "71cede0588c10526f88dd0375bce776ec2eed05e") 122 | ("pos-tip" . "bfe74204d1201a33ace81898e7c485382817510a") 123 | ("posframe" . "017deece88360c7297265680d78a0bb316470716") 124 | ("project" . "0fd90f7a0621c6be80ee0430842c73104395b6d5") 125 | ("puni" . "f430f5b0a14c608176e3376058eb380ab0824621") 126 | ("qrencode-el" . "fe3a99ff8cbddcf5391458f356cecf2e8c3a2b84") 127 | ("rainbow-mode" . "8e96388fb4d616a9dde23e712bad0d9cd048fbf0") 128 | ("rfc-mode" . "53ec006aa6aa4fae9c6c64004692aa3d01b38275") 129 | ("rust-mode" . "22fff6a049402584e7120146c3db141c6f530bf6") 130 | ("s.el" . "e957dcb0677da18b2bb60ad867db5df5c35b5616") 131 | ("sass-mode" . "247a0d4b509f10b28e4687cd8763492bca03599b") 132 | ("scratch" . "f000648c9663833a76a8de9b1e78c99a9d698e48") 133 | ("selected.el" . "1ca6e12f456caa1dc97c3d68597598662eb5de9a") 134 | ("seq" . "4355cde01767911660f761cf874edb412d06bd7a") 135 | ("sly" . "992e3f3c1a599a8a10af12323d547b35ce70362c") 136 | ("soap-client" . "1535a04b9dd202fcbc49a655cc5dafd1b3bff59e") 137 | ("spinner" . "634529bb3173e09b37499f636de70abf29d9fa8a") 138 | ("straight.el" . "b3760f5829dba37e855add7323304561eb57a3d4") 139 | ("stripspace.el" . "619454f0e238ce7e0b700381257fe1912b2f593c") 140 | ("sudo-save" . "b82a37da41185f89133bf5b45574f58d275f0653") 141 | ("svg-lib" . "da72b81d8589d045731140a836cfbc2891e4ebf3") 142 | ("svg-tag-mode" . "9f5c2cb862fcba96f247b85fdd1b7dffff7af93a") 143 | ("tablist" . "fcd37147121fabdf003a70279cf86fbe08cfac6f") 144 | ("tempel" . "7a6a95825d55df868a869cbbc80412fb44f6520b") 145 | ("tp.el" . "cce2dfe0ec2b5c070cb13a7bdf95695eeb6e3caf") 146 | ("transient" . "cb6550d5b111b7815feec97b236ecb051de70dbe") 147 | ("ucs-utils" . "91b9e0207fff5883383fd39c45ad5522e9b90e65") 148 | ("unicode-fonts" . "44d0a22420c39709d1e1fa659a3f135facf3c986") 149 | ("vertico" . "d8dc49a3520ab908c2b0f62a4a8ae32ca23f2726") 150 | ("vertico-posframe" . "047474764c6bf9f6296f8e4f959d483de6b5baf7") 151 | ("visual-fill-column" . "695a59789209c42fa08a5bce92963ee32f4455be") 152 | ("webpaste.el" . "d96da58fe42988d5c433c71ee9f8e6fb75d595a9") 153 | ("with-editor" . "4da109748da0828b79198701eb641d5b724153ce") 154 | ("writefreely.el" . "db70444eb5fbe0820754574d70b1ae44967607dc") 155 | ("xref" . "5ed9f0aa7cb0bc558b48a62f03568b929ac4a270") 156 | ("yaml-mode" . "3fcb36d6039bef57e2a0f6e24c51f623c0bf5fb7") 157 | ("zeal-at-point" . "0fc3263f44e95acd3e9d91057677621ce4d297ee")) 158 | :gamma 159 | -------------------------------------------------------------------------------- /org-config.org: -------------------------------------------------------------------------------- 1 | This file contains configuration items for my org-mode use. It is intended to be used by a =#+SETUPFILE:= directive in a normal org-file. 2 | 3 | The advantage of doing it this way, apart from the logical separation to make it easier to reuse, is that this configuration file is also just a normal orgmode file. That allows me to separate the configuration is different sections, publish the configuration in a variety of formats and generally describe the configuration in a clear way so I can remember what this was all about. This is not unlike literal programming. 4 | 5 | The disadvantage is that it needs to be in every org-mode, which can sometimes be a nuisance (for example, it needs to be in every blog posting i write in orgmode if they are contained in separate files) 6 | 7 | * INFO Color tests :tags: 8 | 9 | When moving to a new theme, use this subsection to test configuration of orgmode colors. This paragraph is the test for plain text and inline markings such as *bold* and /italic/ =code= and _underline_ and +striked+ 10 | 11 | - listmarker :: first 12 | - listmarker :: last 13 | - plain link :: http://hsdev.com 14 | 15 | Source: 16 | #+BEGIN_SRC emacs-lisp 17 | (defun function (par1 &optional par2) 18 | "Documentation for the function" 19 | (interactive) 20 | ;; Comment line 21 | (setq var "string" 'quoted :property 0 -1 +1 0.01 )) 22 | #+END_SRC 23 | 24 | [2018-03-24 za] Date display 25 | 26 | Orgmode: 27 | ** TODO Todo item 28 | :PROPERTIES: 29 | :CREATED: [2018-03-22 do 13:45] 30 | :END: 31 | ** DONE Item when done 32 | :PROPERTIES: 33 | :CREATED: [2018-03-22 do 13:46] 34 | :END: 35 | ** WAITING Item waiting on someone else 36 | :PROPERTIES: 37 | :CREATED: [2018-03-22 do 13:46] 38 | :END: 39 | ** CANCELLED Cancelled item 40 | :PROPERTIES: 41 | :CREATED: [2018-03-22 do 13:46] 42 | :END: 43 | ** BUY Something to buy 44 | :PROPERTIES: 45 | :CREATED: [2018-03-22 do 13:46] 46 | :END: 47 | ** HOWTO Explanation 48 | :PROPERTIES: 49 | :CREATED: [2018-03-22 do 13:46] 50 | :END: 51 | ** INFO General info 52 | :PROPERTIES: 53 | :CREATED: [2018-03-22 do 13:47] 54 | :END: 55 | ** COLLECT Get a geocache 56 | :PROPERTIES: 57 | :CREATED: [2018-03-22 do 13:47] 58 | :END: 59 | ** SOLVE Solve a geocache 60 | :PROPERTIES: 61 | :CREATED: [2018-03-22 do 13:47] 62 | :END: 63 | ** READ a book 64 | :PROPERTIES: 65 | :CREATED: [2018-03-22 do 13:47] 66 | :END: 67 | ** READING a book 68 | ** PLAN something 69 | :PROPERTIES: 70 | :CREATED: [2018-03-22 do 13:47] 71 | :END: 72 | * Level 1 73 | ** Level 2 74 | *** Level 3 75 | **** Level 4 76 | ***** Level 5 77 | ****** Level 6 78 | ******* Level 7 79 | ******** Level 8 80 | ********* Level 9 81 | 82 | * General configuration 83 | This section contains general settings. 84 | 85 | #+STARTUP: overview 86 | #+STARTUP: indent 87 | #+STARTUP: hidestars 88 | 89 | Drawer definitions. We render drawers with a slightly smaller font, so it's important to define them, otherwise orgmode does not know they are supposed to be rendered differently. 90 | #+DRAWERS: PROPERTIES LOGBOOK 91 | 92 | Standard category is things that fall withing GTD 93 | #+CATEGORY: Task 94 | * Tags 95 | Action tags make up the meat of task management. The reason we want these tags is that we want to produce a list of them, or filter with them. If that need does not exist for one of the tags below, remove them. The list requirement is valid in general for any tag btw. 96 | 97 | Things I do to physical objects: 98 | #+TAGS: { buy(b) sell(s) lent(<) borrowed(>) } build(u) fix(f) clean(n) 99 | 100 | Administration like tags: 101 | #+TAGS: call(c) check(e) mail(m) read(r) write(w) learn(l) 102 | 103 | Status like tags. The first is to make items fall from the radar completely by making them inactive (see the custom agenda commands which use this tag). The /fork/ tag is for projects I have started and need to finish before starting something new. The amount of forks is a good measure of how good I’m doing with organizing things. These tags are mutually exclusive. 104 | 105 | #+TAGS: { inactive(i) fork(k) } 106 | 107 | Product tags allow me to create lists which are related to one particular product. A product is defined vaguely; it is something we produce, sell, buy or use. The product shortcuts should all be capitals. 108 | #+TAGS: emacs(E) odoo(O) pcs(P) eSign(S) claws(C) 109 | 110 | Other: 111 | - out : on the road, outside habitat, away from home etc. 112 | - paid: this is a task for which I get paid 113 | #+TAGS: out(o) paid(p) 114 | 115 | Specials, probably temporary in most cases 116 | #+TAGS: wintersport(W) idea(I) 117 | 118 | System tags, which define behaviour of orgmode itself. See also the =exclude= tag in the publishing and exporting section. 119 | 120 | Define a tag which gives orgmode the signal to encrypt the contents of a certain headline 121 | #+TAGS: encrypt(y) 122 | 123 | * Workflow states 124 | The 'TODO' keyword signals something that I myself have to do. It is is either still TO-DO or it has been DONE. If I change my mind, it's CANCELLED. Other than the CANCELLED keyword, this is pretty much the default sequence. When cancelling I force myself to enter some reason for it. 125 | #+SEQ_TODO: TODO | DONE CANCELLED(@) 126 | #+SEQ_TODO: PLAN TODO | DONE CANCELLED(@) 127 | 128 | Since buying stuff is abundant and warrants keeping track of, especially because I’m ordering lots of small things, I have defined a separate workflow for those type of activities. Initially I configure this as the same as doing a normal task, but I plan to introduce a couple of extra feature to this so it can be tracked when delivery will take place, add a tracking number to it in a smart way etc. 129 | 130 | #+SEQ_TODO: BUY WAITING | DONE CANCELLED(@) 131 | 132 | A second sequence of states is for tasks that have to be done by others, but still tracked. The initial state for these tasks is WAITING. I have defined a keybinding for (org-todo 'nextset) which switches the sequences for the entry involved. 133 | 134 | The 'WAITING' keyword signals a task that other people need to do and that I am waiting for them to complete them. Usually a property with the name 'Responsible' and the value of the person who needs to do the task is set. Tasks in the =WAITING= state are inactive for me, but I still want to produce a convenient list of those tasks so I can track progress on them. All this leads to the following state definitions: 135 | #+SEQ_TODO: WAITING TODO | DONE CANCELLED(@) 136 | 137 | 138 | When an item reaches a /DONE/ state, i.e. anything after the vertical bar, we can log this automatically, either by inserting a timestamp, or by requiring to log a note. We use the timestamp. 139 | #+STARTUP: logdone 140 | 141 | Given a certain workflow with repeating tasks, tell the system to which state a repeating task must be reset if one of the instances has been completed. In our case just =TODO= 142 | #+REPEAT_TO_STATE: TODO 143 | 144 | I often seem to write 'paragraphs' which contain reference information to be used a later time. These chapters contain steps to perform or a verbose howto on some systems management thing. They have in common thay I want to be able to look them up by type later on. So, I define some keywords, and give them fitting colors. 145 | 146 | #+SEQ_TODO: INFO | 147 | #+SEQ_TODO: HOWTO | 148 | #+SEQ_TODO: SOLVE COLLECT | DONE 149 | 150 | Keep track of some reading efforts with a simple sequence 151 | 152 | #+SEQ_TODO: READ READING | DONE CANCELLED(@) 153 | * Publishing and exporting 154 | Getting the defaults right for publishing and exporting took some time, save them as defaults and code deviations in the sections to be published. 155 | 156 | #+TITLE: Project notes 157 | #+AUTHOR: Marcel van der Boom 158 | #+EMAIL: marcel@hsdev.com 159 | #+DESCRIPTION: description 160 | #+KEYWORDS: orgmode 161 | #+OPTIONS: h:5 toc:nil creator:nil email:nil author:t timestamp:t tags:nil 162 | 163 | Define a tag which hides stuff from exported documents 164 | #+TAGS: exclude(x) 165 | 166 | and use it 167 | #+EXPORT_EXCLUDE_TAGS: exclude 168 | 169 | ** LateX specific configuration 170 | I have separated the latex (pdf exporting) from the rest because it is much more elaborate and took more time to get right. 171 | 172 | The default style of our exported documents will be based on the LaTeX article style. 173 | #+LaTeX_CLASS: article 174 | 175 | This option does not seem to work when not in the same file as exporting. I have added this in the customize interface directly now. 176 | #+LaTeX_CLASS_OPTIONS: [10pt,a4paper,oneside] 177 | 178 | Latex default configuration to produce a memo-style document. 179 | 180 | Our documents are mostly in dutch, so load that up by default, it's easy to override this on a subtree or file basis. 181 | 182 | #+LANGUAGE: nl 183 | 184 | Let the babel package handle our language settings automatically. This makes the TOC for example actually say /"Inhoudsopgave"/ and the hyphenation rules be applied for the proper language. 185 | 186 | #+LATEX_HEADER: \usepackage[AUTO]{babel} 187 | 188 | Adjust the title of our documents 189 | #+LaTeX_HEADER: \usepackage{titling} 190 | #+LaTeX_HEADER: \renewcommand{\maketitlehooka}{\color{hsdpurple}} 191 | 192 | Make headers a bit more compact and more pleasing to look at 193 | #+LaTeX_HEADER: \usepackage[compact]{titlesec} 194 | 195 | Make our headers use the HSD purple color 196 | #+LaTeX_HEADER: \usepackage{sectsty} 197 | #+LaTeX_HEADER: \usepackage{xcolor} 198 | 199 | #+COMMENT This looks ok-ish on screen, but not on print 200 | #+LaTeX_HEADER: \definecolor{hsdpurple}{RGB}{102,102,153} 201 | 202 | #+COMMENT This looks ok in print, but not so much on screen 203 | #+LaTeX_HEADER: \definecolor{hsdpurple}{RGB}{102,50,153} 204 | #+LaTex_HEADER: \allsectionsfont{\color{hsdpurple}} 205 | 206 | Do the same for figure and table captions. 207 | #+LaTex_HEADER: \usepackage[labelfont={color=hsdpurple,bf}]{caption} 208 | 209 | I still like the sans family of computer modern 210 | #+LATEX_HEADER: \renewcommand{\familydefault}{\sfdefault} 211 | 212 | Use the geometry package to set our left and top margins, the width as last parameter defines the body text /rectangle/ 213 | #+LATEX_HEADER: \usepackage[left=3cm,top=2cm,width=16cm]{geometry} 214 | 215 | I want to have a '/page N of M/'-type footer, the lastpage package provides this functionality. One consequence of this is that the amount of TeX passes is minimally 2 to get all the references right. 216 | #+LATEX_HEADER: \usepackage{lastpage} 217 | 218 | Use the fancyhdr package to allow the customization of headers in an easy way. 219 | #+LATEX_HEADER: \usepackage{fancyhdr} 220 | 221 | Both header and footer have a horizontal rule along the width of the entire text, thus clearly separating them from the content. 222 | #+LATEX_HEADER: \renewcommand{\headrulewidth}{0.4pt} 223 | #+LATEX_HEADER: \renewcommand{\footrulewidth}{0.4pt} 224 | 225 | Activate the fancy style, which is roughly a left, middle and right field for both header and footer. 226 | #+LATEX_HEADER: \pagestyle{fancy} 227 | 228 | Clear the header and footer first, so we are sure they are empty. 229 | #+LATEX_HEADER: \fancyhead{} 230 | #+LATEX_HEADER: \fancyfoot{} 231 | 232 | Set the height of the header. The value was deduced by LaTeX itself and suggested in the command line run. The logo, see below, is probably the most limiting element for this. 233 | #+LATEX_HEADER: \setlength{\headheight}{53pt} 234 | 235 | First, make the @ character a letter, so we can use the @title, @author and @date variables. 236 | #+LATEX_HEADER: \makeatletter 237 | 238 | The header contains the title of the document on the left for odd pages and on the right for even pages. 239 | #+LATEX_HEADER: \fancyhead[LO,RE]{\color{hsdpurple}\LARGE{\bf{\@title}}} 240 | 241 | The logo is just displayed on odd pages, on the right. 242 | #+LATEX_HEADER: \fancyhead[RO]{\includegraphics[height=16mm]{//home/mrb/dat/org/images/hsd.pdf}} 243 | 244 | The footer contains page references N of M style and the author information. Here also, the position is alternating with odd and even pages. 245 | #+LATEX_HEADER: \fancyfoot[RO,LE]{\small{\bf{\thepage{}\textbar\pageref{LastPage}}}} 246 | #+LATEX_HEADER: \fancyfoot[LO,RE]{\small{\bf{\@date{} \textbar \@author{} \textlangle\href{mailto:marcel@hsdev.com?subject=Re: \@title}{marcel@hsdev.com}\textrangle}}} 247 | 248 | Reset the @ character back to what it was 249 | #+LATEX_HEADER: \makeatother 250 | 251 | Some spacing corrections to make things look a little bit better. No paragraph indenting as our paragraphs tend to be short. We allow a ragged page bottom (no vertical filling), so the spacing is more relaxing to look at. This is especially an issue when using screenshots or other larger pictures which interrupt the text flow aggressively. 252 | #+LATEX_HEADER: \parindent 0pt 253 | #+LATEX_HEADER: \raggedbottom 254 | #+COMMENT LATEX_HEADER: \raggedright 255 | #+LATEX_HEADER: \usepackage{parskip} 256 | 257 | For keyboard symbols: 258 | #+LATEX_HEADER: \usepackage{menukeys} 259 | 260 | For math: 261 | #+LATEX_HEADER: \usepackage{amsmath} 262 | 263 | For outline: 264 | #+LATEX_HEADER: \usepackage{bookmark} 265 | 266 | For adding pdf pages: 267 | #+LATEX_HEADER: \usepackage{pdfpages} 268 | 269 | Add =H= specifier for floats 270 | #+LATEX_HEADER: \usepackage{float} 271 | 272 | 273 | 274 | * Links 275 | Autolinks which can be entered like [[keyword:parameter]] This is mostly here as an example, I don’t think I’ve ever used these in my org files 276 | #+LINK: wiki http://en.wikipedia.org/wiki/Search?search= 277 | #+LINK: math http://mathworld.wolfram.com/%s.html 278 | #+LINK: google http://www.google.com/search?q= 279 | #+LINK: gmap http://maps.google.com/maps?q=%s 280 | #+LINK: omap http://nominatim.openstreetmap.org/search?q=%s&polygon=1 281 | -------------------------------------------------------------------------------- /mytex-inputmethod.el: -------------------------------------------------------------------------------- 1 | ;;; mytex-inputmethod.el --- Modified input method, based on TeX-style input -*-coding: utf-8;-*- 2 | 3 | ;; Copyright (C) 2001-2013 Free Software Foundation, Inc. 4 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 5 | ;; 2010, 2011 6 | ;; National Institute of Advanced Industrial Science and Technology (AIST) 7 | ;; Registration Number H14PRO021 8 | 9 | ;; Author: TAKAHASHI Naoto 10 | ;; Dave Love 11 | ;; Keywords: multilingual, input, Greek, i18n 12 | 13 | ;; This file is NOT part of GNU Emacs. 14 | 15 | ;; GNU Emacs is free software: you can redistribute it and/or modify 16 | ;; it under the terms of the GNU General Public License as published by 17 | ;; the Free Software Foundation, either version 3 of the License, or 18 | ;; (at your option) any later version. 19 | 20 | ;; GNU Emacs is distributed in the hope that it will be useful, 21 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | ;; GNU General Public License for more details. 24 | 25 | ;; You should have received a copy of the GNU General Public License 26 | ;; along with GNU Emacs. If not, see . 27 | 28 | ;;; Commentary: 29 | 30 | ;;; Code: 31 | 32 | (require 'quail) 33 | 34 | (quail-define-package 35 | "MyTeX" "UTF-8" "\\" t 36 | "LaTeX-like input method for many characters. 37 | These characters are from the charsets used by the `utf-8' coding 38 | system, including many technical ones. Examples: 39 | \\`a -> à \\`{a} -> à 40 | \\pi -> π \\int -> ∫ ^1 -> ¹" 41 | 42 | '(("\t" . quail-completion)) 43 | nil nil nil nil nil nil nil nil nil t) 44 | 45 | (eval-when-compile 46 | (defun latin-ltx--ascii-p (char) 47 | (and (characterp char) (< char 128))) 48 | 49 | (defmacro latin-ltx--define-rules (&rest rules) 50 | (load "uni-name") 51 | (let ((newrules ())) 52 | (dolist (rule rules) 53 | (pcase rule 54 | (`(,_ ,(pred characterp)) (push rule newrules)) ;; Normal quail rule. 55 | (`(,seq ,re) 56 | (let ((count 0)) 57 | (dolist (pair (ucs-names)) 58 | (let ((name (car pair)) 59 | (char (cdr pair))) 60 | (when (and (characterp char) ;; Ignore char-ranges. 61 | (string-match re name)) 62 | (let ((keys (if (stringp seq) 63 | (replace-match seq nil nil name) 64 | (funcall seq name char)))) 65 | (if (listp keys) 66 | (dolist (x keys) 67 | (setq count (1+ count)) 68 | (push (list x char) newrules)) 69 | (setq count (1+ count)) 70 | (push (list keys char) newrules)))))) 71 | ;(message "latin-ltx: %d mapping for %S" count re) 72 | )))) 73 | `(quail-define-rules ,@(nreverse (delete-dups newrules)))))) 74 | 75 | (latin-ltx--define-rules 76 | ("!`" ?¡) 77 | ("\\pounds" ?£) ;; ("{\\pounds}" ?£) 78 | ("\\S" ?§) ;; ("{\\S}" ?§) 79 | ("$^a$" ?ª) 80 | ("$\\pm$" ?±) ("\\pm" ?±) 81 | ("$^2$" ?²) 82 | ("$^3$" ?³) 83 | ("\\P" ?¶) ;; ("{\\P}" ?¶) 84 | ;; Fixme: Yudit has the equivalent of ("\\cdot" ?⋅), for U+22C5, DOT 85 | ;; OPERATOR, whereas · is MIDDLE DOT. JadeTeX translates both to 86 | ;; \cdot. 87 | ("$\\cdot$" ?·) ("\\cdot" ?·) 88 | ("$^1$" ?¹) 89 | ("$^o$" ?º) 90 | ("?`" ?¿) 91 | 92 | ("\\`" ?̀) 93 | ("\\`{}" ?`) 94 | ((lambda (name char) 95 | (let ((c (if (match-end 1) 96 | (downcase (match-string 2 name)) 97 | (match-string 2 name)))) 98 | (list (format "\\`{%s}" c) (format "\\`%s" c)))) 99 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH GRAVE") 100 | 101 | ("\\'" ?́) 102 | ("\\'{}" ?´) 103 | ((lambda (name char) 104 | (let ((c (if (match-end 1) 105 | (downcase (match-string 2 name)) 106 | (match-string 2 name)))) 107 | (list (format "\\'{%s}" c) (format "\\'%s" c)))) 108 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH ACUTE") 109 | 110 | ("\\^" ?̂) 111 | ("\\^{}" ?^) 112 | ((lambda (name char) 113 | (let ((c (if (match-end 1) 114 | (downcase (match-string 2 name)) 115 | (match-string 2 name)))) 116 | (list (format "\\^{%s}" c) (format "\\^%s" c)))) 117 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CIRCUMFLEX") 118 | 119 | ("\\~" ?̃) 120 | ("\\~{}" ?˜) 121 | ((lambda (name char) 122 | (let ((c (if (match-end 1) 123 | (downcase (match-string 2 name)) 124 | (match-string 2 name)))) 125 | (list (format "\\~{%s}" c) (format "\\~%s" c)))) 126 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH TILDE") 127 | 128 | ("\\\"" ?̈) 129 | ("\\\"{}" ?¨) 130 | ((lambda (name char) 131 | (let ((c (if (match-end 1) 132 | (downcase (match-string 2 name)) 133 | (match-string 2 name)))) 134 | (list (format "\\\"{%s}" c) (format "\\\"%s" c)))) 135 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DIAERESIS") 136 | 137 | ("\\k" ?̨) 138 | ("\\k{}" ?˛) 139 | ((lambda (name char) 140 | (let ((c (if (match-end 1) 141 | (downcase (match-string 2 name)) 142 | (match-string 2 name)))) 143 | (list (format "\\k{%s}" c) ;; (format "\\k%s" c) 144 | ))) 145 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH OGONEK") 146 | 147 | ("\\c" ?̧) 148 | ("\\c{}" ?¸) 149 | ((lambda (name char) 150 | (let ((c (if (match-end 1) 151 | (downcase (match-string 2 name)) 152 | (match-string 2 name)))) 153 | (list (format "\\c{%s}" c) (format "\\c%s" c)))) 154 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CEDILLA") 155 | 156 | ("\\AA" ?Å) ;; ("{\\AA}" ?Å) 157 | ("\\AE" ?Æ) ;; ("{\\AE}" ?Æ) 158 | 159 | ("$\\times$" ?×) ("\\times" ?×) 160 | ("\\O" ?Ø) ;; ("{\\O}" ?Ø) 161 | ("\\ss" ?ß) ;; ("{\\ss}" ?ß) 162 | 163 | ("\\aa" ?å) ;; ("{\\aa}" ?å) 164 | ("\\ae" ?æ) ;; ("{\\ae}" ?æ) 165 | 166 | ("$\\div$" ?÷) ("\\div" ?÷) 167 | ("\\o" ?ø) ;; ("{\\o}" ?ø) 168 | 169 | ("\\=" ?̄) 170 | ("\\={}" ?¯) 171 | ((lambda (name char) 172 | (let ((c (if (match-end 1) 173 | (downcase (match-string 2 name)) 174 | (match-string 2 name)))) 175 | (list (format "\\={%s}" c) (format "\\=%s" c)))) 176 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH MACRON") 177 | 178 | ("\\u" ?̆) 179 | ("\\u{}" ?˘) 180 | ((lambda (name char) 181 | (let ((c (if (match-end 1) 182 | (downcase (match-string 2 name)) 183 | (match-string 2 name)))) 184 | (list (format "\\u{%s}" c) (format "\\u%s" c)))) 185 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH BREVE") 186 | 187 | ("\\." ?̇) 188 | ("\\.{}" ?˙) 189 | ((lambda (name char) 190 | (let ((c (if (match-end 1) 191 | (downcase (match-string 2 name)) 192 | (match-string 2 name)))) 193 | (list (format "\\.{%s}" c) (format "\\.%s" c)))) 194 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT ABOVE") 195 | 196 | ("\\v" ?̌) 197 | ("\\v{}" ?ˇ) 198 | ((lambda (name char) 199 | (let ((c (if (match-end 1) 200 | (downcase (match-string 2 name)) 201 | (match-string 2 name)))) 202 | (list (format "\\v{%s}" c) (format "\\v%s" c)))) 203 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CARON") 204 | 205 | ("\\~{\\i}" ?ĩ) 206 | ("\\={\\i}" ?ī) 207 | ("\\u{\\i}" ?ĭ) 208 | 209 | ("\\i" ?ı) ;; ("{\\i}" ?ı) 210 | ("\\^{\\j}" ?ĵ) 211 | 212 | ("\\L" ?Ł) ;; ("{\\L}" ?Ł) 213 | ("\\l" ?ł) ;; ("{\\l}" ?ł) 214 | 215 | ("\\H" ?̋) 216 | ("\\H{}" ?˝) 217 | ((lambda (name char) 218 | (let ((c (if (match-end 1) 219 | (downcase (match-string 2 name)) 220 | (match-string 2 name)))) 221 | (list (format "\\H{%s}" c) (format "\\H%s" c)))) 222 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOUBLE ACUTE") 223 | ("\\U{o}" ?ő) ("\\Uo" ?ő) ;; FIXME: Was it just a typo? 224 | 225 | ("\\OE" ?Œ) ;; ("{\\OE}" ?Œ) 226 | ("\\oe" ?œ) ;; ("{\\oe}" ?œ) 227 | 228 | ("\\v{\\i}" ?ǐ) 229 | 230 | ("\\={\\AE}" ?Ǣ) ("\\=\\AE" ?Ǣ) 231 | ("\\={\\ae}" ?ǣ) ("\\=\\ae" ?ǣ) 232 | 233 | ("\\v{\\j}" ?ǰ) 234 | ("\\'{\\AE}" ?Ǽ) ("\\'\\AE" ?Ǽ) 235 | ("\\'{\\ae}" ?ǽ) ("\\'\\ae" ?ǽ) 236 | ("\\'{\\O}" ?Ǿ) ("\\'\\O" ?Ǿ) 237 | ("\\'{\\o}" ?ǿ) ("\\'\\o" ?ǿ) 238 | 239 | ("\\," ? ) 240 | ("\\/" ?‌) 241 | ("\\:" ? ) 242 | ("\\;" ? ) 243 | 244 | ;; ;; This conflicts whith variable names like test_variable etc. 245 | ;; ;; Wanted: \_1 -> ₁ 246 | ;; ((lambda (name char) 247 | ;; (let* ((base (concat (match-string 1 name) (match-string 3 name))) 248 | ;; (basechar (cdr (assoc base (ucs-names))))) 249 | ;; (when (latin-ltx--ascii-p basechar) 250 | ;; (string (if (match-end 2) ?^ ?_) basechar)))) 251 | ;; "\\(.*\\)SU\\(?:B\\|\\(PER\\)\\)SCRIPT \\(.*\\)") 252 | 253 | ("^\\gamma" ?ˠ) 254 | 255 | ((lambda (name char) 256 | (let* ((base (format "LATIN %s LETTER %s" 257 | (match-string 1 name) (match-string 2 name))) 258 | (basechar (cdr (assoc base (ucs-names))))) 259 | (when (latin-ltx--ascii-p basechar) 260 | (string ?^ basechar)))) 261 | "MODIFIER LETTER \\(SMALL\\|CAPITAL\\) \\(.*\\)") 262 | 263 | ;; ((lambda (name char) (format "^%s" (downcase (match-string 1 name)))) 264 | ;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'") 265 | ;; ("^\\1" "\\`MODIFIER LETTER CAPITAL \\(.\\)\\'") 266 | ("^o_" ?º) 267 | ("^{SM}" ?℠) 268 | ("^{TEL}" ?℡) 269 | ("^{TM}" ?™) 270 | 271 | ("\\b" ?̱) 272 | 273 | ("\\d" ?̣) 274 | ;; ("\\d{}" ?) ;; FIXME: can't find the DOT BELOW character. 275 | ((lambda (name char) 276 | (let ((c (if (match-end 1) 277 | (downcase (match-string 2 name)) 278 | (match-string 2 name)))) 279 | (list (format "\\d{%s}" c) ;; (format "\\d%s" c) 280 | ))) 281 | "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT BELOW") 282 | 283 | ("\\rq" ?’) 284 | 285 | ;; FIXME: Provides some useful entries (yen, euro, copyright, registered, 286 | ;; currency, minus, micro), but also a lot of dubious ones. 287 | ((lambda (name char) 288 | (unless (latin-ltx--ascii-p char) 289 | (concat "\\" (downcase (match-string 1 name))))) 290 | "\\`\\([^- ]+\\) SIGN\\'") 291 | 292 | ((lambda (name char) 293 | (concat "\\" (funcall (if (match-end 1) #' capitalize #'downcase) 294 | (match-string 2 name)))) 295 | "\\`GREEK \\(?:SMALL\\|CAPITA\\(L\\)\\) LETTER \\([^- ]+\\)\\'") 296 | 297 | ("\\Box" ?□) 298 | ("\\Bumpeq" ?≎) 299 | ("\\Cap" ?⋒) 300 | ("\\Cup" ?⋓) 301 | ("\\Diamond" ?◇) 302 | ("\\Downarrow" ?⇓) 303 | ("\\H{o}" ?ő) 304 | ("\\Im" ?ℑ) 305 | ("\\Join" ?⋈) 306 | ("\\Leftarrow" ?⇐) 307 | ("\\Leftrightarrow" ?⇔) 308 | ("\\Ll" ?⋘) 309 | ("\\Lleftarrow" ?⇚) 310 | ("\\Longleftarrow" ?⇐) 311 | ("\\Longleftrightarrow" ?⇔) 312 | ("\\Longrightarrow" ?⇒) 313 | ("\\Lsh" ?↰) 314 | ("\\Re" ?ℜ) 315 | ("\\Rightarrow" ?⇒) 316 | ("\\Rrightarrow" ?⇛) 317 | ("\\Rsh" ?↱) 318 | ("\\Subset" ?⋐) 319 | ("\\Supset" ?⋑) 320 | ("\\Uparrow" ?⇑) 321 | ("\\Updownarrow" ?⇕) 322 | ("\\Vdash" ?⊩) 323 | ("\\Vert" ?‖) 324 | ("\\Vvdash" ?⊪) 325 | ("\\aleph" ?ℵ) 326 | ("\\amalg" ?∐) 327 | ("\\angle" ?∠) 328 | ("\\approx" ?≈) 329 | ("\\approxeq" ?≊) 330 | ("\\ast" ?∗) 331 | ("\\asymp" ?≍) 332 | ("\\backcong" ?≌) 333 | ("\\backepsilon" ?∍) 334 | ("\\backprime" ?‵) 335 | ("\\backsim" ?∽) 336 | ("\\backsimeq" ?⋍) 337 | ("\\backslash" ?\\) 338 | ("\\barwedge" ?⊼) 339 | ("\\because" ?∵) 340 | ("\\beth" ?ℶ) 341 | ("\\between" ?≬) 342 | ("\\bigcap" ?⋂) 343 | ("\\bigcirc" ?◯) 344 | ("\\bigcup" ?⋃) 345 | ("\\bigstar" ?★) 346 | ("\\bigtriangledown" ?▽) 347 | ("\\bigtriangleup" ?△) 348 | ("\\bigvee" ?⋁) 349 | ("\\bigwedge" ?⋀) 350 | ("\\blacklozenge" ?✦) 351 | ("\\blacksquare" ?▪) 352 | ("\\blacktriangle" ?▴) 353 | ("\\blacktriangledown" ?▾) 354 | ("\\blacktriangleleft" ?◂) 355 | ("\\blacktriangleright" ?▸) 356 | ("\\bot" ?⊥) 357 | ("\\bowtie" ?⋈) 358 | ("\\boxminus" ?⊟) 359 | ("\\boxplus" ?⊞) 360 | ("\\boxtimes" ?⊠) 361 | ("\\bullet" ?•) 362 | ("\\bumpeq" ?≏) 363 | ("\\cap" ?∩) 364 | ("\\cdots" ?⋯) 365 | ("\\centerdot" ?·) 366 | ("\\checkmark" ?✓) 367 | ("\\chi" ?χ) 368 | ("\\circ" ?∘) 369 | ("\\circeq" ?≗) 370 | ("\\circlearrowleft" ?↺) 371 | ("\\circlearrowright" ?↻) 372 | ("\\circledR" ?®) 373 | ("\\circledS" ?Ⓢ) 374 | ("\\circledast" ?⊛) 375 | ("\\circledcirc" ?⊚) 376 | ("\\circleddash" ?⊝) 377 | ("\\clubsuit" ?♣) 378 | ("\\colon" ?:) ;FIXME: Conflict with "COLON SIGN" ₡. 379 | ("\\coloneq" ?≔) 380 | ("\\complement" ?∁) 381 | ("\\cong" ?≅) 382 | ("\\coprod" ?∐) 383 | ("\\cup" ?∪) 384 | ("\\curlyeqprec" ?⋞) 385 | ("\\curlyeqsucc" ?⋟) 386 | ("\\curlypreceq" ?≼) 387 | ("\\curlyvee" ?⋎) 388 | ("\\curlywedge" ?⋏) 389 | ("\\curvearrowleft" ?↶) 390 | ("\\curvearrowright" ?↷) 391 | 392 | ("\\dag" ?†) 393 | ("\\dagger" ?†) 394 | ("\\daleth" ?ℸ) 395 | ("\\dashv" ?⊣) 396 | ("\\ddag" ?‡) 397 | ("\\ddagger" ?‡) 398 | ("\\ddots" ?⋱) 399 | ("\\diamond" ?⋄) 400 | ("\\diamondsuit" ?♢) 401 | ("\\digamma" ?Ϝ) 402 | ("\\divideontimes" ?⋇) 403 | ("\\doteq" ?≐) 404 | ("\\doteqdot" ?≑) 405 | ("\\dotplus" ?∔) 406 | ("\\dotsquare" ?⊡) 407 | ("\\downarrow" ?↓) 408 | ("\\downdownarrows" ?⇊) 409 | ("\\downleftharpoon" ?⇃) 410 | ("\\downrightharpoon" ?⇂) 411 | ("\\ell" ?ℓ) 412 | ("\\emptyset" ?∅) 413 | ("\\eqcirc" ?≖) 414 | ("\\eqcolon" ?≕) 415 | ("\\eqslantgtr" ?⋝) 416 | ("\\eqslantless" ?⋜) 417 | ("\\equiv" ?≡) 418 | ("\\exists" ?∃) 419 | ("\\fallingdotseq" ?≒) 420 | ("\\flat" ?♭) 421 | ("\\forall" ?∀) 422 | ("\\frac1" ?⅟) 423 | ("\\frac12" ?½) 424 | ("\\frac13" ?⅓) 425 | ("\\frac14" ?¼) 426 | ("\\frac15" ?⅕) 427 | ("\\frac16" ?⅙) 428 | ("\\frac18" ?⅛) 429 | ("\\frac23" ?⅔) 430 | ("\\frac25" ?⅖) 431 | ("\\frac34" ?¾) 432 | ("\\frac35" ?⅗) 433 | ("\\frac38" ?⅜) 434 | ("\\frac45" ?⅘) 435 | ("\\frac56" ?⅚) 436 | ("\\frac58" ?⅝) 437 | ("\\frac78" ?⅞) 438 | ("\\frown" ?⌢) 439 | ("\\ge" ?≥) 440 | ("\\geq" ?≥) 441 | ("\\geqq" ?≧) 442 | ("\\geqslant" ?≥) 443 | ("\\gets" ?←) 444 | ("\\gg" ?≫) 445 | ("\\ggg" ?⋙) 446 | ("\\gimel" ?ℷ) 447 | ("\\gnapprox" ?⋧) 448 | ("\\gneq" ?≩) 449 | ("\\gneqq" ?≩) 450 | ("\\gnsim" ?⋧) 451 | ("\\gtrapprox" ?≳) 452 | ("\\gtrdot" ?⋗) 453 | ("\\gtreqless" ?⋛) 454 | ("\\gtreqqless" ?⋛) 455 | ("\\gtrless" ?≷) 456 | ("\\gtrsim" ?≳) 457 | ("\\gvertneqq" ?≩) 458 | ("\\hbar" ?ℏ) 459 | ("\\heartsuit" ?♥) 460 | ("\\hookleftarrow" ?↩) 461 | ("\\hookrightarrow" ?↪) 462 | ("\\iff" ?⇔) 463 | ("\\imath" ?ı) 464 | ("\\in" ?∈) 465 | ("\\infty" ?∞) 466 | ("\\int" ?∫) 467 | ("\\intercal" ?⊺) 468 | ("\\langle" ?〈) 469 | ("\\lbrace" ?{) 470 | ("\\lbrack" ?\[) 471 | ("\\lceil" ?⌈) 472 | ("\\ldots" ?…) 473 | ("\\le" ?≤) 474 | ("\\leadsto" ?↝) 475 | ("\\leftarrow" ?←) 476 | ("\\leftarrowtail" ?↢) 477 | ("\\leftharpoondown" ?↽) 478 | ("\\leftharpoonup" ?↼) 479 | ("\\leftleftarrows" ?⇇) 480 | ("\\leftparengtr" ?〈) 481 | ("\\leftrightarrow" ?↔) 482 | ("\\leftrightarrows" ?⇆) 483 | ("\\leftrightharpoons" ?⇋) 484 | ("\\leftrightsquigarrow" ?↭) 485 | ("\\leftthreetimes" ?⋋) 486 | ("\\leq" ?≤) 487 | ("\\leqq" ?≦) 488 | ("\\leqslant" ?≤) 489 | ("\\lessapprox" ?≲) 490 | ("\\lessdot" ?⋖) 491 | ("\\lesseqgtr" ?⋚) 492 | ("\\lesseqqgtr" ?⋚) 493 | ("\\lessgtr" ?≶) 494 | ("\\lesssim" ?≲) 495 | ("\\lfloor" ?⌊) 496 | ("\\lhd" ?◁) 497 | ("\\rhd" ?▷) 498 | ("\\ll" ?≪) 499 | ("\\llcorner" ?⌞) 500 | ("\\lnapprox" ?⋦) 501 | ("\\lneq" ?≨) 502 | ("\\lneqq" ?≨) 503 | ("\\lnsim" ?⋦) 504 | ("\\longleftarrow" ?←) 505 | ("\\longleftrightarrow" ?↔) 506 | ("\\longmapsto" ?↦) 507 | ("\\longrightarrow" ?→) 508 | ("\\looparrowleft" ?↫) 509 | ("\\looparrowright" ?↬) 510 | ("\\lozenge" ?✧) 511 | ("\\lq" ?‘) 512 | ("\\lrcorner" ?⌟) 513 | ("\\ltimes" ?⋉) 514 | ("\\lvertneqq" ?≨) 515 | ("\\maltese" ?✠) 516 | ("\\mapsto" ?↦) 517 | ("\\measuredangle" ?∡) 518 | ("\\mho" ?℧) 519 | ("\\mid" ?∣) 520 | ("\\models" ?⊧) 521 | ("\\mp" ?∓) 522 | ("\\multimap" ?⊸) 523 | ("\\nLeftarrow" ?⇍) 524 | ("\\nLeftrightarrow" ?⇎) 525 | ("\\nRightarrow" ?⇏) 526 | ("\\nVDash" ?⊯) 527 | ("\\nVdash" ?⊮) 528 | ("\\nabla" ?∇) 529 | ("\\napprox" ?≉) 530 | ("\\natural" ?♮) 531 | ("\\ncong" ?≇) 532 | ("\\ne" ?≠) 533 | ("\\nearrow" ?↗) 534 | ("\\neg" ?¬) 535 | ("\\neq" ?≠) 536 | ("\\nequiv" ?≢) 537 | ("\\newline" ?
) 538 | ("\\nexists" ?∄) 539 | ("\\ngeq" ?≱) 540 | ("\\ngeqq" ?≱) 541 | ("\\ngeqslant" ?≱) 542 | ("\\ngtr" ?≯) 543 | ("\\ni" ?∋) 544 | ("\\nleftarrow" ?↚) 545 | ("\\nleftrightarrow" ?↮) 546 | ("\\nleq" ?≰) 547 | ("\\nleqq" ?≰) 548 | ("\\nleqslant" ?≰) 549 | ("\\nless" ?≮) 550 | ("\\nmid" ?∤) 551 | ("\\not" ?̸) ;FIXME: conflict with "NOT SIGN" ¬. 552 | ("\\notin" ?∉) 553 | ("\\nparallel" ?∦) 554 | ("\\nprec" ?⊀) 555 | ("\\npreceq" ?⋠) 556 | ("\\nrightarrow" ?↛) 557 | ("\\nshortmid" ?∤) 558 | ("\\nshortparallel" ?∦) 559 | ("\\nsim" ?≁) 560 | ("\\nsimeq" ?≄) 561 | ("\\nsubset" ?⊄) 562 | ("\\nsubseteq" ?⊈) 563 | ("\\nsubseteqq" ?⊈) 564 | ("\\nsucc" ?⊁) 565 | ("\\nsucceq" ?⋡) 566 | ("\\nsupset" ?⊅) 567 | ("\\nsupseteq" ?⊉) 568 | ("\\nsupseteqq" ?⊉) 569 | ("\\ntriangleleft" ?⋪) 570 | ("\\ntrianglelefteq" ?⋬) 571 | ("\\ntriangleright" ?⋫) 572 | ("\\ntrianglerighteq" ?⋭) 573 | ("\\nvDash" ?⊭) 574 | ("\\nvdash" ?⊬) 575 | ("\\nwarrow" ?↖) 576 | ("\\odot" ?⊙) 577 | ("\\oint" ?∮) 578 | ("\\ominus" ?⊖) 579 | ("\\oplus" ?⊕) 580 | ("\\oslash" ?⊘) 581 | ("\\otimes" ?⊗) 582 | ("\\par" ?
) 583 | ("\\parallel" ?∥) 584 | ("\\partial" ?∂) 585 | ("\\perp" ?⊥) 586 | ("\\pitchfork" ?⋔) 587 | ("\\prec" ?≺) 588 | ("\\precapprox" ?≾) 589 | ("\\preceq" ?≼) 590 | ("\\precnapprox" ?⋨) 591 | ("\\precnsim" ?⋨) 592 | ("\\precsim" ?≾) 593 | ("\\prime" ?′) 594 | ("\\prod" ?∏) 595 | ("\\propto" ?∝) 596 | ("\\qed" ?∎) 597 | ("\\quad" ? ) 598 | ("\\rangle" ?〉) 599 | ("\\rbrace" ?}) 600 | ("\\rbrack" ?\]) 601 | ("\\rceil" ?⌉) 602 | ("\\rfloor" ?⌋) 603 | ("\\rightarrow" ?→) 604 | ("\\rightarrowtail" ?↣) 605 | ("\\rightharpoondown" ?⇁) 606 | ("\\rightharpoonup" ?⇀) 607 | ("\\rightleftarrows" ?⇄) 608 | ("\\rightleftharpoons" ?⇌) 609 | ("\\rightparengtr" ?〉) 610 | ("\\rightrightarrows" ?⇉) 611 | ("\\rightthreetimes" ?⋌) 612 | ("\\risingdotseq" ?≓) 613 | ("\\rtimes" ?⋊) 614 | ("\\sbs" ?﹨) 615 | ("\\searrow" ?↘) 616 | ("\\setminus" ?∖) 617 | ("\\sharp" ?♯) 618 | ("\\shortmid" ?∣) 619 | ("\\shortparallel" ?∥) 620 | ("\\sim" ?∼) 621 | ("\\simeq" ?≃) 622 | ("\\smallamalg" ?∐) 623 | ("\\smallsetminus" ?∖) 624 | ("\\smallsmile" ?⌣) 625 | ("\\smile" ?⌣) 626 | ("\\spadesuit" ?♠) 627 | ("\\sphericalangle" ?∢) 628 | ("\\sqcap" ?⊓) 629 | ("\\sqcup" ?⊔) 630 | ("\\sqsubset" ?⊏) 631 | ("\\sqsubseteq" ?⊑) 632 | ("\\sqsupset" ?⊐) 633 | ("\\sqsupseteq" ?⊒) 634 | ("\\square" ?□) 635 | ("\\squigarrowright" ?⇝) 636 | ("\\star" ?⋆) 637 | ("\\straightphi" ?φ) 638 | ("\\subset" ?⊂) 639 | ("\\subseteq" ?⊆) 640 | ("\\subseteqq" ?⊆) 641 | ("\\subsetneq" ?⊊) 642 | ("\\subsetneqq" ?⊊) 643 | ("\\succ" ?≻) 644 | ("\\succapprox" ?≿) 645 | ("\\succcurlyeq" ?≽) 646 | ("\\succeq" ?≽) 647 | ("\\succnapprox" ?⋩) 648 | ("\\succnsim" ?⋩) 649 | ("\\succsim" ?≿) 650 | ("\\sum" ?∑) 651 | ("\\supset" ?⊃) 652 | ("\\supseteq" ?⊇) 653 | ("\\supseteqq" ?⊇) 654 | ("\\supsetneq" ?⊋) 655 | ("\\supsetneqq" ?⊋) 656 | ("\\surd" ?√) 657 | ("\\swarrow" ?↙) 658 | ("\\therefore" ?∴) 659 | ("\\thickapprox" ?≈) 660 | ("\\thicksim" ?∼) 661 | ("\\to" ?→) 662 | ("\\top" ?⊤) 663 | ("\\triangle" ?▵) 664 | ("\\triangledown" ?▿) 665 | ("\\triangleleft" ?◃) 666 | ("\\trianglelefteq" ?⊴) 667 | ("\\triangleq" ?≜) 668 | ("\\triangleright" ?▹) 669 | ("\\trianglerighteq" ?⊵) 670 | ("\\twoheadleftarrow" ?↞) 671 | ("\\twoheadrightarrow" ?↠) 672 | ("\\ulcorner" ?⌜) 673 | ("\\uparrow" ?↑) 674 | ("\\updownarrow" ?↕) 675 | ("\\upleftharpoon" ?↿) 676 | ("\\uplus" ?⊎) 677 | ("\\uprightharpoon" ?↾) 678 | ("\\upuparrows" ?⇈) 679 | ("\\urcorner" ?⌝) 680 | ("\\u{i}" ?ĭ) 681 | ("\\vDash" ?⊨) 682 | 683 | ((lambda (name char) 684 | (concat "\\var" (downcase (match-string 1 name)))) 685 | "\\`GREEK \\([^- ]+\\) SYMBOL\\'") 686 | 687 | ("\\varprime" ?′) 688 | ("\\varpropto" ?∝) 689 | ("\\varsigma" ?ς) ;FIXME: Looks reversed with the non\var. 690 | ("\\vartriangleleft" ?⊲) 691 | ("\\vartriangleright" ?⊳) 692 | ("\\vdash" ?⊢) 693 | ("\\vdots" ?⋮) 694 | ("\\vee" ?∨) 695 | ("\\veebar" ?⊻) 696 | ("\\vert" ?|) 697 | ("\\wedge" ?∧) 698 | ("\\wp" ?℘) 699 | ("\\wr" ?≀) 700 | 701 | ("\\Bbb{N}" ?ℕ) ; AMS commands for blackboard bold 702 | ("\\Bbb{P}" ?ℙ) ; Also sometimes \mathbb. 703 | ("\\Bbb{R}" ?ℝ) 704 | ("\\Bbb{Z}" ?ℤ) 705 | ;;;("--" ?–) ; Disabled, this is really annoying most of the time 706 | ;;;("---" ?—) ; also because I use this input method as global. Alternative? 707 | ;; We used to use ~ for NBSP but that's inconvenient and may even look like 708 | ;; a bug where the user finds his ~ key doesn't insert a ~ any more. 709 | ("\\ " ? ) 710 | ("\\\\" ?\\) 711 | ("\\mathscr{I}" ?ℐ) ; moment of inertia 712 | ("\\Smiley" ?☺) 713 | ("\\blacksmiley" ?☻) 714 | ("\\Frowny" ?☹) 715 | ("\\Letter" ?✉) 716 | ("\\permil" ?‰) 717 | ;; Probably not useful enough: 718 | ;; ("\\Telefon" ?☎) ; there are other possibilities 719 | ;; ("\\Radioactivity" ?☢) 720 | ;; ("\Biohazard" ?☣) 721 | ;; ("\\Male" ?♂) 722 | ;; ("\\Female" ?♀) 723 | ;; ("\\Lightning" ?☇) 724 | ;; ("\\Mercury" ?☿) 725 | ;; ("\\Earth" ?♁) 726 | ;; ("\\Jupiter" ?♃) 727 | ;; ("\\Saturn" ?♄) 728 | ;; ("\\Uranus" ?♅) 729 | ;; ("\\Neptune" ?♆) 730 | ;; ("\\Pluto" ?♇) 731 | ;; ("\\Sun" ?☉) 732 | ;; ("\\Writinghand" ?✍) 733 | ;; ("\\Yinyang" ?☯) 734 | ;; ("\\Heart" ?♡) 735 | ("\\dh" ?ð) 736 | ("\\DH" ?Ð) 737 | ("\\th" ?þ) 738 | ("\\TH" ?Þ) 739 | ("\\lnot" ?¬) 740 | ("\\ordfeminine" ?ª) 741 | ("\\ordmasculine" ?º) 742 | ("\\lambdabar" ?ƛ) 743 | ("\\celsius" ?℃) 744 | ;; by analogy with lq, rq: 745 | ("\\ldq" ?\“) 746 | ("\\rdq" ?\”) 747 | ("\\defs" ?≙) ; per fuzz/zed 748 | ;; ("\\sqrt[3]" ?∛) 749 | ("\\llbracket" ?\〚) ; stmaryrd 750 | ("\\rrbracket" ?\〛) 751 | ;; ("\\lbag" ?\〚) ; fuzz 752 | ;; ("\\rbag" ?\〛) 753 | ("\\ldata" ?\《) ; fuzz/zed 754 | ("\\rdata" ?\》) 755 | ;; From Karl Eichwalder. 756 | ("\\glq" ?‚) 757 | ("\\grq" ?‘) 758 | ("\\glqq" ?„) ("\\\"`" ?„) 759 | ("\\grqq" ?“) ("\\\"'" ?“) 760 | ("\\flq" ?‹) 761 | ("\\frq" ?›) 762 | ("\\flqq" ?\«) ("\\\"<" ?\«) 763 | ("\\frqq" ?\») ("\\\">" ?\») 764 | 765 | ("\\-" ?­) ;; soft hyphen 766 | 767 | ("\\textmu" ?µ) 768 | ("\\textfractionsolidus" ?⁄) 769 | ("\\textbigcircle" ?⃝) 770 | ("\\textmusicalnote" ?♪) 771 | ("\\textdied" ?✝) 772 | ("\\textcolonmonetary" ?₡) 773 | ("\\textwon" ?₩) 774 | ("\\textnaira" ?₦) 775 | ("\\textpeso" ?₱) 776 | ("\\textlira" ?₤) 777 | ("\\textrecipe" ?℞) 778 | ("\\textinterrobang" ?‽) 779 | ("\\textpertenthousand" ?‱) 780 | ("\\textbaht" ?฿) 781 | ("\\textnumero" ?№) 782 | ("\\textdiscount" ?⁒) 783 | ("\\textestimated" ?℮) 784 | ("\\textopenbullet" ?◦) 785 | ("\\textlquill" ?⁅) 786 | ("\\textrquill" ?⁆) 787 | ("\\textcircledP" ?℗) 788 | ("\\textreferencemark" ?※) 789 | 790 | ;;; ADDED BY ME 791 | ("\\bitcoin" ?฿) 792 | ("\\cmd" ?⌘) 793 | ("\\shift" ?⇧) 794 | ("\\alt" ?⎇) 795 | ("\\option" ?⌥) 796 | ("\\return" ?⏎) 797 | ("\\tab" ?↹) 798 | ("\\backspace" ?⌫) 799 | ("\\delete" ?⌦) 800 | ("\\plusminus" ?±) 801 | ("\\_1" ?₁) 802 | ("\\_2" ?₂) 803 | ) 804 | 805 | ;;; mytext-inputmethod.el ends here 806 | --------------------------------------------------------------------------------