Удивительная вещь, в основном я пользуюсь для управления заданиями GNOME GTG синхронизированный через Dropbox(бойся облаков) и моё желание покопаться в org-mode было чисто из-за того, что GNOME GTG неудобен для мелких заданий, скорее для крупных… в день длинной. Но чем больше я узнавал про org-mode тем больше в нем зависал, списки, код, чекбоксы, создание таблиц и графиков.
Главный принцип — никаких сложных форматов и бинарных частей, все в plain-text и это подкупает.
Table of Contents
- Проверка возможностей org-mode
Проверка возможностей org-mode
Краткая справка по командам а также основной сайт со всеми инструкциями.
Статьи на русском:
Проверить возможности подуровневых списков
Ну тут и рассказывать, ставиш * в начале строки, после неё пишеш название, чем больше звездочек, тем больше глубина списка
* Главный уровень ** Подуровень *** Подподуровень
Назначение заданий
Всё делается комбинацией C-c C-t, с начала устанавливается TODO, после повторного нажатия, задача считается закрытой. Следующее нажатие C-c C-t вернет все на круги своя.
** DONE Проверить возможность назначения и выполнения заданий CLOSED: [2013-07-31 Ср. 22:40]
Проверить почему не ставиться дата окончания задания
Потому как надо прописать в коде .emacs следующие настройки
;;Временная метка при закрытии задания (setq org-log-done t)
Как проставить ссылки в документе
Ну вот ссылка на наш сайт ссылка на статью по теме , формат указан ниже, также можно заметить что интернет ссылки, подхватываются автоматически, а ссылки на файлы дожны начинаться с заветного слова file
[[ссылка][описание]] или альтернативно [[ссылка]] [[file//адрес абсолютный или относительный]]
Вставка картинок
Попробуем вставить сюда картинку кодом
#+CAPTION: This is Science Bastard #+LABEL: fig:SED-AVATAR [[file://../../avatar/docsleepless.jpg]]
а отобразить её в Emacs можно с помощью включения M-x iimage-mode
Figure 2: This is Science Bastard
Метка Label нужна для ссылок при экспорте, наример при экспорте в LaTeX
Назначение заданий по календарю
Делается с помощью нажатия C-c C-s перемещение по календарю осуществляется стрелками при зажатой клавише Shift,а предел выполнения по комбинации C-c C-d
*** Пример назначенного задания SCHEDULED: <2013-04-07 Вс.>
Чекбоксы
Состоят из — [] ,иногда для количественной оценки вставляют [/]
или для процентой [%]
, вставляют сразу перед списком чекбоксов.
*** Обычные(пример чикбоксов) [0/3] - [ ] Инна - [ ] Маша - [ ] Даша
Простановка нужного чекбокса осуществляется клавишами C-c C-c в данной строке.
*** Процентные чекбоксы:[75%] - [X] 1 - [X] 2 - [X] 3 - [ ] 4
Вставка LaTeX фрагментов
Это очень круто, надо поставить только пакет CDLaTeX http://staff.science.uva.nl/~dominik/Tools/cdlatex/cdlatex.el или с помощью пакетного менеджера MELPA, а дальше все просто, для экспорта в html используется mathjax Θ Вот и вставили символ посреди текста, моё мнение что это лучше чем генерация картинок из формул, хотя такая опция тоже есть.
GUI Emacs может автоматически преобразовывать формулы и символы после ввода комбинации C-c C-x \, повторный ввод, отменяет этот режим.
Одна формула \begin{equation} \frac{1}{f}=\sqrt[3]{\mu RT} \end{equation} Две формулы #+HTML: [lаtex] \begin{eqnarray} pV&=\frac{m}{\mu} RT\\ pV&=\frac{m}{\mu} RT \end{eqnarray} #+HTML: [/lаtex]
Одна формула
$latex \frac{1}{f}=\sqrt[3]{\mu RT} $
Две формулы
\( \begin{eqnarray} pV&=\frac{m}{\mu} RT\\ pV&=\frac{m}{\mu} RT \end{eqnarray}\)
Экспорт формул в WordPress
этот кусок нужен для экспорта в данный блог
#+HTML: [lаtex] код #+HTML: [/lаtex]
Автоматическое преобразование и борьба с ним
Согласно справке следующие символы ‘^’,’_’,'{}’ автоматически подвергаются преобразованию.
Локальное решение поместить в начале org файла
# это полностью отключит преобразование #+OPTIONS: ^:nil #+OPTIONS: _:nil # это будет преобразовывать всечто в скобках #+OPTIONS: ^:{} #+OPTIONS: _:{} W^T_F W^{T}_{F}
W^T_F WTF
для радикальных мер можно задать эти параметры в управляющем файле .emacs
(setq org-export-with-sub-superscripts nil) (setq org-use-sub-superscripts '{})
Вставка програмного кода и его подсветка
Собственно проще простого.
http://orgmode.org/manual/Working-With-Source-Code.html#Working-With-Source-Code
#+begin_src python import os a=5 print "Hello Megan" #+end_src
Получаем
import os a=5 print "Hello Megan"
Как видно org-mode самостоятельно разбирается с подсветкой синтаксиса
Немного разобрался как вставлять код самого org-mode это конструкцмия begin\end_src org , но помогает не всегда Поэтому иногда я прятал код в конструкции begin\end_example .
Важным также будет заметить, что без настроек org-mode использует для экспорта ТЕКУЩУЮ подсветку синтаксиса, при этом не перенося фон и как результат темные темы экспортируются в невидимое нечто.
Вставка графов
По мимо того что можно вставлять код, также можно его и выполнять и например получать графы http://doc.norang.ca/org-mode.html#Graphviz прописать настройки в .emacs файле
;; этот кусок конфига отвечает за ;; выполнение кода и генерацию изображений ;; в org-mode (org-babel-do-load-languages (quote org-babel-load-languages) (quote ((emacs-lisp . t) (dot . t) (ditaa . t) (R . t) (python . t) (ruby . t) (gnuplot . t) (clojure . t) (sh . t) (ledger . t) (org . t) (plantuml . t) (latex . t))))
при экспорте(С-c C-e) система спросить Вас выполнять ей код или нет, пока пробовал только графы , хотя есть опции работы с UML диаграммами, Gnuplot и прочим. а ditaa вообще бездонный океан
Пример кода
#+begin_src dot :file ../pics/some_dot_filename.png :cmdline -Kdot -Tpng digraph G { size="8,6" ratio=expand edge [dir=both] plcnet [shape=box, label="PLC Network"] subgraph cluster_wrapline { label="Wrapline Control System" color=purple subgraph { rank=same exec sharedmem [style=filled, fillcolor=lightgrey, shape=box] } edge[style=dotted, dir=none] exec -> opserver exec -> db plc -> exec edge [style=line, dir=both] exec -> sharedmem sharedmem -> db plc -> sharedmem sharedmem -> opserver } plcnet -> plc [constraint=false] millwide [shape=box, label="Millwide System"] db -> millwide subgraph cluster_opclients { color=blue label="Operator Clients" rankdir=LR labelloc=b node[label=client] opserver -> client1 opserver -> client2 opserver -> client3 } } #+end_src
Ведение статьи и экспорт в блоги
В основном можно почитать тут
Собственно это , то что больше всего меня привлеклов org-mode, да он проигрывает LaTeX в чем-то, в чем-то не так удобен (для меня) в назначении заданий, но вот постинг, причем с передачей картинок, подсветки исходного кода ,автоматическим составлением содержания — подкупил, не говоря уже об экспорте .odt, LaTeX и автоматическое создание презентаций из org-mode в beamer
Перенос формул
Тут как то связано с парсером mathjs он настроен на открытые и закрытые скобки , надо смотреть. Пока обхожусь вставкой
#+HTML: [lаtex] \begin{eqnarray} pV&=\frac{m}{\mu} RT\\ pV&=\frac{m}{\mu} RT \end{eqnarray} #+HTML: [/lаtex]
Управляющие слова
#+TITLE: Org-mode Emacs или как перестать верить в GUI #+TAGS: org-mode, emacs, wordpress, blog #+CATEGORY: Обзоры #+PERMALINK: org-mode-tutorial #+STARTUP: showall #+STARTUP: indent #+STARTUP: hidestars
Вставка содержания в нужное место
Вот пример о том как разместить текст до содержания.
#+OPTIONS: toc:nil #+OPTIONS: title:nil #+BEGIN_ABSTRACT #+ATTR_HTML: align="middle" ../pics/orgmode_c_precents.png #+LABEL: fig:ORG_MODE Главный принцип - никаких сложных форматов и бинарных частей, все в plain-text и это подкупает. #+HTML: <!--more--> #+END_ABSTRACT #+TOC: headlines all
Ошибки с содержанием в org2blog
Заключение
Это мой маленький обзор, здесь я много не коснулся, не рассказал про учет заданий и назначение их по расписанию, расстановку тегов. Также совсем не рассказал про таблицы и как их создавать в org-mode .
Вопросов ещё вагон и маленькая тележка… но уже существующими возможностями вполне можно пользоваться.
- Также можете прочесть руководство о том как я готовил Emacs
- UPD Здесь я немного написал об Org-mode Agenda и о том как из неё извлекать данные во вне.