:var
:results
:file
:dir
とリモートでの実行
:exports
:tangle
:mkdirp
:comments
:no-expand
:session
:noweb
:cache
:sep
:hlines
:colnames
:rownames
:shebang
:eval
このマニュアルは,Org-mode 7.5に対応しています.
Copyright © 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being “A GNU Manual,” and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled “GNU Free Documentation License.”(a) The FSF's Back-Cover Text is: “You have the freedom to copy and modify this GNU manual. Buying copies from the FSF supports it in developing GNU and promoting software freedom.”
This document is part of a collection distributed under the GNU Free Documentation License. If you want to distribute this document separately from the collection, you can do so by adding a copy of the license to the document, as described in section 6 of the license.
--- ノードリストの細目 ---
まえがき
ドキュメントの構造
テーブル
スプレッドシート
ハイパーリンク
内部リンク
TODOアイテム
TODOキーワードの拡張的な使い方
進行記録
タグ
プロパティ(属性)とカラム(列)
カラムビュー
カラムの定義
日付と時刻
タイムスタンプの作成
デッドラインとスケジュール
作業に費やした時間の計測
キャプチャ/再配置/アーカイブ
キャプチャ
キャプチャテンプレート
アーカイブ
アジェンダビュー
アジェンダに組み込まれているビュー
表示とソート
カスタムアジェンダビュー
リッチエクスポートのためのマークアップ
構造化されたマークアップの要素
Embedded LaTeX
エクスポート
HTMLのエクスポート
LaTeXとPDFのエクスポート
DocBookエクスポート
公開
設定
設定例
ソースコードとの連携
ヘッダー引数
ヘッダー引数の利用
ヘッダー引数の指定
その他
他のパッケージとの関係
ハッキング
任意のシンタックスによる表やリスト
MobileOrg
Org-modeは,高速かつ効率的に動作するプレーンテキストのシステムを用いて,ノートを保存したり,TODOリストを管理したり,プロジェクトを計画するためのEmacsモードです.
プレーンなテキスト形式でリストやプロジェクトに関する情報を含む分散したノートから,Org-modeは組織的に結びついたタスク群を生成します.Org-modeはアウトラインモードを元に実装されているます.そのため,大きなファイルの内容をわかりやすく構造化した状態に維持できます.また,必要な部分だけを表示する機能と文書構造の編集機能がツリー形式の文書編集を手助けします.ビルトインされたテーブルエディタで簡単に表を作成できます.Org-modeは,TODOアイテム,デッドライン,タイムスタンプ,そして,スケジュール管理に対応しています.スケジュール管理はタスクを動的にアジェンダへ蓄積します.アジェンダはEmacsのcalendarとdiaryの多くの機能を利用し,スムーズに統合しています.プレーンテキストで記述されるURLに似たリンクは,ウェブサイト,メール,ネットのメッセージ,BBDBのデータ,そして,プロジェクトに関連するどのようなファイルとも結びついています.ノートの印刷や共有のために,構造化されたアスキー形式のファイルやHTMLのファイル,または(TODOとアジェンダアイテムに限り)iCalendar形式のファイルへOrg-modeのファイルをエクスポートできます.また,リンクの張られたウェブページ一式を公開するツールとしても役立ちます.
見出しとなるノードにメタデータを追加することで,Org-modeはプロジェクトを計画する環境となります.そのメタデータに基づくことでクエリの中から特定のエントリーを抽出でき,動的なagenda viewsを生成できます.
Org-modeはOrg-Babel環境を含んでいて,次のようなことが可能になります.すなわち,ソースコードブロックが組み込まれたファイルで作業でき,コードを評価,文書化,そして,文芸的プログラミングを実践できます.
Org-modeの自動的かつ文脈を読み取る表編集機能は,表計算ソフトと互換性があり,マイナーモードのOrgtblを動かすことでどのようなメジャーモードにも組み込めます.表を変換することで,たとえばLaTeXの表のように任意のファイルタイプで表を維持することができます.構造編集とリスト生成の機能は,マイナーモードのOrgstructによってOrg-modeの外部で利用できます.
Org-modeは単純なものは単純なまま保持します.初めて起動したOrg-modeは,わかりやすく,簡単に使えるアウトライナーのように感じるはずです.Org-modeに複雑さはなく,それでいて,必要に応じて数多くの機能を利用できます.Org-modeはツールボックスであり,様々な方法で,そして様々な目的で利用できます.例えば,具体的には以下のようなものです.
• ツリーの表示状態の切り替えと構造編集を可能にしたアウトラインの拡張 • 構造化されたノートを取るための、テキスト整形の仕組みと表編集機能 • TODOリストの編集機能 • 締切日とスケジュールの管理機能を備えた完全なアジェンダと予定表 • Devid Allen 氏のGTDシステムを実行するための環境 • シンプルなハイパーテキストシステム(HTMLとLaTeXエクスポートを含む) • 内部リンクで構成されたウェブページ群を生成するための公開ツール • 文芸的プログラミングのための環境
最新バージョンへのリンクがある、Org-modeのためのウェブサイトがあります.関連情報,よくある質問(FAQ),または,チュートリアルなどへのリンクも集約されています.http://orgmode.org で公開されています.
このマニュアルのバージョン7.3はpaperback book from Network Theory Ltd.で手に入ります.
重要: もしあなたが,Emacsの一部として組み込まれたOrg-modeを利用している,もしくは,XEmacsのパッケージを利用している場合には,このセクションを飛ばして直接アクティベーションに移動してください.あなたのEmacsに含まれているOrg-mode(存在する場合)のバージョンを見るためには,M-x load-library RET orgを実行してから,M-x org-versionを実行してください.
すでにインターネットからOrg-modeをダウンロードしているならば,.zipか.tarもしくはGitアーカイブかを問いませんが,以下の手順に沿ってインストールしてください.まず,配布されたOrg-modeのディレクトリを解凍し,そこに移動します.次に,Makefileの最初のセクションを編集します.Emacsバイナリの名前を記入しなければなりません.たとえば,emacsもしくはxemacsのような名前です.最後に,ローカルのLispとInfoファイルが保存されているディレクトリへのパスを記入します.システムディレクトリへのアクセス権を持っていないならば,lisp(訳注:解凍したディレクトリの直下にあるサブディレクトリ)をEmacsのロードパスに加えることで,配布されたOrg-modeのディレクトリを使って,簡単にOrg-modeを動かせます.このようにするためには,.emacsに次の行を加えてください.
(setq load-path (cons "~/path/to/orgdir/lisp" load-path))
もしcontribサブディレクトリのコードを使うならば,このディレクトリについても同様のステップを実行します.
(setq load-path (cons "~/path/to/orgdir/contrib/lisp" load-path))
そして,シェルコマンドを使ってLispファイルをバイトコンパイルします.
make
解凍したOrg-modeファイルがあるディレクトリでOrg-modeを動かすならば,これでインストール完了です.もしOrg-modeをシステムディレクトリにインストールしたいならば,管理者権限で次のコマンドを実行します.
make install
INFOファイルのインストール方法はシステムに依存します.これは,install-infoプログラムの違いに原因があります.Debianであれば,install-infoがINFOファイルを正しいディレクトリにコピーし,INFOディレクトリファイル(訳注:dirのこと)を変更します.その他の多くのシステムでは,各ファイルが別々に正しいディレクトリにコピーされる必要があります.そして,install-infoがディレクトリファイルだけを修正します.システムのドキュメントを読んで,次のどちらのコマンドを必要とするかを調査してください.
make install-info make install-info-debian
最後に,以下の一行を.emacsに追加します.これは,Org-modeの開始時には読み込まれないファイルにある関数を,Emacsが自動的に読み込むために必要です.
(require 'org-install)
次節に解説されているOrg-modeのアクティベーションを忘れずに実行してください.
拡張子が.orgのファイルで必ずOrg-modeを利用することを確実にするために,次の行を.emacsに追加します.
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
Org-modeのバッファは,フォントロックが有効になっている必要があります.これはEmacsの標準の設定です1.
Org-modeの4つのコマンド(org-store-link, org-capture, org-agenda, org-iswitchb)は,グローバルキーを割り当てて使いやすくするべきでしょう(つまり,Org-modeのバッファだけではなく,Emacsでいつでも使えるようにします.).これらのキーバインドとして以下を割り当てることをお勧めします.自分の環境に応じて適当にキーを変更してください.
(global-set-key "\C-cl" 'org-store-link) (global-set-key "\C-cc" 'org-capture) (global-set-key "\C-ca" 'org-agenda) (global-set-key "\C-cb" 'org-iswitchb)
ここまでの設定を用いると,拡張子が‘.org’のファイルのすべてがOrg-modeに設定されます.別の方法として,ファイルの一行目に次のような一文を追加することでも,Org-modeに設定できます.
MY PROJECTS -*- mode: org; -*-
この設定が書き込まれたバッファは,ファイルの名前とは無関係にOrg-modeが有効になります.変数org-insert-mode-line-in-empty-file
も確認してください.
Org-modeの多くのコマンドは,リージョンがアクティブならば、そのリージョンに対して動作します.アクティブなリージョンをハイライトするためには,transient-mark-mode
(XEmacsではzmacs-regions
)を有効にする必要があります.Emacs23では標準で有効になっていますが,Emacs22では次のように自分で設定する必要があります.
(transient-mark-mode 1)
もしtransient-mark-mode
が好みでないならば,マウスを利用した領域の選択で,アクティブなリージョンを指定できます.もしくは,カーソルを移動する前にC-<SPC>を二回押します.
Org-modeで問題を発見した場合,あるいは質問や意見,アイディアがある場合には,Org-modeのメーリングリストemacs-orgmode@gnu.orgへメールしてください.あなたがメーリングリストのメンバーでないと,投稿したメールは管理者が承認した後にメーリングリストへ転送されます2.
バグをレポートする時は,まず始めに最新バージョンのOrg-modeを利用して該当のバグが再現されるか試してください.古いバージョンを利用している場合,すでにそのバグが修正されている可能性が高いです.バグの再現性が確認できたならば,レポートを準備して可能な限り多くの情報を提供してください.具体的には,Emacsのバージョン情報(M-x emacs-version <RET>)とOrg-modeのバージョン情報(M-x org-version <RET>),また,Org-modeに関連する.emacsの設定をバグレポートに記載してください.このようなバグレポートの形式を守るための最も簡単な方法は,次のコマンドを利用することです.
M-x org-submit-bug-report
この関数を実行すると,Emacsのメールバッファに必要なテンプレートを書きこんでくれるので,バグの説明だけを書き加えればよい状態になります.Emacsを利用してメールを送信しない場合は,テンプレートの内容をメールクライアントにコピー&ペーストしてください.
もしOrg-modeを使っていてエラーが発生したら,バックトレースがとても役立ちます(作り方は次節を参照してください).しばしば例となる小さなファイルが問題解決の手助けになります.それらには次のような明瞭な情報を含んでいます.
Org-modeを利用していて理解できないメッセージのエラーが発生したら,バグを発見した可能性があります.エラーを報告する最良の方法は,すでに説明したバグレポートの書式に加えて,backtraceを提供することです.バックトレースは,ビルトインされたデバッガによるエラーの発生箇所とどのように発生したかについての情報を含みます.以下に,有用なバックトレースを生成する手順を示します.
C-u M-x org-reload RET
もしくは,Org -> Refresh/Reload -> Reload Org uncompiled
をメニューから選択します.
Options
から,Enter Debugger on
Error
を選択します(XEmacsでは,このオプションはTroubleshooting
サブメニューにあります).
Org-modeは,3種類のキーワードを使います.TODOキーワード,タグ,プロパティです.このマニュアルでは次のように植字を使い分けます.
TODO
WAITING
boss
ARCHIVE
Release
PRIORITY
このマニュアルでは,Org-modeの機能を利用するためのキーバインドと,対応するコマンドの両方を表記します.Org-modeは,しばしば異なる関数に対して同じキーバインドを使います(これはコマンドを利用する状況に依存しています).そのようなキーバインドが割り振られたコマンドには,org-metaright
のような一般的な名称があります.このマニュアルでは,可能な限り一般的なコマンドを用いて内部的に呼び出される関数の名称を提示します.例えば,ドキュメントの構造についての章では,M-<right>はorg-do-demote
を呼び出すように表記します.一方で,テーブルについての章では,org-table-move-column-right
を呼び出すように表記します.
もし望むならば,org.texiにあるcmdnames
フラグの設定を外すことで,コマンドの名称を表示しないようにマニュアルをコンパイルできます.
Org-modeは、Outline modeをベースとしており、ドキュメントの構造を編集するためにフレキシブルなコマンドを用意しています。
Org-modeはoutline modeの上で実行されます。アウトラインによって階層構造で体系化されたドキュメントが作られ、(少なくとも私にとっては)それによって、ノートや思考の最高の表現方法となります。ドキュメントの大きな部分を折りたたむ(隠す)ことによって、ドキュメントの骨格のみを表示したり、現在、作業している部分を表示したりして、ドキュメントの構造の全体を見渡すことができるのです。Org-modeは、全体を表示したり/隠したりする機能を、たったひとつのコマンド、org-cycle、それは<TAB>キーと結びついていますが、に圧縮することにより、アウトラインの使用を大変単純なものにしています。
見出しは、アウトラインのツリーの構造を定義します。Org-modeの見出しは、左のマージン3上にある1つもしくはそれ以上の数の「*」で始まります。例えば。
* Top level headline ** Second level *** 3rd level some text *** 3rd level more text * Another top level headline
たくさんの「*」があるとうるさく感じ、空白のあとに、見出しの始まりとしてのひとつの「*」があるという形式のアウトラインを好む人もいるでしょう。このような形式の設定について、アウトラインの「*」を取り除く,で説明しています。
最後のサブツリーの直後の空白行は、そのサブツリーの一部と見なされます。そのためサブツリーが折り畳まれたときには、隠れてしまいます。しかしながら、すくなくとも2行の空白行を残したときは、折り畳んだビューを構造化するために、サブツリーを折り畳んだあとも、1つの空白行は残ったままになります。この動作を修正したいときは、org-cycle-separator-lines
を参照してください。
アウトラインによって、バッファの中で、テキストの一部を隠すことが可能となります。Org-modeはバッファ内での表示の状況を変更するために、<TAB>とS-<TAB>とに結びついた2つのコマンドを使用します。
org-cycle
),-> FOLDED -> CHILDREN -> SUBTREE --. '-----------------------------------'
これを動作4 させるためにはカーソルが見出しの上に置かれている必要があります。カーソルがバッファの一番上の行にあり、そして最初の行が見出しでない場合は、<TAB>が実際にグローバルな切り替えが実行されます。(下記を参照)5 前置引数(C-u <TAB>)をつけて呼び出したときは、グローバルな切替が実行されます。
org-global-cycle
)
,-> OVERVIEW -> CONTENTS -> SHOW ALL --. '--------------------------------------'
S-<TAB>がNという数字のついた前置引数と一緒に呼び出されたときは、レベルN以上の見出しがCONTENTSビューに表示されます。テーブルの中では、S-<TAB>は前のフィールドにジャンプするということに注意してください。
show-all
)org-reveal
)
カレントエントリーや、下の見出しや上の階層を表示して、その場所でのコンテクストを表示する。ツリーの抽出コマンド(see ツリーの抽出)やアジェンダのコマンド(see アジェンダのコマンド)によって表示された場所の周辺で作業をするのに役立ちます。前置引数をつけることで、各階層での同一レベルの見出しを表示する。前置引数を2重に使った場合は、親のサブツリー全体を表示する。
show-branches
)org-tree-to-indirect-buffer
)
間接的なバッファ6.
の中にあるカレントのサブツリーを表示する。Nという数値付きの前置引数をつけると、N段階上の階層に上がるがそのツリーを捉える。もしもNがマイナスの値ならば、多くの階層まで遡る。C-uの前置引数をつけたならば、それ以前に使用された間接的なバッファを削除してはならない。
EmacsであるOrg-modeファイルを最初に開いたときに、グローバルな状態としては、概観のビューで開くように設定されています。すなわち、最上位の階層の見出しのみが表示されています。これは、org-startup-folded
変数によって設定されています。つまり、以下に示す行をバッファ上のどこかに追加することによって、ファイル毎に設定することができます。
#+STARTUP: overview #+STARTUP: content #+STARTUP: showall #+STARTUP: showeverything
さらに、どのエントリーも‘VISIBILITY’属性(see プロパティとカラム)を持っており、それを受けて適用された表示性をしめすでしょう。この属性のために許されている値は、folded
、children
、content
およびall
です。
org-set-startup-visibility
)
そのバッファにおける起動時の表示条件に戻ります。すなわち、起動時のオプションで要求されている内容、そして個々のエントリーの中で設定されている‘VISIBILITY’の属性に。
以下のコマンドはバッファの中で他の見出しにジャンプするものです。
outline-next-visible-heading
)outline-previous-visible-heading
)
前の見出しへ。C-f
org-forward-same-level
)
次の同一階層の見出しへ。C-b
org-backward-same-level
)
前の同一階層の見出しへ。C-u
outline-up-heading
)
一つ上の階層の見出しに戻る。C-j
org-goto
)
現在のアウトラインの表示状態を変更することなく、別の場所にジャンプする。現在のバッファの中で文書の構造を表示し、そこではあなたの目的の場所を見つけるために以下のようなキーを使用することができます。
<TAB> 表示を切り替える。
<down> / <up> 次の/前の表示されている見出しへ。
<RET> この場所を選択する。
/ ツリーの抽出による検索を実行する
もしもorg-goto-auto-isearch
を停止したときには以下のキーが動作する
n / p 次の/前の表示されている見出しへ。
f / b 次の/前の同じ階層の見出しへ。
u ひとつ上の階層へ。
0-9 数値の変数。
q 停止
org-insert-heading
)org-insert-heading-respect-content
)org-insert-todo-heading
)org-treat-insert-todo-heading-as-state-change
変数も同じように参照してください。org-insert-todo-heading-respect-content
)org-cycle
)org-do-promote
)org-do-demote
)org-promote-subtree
)org-demote-subtree
)org-move-subtree-up
)org-move-subtree-down
)org-cut-subtree
)org-copy-subtree
)
org-paste-subtree
)
キルリングからサブツリーを貼り付ける。これによると、貼り付けるポジションにうまく合わせて、ツリーに適合するようにサブツリーの階層を調整する。数字付きの前置引数をつけるか、‘****’のような星印のついた見出しの後に貼り付けることによって、貼り付ける階層を指定することができる。
org-yank
)org-yank-adjusted-subtrees
とorg-yank-folded-subtrees
という変数によって、Org-modeの内部のyank
コマンドは、賢い方法で、C-c
C-x
C-yと同等のコマンドを用いて、折り畳まれているサブツリーを貼り付けることができるでしょう。デフォルトの設定では、階層の調整は行われませんが、貼り付けられたツリーは、既に表示されているテキスト受け入れない限り、折り畳まれたままでしょう。このコマンドに対して何らかの前置引数をつけることで、渡されたプレフィックスに応じて、通常のyank
を実行させることになります。通常のyankを実行する良い方法はC-u
C-yです。yankの後でyank-pop
を使うと、階層の調整や折り畳みをすることなく、それ以前にkillしたアイテムをプレーンにyankします。C-x
c
org-clone-subtree-with-time-shift
)
たくさんのそれと同じ兄弟のコピーを作成することで、サブツリーの複製を作ります。たくさんのコピーの作成を実行したいならば、そのエントリーに含まれているタイムスタンプも調整されるように指定することもできます。この機能は便利です。例えば、準備している一連の講義に関連した沢山のタスクを作成するという場合のように。もっと詳細な情報が必要ならば、org-clone-subtree-with-time-shift
コマンドの解説を参照してください。C-w
org-refile
)
エントリーやリージョンを別の場所に保管します。See ノートの再配置.^
org-sort-entries-or-items
)
同じ階層のエントリーを並び替えられます。アクティブなリージョンがあるときに、そのリージョンにあるすべてのエントリーは順番に並びます。もう一方で、カレントの見出しの子供の階層も並び替えられます。並び替えの形式をコマンドで入力します。すなわちアルファベット順、数字順、時間順(実行するために参照される作成日、予定日、期限などの最初のタイムスタンプ)、優先順位順、TODOキーワード順(設定の中で定義された一連のキーワードの中で)あるいは属性の価値の順に並べ替えるために。並び順を反転することも同様に可能です。並び替えのキーを拡張するために自分自身の関数を用意することもできます。C-u
C-uという二重の前置引数を使用すると、複製されたエントリーは削除されます。s
org-narrow-to-subtree
)
カレントのサブツリーのためにバッファをナローイングします。b
org-narrow-to-block
)
カレントのブロックのためにバッファをナローイングします。widen
)org-toggle-heading
)アクティブなリージョンがあるときには(Transient Mark mode)、そのリージョンのすべての見出しの階層を上げたり、下げたり作用することができる。あるリージョンの見出しを選択するためには、行の先頭にポイントを置いてマークし、最初の見出しの先頭でマークし、変更する最後の見出しの次の行にポイントを置くのが良い方法である。カーソルがテーブル (see テーブル)の中にあるときに、Meta-Cursorキーは異なる機能性を持つことに注意してください。
Org-modeの重要な特徴の一つに、あるアウトラインのツリーに含まれている選択された情報のためにsparse trees(ツリーの抽出)を作ることができるということがあります。そのため文書全体が最大限畳まれていても、その8 上に見出し構造に沿って表示することができるのです。試してみて、それがどんなに素早く動作するかを見てください。
Org-modeにはそういうツリーを作成するためのいくつものコマンドがあります。これらのコマンドの全てはディスパッチャーを通してアクセスすることができます。
org-sparse-tree
)org-occur
)next-error
)
そのバッファの中の次のツリーの抽出部分にジャンプする。M-p
previous-error
)
そのバッファの前のツリーの抽出部分にジャンプする。
特定の検索文字列によるツリーの抽出を何度も使用するために、org-agenda-custom-commands
変数を使って特定のツリーの抽出に、素早くキーボードからアクセスする定義をすることができる。これらのコマンドはアジェンダディスパッチャー(see アジェンダのコマンド選択)を通してアクセスすることができる。例えば。
(setq org-agenda-custom-commands '(("f" occur-tree "FIXME")))
‘FIXME’という文字列にマッチするツリーの抽出するためのショートカットとして、C-c a fを定義します。
他のツリーの抽出のためのコマンドは、TODOキーワード、タグ、あるいは属性に基づいて見出しを選択するもので、このマニュアルの後の部分で議論されるだろう。
抽出したツリーを印刷するためには、Emacsのps-print-buffer-with-faces
というコマンドを使用することができます。それを使うと文書10のうちの表示されていない部分は印刷されません。あるいは、文書の見えている部分をエクスポートするために、C-c
C-e vコマンドを使用し、エクスポートしたファイルを印刷することができます。
アウトラインのエントリーの中に、手動でフォーマットしたリストによって、別の構造化された項目を追加することができます。そのリストを使って、チェックボックス(see チェックボックス)のリストを作成する方法が提供されています。Org-modeではそういうリストの編集をサポートしており、そしてすべてのエクスポート機能(see エクスポート)はそれらのリストの構文を解析しフォーマット化することができます。
Org-modeでは、数字付きのリスト、順序のないリスト、そして記述リストを解釈します。
org-alphabetical-lists
を設定することによって、‘1.’や‘1)’13のように。もしもあなたがリストをこれら以外の値(e.g.
20)で始めたいと思ったら、そのアイテムの最初の文字を[@20]
14
のような文字で始めます。
同じリストに属しているアイテムは、最初の行と同じインデントでなければならない。特に、もしも順番のついたリストが‘10.’番に到達したら、その2つの数字の番号は、そのリストの中の他の番号とおなじく左寄せで書かれなければなりません。アイテムは、次の行が、そのbullet/数字よりも少ないか等しいインデントの場合の前までで終わります。
リストを終わらせるために2つの方法15
が用意されています。ひとつのリストは、それぞれのアイテムが終了すると終わります。そのことは、トップのレベルのアイテムよりも少ないか等しいインデントの行の前までであるということを意味しています。また、空行16
が2行あると終了します。その場合、すべてのアイテムが閉じていることになります。うまく管理するには、org-list-end-regexp
の中のどれかのパターンの設定でリストを終わることです。事例を紹介します。
** ロードオブザリング 渡しの大好きなシーンは (この順で) 1. the Rohirrimの攻撃 2. Eowynが魔法使いの王と一緒に戦うところ + これはもともと本を読んだときも私のお気に入りのシーンだった + 私はMiranda Ottoが本当に好きだ。 3. Peter JacksonがLegolasに撃たれる - DVDだけで そのとき彼は本当に面白い顔をした。 しかし、結局、映画全体を通して個性的なシーンがない。 この映画での重要な俳優は: - Elijah Wood :: Frodo役 - Sean Austin :: Sam役, Frodoの友達。私は今でもThe Goonies の中でMikey Walsh役として素晴らしい役回りを演じたことを覚えている。
Org-modeでは、これらのリストを正しく17取り扱うために、埋め込んだり包んだりするコマンドをチューニングし、適切にエクスポートする(see エクスポート)ことによって、これらのリストに対応しています。これらのリストの構造を管理しているのがインデントであるため、#+BEGIN_...
ブロックのような多くの構造的な構成を、特別なアイテムに帰属しているという目印のためにインデントを設定することができます。
(カレントのリストの階層のために使用するというよりも)サブリストのために、異なるbulletを使うことが読みやすくできると思ったら、org-list-demote-modify-bullet
変数をカスタマイズしてください。
あるアイテムの最初の行(bulletまたは数字のついている行)にカーソルがあるときに、以下のコマンドがアイテムに作用します。それらのコマンドのいくつかは、リストの構造を完全なままたもつために自動的なルールのアプリケーションであることを暗示しています。これらのコマンドの動作のいくつかを独自のやりかたにしたいならば、それらを個別に無効にするために、org-list-automatic-rules
を設定してください。
org-cycle
)org-cycle-include-plain-lists
変数を参照してください。もしもこの変数がintegrate
に設定されているときは、プレーンなリストアイテムは下の階層の見出しと同様に取り扱われます。そのため筆のアイテムの階層はbulletまたは数字のインデントによって決定されます。アイテムは実際の見出しに常に従属しているのです。しかしながら、階層構造は完全に区別されたままになります。org-insert-heading
)org-cycle
)org-support-shift-select
がオフになっている時だけです。もしもそうなっていないなら、C-<up>
とC-<down>のようなパラグラフのジャンプコマンドと全く同様の効果が現れるように使用することができます。
特別な場合として、リストの本当に最初のアイテムの上で、このコマンドを使用することで全てのリストを動かすことができます。この動作はorg-list-automatic-rules
を設定することで無効にすることができます。あるリストのグローバルなインデントは、そのリストの後のテキストにはなんの影響も与えません。
org-plain-list-ordered-item-terminator
の設定により、異なる箇条書き/番号付きのbullet(‘-’,
‘+’, ‘*’, ‘1.’, ‘1)’)
、またはそれらのサブセットをもとにして全体のリストの階層、リストのタイプ、リストの位置19を切り替えます。Nという数字の付いた前置引数を使用すると、これらのリストの中のN番目のbulletが選択されます。もしも、このコマンドを呼び出したときにアクティブなリージョンがあるならば、選択された文章は普通のアイテムに変更されます。前置引数を使うと、すべての行がリストアイテムに変換されます。もしも最初の行がすでにリストアイテムだったならば、どのアイテムの符号もリストから削除されるでしょう。最後に、アクティブなリージョンでない場合でも、リストアイテムに変換されます。
org-support-shift-select
に依存します。
あるエントリーに関連する情報を保持していたいときがあるが、普段はその情報を見たくはないということがあります。こういうときのために、Org-modeは引き出しという機能を持っています。引き出しはorg-drawers
20変数で設定する必要があります。引き出しはこんな形をしています。
** これは見出しです ここはまだ引き出しの外側です :DRAWERNAME: これは引き出しの内側です。 :END: 引き出しの後です。
見出し上で表示の切り替え(see 表示、非表示の切り替え)を行うとエントリーを隠したり表示したりすることができますが、引き出しの部分は1行に畳まれたままの状態になります。引き出しの中身を見るためには、カーソルを引き出しの行に移動し、そこで<TAB>キーを押すことが必要です。Org-modeは属性(see プロパティとカラム)を保持するために、PROPERTIES
という引き出しを使用します。そしてノート(see 作業の状態変化の追跡)と時刻(see 作業に費やした時間の計測)の変化の状態を用意するためにLOGBOOK
という引き出しの中に保存をすることができます。もしも、状態の変化のためと似たような方法で素早くノートをLOGBOOKの引き出しに保存したいときには、このように使います。
Org-modeはソースコードの例(see リテラルの例)
から時刻のログ情報(see 作業に費やした時間の計測)を記録することまで、いろいろな目的のために、begin...endというブロックを使用します。このブロックでは、行の先頭でTABを押すことによって、折り畳んだり、折り畳みを解いたりすることができます。org-hide-block-startup
変数を設定するか、以下のようなファイル毎の設定をすることで、起動時に全てのブロックを折り畳んでおくこともできます。
#+STARTUP: hideblocks #+STARTUP: nohideblocks
Org-modeは脚注の作成をサポートしています。Org-modeは、footnote.elパッケージと対照的に、1回限りのEメールのような文書だけでなく、大きな文書上で動作するよう設計されています。基本構文はfootnote.elの構文で使われているのと良く似ており、i.e.インデントが認められていない、カラム0の角カッコの中の脚注の印によって始まるパラグラフの中で定義されます。もしも脚注の中でパラグラフを改行したいならば、LaTeXの用語である‘\par’を使用します。脚注の参照は、テキストの中の単純な角カッコの中の記号です。例えば。
Org-modeのホームページ[fn:1] は以前に比べて現在は相当改良されていると思います。 ... [fn:1] リンク先は: http://orgmode.org
Org-modeでは数字をベースとした構文を、名前のついた脚注とオプションのインラインでの定義へと拡張しています。プレーンな数字を(footnote.elで行えるように)マーカーとして使うことは、下位の互換性としてサポートされていますが、LaTeXのsnippet(see LaTeXの組み込み)と衝突する危険性があるのでお奨めはできません。以下に確かな参考資料を説明します。
[1]
[fn:name]
name
がユニークな言葉によるラベルとなっており、さもなければ簡単に自動的に作成される、数字が用いられます。
[fn:: これは脚注のインラインの定義です]
[fn:name: a definition]
[fn:name]
を使用することができます。
脚注のラベルは自動的に作成することができます。そうしないならば、あなた自身で名前を作成することができます。これはorg-footnote-auto-label
変数で操作され、#+STARTUP
キーワードに対応します。詳細については変数の説明を参照してください。
カーソルが脚注参照上にあるときに、定義部分にジャンプします。カーソルが定義部分にあるときに、(最初の)参照されている部分にジャンプします。
そうでなければ、新しい脚注を作成します。org-footnote-define-inline
21によって、参照の一部として、または、org-footnote-section
変数によって決定される場所の中に区分されて、テキストの中に正しく定義が配置されるでしょう。
前置引数と一緒にコマンドが呼び出された場合は、追加のオプションのメニューが提示されます。
s 参照の順場によって、脚注の定義は並び替えられます。編集している間は、 Org-modeは特定の並びの中に脚注の定義を並び替える努力はしません。 もしもそれらを並び替えたいならば、このコマンドを使用してください。 それによってorg-footnote-section
に従ってエントリーをまた移動します。 挿入/削除のあとに自動的に並び替えるには、変数を使うことで設定する ことができます。 r 単純なfn:N
の脚注を思い出してください。挿入/削除それぞれのあとの 自動的な採番は、org-footnote-auto-adjust
変数を使う ことで設定できます。 S 最初のr
のショートカットで、s
はアクションです。 n すべての定義(インラインの定義もふくみます)を特別なセクションに集める ことによって脚注を標準化します。そしてそれからそれらの定義を順番に採番 します。参照先にも番号がふられます。これは、ひとつのドキュメントを終了 する前の最後の段階であることを意味します。(e.g. Eメールを発送する)。 エクスポート機能はこのことを自動的に行い、message-send-hook
のような何かを行います。 d そのポイント、およびそれについての参照先の定義を削除します。
org-footnote-auto-adjust
22とnofnadjust
の変数に依存し、それぞれの挿入と削除のあとに、番号の振り直しと脚注の並び替えが自動的に行われます。
もしもOrg-modeの構造の編集とリストのフォーマットの動作について直感的な方法を好むのならば、あなたはTextモードやMailモードと同じような他のモードのコマンドを使用したいと思うでしょう。orgstruct-mode
というマイナーモードでそれが可能になります。M-x
orgstruct-modeを使ってモードを切り替えるか、例えばMessageモードの中で、デフォルトでそれを作動させるか、次のいずれかを用いて、
(add-hook 'message-mode-hook 'turn-on-orgstruct) (add-hook 'message-mode-hook 'turn-on-orgstruct++)
このモードがアクティブで、カーソルが見出しやリストアイテムの最初の行のようなOrg-modeのような行の上にあるときには、ほとんどの構造の編集のためのコマンドは動作するでしょう。たとえ、あなたが使っているメジャーモードの中で、同じキーが普通に異なる機能を持っているとしても。もしもカーソルがそういった特別の行の一つの中に置かれていなくても、Orgstructモードは影の中で静かに隠れています。orgstruct++-mode
を使ったときは、Org-modeは、それらのモードの中に、インデントやオートフィルの設定を書き出すでしょう。そして、アイテムの最初の行の後にアイテムのコンテクストを見つけるでしょう。
Org-modeは,高速で直感的なテーブルエディタを備えています.Emacsのcalcパッケージを用いて,スプレッドシートのような計算機能に対応しています. (Emacs Calculatorの詳細は,同パッケージのマニュアルを参照してください.)
Org-modeを使うと,プレーンなASCII形式のテーブルを手軽に編集できます.空白文字を除いて,最初の文字が‘|’であれば,どの行もテーブルの一部であるとみなされます.‘|’は,列を区分するセパレータとしても使われます.Org-modeのテーブルは,次のような見た目になるでしょう.
| Name | Phone | Age | |-------+-------+-----| | Peter | 1234 | 17 | | Anna | 4321 | 25 |
テーブルの中で,<TAB>や<RET>もしくはC-c C-cを押す度に,テーブルの表示が自動的に更新されます.<TAB>を押すとカーソルが次のフィールドに移ります(<RET>の場合は次の行へ).また,テーブルの端もしくは水平ラインの直前の行で押せば,テーブルに新しい行が追加されます.テーブルのインデントは一行目で決定されます.‘|-’で開始するどんな行も水平ラインとして解釈され,次にテーブルが更新される時に,水平ラインはテーブル幅いっぱいに拡張されます.つまり,上記のテーブルを作成するためには,次のように入力するだけでよかったのです.
|Name|Phone|Age| |-
続いて<TAB>を押してテーブルを整列し,フィールドへの入力を始めます.さらに素早いテーブルの作成方法は,|Name|Phone|Age
に続いてC-c
<RET>と入力することです.
フィールドに文字を入力すると,Org-modeは<DEL>と<Backspace>,また,すべての文字キーを特別な方法で扱います.文字の挿入と削除によって他のフィールドがズレてしまうことを避けるためです.また,<TAB>,S-<TAB>もしくは<RET>によって,カーソルが新しいフィールドへ移動した直後に文字を入力すると,自動的に空白文字が挿入されます.この動作が気に入らない場合には,変数org-enable-table-editor
とorg-table-auto-blank-field
を調節してください.
org-table-create-or-convert-from-region
)
アクティブリージョンをテーブルに変換します.全ての行が少なくとも一つのタブを含んでいるならば,この関数は処理対象をタブ区切りの表であると想定します.また,全ての行がコンマを含んでいるならば,コンマ区切り(いわゆるCSV)であると想定されます.それ以外の場合は空白文字で区切られていると想定します.プレフィックスを用いることで,区切り文字を強制的に指定できます.すなわち,C-uでCSV,C-u
C-uでTAB区切りを指定できます.また,プレフィックスの引き数として整数値Nを用いれば,少なくともN個の連続した空白を区切りとして指定できます.条件に合わなければ,TABが代わりの区切りとして使われるでしょう.
もしアクティブリージョンが存在しないならば,このコマンドは空のテーブルを生成します.しかし,|Name|Phone|Age <RET>
|- <TAB>とタイプしてテーブルを作り始める方が簡単です.
org-table-align
)org-table-next-field
)org-table-previous-field
)org-table-next-row
)org-table-beginning-of-field
)org-table-end-of-field
)org-table-move-column-left
)org-table-move-column-right
)org-table-delete-column
)org-table-insert-column
)org-table-move-row-up
)org-table-move-row-down
)org-table-kill-row
)org-table-insert-row
)org-table-insert-hline
)
カーソル位置の下に水平ラインを追加します.プレフィックスを使うと,カーソル位置の上に追加されます.<RET>
org-table-hline-and-move
)
カーソル位置の下に水平ラインを追加して,カーソルを追加された水平ラインの次の行に移動します.^
org-table-sort-lines
)
リージョンに含まれるテーブルの各行をソートします.ポイントのある列の情報がソートに利用されます.また,ソート対象となる範囲は,最も近い水平ラインの行まで,もしくは,テーブル全体が指定されます.カーソル位置がテーブルの第一列よりも前にあるときは,ソートに利用する列を指定するためにプロンプトが表示されます.すでにアクティブリージョンが存在する場合,マークは第一行とソートに利用する列を指定して,同時にポイントは,ソート対象に含まれる最終行に位置しなければなりません.このコマンドは,ソートの種類(アルファベット順,数値順,もしくは時間順)を指定するためにプロンプトを表示します.プレフィックスを利用すると,大文字と小文字が区別されます.
org-table-copy-region
)org-table-cut-region
)
テーブルの矩形領域を特別なクリップボードにコピーし,領域内の全てのフィールドを空にします.つまりこれは「カット」操作です.C-y
org-table-paste-rectangle
)
テーブルに矩形領域をペーストします.領域の左上がカーソル位置のフィールドに上書きされます.ペーストする領域に重なるすべてのフィールドは上書きされます.対象とするテーブルに矩形領域が合わないならば,必要に応じてテーブルは拡張されます.この処理は,テーブルの水平ラインを無視します.
org-table-wrap-region
)org-table-sum
)org-table-copy-down
)org-table-copy-increment
の値に依存して,フィールドが整数値のときは値を一つ増やしてからコピーされるでしょう.整数の値が大きすぎる場合は,値が増やされません.また,プレフィックスで0
を用いれば,一時的に値の増加を防げます.このキーバインドは,shift-selectionと,これに関連するモードでも使われています(see 衝突).
org-table-edit-field
)org-table-create-or-convert-from-region
)
org-modeのバッファにテーブル状のテキスト(訳注:文字列がタブで区切られているテキスト領域など)をペーストすることでもorg-modeのテーブルを作成できます.C-x
C-xでバッファにペーストされているテキストを選択して,C-c |でorg-modeのテーブルに変換します(前述のCreation
and conversionを参照してください).
org-table-export-default-format
で調節できます.また,ファイル名を指定するためにプロパティTABLE_EXPORT_FILE
を利用でき,サブツリーでのテーブルエクスポートのフォーマットを指定するためにプロパティTABLE_EXPORT_FORMAT
を指定できます.エクスポートされるテーブルについて,org-modeはかなり一般的なフォーマットをサポートします.エクスポートのフォーマットは,Orgtblのラジオテーブルで使われているものと同じです.より詳しい説明は変換関数を参照してください.
‘|’で始まる行を思い通りに編集するため,自動的なテーブルの編集が好みでない場合は,次のコマンドでこの機能を停止できます.
(setq org-enable-table-editor nil)
こうすると,テーブルのコマンドで利用できるのは,C-c C-cによる手動の再整列だけになります.
テーブルの各列の幅はテーブルエディタによって自動的に決定されます.また,列の配置も自動的に決定されます.具体的には,列の中で数値でないフィールド数に対する,数値(と解釈できる)フィールド数の割合に応じて決まります.
ただ一つ,または,いくつかのフィールドでより多くのテキストを扱おうとすると,困ったことに列幅が広がってしまいます.もしくは,フィールドの内容にかかわらず,固定幅の列でテーブルを作成したいと思うかもしれません.列の幅を指定するためには,列のどこに記述してもよいですが,一つのフィールドが文字列‘<N>’だけを含む必要があります.ここで‘N’は,列の幅を指定する整数値の文字列です23.次に行なわれるテーブルの整列では,この数値を用いて列の幅を設定します.
|---+------------------------------| |---+--------| | | | | | <6> | | 1 | one | | 1 | one | | 2 | two | ----\ | 2 | two | | 3 | This is a long chunk of text | ----/ | 3 | This=> | | 4 | four | | 4 | four | |---+------------------------------| |---+--------|
指定された幅よりも広いフィールドは一部が切り取られ,文字列‘=>’で終わります.フィールド内に表示されていたテキストは,バッファ内部にそのまま存在し,表示が隠されていることに注意してください.隠されたテキストも含めてすべてを表示するためには,対象とするフィールドにマウスカーソルを置いてください.ツールチップが現われて,フィールドに含まれるすべての内容が表示されます.このようなフィールドを編集するには,C-c `を使います(C-cに続いてバッククォートを入力します).フィールドの全ての内容を表示した新しいウィンドウが開かれます.フィールドの内容を編集し,C-c C-cで完了します.
幅が狭められた列を持つテーブルが記述されているファイルを訪問する段階では,まだ文字列の隠蔽は実行されていません.見た目を良くするにはテーブルを整列する必要があります.オプションのorg-startup-align-all-tables
を設定すると,ファイルを訪問するときにファイルに記述された全てのテーブルが自動的に整列されます.ただしスタートアップが少し遅くなります.以下の設定を利用すれば,ファイルごとにこのオプションを設定することもできます.
#+STARTUP: align #+STARTUP: noalign
数値の多い列を右揃えにして,文字列の多い列を左揃えにする自動的な整列を無効にしたいならば,‘<r>’,‘c’24,もしくは‘<l>’を同じような形式で利用できます.‘<|10>’のようにすれば,列を揃える方法とフィールドの幅を同時に指定できます.
書式の設定情報のみを含む行は,ドキュメントをエクスポートするときに自動的に削除されます.
org-modeのテーブルをエクスポートすると,垂直ラインを標準で表示しません.これは,一般に視覚的な満足度がより高いためです.しかし場合によっては,列のグループでテーブルを構造化する目的で,垂直ラインが役に立つます.これは水平ラインがいくつかの行をグループ化するために役立つことと同じです.列のグループを指定するために,最初のフィールドが‘/’だけを含む特別な行を使います.それ以降のフィールドについては,‘<’を含むとき,その列がグルーピングされる列の始めであることを意味します.‘>’を含む場合は,グループの終了を表します.‘<>’を含む列はこれ自体を一つのグループにします.列のグループを表す境界線が,エクスポート時に垂直ラインで表示されます.以下に例を示します.
| N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) | |---+-----+-----+-----+---------+------------| | / | < | | > | < | > | | 1 | 1 | 1 | 1 | 1 | 1 | | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 | | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 | |---+-----+-----+-----+---------+------------| #+TBLFM: $2=$1^2::$3=$1^3::$4=$1^4::$5=sqrt($1)::$6=sqrt(sqrt(($1)))
表示させたいすべての垂直ラインの後ろに,列のグループ開始を指定するだけでも十分です.
| N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) | |----+-----+-----+-----+---------+------------| | / | < | | | < | |
org-modeのテーブルエディタが提供する直感的な編集が好みなら,テキストモードやメールモードのような別のモードで利用したくなるかもしれません.これはマイナーモードのOrgtblモードが実現してくれます.M-x orgtbl-modeでトグルできます.標準でOrgtblモードを有効にするには,たとえばメッセージモードのときに,次の設定を使います.
(add-hook 'message-mode-hook 'turn-on-orgtbl)
さらに,いくつかの特別な手順を追加することで,orgtblモードの任意のシンタックスを使ってテーブルをメンテナンスできます.たとえば,orgtblモードの簡単さと機能を用いてLaTeXのテーブルを構築できます.これは表計算機能も含んでいます.さらなる詳細は,任意の構文によるテーブル.を参照してください.
org-modeのテーブルエディタは,表計算機能を実装するためにEmacsのcalcを利用します.異なるフィールドの値を使って様々なフィールドの値を算出するために,Emacs Lispの書式も評価できます.十分な表計算機能が備わっていますが,org-modeの実装が他の表計算ソフトと全く同等というわけではありません.たとえば,org-modeは列の数式の概念を理解しています.これは,関連する各フィールドに数式をコピーすることなく,ヘッダーを除いた列にある全てのフィールドに適用されます.数式のデバッガもあります.また,数式に含まれる参照に対応するフィールドを,テーブル内でハイライトする機能と,それらの参照に矢印キーで移動する機能を持つ数式エディタがあります.
テーブル内部のフィールドを他のフィールドの値を使って計算するに,数式は,他のフィールドか範囲を必ず参照していなければなりません.org-modeでは,名前,絶対的または相対的な位置によってフィールドを参照することができます.フィールドの位置がどこかを特定するためには,そのフィールドでC-c ?を押してください.もしくは,グリッド表示をトグルするためにC-c }を使用してください.
数式は別フィールドの値を2つの方法で参照できます.他の表計算ソフトと同じように,B3
のような文字と数値の組み合わせでフィールドを参照できます.三行目の第二フィールドを意味しています.
org-modeでは,もう一つの方法を好みます25.より一般的な次のような表記です.
@row$column
また,相対的な参照も認めています.すなわち,値が計算されいるフィールドの行と列に相対的な参照です.このような相対的な参照は,数式を一度だけ記録すればよく,数式のコピーや変更せずにたくさんのフィールドで利用できます.
列の参照は,‘1’,‘2’,...‘N’のように絶対的に表されるか,もしくは,カーソル位置の列に対して相対的に‘+1’,‘-2’のように表されます.$>
はテーブルの最終列を参照します.さらに,$>-2
のようなオフセットを指定できます.この場合,一番右から三番目の列を表します.
行の指定ではデータを含む行のみをカウントして,水平ライン(hline)を無視します.列と同様に,‘1’...‘N’のように絶対的な行の番号を利用できます.また,‘+3’や‘-1’のようにカーソル位置の行に対する相対的な位置を表し,@>
でテーブルの最終行を参照します26.ある水平ラインに対する相対的な行を指定することもできます.‘I’は最初のhlineへの参照27で,‘II’は二番目の水平ラインへの参照,といった具合に指定します.‘-I’は,カーソル位置の行の上方にある最初の水平ラインを参照し,‘+I’は下方にある最初の水平ラインを参照します.‘III+2’のように指定すると,テーブルの三番目の水平ラインから二番目の行を表します.
‘0’は,カーソル位置の行と列を参照します.また,もし参照について列と行のいずれかを記述しなければ,カーソル位置の行または列が暗黙に参照されます.
org-modeの符号無し数値を使った参照は,静的な参照です.つまり,二つの異なるフィールドにある数式の中で同じ参照を利用すれば,常に同じフィールドが参照されます.符号付き数値を使った参照は,動的な参照です.これは,見た目上は同じ参照であっても,数式で計算されるフィールドに依存して,異なるフィールドを参照できるためです.
いくつかの例を示します.
@2$3 第二行,第三列 C2 同上 $5 現在行の第五列 E& 同上 @2 現在列,第二行 @-1$-3 カーソル位置から一つ上,左に三つ目 @-I$2 カーソル位置の上方の水平ライン直下の第二列
複数のフィールドを集めた矩形の範囲を参照できます.この範囲は,二つの参照を二つのドット‘..’で接続して指定します.二つの参照が共にカーソル位置の行にあるとき,単純に‘$2..$7’と指定できます.しかし,一方のフィールドが異なる列にあるときは,少なくとも最初に指定するフィールドについて@row$column
のような省略しない形式を使う必要があります(つまり,正しく解釈させるために参照を‘@’で始めなければなりません).具体例は次のようになります.
$1..$3 カーソル位置の行の始めの3フィールド
$P..$Q 列の名前を使った範囲(後述する詳細を見てください)
@2$1..@4$3 二つのフィールド間にある6フィールド
A2..C4 同上
@-1$-2..@-1 カーソル位置の左の列の2つ上方の行の3フィールド
@I..II 第一と第二の水平ラインに挟まれた領域(@I..@II
の短縮表記)
範囲参照はCalcのベクトル関数に代入可能な値のベクトルを返します.範囲に含まれる空のフィールドは,普通は除去されます.これはベクトルが空ではないフィールドのみを含むようにするためです(ただし下記の‘E’モードスイッチも参照してください).もし,すべてのフィールドが空ならば,数式のシンタックスエラーを避けるために‘[0]’が返されます.
Calc形式とLisp形式の数式では,数式の演算結果が指すフィールドの行と列の番号を取得するために,@#
と$#
を利用できます(訳注:前者が行を表し,後者が列を表す).伝統的なLispの数式に相当するのはorg-table-current-dline
とorg-table-current-column
です.たとえば,
if(@# % 2, $#, string("")) 奇数行に限定して列の番号を抽出する $3 = remote(FOO, @@#$2) テーブルFOOの二列目をコピーし, 現在のテーブルの三列目に上書きする
二つ目の例では,テーブルFOOは少なくとも,カーソル位置のテーブルが持つ行数と同じ数の行がなければなりません.たくさんの行があると処理が重くなる28ことに気を付けてください.
‘$name’は,列の名前として解釈されます.パラメーターや定数を扱います.定数は,変数org-table-formula-constants
を利用してグローバルに定義されます.また,次のような一文を追加して,ファイルのローカル変数として定義されます.
#+CONSTANTS: c=299792458. pi=3.14 eps=2.4e-6
プロパティ(see プロパティとカラム)もテーブルの数式では定数として扱われます.プロパティ‘:Xyz:’については‘$PROP_Xyz’という名前を使います.そして,このプロパティは現在のアウトラインエントリーとその上位が階層的に検索されます.もしconstants.elパッケージを読み込んでいるならば,これも定数を決めるために使われます.このパッケージには,プランク定数‘$h’のような物理定数,そしてキロメーター‘$km’のような単位が含まれています29.列の名前とパラメーターは,テーブルの特別なラインで設定できます.詳細は後述します(一歩進んだ機能.).すべての名前は文字から始まり,それ以降は文字と数値で構成します.
別テーブルの定数,フィールドそして範囲を参照できます.現在のファイルでも,別ファイルにある場合でも参照できます.シンタックスは,
remote(NAME-OR-ID,REF)
NAMEは別ファイルにあるテーブルの名前で,テーブルの前の行に#+TBLNAME:
NAME
と設定しておきます.エントリーのIDも利用でき,別ファイルにあるものも指定できます.この場合はエントリーに含まれる最初のテーブルを参照します.REFは前述したような絶対的なフィールドか範囲参照で,@3$3
や$somename
と表され,参照されたテーブルにおいて有効です.
数式は,EmacsのCalcパッケージが理解できる任意の代数表現です.通常の計算とは異なるCalcの慣例に気を付けてください.‘/’は‘*’よりも低く優先されます.つまり,‘a/b*c’は,‘a/(b*c)’として解釈されます.calc-eval
(see calc-eval)で評価される以前に,先ほどのルールに従って変数が代入されます.
範囲指定するベクトルは‘vmean’や‘vsum’のようなCalcのベクトル関数に直接渡されます.
数式は,セミコロンの後に続くオプションモードの文字列を含むことができます.この文字列は実行時にCalcや他のモードに作用するフラグで構成されます.デフォルトでは,org-modeは標準のCalcモード(精度=12桁,角度単位=度,分数/シンボリックモード=OFF)を使います.ただし,表示フォーマットは,テーブルをコンパクトに保つために,(float
8)
に変更されています.
p20 Calcの内部計算精度を20桁に設定 n3 s3 e2 f4 通常表記,科学指数,工学指数,固定小数点 でCalcの出力結果がorg-modeに戻る. Calcの計算精度が表示上の精度よりも高い限り, Calc表記は精度上の制限を受けない. D R 角度モード(度/ラジアン) F S 分数/シンボリックモード N 全フィールドを数値として解釈.非数値は0を使用 T 強制的に文字列として解釈 E 領域中のフィールドを空に保つ L リテラル
大きな整数値を使用しないか,浮動小数点での高精度な計算と表示を行なわないならば,Calcがすでにフォーマットした結果ではなく,org-modeに戻された後のCalcの出力結果を再フォーマットする目的で,printf
によるフォーマット指定を代わりとして与えることが可能です30.いくつかの例を示します.
$1+$2 第一と第二フィールドの和 $1+$2;%.2f 同上.ただし,小数点以下2桁表示 exp($2)+exp($1) 関数も利用可能 $0;%.1f 小数点以下1桁に再フォーマット ($3-32)*5/9 華氏から摂氏への変換 $c/$1/$cm 周波数[Hz]から波長[cm]への変換(constants.elを使用) tan($1);Dp3s1 角度計算(3桁精度,科学指数1桁) sin($1);Dp3%.1e 同上.ただし,printfでの表示指定 vmean($2..$7) 列の平均値,ベクトルを利用 vmean($2..$7);EN 同上.ただし,空フィールドを0とする taylor($3,x=7,2) $3の2次のテーラー級数でx=7の値
Calcは論理演算の完全な集合も含んでいます.例として次があります.
if($1<20,teen,string("")) もし年齢$1が20未満なら十代,そうでなければ空
Emacs
Lispで数式を記述することもできます.Calcの機能では不十分なら,文字列操作と構造の制御に役立ちます.開き括弧が後ろに続くシングルクォートで数式が始まるとき,Lisp形式として解釈されます.評価値は,文字列か数値で返ります.Calcの数式と同じように,セミコロンの後にモードとprintfフォーマットを指定できます.Emacs
Lisp形式では,フィールドの参照がLisp形式で挿入されることを意識する必要があります.デフォルトで,参照はフィールドを含む(ダブルクォートで括られた)Lispの文字列として挿入されます.もし‘N’モードスイッチを指定すると,全ての参照された要素は数値になり(非数値のフィールドは0になる),クォートなしでLisp形式の数値として挿入されます.‘L’フラッグを指定すると,全てのフィールドは,クォートなしでそのままの内容が挿入されます.すなわち,もしLisp形式の文字列として参照が挿入されることを望むなら,"$3"
のように,ダブルクォートで参照のオペレータ自体を包んでください.範囲はスペースで区切られたフィールドとして挿入されます.そのため,リストやベクトルシンタックスに埋め込んだりできます.いくつかの例を示します.Lispを用いて計算をするときに,‘N’モードの使われ方に注意してください.
一列目の内容について,一文字目と二文字目を入れ替える '(concat (substring $1 1 2) (substring $1 0 1) (substring $1 2)) 一列目と二列目を加算する.Calcの$1+$2
と同じ '(+ $1 $2);N 列1から列4の合計を計算.Calcのvsum($1..$4)
と同じ '(apply '+ '($1..$4));N
特定のフィールドに数式を割り当てるためには,‘:=’に続けて,直接フィールドに書き込みます.たとえば,‘:=vsum(@II..III)’のようにします.カーソルがフィールドにある状態で,<TAB>や<RET>,もしくはC-c C-cを押すと,入力した数式はそのフィールド専用の数式として保存され,評価された後,フィールドの表示が演算結果で置き換わります.
数式はテーブルの下にある‘#+TBLFM:’で始まる特別な行に保存されます.テーブルの中で第三行の四番目のフィールドに数式を入力すると,この数式は‘@3$4=$1+$2’のように記述されます.適当なコマンドで列と行の挿入/消去/入れ替えを行なうとき,保存された数式の中の絶対参照(相対参照では関係ありません)は,同一のフィールドを参照するために変更されます.もちろん通常の編集コマンドを用いてテーブルの構造を編集するときには実行されません.したがって,マニュアルで数式を補正しなければなりません.フィールドに数式を記入する代わりに,次のコマンドも使用できます.
org-table-eval-formula
)多数の別フィールドに数式を割り当てるために,等式の左側は特別な表現を指定できます.範囲数式を入力するショートカットはありません.これを入力するには,数式エディタ(see 数式の編集とデバッグ)を用いるか,#+TBLFM:
行に直接記述します.
$2=
@3=
@L=
は最終行を意味する.
@1$2..@4$3=
$name=
$3=
のような,シンプルな列の参照を数式に指定すると,同じ数式がその列の全てのフィールドで使用されます.次の項目を利便性の高めるための例外としています.(1)テーブルが水平ラインを含む場合は,最初の水平ラインよりも上に存在する全ての行がテーブルのヘッダーの一部であると考えられ,列の数式によって変更されません.(2)フィールドや範囲の数式からすでに値を取得しているフィールドは,列の数式は関与しません.これらの条件によって列の数式はとても使いやすくなっています.
列に数式を割り当てるためには,列のフィールドに直接記述します.イコールの後に続くように,‘=$1+$2’としましょう.同じフィールド内で<TAB>や<RET>もしくはC-c
C-cを押すと,入力した数式はそのフィールドのための数式として保存され,評価されたのち,フィールドの表示が演算結果で置き換わります.フィールドが‘=’だけの場合,以前に列で保存した数式が利用されます.各列について,org-modeは直前に利用した数式だけを記憶します.‘#+TBLFM:’行で,列の数式は‘$4=$1+$2’のように保存されます.列数式のイコールの左側には,列の名前を置くことができず,数値の列の参照か$>
を置かなければなりません.
フィールドに数式を書き入れる代わりに,次のコマンドも利用できます.
org-table-eval-formula
)
ミニバッファ,もしくは,直接フィールド内で,個々の数式を編集できます.org-modeは,テーブルに含まれるすべてのアクティブな数式が表示される特別なバッファも用意しています.数式を編集しようとすると,もし可能ならば,org-modeは参照を標準のフォーマット(B3
やD&
のような記法)に変換します.内部フォーマット(@3$2
や$4
のような記法)を用いて編集したい場合は,変数org-table-use-standard-references
を設定してください.
org-table-eval-formula
)org-table-eval-formula
)org-table-field-info
)
テーブルのフィールド内で数式を編集するときに,数式内のカーソルが置かれている参照によって指し示されたフィールドをハイライトする.
org-table-edit-formulas
)
現在のテーブルにあるすべての数式を,特別なバッファで編集する.バッファでは数式はラインごとに一つずつ表示される.カーソル位置のフィールドにアクティブな数式があるとき,カーソルエディタのカーソルはその数式をマークします.この特別なバッファの中では,org-modeは,カーソルがあるどんなフィールドや範囲参照も自動的にハイライトします.数式の編集,削除,追加が可能で,さらに次のコマンドを利用できます.
org-table-fedit-finish
)org-table-fedit-abort
)
変更を破棄して数式エディタを抜けます.C-r
org-table-fedit-toggle-ref-type
)
数式エディタの全ての参照について,(B3
のような)標準の記法と(@3$2
のような)内部の記法をトグルします.
org-table-fedit-lisp-indent
)lisp-complete-symbol
)B3
でS-<right>を押すと,C3
に変化します.これは相対参照や水平ラインの参照についても同じように動作します.org-table-fedit-line-up
)org-table-fedit-line-down
)org-table-fedit-scroll-down
)org-table-fedit-scroll-up
)テーブルのフィールドを空欄にしても,そのフィールドに結びつけられた数式は削除されません.これは数式が別な行(‘#+TBLFM:’行)に保存されているためです.次に再計算が行なわれる際に,再びフィールドに数式の結果が戻ります.フィールドから数式を削除するためには,数式を表示させて空にするか,‘#+TBLFM:’行を編集する必要があります.
‘#+TBLFM:’行は直接編集でき,変更した数式が再適用できます.これは‘#+TBLFM:’行でC-c C-cを押すか,テーブルで通常の再計算コマンドを発行することで実行できます.
数式を評価してエラーが生じた時は,フィールドの文字列が‘#ERROR’に変わります.バグを見つけるために,変数の代入と計算の過程で何が起こっているかを調べたいならば,Tbl
メニューにある数式のデバッグを有効にして,計算をやり直してください.たとえば,フィールド内でC-u
C-u C-c = <RET>と押します.すると,詳細な情報が表示されます.
テーブルの再計算は,通常は自動的に行なわれず,コマンドにより実行する必要があります.一歩進んだ機能を参照してください.少なくとも半自動で計算されます.
テーブルのある行もしくはテーブル全体を再計算するために,次のコマンドを使います.
org-table-recalculate
)org-table-iterate
)
計算結果の変化が生じなくなるまでテーブルの再計算を繰り返します.これは,計算の流れにおいて後段で計算される別フィールドの値を,すでに計算の対象となっているフィールドで利用する場合に必要になるでしょう.
もしも自動的にフィールドを再計算したい,もしくは,フィールドと列に名前を割り当てたいならば,テーブルの第一列を特別なマーキング文字を格納するために予約しておく必要があります.
org-table-rotate-recalc-marks
)例として,学生の試験結果を集めて自動再計算の機能を使うテーブルを示します.
|---+---------+--------+--------+--------+-------+------| | | Student | Prob 1 | Prob 2 | Prob 3 | Total | Note | |---+---------+--------+--------+--------+-------+------| | ! | | P1 | P2 | P3 | Tot | | | # | Maximum | 10 | 15 | 25 | 50 | 10.0 | | ^ | | m1 | m2 | m3 | mt | | |---+---------+--------+--------+--------+-------+------| | # | Peter | 10 | 8 | 23 | 41 | 8.2 | | # | Sam | 2 | 4 | 3 | 9 | 1.8 | |---+---------+--------+--------+--------+-------+------| | | Average | | | | 29.7 | | | ^ | | | | | at | | | $ | max=50 | | | | | | |---+---------+--------+--------+--------+-------+------| #+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(@-II..@-I);%.1f
重要: このような特別なテーブルについて,C-u C-c *を使った再計算は,‘#’もしくは‘*’でマークされた行,そして,自身に対して数式が適用されているフィールドだけに影響することに気をつけてください.最初のフィールドが空になっている行には,列の数式が適用されません.
最後に,素晴らしいcalc.elパッケージで何ができるのかを知るという学習欲を刺激するために,一つのテーブルを示します.このテーブルは,いくつかの関数に対して,x
におけるn
次のテーラー級数を計算します.
|---+-------------+---+-----+--------------------------------------| | | Func | n | x | Result | |---+-------------+---+-----+--------------------------------------| | # | exp(x) | 1 | x | 1 + x | | # | exp(x) | 2 | x | 1 + x + x^2 / 2 | | # | exp(x) | 3 | x | 1 + x + x^2 / 2 + x^3 / 6 | | # | x^2+sqrt(x) | 2 | x=0 | x*(0.5 / 0) + x^2 (2 - 0.25 / 0) / 2 | | # | x^2+sqrt(x) | 2 | x=1 | 2 + 2.5 x - 2.5 + 0.875 (x - 1)^2 | | * | tan(x) | 3 | x | 0.0175 x + 1.77e-6 x^3 | |---+-------------+---+-----+--------------------------------------| #+TBLFM: $5=taylor($2,$4,$3);n3
Org-Plotは,org-modeのテーブルに保存された情報を用いた2次元と3次元のグラフを生成できます.Gnuplot
http://www.gnuplot.info/とgnuplot-mode
http://cars9.uchicago.edu/~ravel/software/gnuplot-mode.htmlを利用しています.動作を確認するためには,GnuplotとGnuplotモードの両方がシステムにインストールされていることを確かめてください.その上で,次に示すテーブルでorg-plot/gnuplot
を呼び出してください.
#+PLOT: title:"Citas" ind:1 deps:(3) type:2d with:histograms set:"yrange [0:]" | 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 |
Org-Plotは,テーブルのヘッダをラベルとして適用できます.ラベル,タイプ,コンテンツ,プロットの外観は,テーブルの上の#+PLOT:
で始まる行によって制御可能です.以下のOrg-Plotオプションの完全なリストを見てください.さらなる情報と例は,http://orgmode.org/worg/org-tutorials/org-plot.htmlにあるOrg-Plotのチュートリアルを参照してください.
set
title
ind
x
軸として利用するテーブルの列を指定します.
deps
dep:(3
4)
とすると,第三と第四列を描画します(デフォルトでは,ind
の列を除いて他の全ての列が描画されます).
type
2d
,3d
もしくはgrid
)を指定します.
with
with
オプションで挿入される,各プロット点の表示種別を指定します.たとえば,
lines
,points
,boxes
,impluses
などで,デフォルトはlines
.
file
"
path/to/desired/output-file"
のように指定します.
labels
deps
で利用されるラベルのリストを指定します.標準では列のヘッダーが使われます(存在する場合).
line
map
3d
もしくはgrid
を指定する場合に,このオプションをt
にすると,3d
の立体的な傾斜がわかる表示ではなく,平らな表示(訳注:平面に射影した状態)でプロットします.
timefmt
script
$datafile
の記述は,プロット点を格納するファイル(訳注:org-plotが作る一時的なプロット点データ)へのファイルパスで置き換えられます.仮にこのオプションを指定しても,データファイルの内容に影響を与えることができるように,プロットの種別を制御したくなるかもしれません.
HTMLのように、Org-modeはファイル内でリンクしたり、他のファイルやUsenetの記事やメールなど、外部へリンクしたりすることができます。
Org-modeはURLのようなリンクを認識して、クリック可能なリンクにしてくれます。Org-mode上での一般的なリンクのフォーマットは以下のようなものです:
[[リンク][項目名]] または [[リンク]]
すべての括弧を入力し終えてリンクが完成すると、Org-modeは、[[リンク][項目名]]のかわりに「項目名」を、[[リンク]]のかわりに「リンク」を表示します。リンクは「org-link」で設定されたフェイスでハイライトされます。なおデフォルトのフェイスはアンダーラインになっています。表示されている部分については、直接編集することができます。項目名がない場合はリンクの編集になり、項目名がある場合は項目名の編集になることに注意してください。表示されていないリンクを編集するには、該当するリンクの上で「C-c C-l」を実行します。
表示されたテキストの始端もしくは終端にカーソルを置いて<BACKSPACE>を押すと、その場所にある(表示されていない)括弧を取り除くことができます。これによってリンクは不完全なものになり、リンクの内部は再びプレーンなテキストとして表示されます。取り除かれた括弧を再度挿入することでリンクは再び内部化され隠されます。すべてのリンクの内部的な構造を表示するには、Org->Hyperlinks->Literal
links
というメニューを使用します。
もしもリンクがURLのようなものではない場合、現在使用しているファイル内へのリンクだとみなされます。最も重要なケースは、‘[[#my-custom-id]]’のようなリンクで、‘my-custom-id’というCUSTOM_ID
プロパティのついた見出しへリンクします。このようなカスタムIDは、HTMLでのエクスポート(see HTMLのエクスポート)時にセクション毎のリンクを書き出してくれるので、大変便利です。ただし、各カスタムID名がファイル内で重複しないようにする必要があります。
‘[[My Target]]’や‘[[My Target][Find my target]]’のようなリンクは、現在使用しているファイル内でのテキスト検索になります。
マウスのクリック、またはリンク上にカーソルがあるときはC-c C-oで、リンクを開くことができます(see リンクの扱い)。カスタムIDへのリンクは、対応する見出しを指し示します。テキストへのリンクには、専用のターゲットを用意する方が良いでしょう。同じ文字列を二重の角付きの括弧でくくるとか。ターゲットはどこに置かれていてもかまいません。しかし、コメント行のようなところに置いたほうが便利なことが多いでしょう。たとえば、以下のように。
# <<My Target>>
HTMLでのエクスポート(see HTMLのエクスポート)では、このようなターゲットは、‘http’で直接アクセスできる名前つきのアンカーになります31。
もしも専用のターゲットが存在しない場合には、Org-modeはそのリンクにある語句と同じ見出しを検索しますが、TODOキーワードやタグ32も検索されます。Org-mode以外のファイルでは、リンクのテキストにある語句を検索します。上記の例では、‘my target’が検索されます。
リンクをたどると、Org-mode自身のマークリングにマークが格納されます。C-c &で、ひとつ前のポジションに戻ります。このコマンドを連続して使うことにより、更に前のポジションへと戻ることができます。
Org-modeは、通常のテキスト部分に書かれたターゲット名を、自動でリンクにすることができます。ですから、わざわざ個別のリンクを作成することなく、それぞれのテキストがターゲットにリンクされます。ラジオターゲットは、3つの角括弧で囲まれたものです。例えば、‘<<<My Target>>>’というターゲットは、通常のテキスト部分に‘my target’が登場する度にアクティブなリンクにしてくれます。Org-modeファイル内のラジオターゲットは、最初の読み込み時のみ自動的にスキャンされます。編集中にターゲットをアップデートしてリンクするには、ターゲットのところでC-c C-cを実行します。
Org-modeは次のようなリンクをサポートしています。ファイル、webサイト、ネットニュース、emailのメッセージ、BBDBデータベースの項目、IRCの会話とログなど。外部リンクはURLを記載するような方法でリンクします。それらはコロンの前に短い定義用の文字列をつけて表記します。コロンのあとに空白をとってはいけません。以下に例とそれぞれのリンクのタイプの一覧を示します。
http://www.astro.uva.nl/~dominik ウェブへのリンク doi:10.1000/182 電子文献のためのDOI file:/home/dominik/images/jupiter.jpg ファイルへの絶対パス /home/dominik/images/jupiter.jpg 上に同じ file:papers/last.pdf ファイルへの相対パス ./papers/last.pdf same as above file:/myself@some.where:papers/last.pdf リモートマシン上のファイルへのパス /myself@some.where:papers/last.pdf same as above file:sometextfile::NNN ジャンプ先の行番号付きファイル file:projects.org 他のOrg-modeファイルへのリンク file:projects.org::some words Org-modeファイル内でのテキスト検索 file:projects.org::*task title Org-modeファイル内での見出し検索 docview:papers/last.pdf::NNN ファイルをページ指定して開く id:B7423F4D-2E8A-471B-8810-C40F074717E9 IDのついた見出しへのリンク news:comp.emacs Usenetへのリンク mailto:adent@galaxy.net メールリンク vm:folder VMのフォルダへのリンク vm:folder#id VMのメールメッセージへのリンク vm://myself@some.where.org/folder#id リモートマシン上のVMのメールメッセージへのリンク wl:folder WANDERLUSTのフォルダーへのリンク wl:folder#id WANDERLUSTのメールメッセージへのリンク mhe:folder MH-Eのフォルダーへのリンク mhe:folder#id MH-Eのメールメッセージへのリンク rmail:folder RMAILのフォルダへのリンク rmail:folder#id RMAILのメールメッセージへのリンク gnus:group Gnusグループへのリンク gnus:group#id Gnusの記事へのリンク bbdb:R.*Stallman BBDBへのリンク(正規表現) irc:/irc.com/#emacs/bob IRCへのリンク info:org#External%20links Infoノードへのリンク(空白をエンコード) shell:ls *.org シェルコマンドへのリンク elisp:org-agenda Elispコマンドへのリンク elisp:(find-file-other-frame "Elisp.org") Elispフォームを評価
Org-modeをカスタマイズして、新しいリンクのタイプを付け加えるには、ハイパーリンクのタイプの追加を参照してください。
リンクは二重括弧で囲んだ方が良いでしょう。URLの代わりにテキストを表示することもできます(see リンクのフォーマット)。たとえば、以下のように。
[[http://www.gnu.org/software/emacs/][GNU Emacs]]
項目名が画像を指し示すファイル名やURLの場合、HTMLエクスポート(see HTMLのエクスポート)によって、画像はクリック可能なボタンとして書き出されます。項目名がない画像の場合には、インライン画像として書き出されます。
Org-modeは、通常のテキスト内のリンクを見つけ出し、外部リンクとします。もしスペースがリンクの一部として必要な場合(たとえば、‘bbdb:Richard Stallman’)や、リンクの末端であいまいさをなくしたい場合、角括弧で囲みます。
Org-modeは正しい構文でリンクを作成したり、Org-modeのファイルにリンクを挿入したり、そのリンクをたどったりする方法を提供しています。
org-store-link
)Org-modeバッファ
もしカーソル位置に‘<<target>>’がある場合、リンクはそのターゲットを指します。それ以外の場合は、見出しを指し、見出しは項目名にもなります。
もし見出しにCUSTOM_ID
プロパティがある場合、このカスタムIDプロパティへのリンクが一時保管されます。また、(org-link-to-org-use-id
の値によりますが)グローバルに固有のID
プロパティが、リンクを作成するために作られます。ですから、このコマンドをOrg-modeバッファ内で使うと、潜在的にふたつのリンクを作成することになります。つまり、Org-modeバッファ内でこのコマンドを使用することにより、人間が読むことのできるカスタムIDと、グローバルに固有で、エントリーがファイル間を移動しても動作するリンクが作成されます。後にリンクを挿入するときには、どのリンクを挿入するかを決めなければなりません。
メール/ニュースクライアント:VM, Rmail, Wanderlust, MH-E,
Gnus
ほとんどすべてのEmacsのメールクライアントがサポートされています。リンクは現在の記事を指し示します。Gnusバッファでは、グループを指し示すこともあるでしょう。項目名は筆者名と題名から作成されます。
ウェブブラウザー:W3 and W3M
現在のURLがリンクになり、ページのタイトルが項目名になります。
連絡先:BBDB
BBDBバッファ内で作成されたリンクは、現在のエントリーへのリンクになります。
Chat: IRC
IRCリンクの場合、org-irc-link-to-logs
変数をt
にした場合は、ログファイル内に、現在の会話に相当する部分への‘file:/’形式のリンクが作成されます。それ以外の場合は、user/channel/serverへの‘irc:/’スタイルのリンクが一時保管されます。
その他のファイル
その他のファイルの場合、リンクは、現在の行を指ししめす検索語句(see 検索オプション)を伴って作成されます。もし、アクティブなリージョンがある場合は、選択された言葉が検索語句の基本となります。自動的に作成されたリンクがうまく働かなかったり、不正確であったりする場合は、カスタム関数を書いて、検索語句を選択したり、特定のファイル形式を検索したりすることがきます。カスタム検索を参照してください。C-c
lというキーバインディングはひとつの提案に過ぎませんインストール)。
アジェンダビュー
カーソルがアジェンダビューにあるときは、作成されたリンクは現在の行が参照するエントリーを指し示します。
org-insert-link
)一時保管されたリンクを挿入
<現在のセッションで一時保管されたすべてのリンクは、このプロンプトの履歴となっていますので、<up>や<down>(あるいは、M-p/n)を使ってこれらにアクセスすることができます。
補完の支援
<TAB>を使用した補完機能によって、リンクの省略記法で定義された接頭辞(see リンクの省略記法)を含む、‘http’や‘ftp’などのリンクを適切に挿入することができるでしょう。もし、prefixのみをタイプした後に<RET>を押すと、Org-modeは、いくつかのリンク形式35に対して詳細な補完の支援を行います。たとえば、file
<RET>をタイプすると、ファイル名の補完((または、C-u C-c
C-lをタイプします。以下を参照。)を行い、bbdb
<RET>をタイプすると、連絡先の名前を補完することができます。
org-open-at-point
)org-file-apps
を参照してください。もし、デフォルトのアプリケーションではなくEmacsでファイルを開きたい場合は、接頭辞C-uを付け、Emacsで開くことを避けたい場合は、接頭辞C-u
C-uを付けてください。カーソルがリンクではない見出し上にあるときは、見出し上のすべてのリンクとエントリーテキストを表示します。org-return-follows-link
が設定されているときは、<RET>もポイント上のリンクを開きます。
org-toggle-inline-images
)
リンクされた画像のインライン表示をトグルします。通常これはリンクに項目名がない画像のみをインライン表示するものです。すなわち、エクスポート時にインラインになる画像のことです。org-startup-with-inline-images
変数37を設定することにより、インライン画像を起動時に表示されることができます。%
org-mark-ring-push
)
現在のポジションをマークリングに格納し、現在のポジションに簡単に戻ってこられるようにします。ファイル内部でのリンクをたどるときは、自動的にこれが行われます。&
org-mark-ring-goto
)
記録されたポジションへ戻ります。ポジションは、内部リンクをたどるコマンドとC-c
%によって記録されます。このコマンドを連続して何回か使うと、記録されたポジション間を移動することができます。C-n
org-next-link
)
org-previous-link
)(add-hook 'org-load-hook (lambda () (define-key org-mode-map "\C-n" 'org-next-link) (define-key org-mode-map "\C-p" 'org-previous-link)))
Org-modeだけでなく、どのEmacsのバッファでも、Org-mode構文を持つリンクを挿入し、たどることができます。このためには、次のような2つのグローバルコマンドを作成しなければなりません(自分に適したグローバルなキーを設定してください)。
(global-set-key "\C-c L" 'org-insert-link-global) (global-set-key "\C-c o" 'org-open-at-point-global)
長いURLをタイプするのは面倒ですが、往々にしてひとつの文章には似たようなリンクが数多く登場するものです。このような場合には、リンクの省略記法を使うことができます。省略記法されたリンクは次のようなものです。
[[リンク語句:タグ][項目名]]
タグはなくても構いません。リンク語句は文字で始まる語句、数字、‘-’、‘_’を使うことができます。省略記法は、リンク語句とリンクテキストを関連づけるorg-link-abbrev-alist
変数の値にしたがって展開されます。以下に例を示します。
(setq org-link-abbrev-alist '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=") ("google" . "http://www.google.com/search?q=") ("gmap" . "http://maps.google.com/maps?q=%s") ("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1") ("ads" . "http://adsabs.harvard.edu/cgi-bin/nph-abs_connect?author=%s&db_key=AST")))
置き換えるテキストに‘%s’が含まれている場合は、タグに置き換えられます。それ以外の場合は、タグはリンクを作成するために文字列に付け加えられます。リンクを作成する引数としてタグと一緒に呼び出される機能を指定したほうがよいかもしれません。
上記の設定だと、[[bugzilla:129]]
で特定のバグへリンクすることができ、[[google:OrgMode]]
で‘OrgMode’をウェブ検索することができ、[[gmap:51
Franklin Street, Boston]]
でFree Software Foundationの、[[omap:Science
Park 904, Amsterdam, The
Netherlands]]
でCarstenのオフィスの地図上の位置を表示することができ、[[ads:Dominik,C]]
でOrg-modeの作者がEmacsのハッキングの他に何をしているかを見つけることができます。
ある特定のOrg-modeバッファだけでリンクの省略記法を使いたい場合は、次のようにすることで定義できます。
#+LINK: bugzilla http://10.1.2.9/bugzilla/show_bug.cgi?id= #+LINK: google http://www.google.com/search?q=%s
バッファ内補完(see 補完)は、‘[’以降でリンクの省略記法を補完するために使用することができます。C-c
C-lでリンクを挿入することへの特別な支援(たとえば、補完)を実行するorg-PREFIX-complete-link
関数を定義することもできます。このような関数はいかなる引数も受け入れず、接頭辞付きのリンクを返します。
ファイルへのリンクには、ファイル内の特定の場所へジャンプするリンクを含ませることができます。これは、ダブルコロン38の後に行番号や検索語句を置くことによって行います。たとえば、C-c lコマンドをタイプして、あるファイルへのリンクを作成する場合(see リンクの扱い)、現在の行の言葉を検索語句としてリンクに含めることができ、C-c C-oコマンドで開くことができます。
説明と共に、あるファイルリンクへの検索語句を付加する様々な構文の方法を示します。
[[file:~/code/main.c::255]] [[file:~/xx.org::My Target]] [[file:~/xx.org::*My Target]] [[file:~/xx.org::#my-custom-id]] [[file:~/xx.org::/regexp/]]
255
My Target
*My Target
#my-custom-id
CUSTOM_ID
プロパティを持つ見出しへリンクします。
/regexp/
regexp
を正規表現検索します。これは、Emacsのoccur
コマンドを使って、一致するすべてを別ウインドウでリスト表示します。ターゲットがOrg-modeファイルならば、org-occur
が使われ、一致した部分について、ツリーの抽出を行います。
特殊なケースとして、ファイル名が指定されていないファイルのリンクは、現在のファイルの検索となります。たとえば、[[file:::find
me]]
は、‘[[find me]]’と同様に、現在のファイルで‘find me’を検索します。
デフォルトの検索文字列作成のメカニズムと、実際のファイル検索のメカニズムは、すべての場合でうまく動作するとは限りません。たとえば、BibTeXデータベースのファイルは、‘year=\"1993\"’のようなエントリーをたくさん有していますが、これは良い検索文字列であるとは言えません。なぜならば、BibTeXのエントリーでは、唯一の識別情報は引用キーだからです。
このような問題に直面した場合は、特定のファイルタイプに適した検索文字列を設定し、そのファイルで検索を行うカスタム関数を書くことができます。add-hook
を使用して、これらの関数は、org-create-file-search-functions
、org-execute-file-search-functions
というフック変数に付け加えられる必要があります。これらの変数についてのより詳しい情報は、ドキュメント文字列を参照してください。Org-modeは、実際にこのメカニズムをBibTeXデータベースファイルに使用しており、該当するコードを実装のサンプルとして使うことができます。org-bibtex.elというファイルを参照してください。
Org-modeではTODOリストを個別の文書として管理するわけではありません。39その変りに、TODOアイテムはノートファイルの一部として存在します。なぜならTODOアイテムはメモを書いている最中に頭に浮かぶものだからです!Org-modeでは、ツリーの中のどの項目でも簡単にマークしてTODOアイテムとするだけです。この方法により特定の情報を複数個所にもつ必要は無くなり、TODOアイテムを作成するのに使用した全文書が常に最新であることになります。
もちろん、こうした手法をとることで、あなたのノートファイルの中のあちこちに、TODOアイテムが散らばることになります。それを補うためにOrg-modeでは、やらなければならない事柄の全体を見渡す方法が提供されています。
どの見出しでも‘TODO’という言葉を前につけることで、TODOアイテムとみなします。例えば:
*** TODO サム フォーチュンに手紙を書く。
TODO項目を入力するときの最も重要なコマンドは以下のとおりです。
org-todo
),-> (マーク無し) -> TODO -> DONE --. '----------------------------------'
同じような状態の切り替えは、タイムラインとアジェンダバッファでtコマンドキー(see アジェンダのコマンド参照)を入力することで「間接的に」完了にすることもできます。
shift-selection-mode
との連携については、衝突も参照してください。変数org-treat-S-cursor-todo-selection-as-state-change
も参照してください。/ t
org-show-todo-key
)
ツリーの抽出機能を使ってTODOを確認します(see ツリーの抽出)参照。バッファ全体を折り畳みますが、全てのTODO項目「DONE状態以外の」とその上の見出しの階層を表示します。前置引数をつけることで(もしくは、キーバインドC-c
/
T)、ある特定のDONE状態の項目も表示させることができます。検索用のキーワードを入力するためのプロンプトが表示されます。さらにキーワードのリストを次のように入力することもできKWD1|KWD2|...
、この内のどれかに一致するものが表示されます。前置引数Nを使って、変数org-todo-keywords
内のN番目のキーワードを含むツリーを表示することもできます。2回の前置引数を指定すると、すべてのTODO状態「DONEとそれ以外を含む」を見つけることができます。a
t
org-todo-list
)
グローバルTODOリストを表示します。すべての「DONE状態以外の」TODOアイテムをすべてのアジェンダファイル(see アジェンダビュー)から集めて、一つのバッファに表示します。その新しくできたバッファは、agenda-mode
で表示され、確認や修正を加えるためのコマンドも提供されます。(see アジェンダのコマンド).
See グローバルなTODOリスト.を参照してください。org-insert-todo-heading
)TODOの状態の変更は、タグの変更をすることになることがあります。詳細については、オプションorg-todo-state-tags-triggers
のドキュメント文字列を参照してください。
デフォルトでは、マークされたTODOの状態は、TODOとDONEの2つしかありません。さらにOrg-modeは、TODOキーワード「org-todo-keywords
に指定されています。」を使って、より複雑にTODOアイテムを分類できます。特別な設定により、TODOキーワードシステムは、ファイルによって異なる働きにすることできます。
注記、タグは見出しと特にTODOアイテムを分類するもう一つの方法です。(see タグ).
TODOキーワードを使用して、アイテムの連続した異なる状態を表すことができます。例えば、40:
(setq org-todo-keywords '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
縦線は、TODOキーワード「アクションが必要な状態」とDONE状態「アクションが必要ない状態」を分けます。縦線が指定されていない場合は、最後の状態が、DONE状態として使用されます。 この設定により、コマンドC-c C-tで、TODOからFEEDBACKへ、それからVERIFY、最後にDONE、DELEGATEDというように順番に切り替えます。前置引数を使用することで、特定の状態を即座に選択することもできます。例えばC-3 C-c C-tと入力すると、すぐに3番目のVERIFYに変更することができます。もしくは、S-<left>により、逆の方向に順番に切り替えることもできます。もしも、たくさんのキーワードを定義した場合は、バッファ内補完機能(see 補完)か特別な一つのキーによる選択により特定のキーワードをバッファに入力することができます。(see TODOの状態への素早い対応手段)TODOの状態の変更は、タイムスタンプと共にログをとることができます。(より詳しい情報は作業の状態変化の追跡を参照)
TODOキーワードの2つ目の使い方として、いろいろな種類のやるべき事として表す使用法です。例えば、項目を「仕事」または「家」を示すようにも使えます。もしくは、複数の人と同じプロジェクトに参加するとき、その中の何人かに彼らの名前をTODOキーワードとして使って直接やるべき事を割り当てたいかもしれません。これは、以下のように設定します。:
(setq org-todo-keywords '((type "Fred" "Sara" "Lucy" "|" "DONE")))
この場合、それぞれのキーワードは作業の順序を表しているのではなく、別々のタイプを表すことになります。そのため、通常の作業の流れとしてタスクを一人に割り振ることになり、その後のDONEになります。Org-modeは、このような形式をサポートするため、「C-c C-t」コマンドの動作が少し変化します(41)。まずは、適当なタイプを選択するのに、繰り返し押すことで、順番にキーワードの名称が表示されます。しばらく間をおいてその項目に戻ってきて、「C-c C-t」を再度実行すると、そのときは、すぐDONEに切り替えられます。前置引数か補完を使えば、適当なタイプをすぐに選ぶことができます。さらにC-c / tに前置引数を指定することにより、抽出されたツリーの中で特定のTODOタイプの項目を確認することもできます。例えば、Lucyがやらねばならないにすべての項目を見るには、「C-3 C-c / t」を実行します。すべてのアジェンダファイルの中からLucyの項目を一つのバッファに集約するには、グローバルなtodoリストを作成し、前置引数を使用します:「C-3 C-c a t」、
時には、異なるセットのTODOキーワードを同時に使いたい場合があるかもしれません。例えば、通常のTODO
/DONE
を使用しつつ、バグフィックスのワークフロー、さらにアイテムがキャンセルをされたことを表すもう一つの状態を使用したい場合などです「つまりDONEではないが、次のアクションが必要ない場合」。その場合の設定は次のようになります:
(setq org-todo-keywords '((sequence "TODO" "|" "DONE") (sequence "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED") (sequence "|" "CANCELED")))
キーワードは、すべて異なるようにすべきで、そうすることでOrg-modeが、今入力されたキーワードから次に続くものを認識するのに役立ちます。この設定では、C-c
C-tは、サブグループ内だけで働きます。つまりDONE
から(何も無い状態)からTODO
へ、そしてFIXED
から(何も無い状態)からREPORT
へ。その為、まず使いたいサブグループを選ぶ方法が必要です。当然通常行うようにキーワードをタイプするか、補完、または次のコマンドを使うこともできます:
TODO
かDONE
からREPORT
、そして、二番目のサブグループのどれかの状態からCANCELED
へジャンプします。注意としてC-S-キーバインディングは、shift-selection-mode
(see 衝突)と衝突します。
DONE
に切り替えられ、さらにREPORT
になります。shift-selection-mode
と連携させる方法については、衝突を参照してください。>
もし、切り替えせずに任意のTODOの状態にすばやく変更したい場合は、キー登録して一文字でその状態に変更できます。それには、各キーワードの後に括弧で括ってセクションキーを割り当てることにより実現できます。例えば:
(setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)") (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)") (sequence "|" "CANCELED(c)")))
C-c
C-t
を押して、選択の為のキーを押せば、その選ばれた状態へ切り替えられます。さらに<SPC>を使って、どのTODOキーワードも削除することができます。42
異なるファイルごとに、TODOの機能をさまざまなの方法で使用できるととても便利です。ファイル単位のローカルな設定をするためには、そのファイルだけに通用するキーワードを特別な行として記入することで設定する必要があります。例えば、前述した2つの例のうちの一つを設定するの場合、次のような行を、そのファイルのどこかで行頭から開始する必要があります。
#+TODO: TODO FEEDBACK VERIFY | DONE CANCELED
(解釈を明確にするために#+SEQ_TODO
と記入してもいいです。しかし、#+TODO
と記入するのと同じです。)、もしくは、
#+TYP_TODO: Fred Sara Lucy Mike | DONE
同時に複数のキーワードグループの設定には:
#+TODO: TODO | DONE #+TODO: REPORT BUG KNOWNCAUSE | FIXED #+TODO: | CANCELED
間違いなく正しいキーワードを使うため、そのバッファ内で‘#+’をタイプして、M-<TAB>を使って補完してください。
縦線の後のキーワード「もしくは、縦線が指定されてない場合は、最後のキーワード」は、そのアイテムがいつもDONE「最後のもの」であることを覚えていてください「と言ってもDONE以外のキーワードも使えます」。これらの変更を加えた後、Org-modeに変更を認識させるため、カーソルを変更した場所に置いたままでC-c C-cしてください。43
Org-modeは、TODOキーワードを特別なフェイスを使ってハイライトします:org-todo
は、あるアイテムがアクションを必要とするキーワードであることを指しています。org-done
は、あるアイテムが完了していることを指しています。もし2つ以上の異なる状態を使用しているのであれば、特別なフェイスを使いたくなるかもしれません。これは、変数org-todo-keyword-faces
を変更することで可能です。例えば:
(setq org-todo-keyword-faces '(("TODO" . org-warning) ("STARTED" . "yellow") ("CANCELED" . (:foreground "blue" :weight bold))))
CANCELEDにあるようにフェイスプロパティのリストを使えば上手くいくはずですが、いつもうまくいっているように見えないかもしれません。必要であれば、特別なフェイスを定義してそれを使うのもいいかもしれません。文字列は、カラーとして解釈されます。変数org-faces-easy-properties
により、文字の色にするか、背景色にするか指定できます。
Orgファイルの構成「階層とリスト」は、TODOの依存関係の定義を容易にします。通常、親TODOタスクは、すべてのサブタスク「子タスクと定義されている」が終るまでは、DONEにするべきではありません。そして時折、多く「サブ」タスクに対して論理的な順序があるので、あるタスクがその前にあるすべての関連したタスクが終るまで始められないこともあります。もし、変数org-enforce-todo-dependencies
をカスタマイズすれば、Orgは、未完了の子タスクが終わるまでDONEへの状態の変更を防ぎます。さらに、もし、あるアイテムにORDERED
のプロパティが設定されていると、その前の関連したタスクのすべてがDONEになるまで、そのそれぞれの子タスクは、変更できないようになります。ここに例があります:
* TODO このTODOは、2番が終るまで変更できない。 ** DONE 1番 ** TODO 2番 * 親 :PROPERTIES: :ORDERED: t :END: ** TODO a ** TODO b, (a)が終わるのを待つ必要があります。 ** TODO c, (a)と(b)が終わるのを待つ必要があります。
org-toggle-ordered-property
)ORDERED
プロパティを現在のアイテムに対してトグルします。プロパティが、この動作に使われるのは、タグのように継承するのではなく、現在のアイテムに対してのみ動作させるためです。しかし、もし見やすいようにタグを使ってプロパティの値を記録したいのであれば、変数org-track-ordered-property-with-tag
をカスタマイズしてください。C-u C-u C-c C-t
変数org-agenda-dim-blocked-tasks
を設定すれば、依存関係のせいで閉じることのできないTODOエントリーをアジェンダビューで薄暗いフォントにして表示するか、さらに見えなくすることもできます。(see アジェンダビュー).
チェックボックスを見ることでTODOの状態の変更を妨げることもできます(see チェックボックス)。変数org-enforce-todo-checkbox-dependencies
を設定すれば、チェックされていないチェックボックスをもつエントリーがDONEになるのを妨げることもできます。
もし、より複雑な依存関係の構造が必要であれば、例えば、異なるツリーやファイルのエントリー同士の依存関係、付属モジュールのorg-depend.elを参照してみてください。
Org-modeは、TODOアイテムにDONEという完了の印をつけたときや、TODOアイテムの状態を変更したときはいつでも、自動的にタイムスタンプとメモを記録できます。かなり柔軟に設定することが可能で、キーワードごとに設定したり、ファイルやサブツリーごとに設定することもできます。タスクの時間管理についての情報は、作業に費やした時間の計測を参照してください。
一番基本的な時間の記録機能は、いつTODOアイテムが完了したかを記録することです。これは、次のようにしてください44
(setq org-log-done 'time)
この後、毎回TODO「未完了」からDONEの状態に移行したとき、見出しの後に‘CLOSED: [タイムスタンプ]’の行が挿入されます。切り替えていく間に一つのエントリーに対してTODOの状態に戻すと挿入された行はまた削除されます。タイムスタンプと一緒にメモも記録したいのであれば、次のようにしてください45
(setq org-log-done 'note)
この設定によりメモの入力を聞いてきます。そのメモは‘Closing Note’という見出しの下に挿入されます。
タイムライン「see タイムライン」とアジェンダ「see 毎週/毎日のアジェンダ」上で、lキー使用してTODOアイテムと‘CLOSED’タイムスタンプを日ごとに表示することができます。何が完了しているかのサマリも提供されます。
TODOキーワードがワークフローの状態(see ワークフローの状態)として使われる時に、いつその状態の変化が起きたか記録し、さらにメモを取りたくなるかもしれません。その場合、タイムスタンプかタイムスタンプ付きメモを記録することができます。これらは、見出しの後に一番新しいものを先頭として46項目ごとにリストされ挿入されます。たくさんのメモをとっている場合、そのメモを引き出しの中に入れて隠したいようになるかもしれません「see 引き出し」。その場合、変数org-log-into-drawer
を編集してください。オススメの引き出しは、LOGBOOK
と呼ばれています。さらにサブツリーのために、この変数の設定もLOG_INTO_DRAWER
プロパティを修正すれば、その効果を無視して上書きすることができます。
通常、すべての状態でメモを記録するのはやりすぎになるので、Org-modeは、キーワードごとに設定されると想定します。これは、特別なマーカー‘!’「タイムスタンプ用」、‘@’「メモ用」をキーワードの後に括弧に入れることでできるようになります。例えば、以下のようになります。
(setq org-todo-keywords '((sequence "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELED(c@)")))
これで、グローバルTODOキーワードとショートカットキーを定義するだけでなく、DONEに状態が変更された際、時間も記録されるようにも定義できます。47そして、WAITかCANCELEDに状態が変化したときにメモが記録されます。WAITの設定は、さらに特別です:斜線の後の‘!’は、その状態に最初に切り替わる際に挿入されるメモの記録だけでなく、WAITの状態から次にの状態に変わる時に、タイムスタンプも記録されます「でもこれは、次の状態が切り替わる時に記録する設定がない場合にのみ有効です」。そのため、WAITからDONEに切り替わる際には影響がありません、なぜならDONEは、タイムスタンプを記録するだけとして設定されているからです。しかしWAITからTODOに戻る場合は、TODOになにも記録するように設定されてなくても、WAITの‘/!’設定が、タイムスタンプを挿入するようになります。
まったく同じ構文を使ってバッファ内のみ有効な設定を使用できます。
#+TODO: TODO(t) WAIT(w@/!) | DONE(d!) CANCELED(c@)
サブツリーまたは、一つのアイテムだけ局所的にログの設定を定義したい場合は、そのエントリーにLOGGINGプロパティを定義してください。空ではないLOGGINGプロパティは、すべてのログの設定をnilにリセットします。この後、lognotedone
かlogrepeat
のようなSTARTUPキーワード、そしてTODO(!)
のような状態に特化した設定を追加して、特定のツリーに対してログを開始するようにできます。例えば
* TODO 各状態のタイムスタンプだけをログを取る :PROPERTIES: :LOGGING: TODO(!) WAIT(!) DONE(!) CANCELED(!) :END: * TODO WAITに切り替えられ、さらに繰り返されたときだけログを取る :PROPERTIES: :LOGGING: WAIT(@) logrepeat :END: * TODO 何もログを取らない :PROPERTIES: :LOGGING: nil :END:
Org-modeには、「habits(習慣)」と呼ばれるTODOの特別なカテゴリーの一貫性を記録するための機能があります。habitには、以下の性質があります:
org-modules
をカスタマイズすることでhabits
モジュールを有効にしてある。
STYLE
に、habit
を値として定義してある。
.+
スタイルで繰り返される間隔を表します。++
スタイルは、時間制限があるような場合に有効でしょう。例えば、週末にしなければいけないことなどです。+
スタイルは、遅れることがあるような通常の習慣ではないような場合「例:週次報告書」に適しています。
DONE
を使用できるようにしておく必要があります。使用できるようになっていない場合は、エラーにはなりませんが、一貫性を表すはずのグラフがまったく意味のないものになります。
上記にある定義が実際にはどのようになるか分かってもらうために、ここに経過の記録情報と共に実際のhabitがあります。
** TODO 髭剃り SCHEDULED: <2009-10-17 Sat .+2d/4d> - State "DONE" from "TODO" [2009-10-15 Thu] - State "DONE" from "TODO" [2009-10-12 Mon] - State "DONE" from "TODO" [2009-10-10 Sat] - State "DONE" from "TODO" [2009-10-04 Sun] - State "DONE" from "TODO" [2009-10-02 Fri] - State "DONE" from "TODO" [2009-09-29 Tue] - State "DONE" from "TODO" [2009-09-25 Fri] - State "DONE" from "TODO" [2009-09-19 Sat] - State "DONE" from "TODO" [2009-09-16 Wed] - State "DONE" from "TODO" [2009-09-12 Sat] :PROPERTIES: :STYLE: habit :LAST_REPEAT: [2009-10-19 Mon 00:36] :END:
このhabitが表しているのは、髭剃りを多くて2日ごとか「SCHEDULED
により指定された日付と繰り返される間隔」、少なくとも4日ごとにする。もし、今日が15日とすると、このhabitは、二日後の10月17日にアジェンダに表示されて、4日後の19日には、期限切れとして表示されます。
habitsの本当に使い易いところは、定期性グラフと表示されることです。これは、過去にどれぐらいタスクが定期的に完了したかを見るためのものです。このグラフは、毎日過去3週間のタスクが完了したかを色分けして表示します。各色は、以下を表します:
青
緑
黄
赤
日ごとの色分けだけでなく、その日に終わったタスクに関してはアスタリスクでマークされ、感嘆符が、グラフ中の今日の日付の部分に付きます。
アジェンダ上でhabitsが表示方法を変える幾つかの設定変数があります。
org-habit-graph-column
org-habit-preceding-days
org-habit-following-days
org-habit-show-habits-only-for-today
最後に、アジェンダバッファでKを押すことによりhabitsを一時的に使用不可にし、まったく表示させないようにできます。もう一度Kを押すと元にもどります。例えば、もし特定の前後の内容によてのみ必要なhabitsの場合は、タグのフィルタリングの影響も受けます。
もし、Org-modeよく使うのであれば、最終的にTODOアイテム量が増え、優先順位付けをした方がいいとなるかもしれません。優先順位付けはTODOアイテムの見出しに、次のように優先順位クッキーを置くことで可能になります:
*** TODO [#A] サム フォーチュンに手紙を書く。
初期値としてOrg-modeは、次の3つの優先順位付けをサポートします:‘A’、‘B’、‘C’。‘A’が一番高い優先度です。クッキーなしの場合は、‘B’の優先度として扱われます。優先順位付けは、アジェンダの順番を付けるときのみ影響します。「see 毎週/毎日のアジェンダアジェンダ外では、Org-modeで継承されたりしません。クッキーは、変数org-priority-faces
をカスタマイズすることにより、特別なフェイスを使ってハイライトすることもできます。
優先順位付けどんなアウトラインモードにも付けるとができます。つまりTODOアイテムである必要はありません。
org-priority-up
)org-priority-down
)shift-selection-mode
との相互利用に関しては次を参照してください。衝突
変数org-highest-priority
、org-lowest-priority
、org-default-priority
を設定することで、変更できる優先度の範囲を変えることができます。バッファごとに、「上限、下限、既定値」の設定を以下のようにすることができます。「必ず一番上の優先度の文字が、一番下の優先度よりもアルファベットの並びで前の文字であるようにしてください。」:
#+PRIORITIES: A C B
通常、大きなタスクは小さくて管理しやすいサブタスクに細分化することをお勧めします。これはTODOアイテムの下にアウトラインツリーをさらに詳細なサブタスクをそのツリーを付けて作成することで可能です。49すでに完了したサブタスクの進捗状況を表示してさせておくには、‘[/]’か‘[%]’ヘッドラインのどこかに挿入してください。これらのクッキーは、サブタスクのTODOの状態が変わるかクッキー上でC-c C-cを押すたびに更新されます。例えば:
* パーティーの準備をする [33%] ** TODO 出席者に電話する [1/2] *** TODO ピーター *** DONE サラ ** TODO 食べ物を買う ** DONE 近所の人と話す
もし、見出しがチェックボックスと子TODOを両方持っていた場合、統計クッキーは、あいまいなものになります。この問題を解決するには、COOKIE_DATA
プロパティを‘checkbox’か‘todo’に設定してください。
もし統計クッキーに「直下のTODOだけでなく」すべてのサブツリーのTODOエントリーを含めたい場合は、変数org-hierarchical-todo-statistics
を設定してください。これを一つのサブツリーに行うには、‘recursive’というキーワードをCOOKIE_DATA
プロパティの値として設定してください。
* 親キャプチャ統計 [2/20] :PROPERTIES: :COOKIE_DATA: todo recursive :END:
もしすべての子タスクが終了後、TODOエントリーを自動的にDONEに切り替えたい場合は、以下の設定を行なってください:
(defun org-summary-todo (n-done n-not-done) "すべてのサブツリーが終了するとDONEに切り替え、その他の場合は、TODOになする。" (let (org-log-done org-log-states) ; 記録「logging」を終了 (org-todo (if (= n-not-done 0) "DONE" "TODO")))) (add-hook 'org-after-todo-statistics-hook 'org-summary-todo)
その他の方法としては、チェックボックスをつかって「階層化された」多量のサブタスクがいくつあるか調べることもできます。「see チェックボックス」
プレーンなリスト50「see エントリー中の階層構造」は、‘[ ]’で開始することでチェックボックスにすることができます。この機能は、TODOアイテムに似ていますが「see TODOアイテム」、より気軽につかえます。チェックボックスは、グローバルTODOリストに追加されません。そのためタスクを分岐するのに便利です。もしくは、買い物リストに使えます。チェックボックスをチェックした状態するには、C-c C-cを使ってください。もしくは、マウスでクリックしてください。「Piotr Zielinskiのorg-mouse.elに感謝」。
以下は、チェックボックスリストの例です:
* TODO パーティーの準備 [2/4] - [-] みんなに連絡 [1/3] - [ ] ピーター - [X] サラ - [ ] サム - [X] 食べ物を注文 - [ ] どんな音楽を掛けるか考える - [X] 近所の人と話す
チェックボックスは、階層化に対応しています。そのため、もしあるチェックボックス下の項目が複数のチェックボックスである場合、チェックボックスが全くチェックされていないか、いくつかされているか、全てされているかによりその内の一つのチェックボックスをチェックした状態にすると親チェックボックスに影響します。
最初と二列目の‘[2/4]’と‘[1/3]’はクッキーであり、いくつのチェックボックスがそのエントリーでチェックされているかとそのすべてのチェックボックス数が表示されています。これにより、いくつのチェックボックスが残っているか、折りたたまれていても分かるようになっています。クッキーは見出しかプレーンなリスト「の最初の列」に置くことができいます。各クッキーは、クッキーのある見出し/項目の直下にある子構造であるチェックボックスを表しています。51自分でクッキーを‘[/]’もしくは、‘[%]’をタイプして入力しなければなりません。‘[/]’を入力すると上記したように、‘m個の内のn個’となります。‘[%]’の場合は、何パーセントのチェックボックスがチェックされているかが情報として得られます。「上記の例では、それぞれ‘[50%]’と‘[33%]となります」’.
見出しの下では、クッキーは、見チェックボックスか子TODOの状態の数を数えます。また、最後の変更に基づいて表示されます。この問題を解決するには、プロパティCOOKIE_DATA
を‘checkbox’か‘todo’に設定してください。
アウトラインノードにORDERED
プロパティが設定されている場合、チェックボックスは、連続でチェックされていなければなりません。上部のチェックボックスがチェックされていない状態でその下部のチェックボックスをチェックしようとするとエラーがスローされます
org-toggle-checkbox
)
チェックした状態をトグルするか「前置引数と実行すると」チェックボックスを作成します。ダブル前置引数だと、‘[-]’が設定されます。これは、中間の状態を表します。C-x
C-b
org-toggle-checkbox
)
チェックした状態をトグルするか「前置引数と実行すると」チェックボックスを作成します。ダブル前置引数だと、‘[-]’が設定されます。これは、中間の状態を表します。
org-insert-todo-heading
)org-toggle-ordered-property
)
ORDERED
プロパティを設定します。これは、連続でチェックボックスがチェックされていなければならないと指定します。プロパティが使用されます、なぜならこの指定はローカルに影響するべきでタグのように継承されるないからです。しかし、見やすいようにタグを使ってプロパティの値を記録したい場合は、org-track-ordered-property-with-tag
変数をカスタマイズしてください。#
org-update-statistics-cookies
)
現在のアウトライン内の統計クッキーを更新します。C-u引数と呼び出されるとファイル全体を更新します。C-c
C-cでチェックボックスをトグルした場合とM-S-<RET>で新しいチェックボックス項目が作成された場合、チェックボックス統計クッキーは、自動的に更新されます。TODO状態を変更すると統計クッキーも更新されます。手動でチェックボックスや項目を削除したり、それらを追加したり変更した場合は、このコマンドをつかって状態を更新してください。もしくは、単にコマンドを二度トグルしてください「C-c
C-cチェックボックスを作成など」。
相互に関係する情報のためにコンテクストやラベルをつけるためのすばらしい方法の一つは見出しにタグを対応づけることです.Org-modeはタグについて幅広く対応しています.
全ての見出しはタグのリストを取ることができて,タグは見出しの最後に置かれます.タグはいわゆる普通の単語で利用される文字や数字,‘_’,‘_’を利用できます.タグはコロンで始まりコロンで終わらなければなりません.例えば,‘:work:’です.複数のタグはこのように書きます.‘:work:urgent:’.タグはデフォルトでは太字のフェイスで見出しと同じ色で表示されます.TODOのキーワード(see TODOキーワードのフェイス)と同じように変数org-tag-faces
を変更することで特別なフェイスを設定することも可能です.
タグはアウトラインツリーの階層構造を利用します.もしある見出しに特定のタグがついていれば,全ての下位レベルにタグが継承されます.以下に例を示します:
* Meeting with the French group :work: ** Summary by Frank :boss:notes: *** TODO Prepare slides for him :action:
最後の見出しには明示的にマークされていない,‘:work:’,‘:boss:’,‘:notes:’,‘:action:’のタグがついています.ファイル全体の見出しに継承される見出しをつけることもでき,これは仮定的にレベル0の見出しとして定義され,ファイル全体に反映させることができます.この例を次に示します52:
#+FILETAGS: :Peter:Boss:Secret:
特定のタグについてタグの継承を制限するには変数org-use-tag-inheritance
,org-tags-exclude-from-inheritance
を利用します.
タグの継承が有効の場合にタグの検索で見出しが一致したとき,その見出しの全てのサブツリーも同じように一致します53.始めにタグが一致したサブツリーのみを表示したいのであれば,変数org-tags-match-list-sublevels
を設定してください
(非推奨).
簡単に見出しの最後へタグは入力することができます.コロンの次にM-<TAB>でタグの補完をします.他にもタグの入力のための特別なコマンドが以下に続きます:
org-set-tags-command
)org-tags-column
の列に整列されます.数引数(C-u
prefix)をつけて呼び出すと,カレントバッファの全てのタグがきれいに見えるように整列されます.TAGSは自動的に昇格や降格した後に再整列され,TODOの状態が変わります(see TODOの基本).C-c
org-set-tags-command
)
カーソルが見出し行にある時はC-c C-qと同じ動作をします.
Org-modeはlist of
tagsに基づくタグの挿入をサポートしています.このリストはデフォルトでは動的に構築され,バッファで使われているタグを全て含みます.変数org-tag-alist
にタグのリストを設定することでグローバルにタグを指定しておくこともできます.デフォルトのタグを次のようにファイルに記述することでもデフォルトのタグリストを設定できます.
#+TAGS: @work @home @tennisclub #+TAGS: laptop car pc sailboat
もし変数org-tag-alist
にタグを設定することでタグリストがグローバルに定義されていたとして,そのリストよりもファイルから生成された動的なタグリストを利用したければ,次のような空のTAGSオプションをファイルに指定します
#+TAGS:
もし全てのファイルで使うつもりのタグや,ファイルごとのTAGSオプションで定義されたタグの集合を優先したければ,変数org-tag-persistent-alist
に明記すればよい.これを止めるにはファイルごとにSTARTUPオプションを次のように書きます.
#+STARTUP: noptag
デフォルトでOrg-modeはタグの入力に標準的なミニバッファでの補完を使います.しかしfast tag
selectionと呼ばれるもう一つの速い実装もあります.これはタグの選択や除外をワンキーで可能にするものです.これをうまく動かすためにあなたはユニークな文字を良く使うタグにアサインするべきです.変数org-tag-alist
を.emacsに設定することでグローバルにこの機能を使うことができます.例えば複数のファイルの多くの項目に‘:@home:’タグをつけるという需要があったとします.この場合次のような設定なるでしょう.
(setq org-tag-alist '(("@work" . ?w) ("@home" . ?h) ("laptop" . ?l)))
もしそのタグが作業中のファイルにおいてのみふさわしいのであれば,かわりに次のようにTAGSオプションを書くこともできます.
#+TAGS: @work(w) @home(h) @tennisclub(t) laptop(l) pc(p)
タグインタフェースはスプラッシュウィンドウにとりうるタグを表示します.もし特定のタグの後に新しい行から始めたいのであればタグリストに‘\n’を挿入します.
#+TAGS: @work(w) @home(h) @tennisclub(t) \n laptop(l) pc(p)
もしくは2行に分けて書きます.
#+TAGS: @work(w) @home(h) @tennisclub(t) #+TAGS: laptop(l) pc(p)
また次のようにブレース(波括弧{})を使うことで相互排除したグループにタグをまとめることもできます.
#+TAGS: { @work(w) @home(h) @tennisclub(t) } laptop(l) pc(p)
これは‘@work’,‘@home’,‘@tennisclub’のうち少なくとも一つは選択されることを意図しています.そのようなグループを複数持つことも可能です.
これらの変更を有効にするために,その行にカーソルを置いて<C-c C-c>を押すことを忘れないようにしてください.
これらの相互排除グループを変数org-tags-alist
で設定するためには,ブレースの代わりにダミーのタグとして:startgroup
と:endgroup
を使わなければなりません.同様に改行を表現するためにダミーのタグとして:newline
を使うことができます.直前の例を設定すると次のような記述になります.
(setq org-tag-alist '((:startgroup . nil) ("@work" . ?w) ("@home" . ?h) ("@tennisclub" . ?t) (:endgroup . nil) ("laptop" . ?l) ("pc" . ?p)))
もし少なくとも一つのタグに選択用キーが設定されていると,C-c C-cが押されたときに自動的に特別なインタフェースが表示されます.そのインタフェースは継承されたタグ,現在の見出しのタグ,全ての有効な付随するタグを提示します54.このインタフェースでは以下のキーが利用できます.
このメソッド(特別なインタフェース)であなたはとても少ないタイプで見出しにタグをつけられます.上記の設定で,現在のタグをクリアして,‘@home’,‘laptop’,‘pc’のタグをつけるには次のように入力します: C-c C-c <SPC> h l p <RET>.タグ‘@home’を‘@work’へ付け替えるにはC-c C-c w <RET>とタイプするか代わりにC-c C-c C-c wとタイプします.定義されていないタグ‘Sarah’を追加するにはC-c C-c <TAB> S a r a h <RET> <RET>すればよいのです.
もしタグを決定するのをただひとつのキーを押すだけにする必要があれば,変数org-fast-tag-selection-single-key
を設定します.これによってタグを選択するキーを押した後にRETを押す必要がなくなります.もしキー入力が必要であればC-cで無効化できます(つまりタグの選択を始めるためにC-c
C-c C-cの代わりにC-c
C-cを使います).もしこの変数にexpert
を設定すれば,タグのワンキー選択用の特別なウィンドウを表示しなくなります.C-cを追加してはじめてそのウィンドウが表示されるようになります.
一度タグシステムが設定されると,関連する情報を特殊なリストに集めるのに使われます.
org-match-sparse-tree
)org-tags-view
)
全てのアジェンダファイルにおいてタグにマッチしたものの一覧を作成する.See タグとプロパティとのマッチング. M
org-tags-view
)
全てのアジェンダファイルにおいてタグにマッチしたものの一覧を作成する.ただしTODOの項目に限定し,サブツリーの項目の検索を強制する(変数org-tags-match-list-sublevels
参照).
これらのコマンドは全てマッチ文字列を問います.マッチ文字列はタグ‘boss’と‘urgent’を含み,‘project1’を含まないものを検索する‘+boss+urgent-project1’や,タグ‘Kathy’または‘Sally’がつけられているエントリーを検索する‘Kathy|Sally’のような基本的な論理構造が使用可能です.検索文字列の全ての構文はリッチでTODOキーワードやエントリーのレベル,プロパティにもマッチします.完全な説明と多くの例はタグとプロパティとのマッチングを見てください.
プロパティはエントリーに関連付けられたキーと値を持つペアのあつまりです。Org-modeでは、プロパティのための主要なアプリケーションが2つあります。1つ目は、プロパティはタグのようですが値を持つことです。2つ目は、Org-modeのバッファで(とても基本的な)データベース機能を実装するためにプロパティを使えることです。1つ目のアプリケーションの例に、ソフトウェアのリリース計画とバグを文章化するファイルを管理することを想像して下さい。:release_1:
、:release_2:
のようなタグを使う代わりに、:Release:
というプロパティを使い、異なるサブツリーの中に1.0
や2.0
のような異なる値を持たせれば良いのです。プロパティの2つ目のアプリケーションの例に、音楽CDのトラックを管理する事を想像して下さい。そこではアルバム名、アーティスト名、リリース日、トラックの数などがプロパティとなるでしょう。
プロパティはカラムビューで便利に編集、閲覧できます(see カラムビュー)。
プロパティはキーと値のペアです。それらは、名前PROPERTIES
を持つ特別な引き出し(see 引き出し)の中にある必要があります。各プロパティは最初に(コロンで囲われた)キーを持ち、その後に値を持つ1行で記述されます。以下に例を示します。
* CD collection ** Classic *** Goldberg Variations :PROPERTIES: :Title: Goldberg Variations :Composer: J.S. Bach :Artist: Glen Gould :Publisher: Deutsche Grammophon :NDisks: 1 :END:
プロパティ‘:Xyz_ALL:’のように設定する事で、特定なプロパティ‘:Xyz:’の許容値を定義できます。この特別なプロパティは、もしレベル1のエントリに設定されたならば全てのツリーに適用されるように継承されます。許容値を定義すると、対応するプロパティの設定が簡単になり、入力ミスを防ぐ事ができます。CDコレクションの例では、以下のように1つのボックスの中に発売元とディスクの数をあらかじめ定義できます。
* CD collection :PROPERTIES: :NDisks_ALL: 1 2 3 4 :Publisher_ALL: "Deutsche Grammophon" Philips EMI :END:
1つのファイル全体で継承されるプロパティを設定したいならば、以下の行のようにします。
#+PROPERTY: NDisks_ALL 1 2 3 4
グローバル変数org-global-properties
に設定するプロパティの値は全てのOrg-modeのファイルに継承されます。
pcomplete
)org-set-property
)
プロパティを設定します。プロパティ名と値の入力を促します。必要なら、プロパティの引き出しがさらに作られます。
org-property-action
)
プロパティの引き出しの中にカーソルがあるとき、プロパティコマンドを実行します。C-c
s
org-set-property
)
現在のエントリにプロパティを設定します。プロパティと値の両方共、補完を使って入力できます。org-property-next-allowed-value
)org-property-previous-allowed-value
)org-delete-property
)
現在のエントリからプロパティを削除します。D
org-delete-property-globally
)
プロパティを現在のファイルにある全てのエントリからグローバルに削除します。C-c
c
org-compute-property-at-point
)
ポイントにあるプロパティを最も近い列のフォーマット定義からオペレータやスコープを使って計算します。
以前の章で述べたTODO状態や、エントリの優先度のようなスペシャルプロパティは、Org-modeの機能への別のアクセス方法を提供します。このインターフェイスはカラムビュー(see カラムビュー)にそれらの状態を含めたり、クエリにそれらを使ったりする事で生じます。次のプロパティ名は特別(:CATEGORY:
を除いて)で、プロパティの引き出しでキーとして使われません。
TODO エントリのTODOキーワード
TAGS 見出しに直接定義されたタグ
ALLTAGS 継承されたタグも含む全てのタグ
CATEGORY エントリのカテゴリ
PRIORITY 1文字の文字列である、エントリの優先度
DEADLINE 山括弧(<>)のないデッドライン時刻文字列
SCHEDULED 山括弧(<>)のないスケジュールタイムスタンプ
CLOSED いつこのエントリがクローズされたか
TIMESTAMP エントリで最初のキーワードのないタイムスタンプ
TIMESTAMP_IA エントリで最初のアクティブでないタイムスタンプ
CLOCKSUM サブツリーでのCLOCKインターバルの合計。org-clock-sum
\n
が値を計算するために最初に実行されなければならない。\n
BLOCKED "t" であれば、タスクが子供や兄弟に現在ブロックされている
ITEM エントリの内容
FILE エントリのあるファイル名
プロパティに基づいて選択した特別なリストやツリーの抽出を作成するために、タグ検索(see タグの検索)の場合と同じコマンドが使えます。
org-match-sparse-tree
)org-tags-view
)org-tags-view
)org-tags-match-list-sublevels
参照)のみチェックします。
検索文字列のための文法は、タグとプロパティとのマッチングで説明されています。
1つのプロパティに基いて抽出したツリーを作成するための特別なコマンドもあります。
Org-mode文章のアウトライン構造はプロパティの継承モデルを適用しています。ツリーの親があるプロパティを持っているならば、子はこのプロパティを継承します。Org-modeはこれをデフォルトで有効としていません。これはプロパティの検索を遅くしてしまうためとあまり必要とされないためです。しかしながら、継承が役立つ場面があるならば、変数org-use-property-inheritance
を設定する事で有効とできます。この変数は、全てのプロパティを親から継承するt
、継承されるべきプロパティのリスト、継承されるプロパティにマッチする正規表現を設定できます。もしプロパティが値‘nil’を持つならば、継承検索がこの値で停止しnil
を返すように、明示的に未定義のプロパティであると解釈されます。
Org-modeは、継承がハードコードされているプロパティがいくつかあります。少なくともそれらを使う特別なアプリケーションがあります。
COLUMNS
:COLUMNS:
プロパティは、カラムビュー(see カラムビュー)のフォーマットを定義します。:COLUMNS:
プロパティが定義されているレベルがカラムビューテーブルの開始地点として使われるという意味で継承されます。そして、列表示が有効である場所とサブツリーの場所とは無関係です。
CATEGORIES
:CATEGORY:
プロパティを通して設定されたカテゴリがサブツリー全体に適用されます。
ARCHIVE
:ARCHIVE:
プロパティは、サブツリー全体のアーカイブ位置を定義します(see サブツリーを移動する)。
LOGGING
アウトラインツリーにあるプロパティを閲覧、編集するための最も良い方法はカラムビューです。カラムビューでは、各アウトラインノードがテーブル行に変換されます。このテーブルにある列がエントリのプロパティへのアクセスです。Org-modeは、各項目の見出し上にテーブル構造をオーバレイすることで列を実装します。見出しはテーブル列に変換されますが、アウトラインツリーの見た目もまだ変えられます。例えば、CONTENTS ビュー(S-<TAB>S-<TAB>、もしくは、カラムビューがアクティブであるときに単純にc)にスイッチする事でコンパクトなテーブルを得られますが、まだ各見出し以下のエントリを開いたり、読んだり、編集したりもできます。また、ツリーの抽出コマンドを実行した後にカラムビューに切り替える事もでき、この方法では選択した項目のみのテーブルを得ます。カラムビューは利用可能な複数のファイルから選択した項目を集めたクエリのあるアジェンダバッファ(see アジェンダビュー)でも動作します。
最初にカラムビューを設定するために、カラムを定義する必要があります。これはカラムフォーマット行を定義する事によってなされます。
カラムフォーマットを定義するために、次のように行を記載します。
#+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO
指定したツリーに適用するだけのフォーマットを指定するために、:COLUMNS:
プロパティをそのツリーの一番上のノードに追加します。例えば、
** カラムビューの最初のノード :PROPERTIES: :COLUMNS: %25ITEM %TAGS %PRIORITY %TODO :END:
もし:COLUMNS:
プロパティがエントリに現れると、そのエントリ自身とそれ以下のサブツリー全体の列を定義します。列定義は文章の階層構造の一部なので、全てのサブレベルに十分一般的なレベル1の列を定義でき、また、ツリーのより深い部分を編集するとき、より下位の指定された列を定義できます。
列定義は、列の属性の集りです。一般的な定義は以下のようになります。
%[width]property[(title)][{summary-type}]
パーセントとプロパティ名を除いて、全ての項目はオプションです。個々のパーツは次の意味を持ちます。
width 列の幅を文字数で指定する整数。 省略すると、幅は自動的に決定されます。 property この列で編集できるプロパティ。 メタデータを示す特別なプロパティがここで許容されます。 (see スペシャルプロパティ) title 列の見出しテキスト。省略するとプロパティ名が使われます。 {summary-type} サマリタイプ。 指定すると親ノードの列の値は子から計算されます。 サポートされるサマリのタイプは以下です。 {+} この列にある数の和。 {+;%.1f} ‘+’と似ているが、フォーマットが‘%.1f’となる。 {$} 通貨。‘+;%.2f’の略。 {:} 時刻の合計。HH:MM。数値は時間。 {X} チェックボックスの状態。 子が全て‘[X]’ならば、‘[X]’です。 {X/} チェックボックスの状態。‘[n/m]’。 {X%} チェックボックスの状態。‘[n%]’。 {min} 列の最も小さい数値。 {max} 最も大きい数値。 {mean} 数の算術平均。 {:min} 列に最も小さい時間数値。 {:max} 最も大きい時間数値。 {:mean} 時刻の算術平均。 {@min} 最小時刻(日/時間/分/秒)。 {@max} 最大時刻(日/時間/分/秒)。 {@mean} 時刻の算術平均(日/時間/分/秒)。 {est+} 低-高見積りを追加。
含めるあらゆるプロパティに1つのサマリタイプしかを持てないという事に気をつけて下さい。同じプロパティを参照する後にくる列は全て同じサマリの情報を表示します。
est+
サマリタイプはもう少し説明が必要です。それは低-高の幅で表現される見積りを組み合わせるために使われます。例えば、特定のタスクが5日必要であると見積る代わりに、どのくらいの仕事が必要とされるか公正に確実に見積もるならば5日から6日と、それをなすのに必要な時間が本当に分からないならば、1-10日と見積るでしょう。両者の幅の平均は5.5日ですが、前者はより予測可能な発言を示しています。
そのような見積りを組み合わせるとき、単純に低と高を追加すると非現実的な幅の結果を作ります。代わりに、est+
は合計から最終的な見積りを生成する事で統計的意味やサブタスクの分散を追加します。例えば、10個のタスクがあるとき、各々が0.5から2日の仕事であると見積られました。全てが非常によく進む、もしくは悪く進むと期待する事による計算で、ストレートな追加は5日から20日の見積りであると生成します。対照的に、est+
は全ての仕事より現実的に10日から15日であると見積ります。
以下は許可値にそって列定義を計算する例です。
:COLUMNS: %25ITEM %9Approved(Approved?){X} %Owner %11Status \55 %10Time_Estimate{:} %CLOCKSUM :Owner_ALL: Tammy Mark Karl Lisa Don :Status_ALL: "In progress" "Not started yet" "Finished" "" :Approved_ALL: "[ ]" "[X]"
最初の列、‘%25ITEM’はその項目の25文字を意味します。すなわち見出しのです。おそらく常に‘ITEM’指示子を持つ列定義をはじめるべきでしょう。その他の指示子は許容値の名前のリストを持つ列‘Owner’、4つの異なる利用可能な値を持つ‘Status’、チェックボックスフィールドを持つ‘Approved’を生成します。‘%’文字の後に幅が与えられていないとき、列は全ての値を完全に表示するために必要な幅と同じぐらい正確に広くなります。‘Approved’列は修正れたタイトル(クエスチョンマークのある‘Approved?’)を持っています。サマリは、HH:MMのように表現する持続時間を追加することで‘Time_Estimete’を、全ての子がチェックされているなら‘[X]’を提供することで‘Approved’を作ります。‘CLOCKSUM’は特別で、サブツリーにあるCLOCKインターバルの合計をリストします。
org-columns
)#+COLUMNS
定義を使う事によりファイル全体に対して有効となります。カーソルがアウトラインの内側のどこかにあるならば、このコマンドはフォーマットを定義する:COLUMNS:
プロパティをポイントから上部の階層に向かって検索します。1つ見つかったとき、カラムビューテーブルは:COLUMNS:
プロパティを含むエントリではじまるツリー用に設立されます。そのようなプロパティが見付からないときは、フォーマットは#+COLUMNS
行もしくは、変数org-columns-default-format
から取得され、カラムビューは現在のエントリとそのサブツリーのために設置されます。org-columns-redo
)org-columns-redo
)org-columns-quit
)org-columns-next-allowed-value
)org-columns-previous-allowed-value
)org-columns-edit-value
)org-columns-set-tags-or-toggle
)
チェックボックスがあるならば、それを切り替えます。org-columns-show-value
)org-columns-edit-allowed
)org-columns-narrow
)org-columns-widen
)org-columns-new
)org-columns-delete
)カラムビューはバッファへのオーバレイのみなので、直接にエクスポートや印字ができません。カラムビューをキャプチャしたいならば、columnview
ダイナミックビュー(see ダイナミックブロック)を使って下さい。このブロックのフレームは以下のように見えます。
* The column view #+BEGIN: columnview :hlines 1 :id "label" #+END:
ダイナミックブロックを更新するには以下のコマンドを使用します。
:id
local キャプチャブロックに位置するツリーを使います。
global そのファイル内の全ての見出しを含む、
グローバルビューを作ります。
"file:path-to-file"
このファイルの一番上のカラムビューを実行します。
"ID" 値labelである:ID:
プロパティを
持つツリーにあるカラムビューを呼び出します。現在の
エントリ用にグローバルにユニーグなIDを作り、
kill-ringにそれをコピーするために
M-x org-id-copyを使えます。
:hlines
t
のとき、全ての行の後に横線を挿入します。数値Nのとき、レベル<=
Nを持つ各見出しの前に縦線を挿入します。
:vlines
t
に設定するとき、列グループに縦線を強制します。
:maxlevel
:skip-empty-rows
t
に設定すると、カラムビューの空でない指定子がITEM
のみである行をスキップします。
org-insert-columns-dblock
)
カラムビューをキャプチャするダイナミックブロックを挿入します。そのビューのスコープやIDの入力を促されます。C-c
C-u
org-dblock-update
)
ポイント下のダイナミックブロックを更新します。カーソルはダイナミックブロクの#+BEGIN
行にある必要があります。C-c C-x
C-u
org-update-all-dblocks
)
全てのダイナミックブロックを更新します(see ダイナミックブロック)。複数のクロックテーブルブロックや列キャプチャブロック、その他のダイナミックブロックがバッファにあるとき便利です。
カラムビューテーブルに計算式を追加し、テーブルの前にプロットする命令を追加できます。これらはブロックの更新があっても生き残ります。テーブルの後に#+TBLFM:
があるならば、テーブルは実際に更新の後に自動的に実際に再計算されます。
テーブルの中でプロパティ値を処理したりキャプチャする別の方法はEric Schulteのorg-collector.elによりできます。それは寄付されたパッケージ56です。あるスコープにあるエントリからプロパティを集めるための一般的なAPIやテーブルやダイナミックブロックの中に挿入する前にそれらの値を処理する任意のLisp式を提供します。
プロパティにアクセス、変更するための完全なAPIがあります。このAPIはプロパティと共に動作するために、また、それらを元とした機能を実装するためにEmacs Lispプログラムから使われます。詳細な情報はプロパティAPIを使うを参照して下さい。
プロジェクトのプランニングを補助するため、TODOアイテムは日付または時刻でラベリングすることができます。このような形でフォーマットされた日付および時刻の情報を含む文字列はOrg-modeではタイムスタンプと呼ばれています。一般的な用法では、タイムスタンプは何かを作成したときや最後に変更したときの記録を示しますので、若干紛らわしいかもしれませんが、Org-modeではタイムスタンプという用語をより広い意味で用います。
タイムスタンプは、例えば‘<2003-09-16 Tue>’、‘<2003-09-16 Tue 09:39>’、‘<2003-09-16 Tue 12:00-12:30>’といった独自形式での日付(場合によっては時刻および時間間隔を含む)の指定方法です57。タイムスタンプはOrgツリー構造の見出し、本文のいずれにも挿入できます。タイムスタンプを指定することにより、指定された日付のアジェンダ(see 毎週/毎日のアジェンダ)にそのエントリーが表示されます。その際には以下の区別が行われます。
* ピーターと映画を見に行く<2006-11-01 Wed 19:15> * 気候変動についてのディスカッション<2006-11-02 Thu 20:00-22:00>
* 学校までサムを迎えに行く<2007-05-16 Wed 12:30 +1w>
* 毎月第2木曜日のオタクの集まり <%%(diary-float t 4 2)>
** アムステルダムでのミーティング <2004-08-23 Mon>--<2004-08-26 Thu>
* ジリアンが5度目の遅刻 [2006-11-01 Wed]
Org-modeがタイムスタンプを認識するためには、特定のフォーマットを用いる必要があります。以下のコマンドのいずれを用いても正しいフォーマットでタイムスタンプを生成することができます。
org-time-stamp
)
日付を入力して、それに対応するタイムスタンプを挿入します。既にバッファ内に存在するタイムスタンプにカーソルが置かれている場合は、このコマンドは新たなタイムスタンプを挿入する代わりに、既にあるタイムスタンプを変更します。このコマンドを2回連続で使用すると、時間間隔を指定することができます。!
org-time-stamp-inactive
)
コマンドC-c
.と同様ですが、アクティブでない(アジェンダのエントリーに反映されない)タイムスタンプを生成します。
org-time-stamp-rounding-minutes
のオプションを参照して下さい。<
org-date-from-calendar
)
カレンダーのカーソルに対応したタイムスタンプを挿入します。>
org-goto-calendar
)
現在時刻のEmacsカレンダーにアクセスします。現在の行に既にタイムスタンプが存在する場合は、それに対応する日付にアクセスします。C-o
org-open-at-point
)
タイムスタンプおよび時間間隔で指定された日付でアジェンダにアクセスします(see 毎週/毎日のアジェンダ)。org-timestamp-down-day
)org-timestamp-up-day
)org-timestamp-up
)org-timestamp-down-down
)org-evaluate-time-range
)
開始日時と終了日時の差を計算することにより、時間間隔を計算します。前置引数を指定することにより、計算結果をタイムスタンプの後に挿入できます(テーブルの中では隣の列に挿入されます)。
Org-modeが日付または時刻をプロンプトに表示するとき、標準では標準フォーマットによる形式が表示されるため、そのフォーマットで入力することが必須だと勘違いしそうになります。ところが、実際には日付または時刻の情報を含む任意の文字列を入力することができ、Org-modeはかなり利口に入力された時間情報を解釈します。例えば、C-yにより電子メールの文面からコピーした文字列(複数行でも可)を挿入することができます。Org-modeは文面の中の時間情報を見つけ出し、そこで指定されていない情報はデフォルトの日付時刻を用います。デフォルトは通常は現在の日付および時刻ですが、既にあるタイムスタンプを変更する場合や、時間間隔の2つ目の項目を入力する場合には、バッファ内のタイムスタンプから情報が取得されます。情報を解釈する際に、Org-modeは多くの場合では入力したい時間が未来の時間であると推測します。例えば年月の情報を省略して、今日より前の時刻を指定しようとすると、Org-modeは未来の時刻を意図しているものと推測します58。日付が自動的に未来にシフトされた場合、プロンプトには‘(=>F)’が表示されます。
例えば、今日が2006年6月13日であるとしたとき、以下の左ような入力は右のように解釈されます。Org-modeにより推定された部分を太字で示します。
3-2-5 ⇒ 2003-02-05 2/5/3 ⇒ 2003-02-05 14 ⇒ 2006-06-14 12 ⇒ 2006-07-12 2/5 ⇒ 2007-02-05 Fri ⇒ 直近の金曜日(基準日かそれより後) sep 15 ⇒ 2006-09-15 feb 15 ⇒ 2007-02-15 sep 12 9 ⇒ 2009-09-12 12:45 ⇒ 2006-06-13 12:45 22 sept 0:34 ⇒ 2006-09-22 0:34 w4 ⇒ 現在の年(2006年)のISO週番号 2012 w4 fri ⇒ 2012年のISO4週目の火曜日の日付 2012-w04-5 ⇒ 上と同様
さらに、相対的な日付を入力するための方法として、入力の最初にプラスまたはマイナス記号、数値および文字([dwmy])により日、週、月あるいは年の変化を指定する方法があります。単一のプラス/マイナスを入力すると、常に今日に対する相対的な日付が指定されます。2つのプラスまたはマイナスが入力されると、標準の日付に対する相対値となります。一文字の代わりに時間に関する省略文字列を指定すると、N番目の該当する日が指定されます。以下に例を示します。
+0 ⇒ 今日 . ⇒ 今日 +4d ⇒ 今日から4日後 +4 ⇒ 上と同様 +2w ⇒ 今日から2週間後 ++5 ⇒ 標準日時から5日後 +2tue ⇒ 今日から数えて2回目の火曜日
この機能では、英語の月および曜日の省略記法に対応しています。省略しない記法や他の言語の記法を使用したい場合には、変数parse-time-months
およびparse-time-weekdays
を変更して下さい。
時間間隔は、開始時刻と終了時刻を入力するか、開始時刻とその継続時間(HH:MMの形式)を入力することにより指定できます。前者の場合は分離記号として`-'あるいは`-{}-'を使用し、後者の場合は分離記号として'+'を使用して下さい。例えば以下の通りです。
11am-1:15pm ⇒ 11:00-13:15 11am--1:15pm ⇒ 上と同様 11am+2:15 ⇒ 上と同様
ミニバッファのプロンプトと並行して、カレンダーがポップアップします59。カレンダー内の日付をクリックするか、<RET>を入力することにより日付のプロンプトを抜けると、カレンダーで選択した日付とプロンプトで入力された情報が組み合わされます。カレンダーはミニバッファから自由に操作することがきます。
<RET> カレンダーのカーソル地点の日付を選択する。 mouse-1 クリックにより日付を選択する。 S-<right>/<left> 1日分進める/戻る S-<down>/<up> 1週間分進める/戻る M-S-<right>/<left> 1ヶ月分進める/戻る > / < カレンダーを1ヶ月前/後ろにスクロールする M-v / C-v カレンダーを3ヶ月前/後ろにスクロールする
文章の説明では、日付時刻プロンプトの動作は複雑に思えるかもしれませんが、徐々に慣れてくると、これ以外の方法で日付および時刻を入力することのほうが面倒に感じることでしょう。動作の仕組みに対する理解を助けるため、入力された情報に対するその時点での解釈がミニバッファに表示されます。60。
日付や時間を表現するため、Org-modeはISO8601で定義されているような標準的なISOの記法を使用しています。もしこの記法に不慣れで、別の日付や時間の記法のほうが好みである場合は、変数org-display-custom-times
およびorg-time-stamp-custom-formats
をカスタマイズすることができます。
org-toggle-time-stamp-overlays
)
カスタムフォーマットの日付および時間の表示をトグルします。
Org-modeは文字列のスキャンニングのためにデフォルトのフォーマットを必要とするため、カスタムフォーマットの日付および時刻は標準フォーマットを置き換えません。その代わりに、テキストのプロパティを用いて標準フォーマットに上書きされます。これが原因で以下のような動作が生じます。
プランニングを補助するため、タイムスタンプの前に所定のキーワードを置くことができます。
デッドラインが付けられた場合は、そのタスクはアジェンダの中に記載されます。それに加えて、今日のアジェンダはデッドラインが近づいたり、それを超過したりした場合に警告を発します。警告は期限のorg-deadline-warning-days
だけ前から表示され、エントリがDONEとされるまでは消えません。以下に例を示します。
*** TODO ガイド誌の地球についての記事を書く。 担当編集者は[[bbdb:Ford Prefect]] DEADLINE: <2004-02-29 Sun>
以下の構文を用いることにより、個別のデッドラインについて異なる警告のリードタイムを指定することができます。以下は5日間の警告期間を指定する場合の例ですDEADLINE:
<2004-02-29 Sun -5d>
。
見出しは指定された日付の下に記載されます61。それに加えて、スケジューリングされた日付を超過した場合には今日のリストにエントリがDONEとなるまでリマインダが表示され続けます。すなわち、タスクは完了するまで自動的に後回しにされます。
*** TODO トリリアンに大晦日のデートについて電話する。 SCHEDULED: <2004-12-25 Sat>
重要:Org-modeで項目をスケジューリングすることは、ミーティングをスケジューリングすることと同様であるという理解は正しくありません。ミーティングをセットするのは単なるアポイントですが、このような場合はエントリーにはプレーンなタイムスタンプを使用し、日付が来れば項目が表示されるように設定するべきです。これはユーザーがしばしば誤解する点です。Org-modeではスケジューリングは何らかのアクションアイテムに取りかかる際に、日付を設定することを意味します。
スケジューリングやデッドラインの項目には、繰り返しを含むタイムスタンプを使用することが可能です。Org-modeは、タイムスタンプが繰り返し日付の直近の日付を表すものと推測して事前あるいは事後の警告を発します。しかし、スケジューリングやデッドラインにおいては<%%(diary-float
t
42)>
のような日記のS式項目は限定的にしか使用できません。Org-modeはこれらS式項目の内部構造について十分理解していないため、事前および事後の警告を発することはできません。ただし、S式項目と一致したそれぞれの日付に項目を表示することは行われます。
以下のコマンドにより、項目にデッドラインまたはスケジュールを瞬時に挿入62することができます。
org-deadline
)
タイムスタンプと‘DEADLINE’キーワードを挿入します。挿入は見出しの直下の行に対して行われます。前置引数を伴って呼ばれた場合は、エントリーから既に存在するデッドラインが消去されます。変数org-log-redeadline
63に対応して、既に存在するデッドラインを変更する際にノートをとることができます。C-s
org-schedule
)
タイムスタンプと‘SCHEDULED’キーワードを挿入します。挿入は見出しの直下の行に対して行われます。CLOSEDのタイムスタンプは全て消去されます。前置引数を伴って呼ばれた場合は、エントリーからスケジューリングの日付が消去されます。変数org-log-reschedule
64に対応して、既に存在するスケジューリングを変更する際にノートをとることができます。C-x C-k
org-mark-entry-for-agenda-action
)
現在の項目をアジェンダのアクションのためにマークします。このように項目をマークした後で、アジェンダまたはカレンダーを開いて適切な日を探すことができます。選択した日付の上にカーソルを置いてk
sあるいはk dを入力することにより、マークされた項目にスケジュールを設定できます。d
org-check-deadlines
)
全てのデッドラインのうち、既に過ぎているものとorg-deadline-warning-days
以内に期限となるものを抽出したツリーを作成します。前置引数C-uにより、ファイル内の全てのデッドラインを表示します。前置引数で数値を指定すると、指定した分だけ先のデッドラインを表示します。例えば、C-1
C-c / dとすると明日期限となる全てのデッドラインを表示します。b
org-check-before-date
)
指定された日より前のデッドラインを抽出したツリーを作成します。a
org-check-after-date
)
指定された日より後のデッドラインを抽出したツリーを作成します。
タスクの中には、何度も繰り返し行うものがあります。Org-modeでは、そのようなタスクの管理を助けるため、通常あるいはDEADLINE、SCHEDULEDのタイムスタンプに対してリピーターと呼ばれる機能を提供しています。以下の例を参照して下さい。
** TODO 家賃の支払い DEADLINE: <2005-10-01 Sat +1m>
この中で+1m
がリピーターと呼ばれるもので、そのタスクが<2005-10-01>のデッドラインを持つと同時に、その日から一週間ごとに繰り返すことを意味します。デッドラインエントリーに対してリピーターと警告期間の両方を指定する必要がある場合には、DEADLINE:
<2005-10-01 Sat +1m -3d>
のようにリピーターを先に書き、警告期間を後に書きます。
デッドラインおよびスケジューリングされた項目は期限を過ぎた場合にはアジェンダ上にエントリーが作成されるため、項目が終了した場合にはそのようなエントリは実施済みとマークできることが必要です。DEADLINEあるいはSCHEDULEDのTODOエントリーをDONEとマークした時には、アジェンダ上でのエントリーは作成されなくなります。一方で、問題となるのは繰り返し項目の次の日時も同時にアクティブでなくなってしまうことです。Org-modeでは、このような状況に対して以下のように対処します。繰り返しのエントリーをDONEに変更しようとした場合(C-c C-tなどにより)、繰り返しタイムスタンプの基準時刻が一つ分シフトされ、すぐにエントリーの状態がTODOに戻されます65。上の例では、DONEの状態にすることにより日付が以下のように変更されます。
** TODO 家賃の支払い DEADLINE: <2005-11-01 Tue +1m>
デッドラインの下にタイムスタンプが追加され66、これにより前の時刻のデッドラインについて実際に行動したことが記録されます。
日付がシフトされた結果として、このエントリーはアジェンダ上の過去の日付からは見えなくなりますが、将来の日付はアジェンダ上で確認することができます。
‘+1m’の繰り返し指定により、日付は常に1ヶ月きっちりシフトされます。そのため、例えば家賃を3ヶ月支払っていない場合には、一度このエントリーをDONEにしたとしても、相変わらず期限を過ぎたデッドラインと判断されます。タスクの性質によって、この方法が常に適切な処理方法とは限りません。例えば、父親と連絡をとるのを3週間忘れてしまった場合、それを埋め合わせるために一日に3回電話をすることはないでしょう。さらに、バッテリーの充電のように、最後に行ってから一定時間経過後に常に繰り返す必要がある場合もあります。このようなタスクについてはOrg-modeは専用の反復演算子++
および.+
を用意しています。例えば以下の通りです。
** TODO 父に電話 DEADLINE: <2008-02-10 Sun ++1w> この項目をDONEとすると、日付が一週間シフトされ、同時にタスクが 行われるまでは将来の全ての日曜日に対して項目がシフトされます。 土曜日に電話をしたとしても、次の日曜日にシフトされます。 ** TODO 火災報知器の電池をチェックする DEADLINE: <2005-11-01 Tue .+1m> この項目をDONEとすると、確認した日のちょうど1ヶ月後にシフトされます。
同じタスクに対して、スケジューリングとデッドラインの情報を両方付けることができます。この場合には、両方の繰り返し間隔は同じになりますので、注意して下さい。
繰り返し演算子を使わない代替的な方法の一つとして、タスクサブツリーのコピーをいくつか作成し、それぞれのコピーに対してシフトされた時刻を指定する方法があります。そのためにC-c C-x cコマンドがあります。この機能は見出し位置と階層の変更で解説されています。
Org-modeでは、プロジェクトの中で特定のタスクを実行するのにかかった時間を計測することができます。ある項目について取りかかる時に、計測を開始します。そのタスクを中断するときやタスクが終了した時に計測が終了し、対応する時間間隔が記録されます。同時に、あるプロジェクトの全てのサブツリーでかかった時間の合計が計算されます。さらに、最近に時間が計測されたタスクが記憶されているため、その時点で取りかかっている複数のタスク間を素早く移動することができます。
Emacsセッションでの経過時間の履歴を保存するためには、以下のコマンドを使います。
(setq org-clock-persist 'history) (org-clock-persistence-insinuate)
Emacsの再開後に新しいタスクの計測を始めると、不完全な時計67が表示され(see 空き時間の解決)、それについて何をするかを入力するように促されます。
org-clock-in
):LOGBOOK:
という引き出しに格納されます(変数org-clock-into-drawer
についても参照のこと)。前置引数C-uと共に呼ばれた場合は、最近時間が計測されたタスクのリストからタスクを選択します。2個の前置引数C-u
C-uが入力された場合は、現在位置のタスクの計測を開始し、そのタスクをデフォルトに指定します。デフォルトのタスクは、時間計測の選択をする場合に常にリストの中に表示され、文字dが付けられます。CLOCK_MODELINE_TOTAL
を変更します。この中には現在計測中の時刻のみ表示するcurrent
、今日計測された全ての時間を表示するtoday
(変数org-extend-today-until
についても参照)、全ての時間を表示するall
、デフォルトの設定であるauto
などがあります70。org-clock-out
)
時間の計測を終了します(クロックアウト)。これにより、時間計測が開始されたのと同じ場所にもう一つのタイムスタンプが挿入されます。同時に、計測された時間間隔が開始時刻と終了時刻の後に‘=>
HH:MM’の形式で挿入されます。クロックアウトのタイムスタンプ作成時にノートを追加するには、変数org-log-note-clock-out
を参照して下さい71。C-e
org-clock-modify-effort-estimate
)
現在時間を計測しているタスクについて、工数見積もりをアップデートします。
C-y
org-evaluate-time-range
)
タイムスタンプの一つを変更した後で、時間間隔を更新します。これはタイムスタンプを手動で変更した場合にのみ必要です。S-<cursor>キーにより変更した場合には、自動的に再計算されます。C-t
org-todo
)
TODOの項目をDONEに変更することにより、その項目で時間が計測されている場合には自動的に停止します。C-x
C-x
org-clock-cancel
)
現在の時間計測をキャンセルします。これは間違って時間を計り始めてしまった場合や、結果的に意図したタスク以外を行ってしまった場合に便利です。C-x
C-j
org-clock-goto
)
現在クロックイン中のタスクの見出しにジャンプします。前置引数C-uにより、最近時間が計測されたタスクから目的のタスクを選択します。C-x C-d
org-clock-display
)
現在のバッファの各サブツリーからの時間のサマリーを作成します。これによりそれぞれの見出しの後ろに時間が上書きされ、その見出しの中で下位の見出しも含めて記録された時間の合計が表示されます。表示の切り替えにより、ツリーの各項目を確認できますが、バッファを変更した場合やC-c
C-cを入力した場合は時間の上書きは消えてしまいます(変数org-remove-highlights-with-change
)を参照)。
タイムライン(see タイムライン)およびアジェンダ(see 毎週/毎日のアジェンダ)の中でキーlを入力することにより、その日のうちに完了したタスクがどれかを表示することができます。
Org-modeは、時間計測の情報をもとにかなり詳細なレポートを作成することができます。このようなレポートはクロックテーブルと呼ばれており、その名の通りOrg-modeのテーブルまたはその組み合わせにより作成されます。
org-clock-report
)
現在のファイルにOrg-modeテーブル形式の計測時間レポートを含む動的ブロック(see ダイナミックブロック)を挿入します。前置引数とともに呼ばれた場合は、現在の文書の最初のクロックテーブルに移動し、それを更新します。C-c
C-u
org-dblock-update
)
現在位置の動的ブロックを更新します。カーソル位置は動的ブロックの#+BEGIN
行の中に位置している必要があります。C-c C-x
C-u
org-clocktable-try-shift
):block
の時間間隔を変更し、テーブルを更新します。このコマンドを使用するには、カーソルが#+BEGIN:
clocktable
行にある必要があります。例えば:block
がtoday
の場合、このコマンドによりtoday-1
にシフトされます。
以下に、C-c C-x C-rコマンドによりバッファに挿入されるクロックテーブルのフレームの例を示します。
#+BEGIN: clocktable :maxlevel 2 :emphasize nil :scope file #+END: clocktable
‘BEGIN’行には、レポートの対象範囲、構造およびフォーマットを定めるオプションを指定します。これらのデフォルト値は変数org-clocktable-defaults
により変更することができます。
まず、時間が計測されたエントリのうちどれが選択されるかを定めるオプションがあります。
:maxlevel テーブルに表示される最大の深さレベル。 これより深いレベルの時間は上位レベルに積算されて表示される。 :scope 対象とするスコープ。以下のうちいずれかを指定する。 nil 現在のバッファ、或いはナローされた領域 file 現在のバッファ全体 subtree クロックテーブルのあるサブツリー内 treeN 周囲のレベルNのツリー、例えばtree3
tree 周囲のレベル1のツリー agenda アジェンダファイル群の全体 ("file"..) 指定されたファイルをスキャンする file-with-archives 現在のファイルとそのアーカイブ agenda-with-archives アーカイブを含む全てのアジェンダファイル :block 対象とする時間範囲、この範囲は絶対時間または現在からの相対時間 で表記され、以下のいずれかのフォーマットに従う。 2007-12-31 2007年の大晦日 2007-12 2007年12月 2007-W50 2007年のISO週で50週目 2007-Q2 2007年の第二四半期 2007 2007年 today, yesterday, today-N 相対的な日指定 thisweek, lastweek, thisweek-N 相対的な週指定 thismonth, lastmonth, thismonth-N 相対的な月指定 thisyear, lastyear, thisyear-N 相対的な年指定 S-<left>/<right>キーにより間隔をシフトすることができる。 :tstart 対象となる時間の始まりを示す文字列 :tend 対象となる時間の終わりを示す文字列 :step テーブルをまとめる間隔。week
またはday
を指定。 この機能を使うには、:block
、:tstart
、:tend
のいずれかを指定する必要がある。 :stepskip0 時間間隔がゼロの項目を表示しない。 :fileskip0 時間間隔がゼロのファイルについて、テーブルに表示しない。 :tags 特定のタグがついたエントリのみ収集の対象とする。
さらに、テーブルのフォーマットを指定するためのオプションがあります。これらのオプションは関数org-clocktable-write-default
により解釈されますが、パラメーター:formatter
により解釈のためのユーザー独自の関数を指定することができます。
:emphasize 値がt
の場合、レベル1およびレベル2の項目を強調表示します。 :lang 項目名のセル(例えば"Task")で用いる言語72。 :link テーブルの見出しの項目と元のファイルでの位置をリンクする。 :narrow Org-modeのテーブルの見出し列の幅の上限を決める整数。 ‘50!’のように指定すると、エクスポート時にも見出しが短縮表示される。 :indent 各見出しフィールドをそのレベルに合わせてインデントする。 :tcolumns 時間を表示するために使われる列の数。この値が:maxlevel
より小さい場合、 それより下位のレベルは一つの列に合わせて表示される。 :level レベル番号を示す列を含めるかどうか指定する。 :compact コンパクトに表示する。:level nil :indent t :narrow 40! :tcolumns 1
の短縮表現で、明示的に:narrow
で指定されなければ、全ての変数は上書きされる。 :timestamp エントリのタイムスタンプが存在する場合には、それを表示する。SCHEDULED、 DEADLINE、TIMESTAMP、TIMESTAMP_IAの順に探索される。 :formula 追加的な#+TBLFM
の内容。通常の形式に追加されて評価される。 特殊なケースとして、‘:formula %’を追加すると経過時間の割合行が追加される。 ここで形式をしていしない場合は、クロックテーブルの下に存在する形式が アップデートされずに評価される。 :formatter 時刻データをフォーマットし、バッファに表示するための関数。
現在のレベル1のツリーについて、当日分の時間サマリーを得る場合は以下のように指定します。
#+BEGIN: clocktable :maxlevel 2 :block today :scope tree1 :link t #+END: clocktable
明示的に時間間隔を指定する場合には、以下のように記述します73。
#+BEGIN: clocktable :tstart "<2006-08-10 Thu 10:00>" :tend "<2006-08-10 Thu 12:00>" #+END: clocktable
現在のサブツリーでの経過時間のまとめを%表示するには、以下のように記述します。
#+BEGIN: clocktable :scope subtree :link t :formula % #+END: clocktable
ここ1週間で計測された時間をコンパクトな幅で表示するには、以下のようにします。
#+BEGIN: clocktable :scope agenda :block lastweek :compact t #+END: clocktable
ある項目について作業を開始したあとで、例えば電話を取る場合などで一時的にコンピュータの前を離れると、その時間について現在の経過時間から差し引いたり、他の項目に加えたりして「解決」する必要が生じます。
変数org-clock-idle-time
を適当な整数値(例えば10や15)に設定することにより、設定時間を超える休止のあとで戻ってきた場合にEmacsはアラートを出し、その休止時間をどのように処理するか尋ねます74。休止から戻った時点で幾つか質問が表示され、実際にどの程度休止時間があったか(その時点までの計測時間が随時表示されます)を入力すると同時に、休止の扱いについて以下のような選択が可能です。
空き時間について、現在の計測時間から差し引いたあとで別の計測項目に追加したい場合にはどうすれば良いでしょうか。その場合は、差し引いたあとに単純に次のタスクの計測を開始して下さい。Org-modeは差し引かれた時間があることを記憶していて、次の時間計測を始める際にその時間を足し込むかを尋ねます。
次のようなケースでも、時間解決機能が魔法のような働きをします。あなたがタスクの時間計測をしながらご機嫌に作業をすすめていると、突然飼い猫がネズミを追いかけて、それを見たハムスターが驚いてUPSの電源装置に衝突してしまったとしましょう!あなたは全てのバッファを失うことになりますが、オートセーブ機能のおかげでOrg-modeで行った最近の変更は保持され、途中であった時間計測の時間も保持されています。
Emacsを再開してタスクの計測を開始すると、Org-modeは最後のセッションで計測が終了されていない半端の時間計測があることに気がつきます。そのようなタスクについては、計測の開始時刻を不明な時刻の始点として、その間の時間をどのように解決するかについて尋ねます。その際の考え方や挙動は空き時間の処理方法と全く同じで、単に空き時間ではなくリカバリの際に発生しているだけなのです。
Org-modeのアジェンダが半端時間を絶えずチェックしているファイルのリストは、M-x org-resolve-clocksにより確認することができます。
詳細な作業計画を立てて仕事を行いたい場合や、仕事の工数の見積もりを作成する必要がある場合には、エントリに工数見積もりを割り当てたいと思うかもしれません。また、同時に時間の計測を行う場合には、あとで見積もった時間数と実際にかかった時間を比較したいと思うかもしれません。それは見積もりの精度を上げる良い方法でもあります。工数の見積もりは専用のプロパティである‘Effort’に保存されます75。エントリに工数を追加するには、以下のようなコマンドを用います。
org-set-effort
)
現在のエントリについて工数の見積もりを行います。前置引数に数値を指定することにより、N番目の数値に指定します(下記の例を参照)。このコマンドはアジェンダからもeキーを押すことによりアクセスできます。C-x C-e
org-clock-modify-effort-estimate
)
現在時間が計測されている項目の工数見積もりを変更します。
明らかなように、工数見積もりを行う最善の方法はカラムビュー(see カラムビュー)を用いることです。個別の項目についての工数見積もりから始めて、COLUMNS
フォーマットによりこれらの値と実際の計測時間(時間の計測を行いたい場合)を同時に表示します。例えば、あるバッファについて以下のように指定できます。
#+PROPERTY: Effort_ALL 0 0:10 0:30 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 #+COLUMNS: %40ITEM(Task) %17Effort(Estimated Effort){:} %CLOCKSUM
さらに良い方法としては、変数org-global-properties
あるいはorg-columns-default-format
をカスタマイズすることにより、これらの数値をグローバルに指定できます。特にこの指定をアジェンダで使用したい場合には、グローバルな指定を行うことが推奨されます。
個別の項目について見積もりを割り当てるには、カラムモードに移行し、S-<right>およびS-<left>を使うことにより値を変更します。入力された数値はすぐに階層構造で足し合わされます。その隣の列には計測された時間が表示されることになります。
日別あるいは週別のアジェンダでカラムビューに移行すると、工数の列は各日についての工数見積もりを足し合わせて表示され76、これを用いてスケジュールの空きを見つけることができます。その日の作業について全体像をつかみたい場合には、オプションorg-agenda-columns-add-appointments-to-effort-sum
を指定することができます。時間間隔が指定されているアポイントで、その日に発生するものについても負荷見積もりに加算して表示されます。
工数見積もりは、アジェンダ内で/を押すことによりアジェンダの2次的なフィルタリングに用いることができます(see アジェンダのコマンド)。このような見積もりを確実に行えば、2、3回キーを押すことにより空いている時間間隔に合うように項目を絞り込むことができます。
例えば会議やビデオ閲覧時にノートをとる際など、開始時からの経過時間がわかると便利な場合があります。Org-modeはそのような場合に使える相対時間タイマー機能を持っており、時間を含むノートを簡単に作ることができます。
org-timer
)
バッファに相対時間タイマーを挿入します。最初に使う際にはタイマーが開始されます。前置引数と共に呼ばれた場合には、タイマーがリスタートされます。C-x
-
org-timer-item
)
現在の相対時刻での記述項目を挿入します。前置引数と共に呼ばれた場合は、タイマーの時刻が0にリセットされます。org-insert-heading
)org-timer-start
)
バッファに何も挿入せずにタイマーをリセットします。デフォルトではタイマーは0にリセットされますが、前置引数C-uと共に呼ばれた場合は、指定された時間からタイマーが始められます。ユーザーは開始時間を入力するよう促されます。同じ位置に既にタイマー文字列がある場合には、その時間がデフォルトとして指定されます。そのため、このコマンドは休憩時間のあとなどでノート取りを再開する場合などに用いることができます。2つの前置引数C-u
C-uと共に呼ばれた場合は、アクティブなリージョンにある全てのタイマー文字列を一定の時間だけ変化させます。これはタイマーを正しい時刻に開始できなかった場合、タイマー文字列を一度に修正する場合に使用できます。
Org-modeバッファからorg-timer-set-timer
を呼ぶことにより、カウントダウンタイマーが利用できます。アジェンダバッファの場合は<;>、その他は<C-c
C-x ;>により実行できます。
org-timer-set-timer
により、ユーザーに時間間隔を入力するように促し、モード行にカウントダウンタイマーを表示します。org-timer-default-timer
によりデフォルトのカウントダウン値を設定します。前置引数で数値を指定することで、デフォルトの値が上書きされます。
管理システムにおける重要な点の一つとして、新しいアイディアやタスクを素早くキャプチャし、それらを参考資料と連携する能力があることです。Org-modeではキャプチャと呼ばれるプロセスを用いて行います。また、タスクに関係するファイル(attachments)を特別なディレクトリに保存することがも可能です。一度システムへ取り込むと、タスクとプロジェクトを移動させる必要があります。完了したプロジェクトツリーをアーカイブファイルへ移動することで,システムをコンパクトで速く保つことが可能です。
Org-modeでは,新しいアイテムをキャプチャする方法はJohn Wiegleyによる素晴らしいrememberパッケージから多くのアイディアを得ています。バージョン6.36のOrg-modeまではremember.el用の特別な設定を使っていました。org-remember.elは従来の設定との逆互換性のため、まだOrg-modeの一部です。org-rememberに関するドキュメントはhttp://orgmode.org/org-remember.pdfにあります。
ここで述べる新しいキャプチャのための設定が好ましく、新しいユーザーはこれを使用するべきです。あなたのorg-remember-templates
を変換する場合は以下のコマンドを実行します。
M-x org-capture-import-remember-templates <RET>
そして新しい変数をM-x customize-variable org-capture-templatesでカスタマイズし、結果を確認してから保存してください。これにより,新しい仕組みになれるまではリメンバーとキャプチャの両方を使うことができます。
キャプチャはワークフローにおいて小さい割り込みで素早くノートを保存することができます。キャプチャの基本的なプロセスはリメンバーととても良く似ていますが,Org-modeはそれをテンプレートなどで強化しました。
以下のカスタマイズはノートを取るデフォルトのファイルと新しい素材をキャプチャするためのグローバルなキー77
(setq org-default-notes-file (concat org-directory "/notes.org")) (define-key global-map "\C-cc" 'org-capture)
org-capture
)
org-caputre
コマンドを呼びます。このキーバインドはグローバルで,デフォルトではアクティブになっておらず,インストールする必要があることに注意が必要です。もしテンプレートがあるならば
defined see キャプチャテンプレート, これらのテンプレートの選択か、デフォルトのテンプレートを使用した新しい Org
アウトラインノードが使用されます。
org-capture-finalize
)org-capture-refile
)
ノートを別の場所に差し替える(see ノートの再配置)ことでキャプチャプロセスを仕上げます。これは通常の差し替えコマンドが実行されることを認識してください。したがってこのコマンドを実行するときのカーソル位置が重要です。もし親や小を持つツリーを挿入する場合、まずカーソルを親へ移動してください。このコマンドに渡された接頭辞引数はすべてorg-refile
コマンドに渡されます。
org-capture-kill
)org-capture
をアジェンダからk
cキーの組合せを用いた特別な方法で呼ぶこともできます。この方法では、選択されたキャプチャテンプレートに挿入されるタイムスタンプは、現在の日付ではなくアジェンダ内のカーソルがある位置の日付がデフォルトになります。
最後にキャプチャが保存された場所を探すには、org-capture
をプレフィックスコマンドと一緒に使用します。
テンプレートは異なる種類のキャプチャアイテムや、異なる場所へ使用することができます。最も簡単にそのようなテンプレートを作る方法、カスタマイズインターフェースを通じて行うことです。
org-capture-templates
変数のカスタマイズを行います。
テンプレート定義の正式な説明の前に、例を挙げます。一般的なTODOエントリーを作成する場合を考えます。また、これらのエントリーは~/org/gtd.orgの中にある見出し‘Tasks’の下に作成され、journal.org内のデートツリーはジャーナルエントリーがキャプチャされます。このような場合の設定は以下のようになります。
(setq org-capture-templates '(("t" "Todo" entry (file+headline "~/org/gtd.org" "Tasks") "* TODO %? %i %a") ("j" "Journal" entry (file+datetree "~/org/journal.org") "* %? Entered on %U %i %a")))
ここでC-c c tを押すと、Org-modeはこのようなテンプレートを用意します。
* TODO [[file:lint to where you initiated capture]]
テンプレートが展開される際、%a
はキャプチャコマンドを呼んだ場所へのリンクに変換されます。これは例えばメールからタスクを登録する時にとても役立ちます。タスクの定義を埋め、C-c
C-c
を押すとOrg-modeはキャプチャ動作を始めた場所へまた連れ戻してくれます。
特定のテンプレートを対話的な選択なしに用いてキャプチャする特別なキーを定義するには、以下のようにキーバインドを作成できます。
(define-key global-map "\C-cx\n" (lambda () (interactive) (org-capture nil "x")))
それではテンプレートを定義するための要素について述べています。org-capture-templates
中にあるそれぞれのエントリーは以下の項目から構成されるリストです。
"a"
はaキーだけで選択するテンプレートであり、"bt"
は2つのキーで選択します。幾つかのキーを使う場合、同じ接頭辞キーを持つキーはリストの中で連続している必要があり、以下に例をあげるような、接頭辞キーを表す2つの要素を持つエントリーをその前に置きます。
("b" "買い物リストのためのテンプレート")
もしCキーにテンプレートを定義していなければ、このキーでこの複雑な変数のカスタマイズバッファを開きます。
entry
item
checkitem
table-line
:prepend
と:table-line-pos
プロパティに依存します。(下記参照)
plain
org-default-notes-file
がデフォルトになります。ファイルは変数や関数、Emacs
Lispのフォームでも与えられます。
正しい値は以下の通りです。
(file "path/to/file")
(id "現存するorgエントリーのid")
(file+headline "path/to/file" "node headline")
(file+olp "path/to/file" "Leval 1 heading" "Leval 2" ...)
(file+regexp "path/to/file" "regexp to find location")
(file+datatree "path/to/file")
(file+datetree+prompt "path/to/file")
(file+function "path/to/file" function-finding-location)
(clock)
(function function-finding-location)
(file
"path/to/template")
を使用します。詳細をいかに示します。
:prepend
:immediate-finish
:empty-lines
:clock-in
:clock-keep
:clock-resume
:clock-keep
は:clock-resume
より優先されることに注意が必要です。もしどちらの設定もt
に設定された場合、現在の時計が動き、一つ前の時計は再開されません。
:unnarrowed
:kill-buffer
テンプレート自身の中では、特別な%-エスケープ78によって動的に内容を挿入できます。
%^{prompt} ユーザーに文字列を入力させこの順序と置換します。 デフォルトの値と補完テーブルは以下のように指定します。 %^{prompt|デフォルト値|補完2|補完3...} 矢印キーで入力の履歴をたどることができます。 %a 注釈、通常はorg-store-link
で作成されたリンク %A%a
と同様、しかし説明部分への入力を行います。 %i 初期の内容、キャプチャが呼ばれた時にアクティブに なっているリージョン全体。 全体のテキストは%i
自身と同じ様にインデントされます。 %t タイムスタンプ、日付のみ %T 時間と日付からなるタイムスタンプ %u, %U 上記と同じだが、不活性なタイムスタンプ %^t%t
と同じだが、日付の入力を行います。%^T
、%^u
、%^U
と似ています。 プロンプトを%^{Birthday}t
の様に定義できます。 %n ユーザーネーム(user-full-name
から取ってきます) %c 現在のキルリングの先頭 %x Xクリップボードの内容 %^C キルかクリップどちらを使うか対話的に選択します。 %^L%^C
と同様だが、リンクとして挿入します。 %k 現在計時しているタスクのタイトル。 %K 現在計時しているタスクへのリンク。 %f org-captureが呼ばれた時に現在のバッファで表示していたファイル。 %F%f
と同様だが、フルパスを含んでいます。 %^g タグの入力を対象ファイル中のタグから補完して入力します。 %^G タグの入力をアジェンダファイルすべてから補完して入力します。 %^{prop}p ユーザーにpropプロパティの値の入力を行わせます。 %:keyword あるリンクのタイプを指示する特定の情報 %[file] fileで与えられるファイルへ内容を挿入します。 %(sexp) sexpで与えられるElispを評価してその結果と入れ替えます。
リンクのタイプを指定するため、以下のキーワードが定義79されています。
リンクタイプ | 使用可能なキーワード -------------------+---------------------------------------------- bbdb | %:name %:company irc | %:server %:port %:nick vm, wl, mh, mew, rmail | %:type %:subject %:message-id | %:from %:fromname %:fromaddress | %:to %:toname %:toaddress | %:date (ヘッダーメッセージ中にあるメッセージの日付) | %:date-timestamp (アクティブなタイムスタンプとしての日付) | %:date-timestamp-inactive (アクティブでないタイムスタンプとしての日付) | %:fromto (\"to NAME\"か\"from NAME\"のどちらか)80 gnus | %:group, メッセージとそれに加えてすべてのemailフィールドのため。 w3, w3m | %:url info | %:file %:node calendar | %:date
テンプレート展開後のカーソル位置のために以下を用います。
%? テンプレートを完了したあと、カーソル位置をここに移動します。
参照すべきものをアウトラインノートやタスクと連携させることは大抵役立ちます。小さなプレーンテキストの塊は単純にプロジェクトのサブツリーとして保存可能です。ハイパーリンク(see ハイパーリンク)はあなたのコンピュータやクラウドなどにあるファイル、例えばプロジェクトに関連するemailやソースコードファイルとの連携を確立します。その他の方法として、attachmentsがあります。これはアウトラインノードの属するディレクトリにあるファイルです。これらのディレクトリはdataディレクトリの中に位置し、あなたのOrgファイルが保存されているディレクトリと同じディレクトリの中にある81。もしこのディレクトリをgit
init
で初期化した場合、Org-modeは変更点を見つけた時に自動的にそれらをコミットします。添付システムはJohn
Wiegleyの貢献によってOrg-modeへ追加されました。
もしそれがより良い方法に思える場合は、エントリーへディレクトリを添付することも自身の選択で可能です。子エントリーは親から添付ディレクトリを受け継ぐため、サブツリー全体が同じ添付ディレクトリを使うことになります。
org-attach
)org-attach-attach
)org-attach-method
によって複製、移動、リンクされます。ハードリンクはすべてのシステムでサポートされていないことに注意が必要です。
org-attach-new
)org-attach-sync
)org-attach-open
)org-file-apps
に従います。詳細は、ハイパーリンクを辿るための情報(see リンクの扱い)を参照してください。
org-attach-open-in-emacs
)org-attach-reveal
)org-attach-reveal-in-emacs
)org-attach-delete-one
)org-attach-delete-all
)org-attach-set-directory
)ATTAH_DIR
プロパティに代入することで動作します。
org-attach-set-inherit
)ATTACH_DIR_INHERIT
プロパティをセットします。これによって子も親と同じディレクトリを添付として使用します。
Org-modeはエントリーの追加や変更をRSSフィードとAtomフィードの情報を元に行うことができます。この機能を使ってプロダクトフィードのなかからそれぞれの新しいプロダクトに対してタスクを作ることも可能です。もしくは、携帯電話を対象としたWeb上のノート作成サービスをOrg-modeのタスクにインポートできます。フィードにアクセスするには、org-feed-alist
を設定します。この変数のドキュメント文字列に詳細はあります。以下に例をしまします。
(setq org-feed-alist '(("Slashdot" "http://rss.slashdot.org/Slashdot/slashdot" "~/txt/org/feeds.org" "Slashdot Entries")))
この例は、以下のコマンドが使われるたびに、rss.slashdot.org
で提供されているフィードの新しいアイテムから、~/org/feeds.orgファイル内に‘Slashdot
Entries’をヘッダーにもつ新しいエントリーを生成します。
org-feed-update-all
)
org-feed-alist
に設定されたフィードからアイテムを収集し、上記のように振る舞う。G
org-feed-goto-inbox
)
はフィード名を入力し、そのフィードに設定されたインボックスへ移動します。
幾つかの見出しでは、Org-modeは‘FEEDSTATUS’という引き出しを作成します。これはフィード中にあるアイテムのステータス情報を保存しています。なんども同じアイテムが追加されないためには、‘FEEDSTATUS’をファイルの引き出しの中に追加することが必要です。
#+DRAWERS: LOGBOOK PROPERTIES FEEDSTATUS
Atomフィードの読み方などのより詳しい情報は、org-feed.elを御覧ください。また、org-feed-alist
のドキュメント文字列もあります。
Org-modeを扱うためのプロトコルを外部のアプリケーションから、emacsserverを通じてEmacsに渡すことができます。例えば、ウェブブラウザーのブックマークをキャプチャ(see キャプチャ)を使って現在のページへのリンクとしてOrg-modeに送り、新しいノートを作るように設定できます。または、Emacsに現在ウェブブラウザーで開いているウェブサイトのローカルにあるソースファイルを開くようなブックマークを作ることも出来ます。詳細な説明や設定方法はhttp://orgmode.org/worg/org-contrib/org-protocol.phpを御覧ください。
キャプチャしたデータを見なおしているとき、幾つかのエントリーをプロジェクトなどの異なるリストへ移動したい時があるでしょう。カットし、正しい位置をさがし、ノートを貼り付けるのは面倒です。これを単純にするには、以下に示す特別なコマンドを使います。
org-refile
)org-reverse-note-order
に依存して、サブアイテムの先頭か最後のどちらかに挿入されます。org-refile-targets
変数をご覧ください。もし場所をアウトラインのパスをファイルパスのような補完で選択したければ、org-refile-use-outline-path
とorg-outline-path-complete-in-steps
変数をご覧ください。もしリファイルするノードの親ノードをその場で作れるようにしたいときは、org-refile-allow-creating-parent-nodes
変数をご覧ください。org-log-refile
変数82がセットされている場合、タイムスタンプやノートがエントリーがリファイルされたときに記録されます。C-c C-w
org-refile-goto-last-stored
)
org-refile
が最後に木を移動させた場所に移動します。
org-refile-cache-clear
)対象のキャッシュを削除します。リファイル対象のキャッシュはorg-refile-use-cache
を設定することで設定します。コマンドに新しい対象を見せるために、このコマンドでキャッシュを削除する必要があります。
(サブ)ツリーとして表現されたプロジェクトが終わった時、ツリーを外に移動し、それがアジェンダに現れない様にしたいでしょう。アーカイブは活動中のファイルをコンパクトにし、アジェンダビューを作るようなグローバルな検索を早くするために重要です。
org-archive-subtree-default
)org-archive-default-command
変数で指定されたコマンドを使ってアーカイブします。
もっとも一般的なアーカイブアクションはプロジェクトを他のファイル、アーカイブファイル、へ移動させることです。
org-archive-subtree
)org-archive-location
で与えられる場所にアーカイブします。C-c C-x C-s
通常のアーカイブ場所は現在のファイルと同じディレクトリにある、現在のファイル名に_archiveを付加した名前のファイルです。これを変更するための情報や例は、org-archive-location
変数のドキュメント文字列をご覧ください。以下に示すような、バッファ内でこれを変更するためのオプションもあります83。
#+ARCHIVE: %s_done::
もしあるエントリー又は(サブ)ツリーに対して特別なアーカイブ場所を指定したいときには、エントリーに:ARCHIVE:
プロパティを場所を値として与えてください(see プロパティとカラム)。
もしサブツリーが移動した場合、エントリーが移動してきたファイル、アーカイブしたときのアウトラインパスなどのコンテクスト情報が記録されます。org-archive-save-context-info
変数を設定することで追加される情報の量を調整します。
もし異なるファイルへサブツリーを移動させずに、それをアジェンダビューで非表示にしたいなら、ARCHIVE tag
を使うことができます。
ARCHIVE タグ(see タグ)でマークされている見出しはアウトラインツリー内の場所に留まりますが、下記のような振る舞いをします。
org-cycle-open-archived-trees
オプションを設定します。また、show-all
などの通常のアウトラインコマンドはアーカイブしたサブツリーも開きます。
org-suparse-tree-open-archived-trees
オプションを設定しない限り現れません。
org-agenda-skip-archived-trees
を設定した場合は無視され、設定されない場合は常に表示されます。アジェンダでは、v
aを押すことで一時的にアーカイブを含むことができます。
org-export-with-archived-trees
変数を使って詳細な設定は行なってください。
org-columns-skip-archived-trees
変数がnil
に設定されない限りカラムビューから除外されます。
org-toggle-archive-tag
)
現在の見出しのARCHIVEタグをトグルする。もしタグが設定されているならば、見出しは
shadowed faceに変更され、以下のサブツリーは隠されます。a
org-force-cycle-archived
)org-archive-to-archive-sibling
)
現在のエントリーをアーカイブ兄弟に移動する。これは見出しが‘Archive’か‘ARCHIVE’タグの付いたエントリーの兄弟である。このエントリーはこの兄弟の子になる。そのため、継承したタグやアウトライン内のだいたいな位置など、従来の状況は保ち続けている。
Org-modeで作業した結果、TODOアイテム、タイムスタンプのついたアイテム、タグの付いた見出しなどが、1つのファイル、あるいはいくつものファイルにまたがって、撒き散らされることとなります。ある特定の日に重要な、実際に動いているアイテムやイベントの全体像を把握するためには、ひとつの管理された方法で、これらの情報を集めたり、並び替えたりしながら、表示することが必要です。
Org-modeでは、いろいろな基準によってアイテムを選択することが可能であり、独立したバッファにそれらのアイテムを表示させることができます。7つの異なるビューのタイプが用意されています。:
抽出された情報は特別なアジェンダバッファに表示されます。このバッファはリードオンリーですが、オリジナルのOrg-modeファイルにジャンプしたり、オリジナルのファイルを間接的に編集することができます。
2つの変数によって、アジェンダバッファをどのように表示するか、アジェンダが存在したときに、ウインドウの設定を元に戻すかどうかをコントロールします。;org-agenda-window-setup
とorg-agenda-restore-windows-after-quit
.
表示される情報は、通常すべてのアジェンダファイルから収集されます。アジェンダファイルはorg-agenda-files
84変数にリスト化されたファイルが対象となります。もしもこのリストの中にディレクトリ名が記載されていたら、
そのディレクトリの中にある.orgという拡張子がついた全てのファイルが、アジェンダファイルの対象となります。
したがって、たとえあなたが1つのOrg-modeファイルでしか作業をしていなくても、このファイルをそのリスト85に記載したことになるでしょう。org-agenda-files
をカスタマイズすることが可能で、しかも以下に述べるコマンドを通して簡単な方法で維持することができます。
org-agenda-file-to-front
)
アジェンダファイルのリストに編集中のファイルを追加する。そのファイルは、リストの先頭に追加される。もしも既にリストに存在していたら、先頭に移動する。前置引数をつけることで、リストの最後に追加/移動する。]
org-remove-file
)
編集中のファイルをアジェンダファイルのリストから削除する。
org-cycle-agenda-files
)
iswitchb
と似たようなインターフェースでOrg-modeのバッファの間を切り替えるコマンド。
Org-modeメニューには、現時点のファイルのリストが含まれており、その中のファイルに移動するのに役立ちます。
もしもこのリストに載っているファイルではなく、作業中のアジェンダファイルに焦点をあてたかったり、リストにあるファイルのまさにひとつのファイルに焦点をあてたかったり、はたまたあるファイルの中のあるサブツリーに焦点をあてたかったりしたいときは、いくつかの方法が用意されています。単一のアジェンダコマンドとして、コマンド選択画面上 (see アジェンダのコマンド選択)で<を1回ないし数回押すとよいのです。アジェンダの対象をある限定した期間に絞り込むために以下のコマンドが用意されています。:
org-agenda-set-restriction-lock
)
アジェンダの対象を現在カーソルが置かれているサブツリーに固定的に制限します。前置引数をつけたり、ファイルの最初の見出しよりも前にカーソルが置かれているときには、アジェンダの対象範囲はファイル全体になります。この制約はC-c
C-x
>を実行して取り除くか、<または>をアジェンダのコマンド選択画面上で入力するまでは維持します。もしもウインドウ上にアジェンダビューが表示されているならば、あたらしい制約が即座に効果を及ぼします。C-x >
org-agenda-remove-restriction-lock
)
C-c C-x <で作成された固定する制限を削除します。
speedbar.elを併用しているときは、Speedbarのフレームの中で以下のコマンドを使用することができます。
org-speedbar-set-agenda-restriction
)
Speedbarのフレームの中で、1つのOrg-modeファイルか、そのファイルのサブツリーの一つか、カーソルの置かれているアイテムに対応してアジェンダを恒久的に限定します。もしもアジェンダビューが表示されているウインドウがあるならば、限定箇所が変更されると即座に反映する。org-agenda-remove-restriction-lock
)
制限をふたたび解除する。
グローバルなキーと結びついている、コマンド選択画面を通してそのビューは作成されます。—例えば、C-c a (see インストール)のように。以下のように、コマンド選択画面にアクセスする方法としてC-c aを想定しており、キーボードでコマンドにアクセスするためのリストが表示されています。C-c aを入力した後、コマンドを実行するために、次に入力する文字を要求します。コマンド選択画面では以下に記載するデフォルトのコマンドが提供されています。
org-agenda-text-search-extra-files
の中でリスト化かれているファイルの中から正規表現を用いて検索します。これはEmacsのmulti-occur
というコマンドを使用します。前置引数をつけると、それぞれのマッチした行の状況の数をしていすることができます。デフォルトは1となっています。
あなたは、あたかもデフォルトのコマンドのように、コマンド選択画面でアクセスするカスタムコマンドを定義することもできます。複数のブロックを同時に含めた拡張されたアジェンダバッファを作成する可能性を含んでいます。例えば週のアジェンダ、グローバルなTODOリスト、そして多数の特定タグの検索など。See アジェンダのカラム表示.
このセクションではビルトインビューについて説明します。
1週間の/1日のアジェンダの目的は、その週あるいはその日のタスクをすべて表示して、紙のアジェンダのページのように、実行に移すことです。
org-agenda-list
)
Org-modeのファイルのリストの中からその週の予定を収集するものです。予定はそれぞれの日に表示されます。(C-u
2 1 C-c a
aのように)前置引数に数字をつけて88表示する日数を設定することができます。
表示されるデフォルトの日数は、org-agenda-span
(あるいは古くさくなってしまいましたがorg-agenda-ndays
)という変数で設定します。この変数は、アジェンダの中でデフォルトとして確認したい日数、あるいは、期間を示すday
、week
、month
やyear
といった期間を示す名前をつけて設定します。
アジェンダバッファからリモートで編集するとは、例えば、アジェンダバッファの中でデッドラインやアポイントメントの日付を変更することができるという意味です。アジェンダバッファの中で利用できるコマンドは、アジェンダのコマンドの中で一覧表にしています。
Emacsには、Edward M. Reingoldによって開発されたカレンダーと日記の機能があります。カレンダーでは、国や文化の異なる祝祭日を備えた3ヵ月分のカレンダーが表示されます。日記には記念日、月の満ち欠け、日の出日の入り、繰り返しの予定(隔週、隔月)などを記録しておくことができます。このような機能は、Org-modeに対して大変補完的な関係にあります。日記とOrg-modeの出力を結びつけることは大変有益です。
Emacsの日記からOrg-modeのアジェンダに項目を落とし込むために、あなたは次のように変数を設定するだけです。
(setq org-agenda-include-diary t)
その後、すべてが自動的に行われます。祝祭日や記念日などを含むすべての項目は、Org-modeで作成されるジェンダバッファに取り込むことができます。日記に記録されている項目を編集するために、アジェンダバッファ上で<SPC>、 <TAB>、及び <RET>を入力することで、日記のファイルにジャンプすることができます。その日に新しいエントリーを挿入するiというコマンドはアジェンダバッファ上で動作します。あたかも、日の出日の入りの時刻を表示したり、月の満ち欠けの状態を表示したり、他の暦に変換するための、S、M、およびCというコマンドと同様です。 cはカレンダーとアジェンダの間を行ったり来たりすることができます。
もしもあなたが日記をS式項目と祝祭日だけで使用しているのならば、上のような設定をするよりも、Org-modeファイルに直接コピーしたり移動したりしたほうが手っ取り早いです。Org-modeは日記形式のS式項目を評価し、しかもより早く、というのは、最初にカレンダーを表示するという負荷がかからないからです。S式項目は左端から記述し、式の前にスペースが入ってはいけないことに注意してください。たとえば、あるOrg-modeファイルについての、以下にのべるセグメントが処理され、項目がアジェンダの中に作成されます。
* Birthdays and similar stuff #+CATEGORY: Holiday %%(org-calendar-holiday) ; special function for holiday names #+CATEGORY: Ann %%(diary-anniversary 5 14 1956)89 Arthur Dent is %d years old %%(diary-anniversary 10 2 1869) Mahatma Gandhi would be %d years old
もしもBig Brothers Databaseを使用して連絡先を管理しているのならば、あなたは先に述べたのと同様に、独立したOrg-modeのファイルや日記のファイルに登録するよりも、BBDBの中に記念日を登録したいと考えるでしょう。Org-modeはこれもサポートしており、アジェンダの一部としてBBDBの記念日を表示することができます。そのために必要なことは、以下のような記述をアジェンダファイルに行うことです。
* Anniversaries :PROPERTIES: :CATEGORY: Anniv :END: %%(org-bbdb-anniversaries)
それからBBDBのデータレコードのための記念日の定義に取り掛かることができます。基本的には、BBDBのレコードの中にカーソルを置いて、C-o
anniversary
<RET>を実行し、それから日付をYYYY-MM-DD
またはMM-DD
の形式で記入し、半角スペースに続けて記念日の種類(‘birthday’、‘wedding’、または定型句)のクラスを記入します。もしもクラスを省略した場合は、デフォルトでは‘birthday’であるとみなします。いくつかの例を書いてみました。org-bbdb.elファイルの先頭のところにもう少し詳しい説明が書いてあります。
1973-06-22 06-22 1955-08-02 wedding 2008-04-14 %s released version 6.01 of org-mode, %d years ago
BBDBを変更したり、Emacsのセッションで最初にアジェンダを表示したとき後は、アジェンダの表示が少し遅くなるかもしれません。というのはOrg-modeが記念日のハッシュデータを更新するからです。しかしながら、そのことについていうと非常に早いといえます。実際Org-modeの日記ファイルに‘%%(diary-anniversary)’のエントリーを長々と書き連ねた場合よりもずっと早いと言えるでしょう。
Org-modeはEmacsの予定を通知する機能と連携しています。あなたのアジェンダファイルに含まれているすべてのアポイントを追加するために、org-agenda-to-appt
コマンドを使います。このコマンドはあなたの予定のリストにフィルターをかけ、特別なカテゴリーに属しているものや正規表現の検索に合致したものを追加します。詳細はドキュメント文字列を参照してください。
グローバルなTODOリストには、形式を整えられ、1つの場所に集められたすべての未完了のTODOアイテムが含まれています。
org-todo-list
)
グローバルなTODOリストを表示します。これはすべてのアジェンダファイル(see アジェンダビュー)からTODOアイテムを1つのバッファに集約します。デフォルトでは、このアイテムのリストはDONEという状態ではないアイテムです。そのバッファはagenda-mode
となり、そのバッファからTODOアイテムを直接調べたり操作したりするコマンドが用意されています(see アジェンダのコマンド)。
上と似ていますが、指定したTODOキーワードと合致したものを表示します。同じことを前置引数をつけてC-c a
tを実行することでも指定できます。キーワードの入力を促す指示が表示され、そして複数のキーワードを論理式ORという意味で‘|’で区切って指定することができます。数字付きの前置引数をつけるとorg-todo-keywords
の中のN番目のキーワードを選択することができます。
rキーをアジェンダバッファで使用するとバッファの再構成が行われます。たとえば3
rというように、前置引数をつけてこのコマンドを実行すると選択したTODOキーワードが変更することができます。もしも特定のキーワードを使って検索することが多い場合は、カスタムコマンドを定義することもできます(see アジェンダのコマンド選択)。リモートでTODOアイテムを編集するということの意味は、1つのキーを入力することでTODOエントリーの状態を変更できるということです。TODOリストの中で利用できるコマンドはアジェンダのコマンドの記述を参考にしてください。
通常グローバルなTODOリストには、TODOキーワードのついたすべて見出しが表示されます。このリストは大変長いものになる場合もあります。それをコンパクトにするには2つの方法があります。
org-agenda-todo-ignore-scheduled
、org-agenda-todo-ignore-deadlines
、org-agenda-todo-ignore-timestamp
および/またはorg-agenda-todo-ignore-with-date
という変数を設定し、グローバルなTODOリストから取り除くことができます。
org-agenda-todo-list-sublevels
変数を設定することで可能となります
アジェンダファイルの中の見出しにtags(see タグ)がついていたり、あるいは属性(see プロパティとカラム)がついていたときは、このメタデータに基づいて見出しを選択し、アジェンダバッファに収集することができます。この項で述べている検索構文はC-c / mを用いたツリーの抽出を行うときも適用できます。
org-tags-view
)
一組のタグのセットに合致したすべての見出しのリストを作成します。選択の基準の入力を指示するコマンドでタグのついた論理式による表現で記入します。例えば、‘+work+urgent-withboss’あるいは‘work|home’
というように(see タグ)。もしも特定の検索をよく行うならばそのためのカスタムコマンドを定義することができます(see アジェンダのコマンド選択)。a M
org-tags-view
)
C-c a
mと似ていますが、not-DONEの状態にあるTODOアイテムの見出しから選択するもので、自動的にサブアイテムもチェックします(org-tags-match-list-sublevels
変数参照)。予定/期限のついたアイテムを除外するにはorg-agenda-tags-todo-honor-ignore-options
の変数を参照してください。特定のTODOキーワードをタグの一致と一緒に指定することも可能です。タグの検索を参照してください。
タグのリストで利用できるコマンドはアジェンダのコマンドのところで説明しています。
検索文字列ではANDの意味で‘&’、ORの意味で‘|’という論理式を使うことができます。‘&’は‘|’よりも強く結びつけます。括弧(
)は現在準備されていません。検索のどの要素も、タグそのものか、正規表現でマッチしたタグか、あるいはPROPERTY OPERATOR
VALUE
のような属性値にアクセスして比較操作のできる値のいずれかになります。どの要素も‘-’を先頭につけてそれ以外のものを表現するか、‘+’を先頭につけてポジティブな選択を行う、というような糖衣構文(簡便な構文)で表現します。‘&’でANDを取り扱うことは‘+’、‘-’で表現できるもののオプションです。下にタグだけをつかったいくつかの例を挙げておきました。
タグの代わりに、大括弧でくくられた正規表現により指定をすることもできます。例えば、‘work+{^boss.*}’と指定すると、‘:work:’というタグのついた見出しで‘boss’という単語でstartingするタグがついているものに一致します。
タグとマッチするものを探すと同時に属性(see プロパティとカラム)の検索をすることも可能です。属性としては実際の属性のほかに、他のメタデータで表現された特別な属性(see スペシャルプロパティ)にも対応しています。例えば、そのエントリーの中のTODOキーワードで表現されたTODO
という「属性」。あるいは、そのエントリーの階層を示すLEVEL
という「属性」などです。そのため、‘+LEVEL=3+boss-TODO="DONE"’という検索式は、第3階層のすべての見出しの中で、‘boss’というタグがついており、TODOキーワードがDONEでは‘ない’もののリストを表示します。org-odd-levels-only
という設定がなされているバッファでは‘LEVEL’は*の数を数えるのではなく、‘LEVEL=2’(2番目)
の階層は*が3つある階層が該当します。
いくつかの例を紹介します。
属性の検索では、多数の異なる操作で属性の値をテストすることができます。複雑な例を挙げます。
+work-boss+PRIORITY="A"+Coffee="unlimited"+Effort<2 \ +With={Sarah\|Denny}+SCHEDULED>="<2008-10-11>"
比較のタイプは比較の値がどのように書かれているかによります。
"<now>"
は(時刻も含めた)現在を示し、"<today>"
、"<tomorrow>"
はそれらの日の0:00つまり、時刻の指定がないことを表します。同様に、"<+5d>"
または"<-2m>"
というような文字列は、それぞれ日、週、月、年を示す、d
、w
、m
、y
という単位がついているものとして使用されます。
そのため、例に掲げた検索文字列の意味は、‘:work:’というタグがつけられているが、‘:boss:’というタグはついておらず、また、優先順位の値が‘A’であり、‘:Coffee:’が‘unlimited’という値であり、‘Effort’ 属性が数値で2より小さく、‘:With:’の値が‘Sarah\|Denny’であり、スケジュールが2008年10月11日もしくはそれ以降に予約されたものを示しています。
TODO、LEVEL、CATEGORYを検索するときは短時間ですみます。それ以外の属性を検索するときはいささか時間がかかります。しかしながら、一度高い代償を払って1つのプロパティを検索したら、他の属性を追加して再び検索するときは安くあがります。
検索の際にOrg-modeで属性の継承という機能を使用するように設定することができますが、相当検索スピードが落ちることを覚悟してください。詳細はプロパティの継承参照。
逆互換として、さらにまたタイプのスピードを上げるために、検索においてTODOの状態をテストする別の方法があります。このためには、検索文字列(それは‘|’で結合された複数の用語が含まれていると思いますが)のタグ・属性検索の部分を‘/’を使って終了させ、TODOキーワードを論理式で結んで指定します。その構文はタグの検索で使用したのと似ていますが、よく考えて適用する必要があります。例えば、複数のTODOキーワードが存在することを検索するには論理式のANDで結びつけても意味がありません。しかしながら、negative selection(存在しないことを選択する場合)では「AND」で結合することは意味を持ちます。これを確かめるには、実際にいくつかのTODOキーワードで、C-c a Mを用いて確認するだけです(そのほうがスピードアップできます)。あるいはスラッシュのあとに‘!’を記入して同時にTODOの部分を開始します。C-c a Mまたは‘/!’を使用したときは、DONEの状態にあるTODOキーワードを検索することはできません。例えば、
タイムラインはひとつのOrg-modeファイルの中からtime-sorted view(時間順のビュー)ですべてのタイムスタンプのついたアイテムをまとめてて表示します。このコマンドの主な目的は、あるプロジェクトに含まれているイベント全体の概要をつかむためにあります。
org-timeline
)
すべてのタイムスタンプの付いたアイテムについて、Org-modeファイルの中で時間順のビューを提供します。C-uという前置引数をつけて呼び出したときは、現在の日付の時点で、すべての未完了のTODOエントリー(予約されているものも、そうでないものも)を一覧にします。
タイムラインのバッファで利用できるコマンドは、アジェンダのコマンドにリスト化されています。
アジェンダのビューではOrg-modeのエントリーに対する一般的なテキスト検索機能を持っています。これはノートを探すのに特に役に立ちます。
org-search-view
)
このコマンドは特別な検索のためのもので、論理式を使って、文字列または特定の単語に合致するエントリーを選択します。
computer
とwifi
というキーワードを含んでおり、ethernet
というキーワードは含まれておらず、8\.11[bg]
という正規表現を含んでいない、すなわち8.11bおよび
8.11gともに含まれていないという意味ですが、エントリーを検索します。最初の‘+’は単語検索を開始するために必要ですが、ほかの‘+’はオプションです。詳しく知りたい場合は、org-search-view
というコマンドのドキュメント文字列を参照してください。
アジェンダファイルに加えて、このコマンドはorg-agenda-text-search-extra-files
の中で一覧になっているファイルもまた検索するということに注意してください。
もしもあなたが、以下に述べるようなDavid Allen氏のGTDのようなシステムであなたの仕事を管理しているならば、あなたが抱えている「義務」のひとつは、すべてのプロジェクトが進んでいるかを明確にするために、レビューを定期的に行うことです。詳細が未決定のプロジェクトは、次の行動が何も定義がされていないため、Org-modeが提示するTODOリストに、全く何も表示されることがないのです。レビューをする際に、そういったプロジェクトを明確にし、それらのプロジェクトための次の行動を定義することが必要です。
org-agenda-list-stuck-projects
)org-stuck-projects
の変数をカスタマイズすることで何が詳細が未決定のプロジェクトで、どうやったらそういうプロジェクトを発見できるかを定義することができます。
あなたは九分九厘このコマンドが機能するために、このビューを定義する必要があります。あらかじめビルトインされているデフォルトの設定では、すべてのあなたのプロジェクトは第2階層の見出しに記述されており、あるプロジェクトが未決定であるとはいえない状況とは、すくなくとも1つのエントリーにTODOまたはNEXTまたはNEXTACTIONという印がつけられている場合です。
Org-modeを使う際に、あなた自身の方法でアプローチするとして、PROJECTというタグがあるものをプロジェクトと定義し、プロジェクトがまだ検討する段階にないということを示すためにTODOキーワードでMAYBEと書いているものと仮定しましょう。さらにTODOキーワードでDONEという印の付いたものは完了したプロジェクトであると仮定しましょう。そしてまたNEXTもしくはTODOと書かれたものはNextActionであると仮定しましょう。@SHOPというタグがついたときはNEXTというタグが付いていなくても、ショッピングに行くという次の行動を示しているとします。最終的に、もしもプロジェクトにIGNORE(無視)という特別なキーワードがどこかについていたら、それはリストに表示されないものとします。このようなケースの場合、タグ・TODO90が‘+PROJECT/-MAYBE-DONE’とマッチし、さらにサブツリーにTODO、NEXT、@SHOP、およびIGNOREというタグが付いているようなプロジェクトは、詳細が未決定のプロジェクトではないといえます。このようなカスタマイズを正しく定義するには、
(setq org-stuck-projects '("+PROJECT/-MAYBE-DONE" ("NEXT" "TODO") ("@SHOP") "\\<IGNORE\\>"))
もしもあるプロジェクトが詳細が未決定のプロジェクトではないと定義されたならば、そのエントリーのサブツリーは依然として詳細が未決定のプロジェクトとして検索されるということに注意してください。
アジェンダビューにアイテムが表示される前に、Org-modeではそのアイテムを表示し並び替える準備を行っています。それぞれのアイテムは1行を占めます。その行にはその項目のcategory
(see カテゴリ)を含んだprefixとそれ以外の重要な情報を含んでいます。あなたはorg-agenda-tags-column
を使って表示されるコラムタグをカスタマイズすることができます。org-agenda-prefix-format
のオプションを使用して前置引数をカスタマイズすることができます。この前置引数は、そのアイテムに関連するアウトラインの見出しの最新のバージョンに従います。
カテゴリーとは、それぞれのアジェンダアイテムに割り当てられた幅の広いラベルです。デフォルトでは、カテゴリーはファイルの名前から単純に作成されます。しかし、バッファ上で特別な行を足すことでそれを指定することができます。91
#+CATEGORY: Thesis
もしもあなたが、1つのエントリーもしくは1つの(サブ)ツリーに特別なCATEGORYを持たせたいと望むのならば、そのエントリーに、値として適用したいと思っている特別なカテゴリーを:CATEGORY:
という属性に設定しなさい。
アジェンダバッファの表示は、そのカテゴリーが10文字以上長くしない方が見栄えが良いです。
あなたはorg-agenda-category-icon-alist
変数をカスタマイズすることで、カテゴリーにアイコンを設定することができます。
Org-modeは時刻の仕様に基づいて、それぞれのアジェンダアイテムをチェックします。時刻は、例えば、‘<2005-05-10 Tue 19:00>’のように、アジェンダの中に含まれているものをトリガーとしたタイムスタンプの一部です。時間の幅は2つのタイムスタンプで指定され、例えば‘<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>’のように記載されます。
そのエントリー自身の見出しの中で、時刻(時間)はプレーンなテキストとして(‘12:45’や‘8:30-1pm’)のように表示されます。もしもアジェンダがEmacsのダイアリー(see 毎週/毎日のアジェンダ)と一体化されていたときは、ダイアリーのエントリーの中で指定した時間は、同様に認識されます。
アジェンダの表示のために、Org-modeは時間を引き出し、前置引数の一部として標準的な24時間のフォーマットでそれを表示します。前の段落に書かれた時間の例は、アジェンダの中で結局以下のように表示されます。
8:30-13:00 Arthur Dent lies in front of the bulldozer 12:45...... Ford Prefect arrives and takes Arthur to the pub 19:00...... The Vogon reads his poem 20:30-22:15 Marvin escorts the Hitchhikers to the bridge
もしもアジェンダが一日モードであるならば、あるいは今日を表示しているならば、時間設定されたエントリーは、次のような時間のグリッドに埋め込まれます。
8:00...... ------------------ 8:30-13:00 Arthur Dent lies in front of the bulldozer 10:00...... ------------------ 12:00...... ------------------ 12:45...... Ford Prefect arrives and takes Arthur to the pub 14:00...... ------------------ 16:00...... ------------------ 18:00...... ------------------ 19:00...... The Vogon reads his poem 20:00...... ------------------ 20:30-22:15 Marvin escorts the Hitchhikers to the bridge
時間のグリッドは、org-agenda-use-time-grid
変数で表示したりしなかったさせることができます。そしてまたorg-agenda-time-grid
で設定をすることができます。
ビューに書き出される前に、各アイテムは並び替えが行われます。この並び替えはビューのタイプによって決まります。
org-agenda-files
によって決められた順番に、カテゴリーごとにグループ分けされます。それぞれのカテゴリーの中で、各アイテムは優先順位(see プロパティ)に従って並び替えられます。優先順位は基本的な優先順位で構成されます(優先順位‘A’ならば2000、‘B’ならば1000、‘C’ならば0として)。さらに、予定あるいはデッドラインを過ぎているアイテムのウエイトが追加されます。
並び替えは、org-agenda-sorting-strategy
変数でカスタマイズすることができます。そして、並び替えはそのエントリーの工数の見積りに基づく評価も含まれます。
アジェンダバッファでのエントリーは、その項目が作成されたOrg-modeファイルと日記ファイルの間でリンクされます。アジェンダバッファでは編集することはできませんが、コマンドを使って、そのエントリーがある場所を表示したり、ジャンプして、アジェンダバッファから「遠隔的に」Org-modeファイルを編集することができます。この方法で、すべての情報は1度書き込めばよく、あなたがアジェンダとノートのファイルが別の情報になるというリスクを避けることができます。
いくつかのコマンドはアジェンダの行上でマウスをクリックすることで実行されます。それ以外のコマンドは、必要とされる行の中にカーソルが置かれている必要があります。
org-agenda-next-line
)org-agenda-previous-line
)org-agenda-show-and-scroll-up
)org-agenda-recenter
)org-agenda-goto
)org-agenda-switch-to
)org-agenda-follow-mode
)org-agenda-start-with-follow-mode
変数で設定することができる。C-x
b
org-agenda-tree-to-indirect-buffer
)
間接的なバッファの中で可憐とアイテムのサブツリー全体を表示する。数値付きの前置引数Nをつけると、第N階層まで階層を上がり、そのツリーを取得する。もしもNがマイナスならば、多くの階層まで上がる。C-uという前置引数を付けた場合は、既に使われた間接的バッファは消去されない。
org-agenda-open-link
)
エントリーの中にあるリンクをフォローする。この機能は、参照されているOrg-modeのノードに属しているテキストの中に含まれているいくつかのリンクの中から選択するという機能を提供する。もしもリンクが1つしかない場合は、選択画面を表示せずに、そこにリンクを貼る。
org-aganda-day-view
)org-aganda-day-view
)
org-agenda-month-view
)org-agenda-month-year
)
org-agenda-reset-view
)org-agenda-span
での設定をリセットすることができます。org-agenda-later
)org-agenda-goto-today
)org-agenda-goto-date
)org-agenda-clock-goto
)org-agenda-toggle-diary
)org-agenda-log-mode
)
Logbook modeにするかどうかをトグルします。Logbook modeの中では、ログの取得中に(変数
org-log-done
)DONEと印が付けられたエントリーが、その日の時刻を持っているエントリーとして、アジェンダの中に表示されます。org-agenda-log-mode-items
変数を用いてlogモードに含まれるエントリーのタイプを設定することができます。C-uという前置引数をつけて呼び出すと、状態の変化を含め、すべてのおこりうるlogbookのエントリーを表示できるでしょう。C-u
C-uという2つの前置引数をつけて呼び出すと、ログの情報のみが表示され、それ以外は表示されません。v Lは、C-u v
lと等価です。[
org-agenda-manipulate-query-add
)
現在のビューに、不活性のタイムスタンプを含めます。週/日のアジェンダとタイムラインビューのみです。a
org-agenda-archives-mode
)
'files
org-agenda-archives-mode
ARCHIVED
と印されたツリーもまたアジェンダを作成するときにスキャンされます。大文字のAを使用したときは、全てのアーカイブファイルを含みます。archives
modeから出るためには、再度v aを押してください。R
org-agenda-clockreport-mode
)
Clockreportモードをトグルします。Clockreportモードでは、日/週のアジェンダは、時間軸のための時刻のついた表を表示し、カレントのアジェンダビューでカバーされる範囲をファイルします。新しいアジェンダバッファの中で、このモードの初期設定は、org-agenda-start-with-clockreport-mode
変数で設定することができます。このモードをトグル(すなわち
C-u
R)している時に、前置引数を使用することで、アジェンダフィルター92によって隠されているエントリーからの情報を表示しないでしょう。E
org-agenda-entry-text-mode
)
entry text modeをトグルします。entry text
modeでは、アジェンダ行によって参照されているOrg-modeのアウトラインのノードから、多数の行が、その行の下に表示されるでしょう。最大の行数は、org-agenda-entry-text-maxlines
変数で指定します。数値付きの前置引数を付けて、このコマンドを呼び出すと、前置引数の値の数によって、即座に修正されます。
org-agenda-toggle-time-grid
)org-agenda-use-time-grid
とorg-agenda-time-grid
変数を参照してください。org-agenda-rodo
)org-agenda-rodo
)org-agenda-columns
)
アジェンダバッファの中でカラムビュー(see カラムビュー)を作成します。カラムビューのフォーマットは、その時点のエントリーから作成され、あるいは(もしも、その時点でエントリーが存在しないなら)、アジェンダビューの最初のエントリーから作成されます。そのエントリーのためのフォーマットが何であれ、(プロパティから、#+COLUMNS
という行から、あるいはorg-columns-default-format
変数のデフォルトから作成された)オリジナルのバッファに存在しているエントリーのフォーマットがアジェンダで使用されます。
org-agenda-remove-restriction-lock
)
もしもファイルまたはサブツリーをその時点で制限しているならば、アジェンダをロックする制限を取り除きます。
(see アジェンダファイル).
org-agenda-filter-by-tag
)タグ選択の文字を入力しましょう。<SPC>はタグの全てを意味しています。入力部分で<TAB>を押すと、選択するタグの補完機能を使用できます(すべてのタグに選択用の文字が指定されているとはかぎりません)。そして、そのコマンドは、このタグを含んでいないか継承していないエントリーを全て隠します。前置引数をつけて呼び出した場合は、そのタグを持っているエントリーを削除さえしてしまいます。入力部で2番目の/はフィルターを終了し、隠されているエントリーを再度出現させます。もしも最初に入力したキーが、+または-ならば、前のフィルターは、選択された新たなタグの要求あるいは禁止に応じて、幅を狭くします。/の後に、+あるいは-を入力する代わりに、\ コマンドを即座に使用することもできます。
工数見積のフィルターをかけるために、予め認められている汎用的な工数を設定すべきです。例えば
(setq org-global-properties '(("Effort_ALL". "0 0:10 0:30 1:00 2:00 3:00 4:00")))
あなたは、<、>および=のひとつの操作を最初に入力することで、工数のためのフィルターをかけることができます。それから、あらかじめ認められた値のリストの中で、工数見積りのインデックスの数字を入力します。そこでは0は10番目の値を意味します。フィルターは選択された値よりも、以下、イコール、以上であるかによって限定されます。もしも0-9のキーがタグへのアクセスキーとして使用されていないならば、単純にあなたは操作コマンドを利用することなく、直接インデックスとなる数字を入力するだけです。この場合<が仮定されます。操作のアプリケーションのために、定義された工数がないエントリーでは、org-sort-agenda-noeffort-is-high
変数の値に従って取り扱われます。工数の定義のないタスクにフィルターをかけるには、?を操作の値として入力します。
Org-modeはまた、コンテクストに対応したタグのフィルターを自動的にサポートしています。もしも、org-agenda-auto-exclude-function
変数の値が、ユーザーが定義した機能に設定されているときは、その機能によって、どのようなタグがアジェンダから自動的に排除されるかを決定します。一度この機能が設定されると、それによって、/コマンドは、RET
をサブのオプションキーとして受け付け、自動的に排除ロジックを走らせます。例えば、いってみれば、ネットワークへのアクセスを必要とするタスクを定義するためにNet
というタグ、街での用事のためにErrand
というタグ、電話を掛けなければならないときにCall
というタグを使用しているとします。あなたは、インターネットを利用できるかどうか、仕事時間外にあるかどうか、このような状況に基づいて、これらのタグを自動的に排除することができるのです。
(defun org-my-auto-exclude-function (tag) (and (cond ((string= tag "Net") (/= 0 (call-process "/sbin/ping" nil nil nil "-c1" "-q" "-t1" "mail.gnu.org"))) ((or (string= tag "Errand") (string= tag "Call")) (let ((hour (nth 2 (decode-time)))) (or (< hour 8) (> hour 21))))) (concat "-" tag))) (setq org-agenda-auto-exclude-function 'org-my-auto-exclude-function)
org-agenda-undo
)org-agenda-todo
)org-agenda-todo-nextset
)org-agenda-todo-previousset
)org-agenda-kill
)org-agenda-confirm-kill
変数を参照のこと。C-w
org-agenda-refile
)
その時点でそのエントリーを差し替える。C-a
org-agenda-archive-default-with-confirmation
)
org-archive-default-command
に設定されたデフォルトのアーカイブコマンドを使用して、その時点でエントリーに対応したサブツリーをアーカイブする。a
キーを使用したときは、承認が必要である。C-x a
org-agenda-toggle-archive-tag
)
カレントの見出しのためのARCHIVEタグをトグルする。C-x
A
org-agenda-archive-to-archive-sibling
)
カレントエントリーに対応したサブツリーを、アーカイブファイルに移動する。C-x
C-s
org-agenda-archive
)
カレントの見出しに対応したサブツリーをアーカイブする。これは、設定されたアーカイブの場所に、多くの場合それは異なるファイルであるが、エントリーを移動することを意味している。org-agenda-show-tags
)org-agenda-show-inherited-tags
機能を停止しているにもかかわらず、依然として、たびたび見出しのすべてのタグを確認したいというときに役に立つ。org-agenda-set-tags
)org-agenda-show-priority
)org-agenda-priority-up
)org-agenda-priority-down
)org-agenda-add-note
)org-log-into-drawer
によって、これは引き出しの中に入る。C-a
org-attach
)
すべてのコマンドの選択画面は、付属するものに関連づけられる。C-s
org-agenda-schedule
)
このアイテムを予約する。前置引数をつけると、予約のタイムスタンプが削除される。C-d
org-agenda-deadline
)
このアイテムにデッドラインを設定する。前置引数をつけるとデッドラインが削除される。org-agenda-action
) m その地点でアクションのためにエントリーにマークする。複数のエントリーに対しても可能である。
Org-modeでは次を伴うC-c C-x C-k.
d その時点の日付でマークされたエントリーのデッドラインを設定する。
s その時点の日付でマークされたエントリーを予約する。
r デフォルトの日付としてカーソルの日付とともにorg-capture
を呼び出す。
org-agenda-do-date-later
)org-agenda-do-date-earlier
)org-agenda-date-prompt
)org-agenda-clock-in
)org-agenda-clock-out
)org-agenda-clock-cancel
)org-agenda-clock-goto
)org-agenda-bulk-mark
)org-agenda-bulk-remove-all-marks
)org-agenda-bulk-remove-all-marks
)org-agenda-bulk-action
)r 1つのリフィル上のターゲットに入力しすべてのエントリーを移動する。そのエントリーは アジェンダ上には表示されなくなる。再表示(g)によって再度表示される。 $ 選択されているエントリーをすべてアーカイブする。 A エントリーをアーカイブし、それぞれを所定のアーカイブ先に移動する。 t TODOの状態を変更する。これはTODOキーワード1文字を入力し、そして 選択されたエントリーすべての状態を変更する。それはブロックしているのを無視し ログのノートを抑え込んで(タイムスタンプは別です)。 + 選択されたエントリーのすべてにタグを付加する。 - 選択されたエントリーのすべてから、タグのひとつを削除する。 s すべてのアイテムに新しい日付で予約する。すでに予約がついていれば、日数分だけ 日付を更新する。入力欄でプラスを2つつけて何かの数字を最初に打つことで。 例えば、‘++8d’とか‘++2w’のように。 S N日を指定して、それぞれをリスケジュールする。Nは入力欄で指定する。前置引数 (C-u B S)をつけることで、平日のみに指定できる。 d 指定した日をデッドラインとして設定する。
org-agenda-goto-calendar
)org-calendar-goto-agenda
)org-agenda-diary-entry
)もしもOrg-modeファイルにorg-agenda-diary-file
を指定したならば、Org-modeではそのファイルの中に(Org-modeの構文を使って)日記の代わりに、エントリーを作成することができます。ほとんどのエントリーは、日付を元にしたアウトラインのツリーの中に記述されており、あとで過去の月/年の中から予定をアーカイブするのを簡単にします。そのツリーは、DATE_TREE
属性か、最上位のエントリーとして、年という属性を持ったエントリーのもとに構築されています。Emacsでエントリーのテキストを入力するようプロンプトが表示されるでしょう。もしもあなたがそれを指示するならば、さらなる連携なく、org-agenda-diary-file
にそのエントリーを作成することになるでしょう。テキストを入力することなく、その入力欄で直接<RET>を入力したら、そのターゲットとなるファイルがその場でのエントリーを終了させ、別のウインドウが表示されるでしょう。k
rコマンドを参照してください。
org-agenda-phases-of-moon
)org-agenda-sunrise-sunset
)org-agenda-convert-date
)org-agenda-holidays
)org-write-agenda
)org-agenda-exporter-settings
変数を使用します。
org-agenda-quit
)org-agenda-exit
)カスタムアジェンダコマンドは2つの目的を提供する。ひとつはTODOとタグの検索を使用して、保存と素早く頻繁にアクセスするため。もうひとつは、特別に合成したアジェンダバッファを作成するため。カスタムなアジェンダコマンドはデフォルトのコマンドと同様に、コマンド選択画面ディスパッチャー(see アジェンダのコマンド選択)を通して利用できる。
カスタム検索の最初のアプリケーションは、よく使われる検索式のためのキーボードショートカットを定義することです。それはアジェンダバッファの作成、またはツリーの抽出(後者は言うまでもなくカレントバッファのみをカバーする)のどちらに対してでも。
カスタムコマンドは、org-agenda-custom-commands
変数で設定されます。あなたはこの変数をカスタマイズできます。例えば、C-c
a
Cというように。またあなたは.emacsにEmacsのLispを記述して直接設定することもできます。以下に述べる例はすべての適正な検索タイプを含んでいます。
(setq org-agenda-custom-commands '(("w" todo "WAITING") ("W" todo-tree "WAITING") ("u" tags "+boss-urgent") ("v" tags-todo "+boss-urgent") ("U" tags-tree "+boss-urgent") ("f" occur-tree "\\<FIXME\\>") ("h" . "HOME+Name tags searches") ; description for "h" prefix ("hl" tags "+home+Lisa") ("hp" tags "+home+Peter") ("hk" tags "+home+Kim")))
それぞれのエントリーの頭文字は、コマンドにアクセスするために、コマンド選択画面を呼び出すC-c aというコマンドの後に、入力しなければならないキーを定義します。通常、これは1文字をあてますが、もしもあなたが似たようなコマンドをたくさん持っていたら、あなたは2文字の組合せで定義することができます。その場合、いくつかの組合せでは最初の文字が同じものとなり、前置引数95.と同じように提供されます。2番目のパラメーターは検索の種類を示し、マッチさせるために使われる文字列や正規表現がそれに続きます。上の例ではそれゆえ以下のように定義します。
もう一つの可能性とは、アジェンダビューの構築です。そのビューは、様々なコマンドの結果で構成されており、それぞれのコマンドはアジェンダバッファの中の1つのブロックを作成します。利用できるコマンドは(C-c
a aを実行して作成された)一日または週間アジェンダのためのagenda
、(C-c a
tを実行して作成された)グローバルなtodoリストのためのalltodo
、そして上で議論してきたtodo
、tags
、tags-todo
などの検索コマンドに含まれています。2つの例を挙げます。
(setq org-agenda-custom-commands '(("h" "Agenda and Home-related tasks" ((agenda "") (tags-todo "home") (tags "garden"))) ("o" "Agenda and Office-related tasks" ((agenda "") (tags-todo "work") (tags "office")))))
これによって、家で精を出さなければならない用事に対するマルチブロックのビューを作成するために、C-c a hを定義します。アジェンダバッファには結果として、その週の、‘home’というタグが含まれているすべてのTODOアイテムと、‘garden’というタグがついたすべての行のためのアジェンダを含むことになります。最後に、C-c a oというコマンドで、同様に、オフィスの作業についてのビューを得ることができます。
Org-modeはたくさんのアジェンダの構築や表示について調整する変数を含んでいます。グローバルな変数では、カスタムコマンドも含めて、アジェンダの全てのコマンドの動作を定義することができます。しかしながら、もしもあるひとつのカスタムビューについて、いくつかの設定を変更したいならば、それも可能です。オプションの設定は変数名のリストに書き込むことが必要で、org-agenda-custom-commands
の中に、正しい位置に値を書き込む必要があります。例えば。
(setq org-agenda-custom-commands '(("w" todo "WAITING" ((org-agenda-sorting-strategy '(priority-down)) (org-agenda-prefix-format " Mixed: "))) ("U" tags-tree "+boss-urgent" ((org-show-following-heading nil) (org-show-hierarchy-above nil))) ("N" search "" ((org-agenda-files '("~org/notes.org")) (org-agenda-text-search-extra-files nil)))))
こう書き込むことによって、C-c a wというコマンドは、優先順位によってのみ収集したエントリーを並べ替えるでしょう。そのエントリーのカテゴリを設定する変わりに、例えば‘ Mixed: ’という文字をprefixの形で書くことで変更することができます。C-c a Uというタグでツリーを抽出するコマンドは、この結果、超コンパクトとなるでしょう。なぜならば、検索に合致した項目の上の階層の見出しも、合致した項目の見出しもどちらも表示されないからです。C-c a Nというコマンドは、1つのファイルに制限されたテキスト検索を実行します。
ブロックアジェンダを作成するコマンドセットのために、org-agenda-custom-commands
ではオプションの設定用に2つの別の場所を用意しています。その設定の中にたったひとつのコマンドに有効なオプションを付け加えることも、その設定の中にすべてのコマンドに有効なオプションを付け加えることもできます。前者のオプションは1つのコマンドエントリーを付け加える。後者のオプションは、コマンドエントリーのリストを書き込むことが必要です。ブロックアジェンダの例に戻ると(see ブロックアジェンダ)、C-c
a
hというコマンドで、並べ替えの順序を優先順位の降順priority-down
に変更することができますし、その中で「GARDEN」というタグのついたものについては反対の順序、すなわち優先順位の昇順priority-up
に並べ替えることができるでしょう。このことは以下のように記述できます。
(setq org-agenda-custom-commands '(("h" "Agenda and Home-related tasks" ((agenda) (tags-todo "home") (tags "garden" ((org-agenda-sorting-strategy '(priority-up))))) ((org-agenda-sorting-strategy '(priority-down)))) ("o" "Agenda and Office-related tasks" ((agenda) (tags-todo "work") (tags "office")))))
おわかりだと思いますが、変数とカッコで囲んでいる設定はやや複雑なところがあります。わかりにくいときは、カスタマイズのインターフェースとしてこの変数を設定してください。これはカスタマイズの構造を完全にサポートしています。注意しなければならないのは、このインターフェースでオプションを設定するときに、変数は、Lispによる表現をとっているということです。そのため、もしもその変数が1つの文字ならば、あなた自身でその変数の値に「”(ダブルクォート)」で囲む必要があるということです。
もしもあなたが自分のコンピュータから離れているときは、いくつかのアジェンダのバージョンを印刷して持ち歩くことは大変役に立ちます。Org-modeはカスタムアジェンダビューをプレーンなテキスト、HTML96、Postscript、PDF97、iCalenderファイルとしてエキスポートすることができます。もしも、ときどきこのようなことを実行するのならばコマンドを使用しましょう。
org-write-agenda
)org-agenda-exporter-settings
変数を使用します。例えば
(setq org-agenda-exporter-settings '((ps-number-of-columns 2) (ps-landscape-mode t) (org-agenda-add-entry-text-maxlines 5) (htmlize-output-type 'css)))
もしも、あなたがアジェンダビューをたびたびエクスポートする必要があるのならば、アウトプットのファイルの名前98のリストに、いくつかのカスタムなアジェンダのコマンドを関連づけることができます。ここに一つの例があります。最初のものはアジェンダとグローバルなTODOリストに対するカスタムなコマンドを定義しており、それらをエクスポートするたくさんのファイルと一緒になっています。それから2つのブロックアジェンダコマンドを定義し、同様にそれらのためのファイル名を指定しています。ファイル名は、現在作業しているディレクトリに対して相対パスにすることも絶対パスにすることもできます。
(setq org-agenda-custom-commands '(("X" agenda "" nil ("agenda.html" "agenda.ps")) ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps")) ("h" "Agenda and Home-related tasks" ((agenda "") (tags-todo "home") (tags "garden")) nil ("~/views/home.html")) ("o" "Agenda and Office-related tasks" ((agenda) (tags-todo "work") (tags "office")) nil ("~/views/office.ps" "~/calendars/office.ics"))))
ファイル名の拡張子がエクスポートのタイプを決定します。もしも拡張子が.htmlならば、Org-modeはhtmlize.elパッケージを使用し、バッファをHTMLに変換し、そのファイル名で保存します。もしも拡張子が.psならば、ps-print-buffer-with-faces
がPostscriptの出力をするために使用されます。もしも拡張子が.icsならば、iCalendarのエクスポートは、アジェンダを構成しているすべてのファイルにわたってエクスポートを実行し、現在アジェンダの中ではリスト化されたエントリーのエクスポートに限定されます。ほかの拡張子がついた場合は、プレーンなASCIIテキストファイルが作成されます。
エクスポートファイルは、非常に負荷が高いので、これらのコマンドの一つを相互に影響するように使用している時は、出力されません。そのかわり、1ステップですべての指定されたファイルを出力する特別なコマンドが用意されています。
org-store-agenda-views
)
アジェンダに関連するエクスポートファイル名を持つすべてのアジェンダビューをエクスポートします。
あなたは、エクスポートコマンドのためのオプションの設定をするために。カスタムアジェンダコマンドのオプションのセクションを使用することができます。例えば、
(setq org-agenda-custom-commands '(("X" agenda "" ((ps-number-of-columns 2) (ps-landscape-mode t) (org-agenda-prefix-format " [ ] ") (org-agenda-with-colors nil) (org-agenda-remove-tags t)) ("theagenda.ps"))))
このコマンドは、Postscriptのエクスポートのために、2つのオプションを設定します。横長のフォーマットで2段のプリントを作成するためです。出力されたページは、2つにカットして、紙のアジェンダとして使えるようになります。もうひとつの設定は、行頭のカテゴリーとスケジューリング情報を省き、その代わりにチェックのついてないチェックボックスの項目となるようにアジェンダを修正します。私たちは各行をコンパクトに表示するためにタグを省略したり、白黒プリンタのためにカラーを使わない用にすることもできます。org-agenda-exporter-settings
の中で指定する設定もできますが、org-agenda-custom-commands
での設定が優先します。
コマンドラインで次のような設定を使用することができます。
emacs -f org-batch-store-agenda-views -kill
また、いくつかのパラメーター99を修正する必要があります。
emacs -eval '(org-batch-store-agenda-views \ org-agenda-span month \ org-agenda-start-day "2007-11-01" \ org-agenda-include-diary nil \ org-agenda-files (quote ("~/org/project.org")))' \ -kill
どちらも~/org/project.orgのファイルを対象として、日記のエントリーは除かれ、30日以内に限定したアジェンダビューを作成します。
あなたは、他のプログラムで将来の進行過程を認める方法で、アジェンダの情報を絞り込むことができます。詳細はアジェンダ情報の抽出,のノートの情報を参照してください。
カラムビュー(see カラムビュー)は、Org-modeファイルの階層構造の中に組み込まれている属性を見たり編集したりするために通常は使われます。エントリーがある評価基準で収集されているアジェンダから、カラムビューを使用することは大変便利です。
org-agenda-columns
)この属性がどのようなものか理解するために、アジェンダのエントリーはもはや適切なアウトラインの環境ではなくなることを理解することが重要です。これによって以下のようなことが生じます。
COLUMNS
のフォーマットを使用するか、決定する必要があります。アジェンダの中のエントリーは、異なるファイルから集められるということと、ファイルが異なるとCOLUMNS
のフォーマットも異なるということから、このことは些細な問題であるとはいえないのです。Org-modeは最初に、org-overriding-columns-format
変数がカレントで設定されているかどうか、またそこからフォーマットを取り出すことができるかどうかチェックします。一方、アジェンダの最初のアイテムに関連したフォーマットを使用するか、もしもそのアイテムが特別なフォーマット(属性もしくはファイルの中で定義された)を持たないならば、org-columns-default-format
を使用します。
CLOCKSUM
の属性が真であると設定されているということです。Org-modeはアジェンダの中で表示された値を合計するでしょう。一日/週間アジェンダの中で、合計は1日をカバーしています。他のビューでは、ブロック全体をカバーするのです。アジェンダでは同じエントリーを2度表示したり(例えばスケジュールと期限というように)、同じ階層(例えば親と子)から2つのエントリーを表示したりするかもしれない、ということを理解することは重要なことです。これらの場合、アジェンダの中での要約は、いくつかの値が二重にカウントされるという間違った結果を導く可能性があります。
CLOCKSUM
を表示するときは、このアイテムのためにいつでも時間計測全体に対応します。そのため1日/週間アジェンダにおいて、カラムビューでリスト化された時間合計は、カレントのビューの外側の時間から発生することになるかもしれません。この機能によって、あるタスクについて、計画された総工数を1つのカラムにリストにして、その値を比較することができるので、優位性を持ちます。この機能はアジェンダのカラムビューにおける重要なアプリケーションのひとつです。もしもあなたが表示されている期間の中の作業時間についての情報を得たいならば、clock
table mode(Rをアジェンダの中で入力する)を使用してください。
Org-modeの文書をエクスポートする時,エクスポート機能は文書の構造をできるだけ正確に反映しようとします.HTMLやLaTeX,DocBook,その他のリッチフォーマット等のエクスポートの対象について,Org-modeは文書をリッチエクスポートに変換するルールを持ちます.このセクションはOrg-modeのバッファで使われるマークアップのルールについて説明します.
#+TITLE: これは文書のタイトルです.
もしこの行が存在しなければ,タイトルはバッファ中の最初の空でない,コメントでない行を用います.もしまだ何も存在していない,またはあなたが最初の見出しより前のテキストをエクスポートをしないよう設定していたら,タイトルは拡張子無しのファイル名となります.
もしあなたがリージョンでマークしたサブツリーのみをエクスポートしているなら,サブツリーの見出しは文書のタイトルとなるでしょう.もしサブツリーがEXPORT_TITLE
プロパティを持っているなら,そのプロパティの値が優先して用いられるでしょう.
ドキュメントの構造で説明されているような文書のアウトライン構造は エクスポートされた文書のセクションの定義の基準を形成しています.しかしながら,アウトライン構造はまた(例えば)タスクのリストとしても使われているので,最初の3アウトラインレベルのみ見出しとして使われます.
#+OPTIONS: H:4
目次は通常ファイルの最初の見出しの前に直接挿入されます.もしあなたが異なる場所に目次を挿入したいのなら,その場所に[TABLE-OF-CONTENTS]
文字列を書いてください.目次の深さはデフォルトでは見出しのレベルの数と同じですが,org-export-with-toc
変数を設定するか,ファイルに以下のように書くことによって,あなたはこれより小さな値に変更することも,目次を完全に表示させないようにすることも可能です.
#+OPTIONS: toc:2 (目次に表示するレベルを2までとする) #+OPTIONS: toc:nil (目次を表示しない)
Org-modeは通常最初の見出しの前にテキストをエクスポートし,最初の行を文書のタイトルにします.テキストは完全にマークアップされているでしょう.もしあなたがHTMLやLaTeX,DocBookのような<リテラルを含めたい場合,独立したエクスポート機構のセクションで説明されている特別な構造を使います.
多くの人々は内部リンクの設定のためとそのために異なる方法でエクスポートされた最初の見出しの前のテキストを制御する最初の見出しの前に空白を使うことを好みます.あなたはorgexport-skip-text-before-1st-heading
変数をt
にすることで設定することができます.ファイル中に設定する場合,あなたは‘#+OPTIONS:
skip:t’とすることで同等の設定を行うことができます.
もし,あなたがまだ最初の見出しの前にテキストを置きたいのであれば,#+TEXT
構造を使います:
#+OPTIONS: skip:t #+TEXT: このテキストは*最初の*見出しの前に置かれます #+TEXT: [TABLE-OF-CONTENTS] #+TEXT: このテキストは目次と最初の見出しの間に置かれます
エントリー中の階層構造で説明されているプレーンリストは,バックエンドのリストに変換されます.多くのバックケンドがサポートしているのは記号付きリスト,番号付きリスト,見出し付きリストです.
段落は最低1つの空白行で区切られます.もしあなたが強制的に段落の中で改行しないなら,‘\\’を行の末尾に書いてください.
リージョンで改行を保つためには,しかしそうでなければ通常のフォーマットが使われるなら,あなたはフォーマット技法として使われるこの構文を使うことができます.
#+BEGIN_VERSE Great clouds overhead Tiny black birds rise and fall Snow covers Emacs -- AlexSchroeder #+END_VERSE
別の文書から一節を引用する時,段落の左右の余白を空けることが慣習となっています.あなたは以下を用いることで引用をOrg-modeの文書に含めることができます:
#+BEGIN_QUOTE Everything should be made as simple as possible, but not any simpler -- Albert Einstein #+END_QUOTE
もしあなたがテキストを中央寄せにしたいなら,以下を使うことができます:
#+BEGIN_CENTER Everything should be made as simple as possible, \\ but not any simpler #+END_CENTER
脚注は脚注で説明されたように定義されていて,全てのバックエンドにエクスポートされます.Org-modeは同じノートに対しての複数の参照と異なるバックエンドをサポートします.
あなたは*bold*と/italic/,_underlined_,=code=
,~verbatim~
,そして必要なら‘+strile-through+’を単語に適用することができます.codeとverbatim文字列の中のテキストはOrg-modeの明確な構文ではありません;
それはverbatimにエクスポートされます.
少なくとも5文字のダッシュ文字のみで行成される線は水平線(HTMLでは‘<hr/>’,LaTeXでは\hrule
)にエクスポートされます.
行頭の文字が‘#’から始まる行はコメントとして扱われ,エクスポートされません.もしあなたがコメント行をインデントしたいのであれば,‘#+’から行を開始してください.‘COMMENT’ワードを持つサブツリーは,サブツリー全体がエクスポートされません.最後に,‘#+BEGIN_COMMENT’から‘END_COMMENT’で囲まれた範囲はエクスポートされません.
Org-modeネイティブなテーブル(see テーブル)とtable.elパッケージを用いたテーブルの両方が適切にエクスポートされます.Org-modeの表では,最初の水平線の前の行が表のヘッダ行となります.あなたはキャプションと相互参照の指定を表の直前に,参照のための\ref{tab:basic-data}
オブジェクトをテキストのどこかに書くことができます.
#+CAPTION: これは次の表(またはリンク)のキャプションです #+LABEL: tbl:basic-data | ... | ...| |-----|----|
多くのバックエンド(HTML,LaTeX,DocBook)はエクスポートされた文書の中に直接画像を挿入することができます.もし,例えば,[[./img/a.jpg]]
のような説明部分を持たない画像ファイルへのリンクがあるなら,Org-modeは画像の挿入を行います.もしあなたが画像のキャプションや内部相互参照のラベルを定義したいなら,以下のように#+CAPTION
と#+LABEL
をリンクの前に書きます:
#+CAPTION: これは次の画像(または表)のリンクのキャプションです. #+LABEL: fig:SED-HR4049 [[./img/a.jpg]]
あなたは画像に対する追加要素を定義するかもしれません.これはバックエンドの仕様なので,さらに情報が必要なら独立したバックエンドについてのセクションを見てください.
See 画像リンクの議論.
あなたはマークアップに依存しないリテラルの例を含めることができます.そのような例に等幅のタイプセットがあり,それはソースコードやそれに似た例向きです.
#+BEGIN_EXAMPLE テキストファイルからの例. #+END_EXAMPLE
そのようなブロックはインデントされたテキストをうまく整列させるためと,特にプレーンリスト構造(See エントリー中の階層構造.)のためにインデントされるでしょう.小さな例を使う時,それを簡単にするために,あなたはコロンとそれに続く空白からなる例の行を使うことができる.それらはコロンの前に空白を追加することもできます.
ここに例を書きます : テキストファイルからの例
もし例がソースコードなら,もしくはEmacsでフォントロックによりマークアップされたテキストなら,あなたはEmacsバッファ100を要塞化するように要請することができます.あなたが例に色付けするために使うメジャーモードの名前を指定することが必要な時,‘src’ブロックを使います:
#+BEGIN_SRC emacs-lisp (defun org-xor (a b) "Exclusive or." (if a (not b) b)) #+END_SRC
example
とsrc
スニペットでは,あなたはBEGIN
の行の最後に-n
を追加することで,例の行番号を表示することができます.もしあなたが+n
とすると,前のスニペットから現在のものに番号が引き継がれます.リテラルの例で,Org-modeは‘(ref:name)’をラベルとして解釈し,[[(name)]]
のような特別なリンクによりそこを参照することができます(i.e.
参照名は1つの括弧に囲まれています).HTMLでは,対応するコード行をマウスオーバーすると自動的にハイライト表示になり,少しクールです.
また,ソースコード101からラベルを消去するかどうかの切り替えのために-r
を追加することもできます.-n
で切り替えると,リンクされるそれらのリファレンスはコードリスティングの行番号によってラベルを付けられ,そうでなければ括弧無しのラベルにリンクされます.
#+BEGIN_SRC emacs-lisp -n -r (save-excursion (ref:sc) (goto-char (point-min)) (ref:jump) #+END_SRC In line [[(sc)]] we remember the current position. [[(jump)][Line (jump)]] jumps to point-min.
もし,ラベルの構文が言語の構文と衝突した場合,-l
を使うことで‘#+BEGIN_SRC pascal -n -r -l
"((%s))"’のようにフォーマットを変更できます.org-coderef-label-format
変数を見てください.
HTMLはエクスポート時にテキストエリア,See HTMLエクスポートでのテキストエリア.とすることができます
artist-mode
103を使うことで編集されます.空行でこのコマンドを使うことで,新しい固定幅のリージョンを作成します.
org-store-link
の呼び出しはラベルを指示します.現在のバッファがユニークであることを確認し,現在の行の最後に‘(ref:label)’のように適切にフォーマットされたものが挿入されます.ラベルは‘(label)’のようなリンクを記憶し,C-c
C-l検索する.
エクスポート中,あなたは別のファイルの内容をインクルードすることができます.例えば,.emacsをインクルードするなら,あなたは次のようにします:
#+INCLUDE: "~/.emacs" src emacs-lisp
2つ目のオプションは(e.g.
‘quote’や‘example’,‘src’)のようなマークアップで,3つ目はマークアップが‘src’ならコンテンツの言語を表します.マークアップはオプションです;
もし与えられなければ,Org-modeフォーマットのテキストと仮定される.インクルードの行は最初の行とそれに続く行のプレフィクスの指定のための追加キーワードパラメーターの:prefix1
と:prefix
を,Org-modeのコンテンツを指定したレベル下げるための:minilevel
を,同様に選択したマークアップ固有のオプションを持ちます.例えば,ファイルをインクルードするには:
#+INCLUDE: "~/snippets/xx" :prefix1 " + " :prefix " "
:line
パラメーターを使うことで,ファイルの指定した範囲の行のみをインクルードすることができます.範囲外の行はインクルードされません.範囲の開始と,または終了は明らかにデフォルトを使いません.
#+INCLUDE: "~/.emacs" :lines "5-10" Include lines 5 to 10, 10 excluded #+INCLUDE: "~/.emacs" :lines "-10" Include lines 1 to 10, 10 excluded #+INCLUDE: "~/.emacs" :lines "10-" Include lines from 10 to EOF
あなたは公開した文書のインデックスに用いるエントリーを規定することができます.これは#+INDEX
から始まる行により設定します.感嘆符を含むエントリーはサブアイテムを作るでしょう.さらなる情報を見るにはインデックスの生成を参照してください.
* Curriculum Vitae #+INDEX: CV #+INDEX: Application!CV
あなたは次のようにしてテキストスニペットを定義することができます.
#+MACRO: name replacement text $1, $2 are arguments
これは
{{{name(arg1,arg2)}}}
と書くことでドキュメントのどこからも(コードの例からも)参照されます.マクロの定義に加えて,{{{title}}}
,{{{author}}}
などは#+TITLE:
や#+AUTHOR:
や他の似たような行によりセットされる情報を参照します.また,{{{date(
FORMAT)}}}
と{{{modification-time(
FORMAT)}}}
は現在の日付とファイルがエクスポートされて変更された時刻をそれぞれ参照します.FORMATはformat-time-string
で認識した文字列をフォーマットします.
マクロ展開はエクスポート中に行われ,一部の人々は複雑なHTMLコードの構築に用いる.
プレーンなASCIIはほとんどの場合ノートをとるのに十分です.例外は数学の記号や時々出てくる数式を必要とする科学に関するノートのようなものです.LaTeX104は科学に関する文書の組版に広く使われています.多くのacademicsはLaTeXのソースコードの読み書きに使われていて,すぐに多くのエクスポートバックエンドに対応できるため,Org-modeはLaTeXコードのファイルへの組込みをサポートしています.
あなたはLaTeXマクロをギリシャ文字を表す‘\alpha’や矢印を表す‘\to’のような特殊記号の挿入に使うことができます.これらのマクロは補完が可能で,‘\’まで入力し,その後に何文字か入力してM-<TAB>を押すことで補完が可能です.LaTeXのコードとは違い,Org-modeは数学の区切り文字を囲まないようなマクロも使うことができます.以下に例を挙げます:
Angles are written as Geek letters \alpha, \beta and \gamma.
エクスポート時,これらのシンボルはエクスポート先のネイティブフォーマットに変換されます.HTMLでは\alpha
のような文字列はα
にエクスポートされ,LaTeXでは$\alpha$
となります.同様に,\nbsp
はHTMLでは
に,LaTeXでは~
となります.もしあなたが記号を単語の中に含めたいのであれば,次のようにします:
‘\Aacute{}stor’.
非常に多くのエンティティが提供されていて,HTMLとLaTeXからその名前を引き継いでいます;完全なリストはorg-entities
変数を見てください.‘\-’はシャイなハイフンとして扱われていて,‘--’や‘---’,‘...’は異なる長さのハイフンかドットの集合を作成するための全て特殊コマンドに変換されます.
もしあなたがUTF-8文字でエンティティを表示したいのなら,以下のコマンド105:
LaTeXと同じように,‘^’と‘_’が下付き文字と上付き文字を示しています.さらに,それらはmath-modeにの区切り文字に組込まずに使うことができます.ASCIIテキストの可読性の向上のため,複数文字の下付き文字と上付き文字を波括弧で囲む必要はありません(囲んでもかまいませんが).例
The mass of the sun is M_sun = 1.989 x 10^30 kg. The radius of the sun is R_{sun} = 6.96 x 10^8 m.
上付きテキスト,下付きテキストの説明を避けるため,あなたはバックスラッシュをつけた‘^’と‘_’を引用できます:
‘\^’と‘\_’です.異なる文脈でしばしば使われるアンダーラインのテキストを書くなら,常にこれらの下付き文字として解釈するOrg-modeの慣習はあなたのやり方で得ることができます.この慣習を変更するにはorg-export-with-sb-superscripts
変数を設定するか,ファイルに次のように書いてください.
#+OPTIONS: ^:{}
この設定を有効にした場合,‘a_b’は下付き文字として解釈されず,‘a_{b}’とすることで解釈されます.
シンボルと上付き,下付き,完全な式を越えることが必要です.Org-modeはLaTeXの数式を含むことができ,各エクスポート先への変換もサポートしています.LaTeXにエクスポートするとき,コードは明らかに残っています.HTMLへエクスポートするとき,Org-modeは数式106の処理と描画のためにMathJax library (see HTMLエクスポートでの数式フォーマット)を呼び出します.最後に,数式表現はブラウザかDocBook文書で描画可能な画像107へと処理されます.
LaTeXのコード片は,特別なマークは全く必要ありません.以下のコード片はLaTeXのソースコードとして知られています:
\begin
文は空白のみがある行に表示されることです.
例:
\begin{equation} % arbitrary environments, x=\sqrt{b} % even tables, figures \end{equation} % etc If $a^2=b$ and \( b=2 \), then the solution must be either $$ a=+\sqrt{2} $$ or \[ a=-\sqrt{2} \].
もしあなたが他の目的にASCIIの区切り文字が必要なら,LaTeXコンバータに邪魔されえることを望まない文字を除外するためにorg-format-latex-options
オプションを設定することができます.
LaTeXの処理はorg-export-with-LaTeX-fragments
変数を設定することができます.デフォルトの設定はt
で,HTMLにはMathJaxを用い,DocBookとASCII,LaTeXでは処理しません.あなたはこの変数をファイルの冒頭部分に書くことで設定することもできます:
#+OPTIONS: LaTeX:t Do the right thing automatically (MathJax) #+OPTIONS: LaTeX:dvipng Force using dvipng images #+OPTIONS: LaTeX:nil Do not process LaTeX fragments at all #+OPTIONS: LaTeX:verbatim Verbatim export, for jsMath or so
もしあなたがdvipngをインストールしているのであれば,LaTeXのコード片は出力された組版において画像として処理されます:
プレビューの外観を変更するために,あなたはorg-format-latex-optins
変数をカスタマイズすることができます.とりわけ,:scale
(そしてHTMLへのエクスポートでは:html-scale
)プロパティは画像のプレビューサイズの調整に使われます.
CDLaTeXモードは環境や数学テンプレートの挿入をスピードアップするためにAUCTeXに似たメジャーモードであるLaTeXモードと併用して通常使われるマイナーモードです.Org-modeでは,あなたはCDLaTeXモードのいくつかの機能を使用できます.あなたはhttp://www.astro.uva.nl/~dominik/Tools/cdlatexからcdlatex.elとtexmathp.el(最近AUCTeXに追加されました)をインストールする必要があります.Org-mode中ではCDLaTeXモード自身は使わないでください,代わりにOrg-modeに一部である,より軽量なバージョンのorg-cdlatex-mode
を使ってください.M-x
org-cdlatex-mode
をカレントバッファで実行して有効にするか,全てのOrg-modeファイルで有効するために次の設定を行います:
(add-hook 'org-mode-hook 'turn-on-org-cdlatex)
このモードが有効である時,以下の機能が提供されます(詳細はCDLaTeXモードのドキュメントを参照してください)::
fr
を\frac{}{}
に展開しカーソルを最初の括弧に移動します.もう一度<TAB>を押すと2つ目の括弧にカーソルが移動します.コード片の外だと,<TAB>は行の先頭にある環境の略語を展開します.例えば,もしあなたが行頭に‘equ’と書いていて<TAB>を押すと,この略語はequation
環境に展開されます.全ての略語を見るには,M-x
cdlatex-command-helpをタイプしてください.
cdlatex-simplify-sub-super-script
変数に依存します).
org-modeのドキュメントは様々なフォーマットにエクスポートすることができます。ノートを共有し印刷するには ASCII形式でエクスポートすることでOrgファイルの読みやすく、シンプルなものが得られます。 HTMLのエクスポートではノートをウェブに公開できるようになりますし, XOXOフォーマットは他の様々なアプリケーションでやりとりするうえで確かな基礎となります。 LaTeX のエクスポートでは、org-modeとその構造化された編集機能を使って、容易に LaTeX のファイルを出力することができます。DocBookのエクスポートでは、OrgファイルをDocBookのツールを使った様々なフォーマットに変換することが可能です。プロジェクトの管理では、TaskJuggler形式のエクスポートを使って、ガントリソースチャートを作成することができます。デッドラインや予約のような時間と関連のあるエントリーをiCalのようなデスクトップカレンダーに取り込むために org-modeはiCalendar形式で抽出することもできます。現在、Org-modeはエクスポートのみをサポートしており、他の異なるフォーマットからインポートすることはできません。
org-modeは、 transient-mark-mode
がオンの時(Emacs
23ではデフォルト)、は選択したリージョンをエクスポートをすることができます。
エクスポートしたいドキュメントのある部分を選択、または除外する時にタグを使うことができます。 その挙動は、
org-export-select-tags
と org-export-exclude-tags
の二つの変数により決まります。
org-modeはまず始めに select タグがバッファにないかチェックします。 あった場合は, タグがない全てのツリーは除外されます。もし選択したツリーがサブツリーだった場合、それより上の階層はエクスポートされるものとして選択されますが, それより下の階層は選択されません。
もし、選択されたタグがなかった場合, バッファにある全ての内容がエクスポートされるものとして選択されるでしょう。
最後に, exclude タグでマークされていない全てのサブツリーはエクスポートバッファから除かれるでしょう。
エクスポートする際にはバッファにある特別な行が読みこまれます。 その行には追加的な情報が含まれており、ファイルの中でどこにでも書くことができます。
C-c C-e t と入力することで、バッファにそのような行をセットで挿入することができます。それぞれの行で ‘#+’
と入力した後に M-<TAB> による補完を行ない、 (see 補完)
キーワードが正しいか、確認してみると良いでしょう。エクスポートと関連のない、バッファ内の設定の概要については バッファ内での変数制御
を参照してください。特に、 #+SETUPFILE
を使うことによって含めることができる別のファイルの中でよく使われる(エクスポートの)オプションを指定できることに注意してください
org-insert-export-options-template
)#+TITLE: 表示されるタイトル (デフォルトはバッファ名) #+AUTHOR: 著者 (デフォルトはuser-full-name
の値) #+DATE:format-time-string
で解釈される固定された日付の文字列 #+EMAIL: 彼/彼女のメールアドレス(デフォルトはuser-mail-address
の値) #+DESCRIPTION: ページの説明, e.g. XHTMLのメタタグで使われる。 #+KEYWORDS: ページのキーワード, e.g. XHTMLのメタタグで使われる。 #+LANGUAGE: HTMLで指定される言語 e.g. ‘en’ (org-export-default-language
) #+TEXT: 冒頭に挿入される説明的な文章 #+TEXT: 複数の行に書くことができます。 #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t f:t TeX:t ... #+BIND: lisp-var lisp-val, e.g.: org-export-latex-low-levels itemize これらを確認するか,org-export-allow-BIND
を設定すること #+LINK_UP: 出力したページにおける ``up'' のリンク先 #+LINK_HOME: 出力したページにおける ``home'' のリンク先 #+LATEX_HEADER: LaTeXのヘッダーで使われる \usepackage{xyz} のような余分な行 #+EXPORT_SELECT_TAGS: エクスポートするツリーを示すタグ #+EXPORT_EXCLUDE_TAGS: エクスポートから除外するツリーを示すタグ #+XSLT: FOファイルを生成するのにDocBookのエクスポート機能が使うXSLTのスタイルシート
OPTIONS行は 以下のようなエクスポートの設定を示すコンパクトな式です。 110
H: エクスポートする見出しの階層数 num: セクション番号の有無 toc: 目次の有無, または階層数の上限 (整数) \n: 改行を維持するかどうか (うまく動作しない) @: HTMLの引用タグの有無 :: 固定幅の段落の有無 |: 表の有無 ^: 上付き、下付き文字を示す TeX のようなシンタックスの有無 "^:{}" はa_{b}
解釈されるが、 簡潔なa_b
はそのままとなるでしょう。 -: 特別な文字列を変換するかどうか f: this[1] のような脚注を用いるかどうか todo: TODOキーワードを出力した文字列に含めるかどうか pri: クッキーを優先するかどうか tags: タグの有無,not-in-toc
となるかもしれません。 <: DEADLINESのような時間/日付の有無 *: 強調テキストの有無(太字, イタリック, アンダーライン) TeX: テキスト中のシンプルな TeX マクロの有無 LaTeX: LaTeX 出力の設定 デフォルトはauto
skip: 最初見出しの前にある文章をスキップするかどうか author: 著者の名前/e-mailを出力するかどうか email: 著者のe-mailを出力するかどうか creator: 作者を出力するかどうか timestamp: 作成した日付を出力するかどうか d: drawerを出力するかどうか
これらのオプションはHTML、 LaTeX の両方のエクスポートに影響します。 TeX
と LaTeX
のオプションを除き LaTeX のエクスポートをするのに、それぞれ t
、または nil
となります。
org-export-html-pre/postamble
を t
とするとHTMLにエクスポートする時に
author
、 email
及び creator
の値は上書きされるでしょう。 代わりに
org-export-html-pre/postamble-format
が用いられます。
このようなオプションの初期値は変数のセットで与えられます。 そのような変数は、OPTIONSのキーと公開するキーにも対応しています。
(see プロジェクトのリスト), org-export-plist-vars
の定数を見てください。
エクスポートのコマンドを呼びだす前に、 C-c @ で選択した単一のサブツリーをエクスポートする時、そのサブツリーは、
EXPORT_FILE_NAME
、 EXPORT_TITLE
、 EXPORT_TEXT
、
EXPORT_AUTHOR
、 EXPORT_DATE
、 そして EXPORT_OPTIONS
プロパティでエクスポートの設定を無視することができます。
全てのエクスポートコマンドはエクスポートコマンド選択画面から選ぶことができます。 コマンド選択画面では、コマンドを特定するための追加的なキーの入力を促されます。通常、ファイルの全ての内容がエクスポートされますが、もしアクティブなリージョンに一つのアウトラインツリーが含まれていた場合, まず、見出しがドキュメントのタイトルとして扱われ、サブツリーがエクスポートされます。
org-export
)org-export-visible
)
C-c C-e のように動作しますが、 今見えている文章だけがエクスポートされます。
(i.e. アウトライン表示により、隠されていない文章). org-export
)org-export-run-in-background
の設定と逆の挙動となります。 i.e.
動いていないバックグラウンドプロセスを呼びだしたり, 現在のEmacsのプロセスで強制的に実行したりします。
ASCII形式へのエクスポートは、org-modeのファイルをASCIIのみが含まれる、シンプルで読みやすい形に書き出します。Latin-1及びUTF-8でのエクスポートでは特殊な文字やシンボルをそれらのエンコードで出力します。
org-export-as-ascii
)EXPORT_FILE_NAME
プロパティを継承していた場合、 エクスポートする際にはその名前が使われるでしょう。
org-export-as-ascii-to-buffer
)org-export-as-latin1
)org-export-as-latin1-to-buffer
)
上に示したコマンドのような動作をしますが,
Latin-1でエンコーディングされたものが出力されます。 org-export-as-utf8
)org-export-as-utf8-to-buffer
)エクスポートされたものでは、 最初の3つのアウトラインの階層が一般的な文書の構造と見なされて、見出しとなります。 それ以外の階層はアイテムのリストとしてエクスポートされます。 この違いを異なる階層に変えたい場合は、 前置引数で、その階層を指定します。 例えば、
C-1 C-c C-e a
は 最初の階層のみを見出しとし、それ以外はアイテムとなります。見出しがアイテムに変更された時、 見出し後の文章のインデントは、アイテムの下にうまく調和するように変更されます。 この変更は、最初の本文が全体のインデントを示しているという仮定のもとで実行されます。これよりも大きなインデントは、最初の文章との相対的なレイアウトを維持するように調整されます。最初の行より少ないインデントであれば, 左寄せします。
次の見出しの前にあるリンクは脚注のような形でエクスポートされます。その脚注は、次の見出しの前に項目名とリンクがエクスポートされます。詳しい内容と他のオプションについては、変数
org-export-ascii-links-to-notes
を見てください。
org-modeには多くのHTMLのフォーマットに対応したHTML (XHTML 1.0 準拠)エクスポート機能があります。それは、John Gruberが開発した markdown 言語に似ていますが、org-modeではさらにテーブルもサポートしています。
org-export-as-html
)EXPORT_FILE_NAME
プロパティを継承していた場合、 エクスポートする際にはその名前が使われるでしょう。C-e b
org-export-as-html-and-open
)
HTMLファイルをエクスポートし、そのファイルをブラウザで開きます。
org-export-as-html-to-buffer
)org-export-region-as-html
)エクスポートされたものでは、 最初の3つのアウトラインの階層が一般的な文書の構造と見なされて、見出しとなります。 それ以外の階層はアイテムのリストとしてエクスポートされます。 この違いを異なる階層に変えたい場合は、 前置引数で、その階層を指定します。 例えば、
C-2 C-c C-e b
この場合2番目のレベルまでを見出しとして取り扱い、それ以外は項目として取り扱います。
HTMLにエクスポートする際、プレーンな‘<’ and ‘>’は常に ‘<’と‘>’に変換されます。もし単純なHTMLタグをそのまま含めたい時は, ‘@<b>bold text@</b>’のようにma‘@’でマークします。これは単純なHTMLタグでしか動作しませんので注意してください。 エクスポートするファイルにさらに広範囲なHTMLをそのままコピーするには次のようなブロックが使えます。
#+HTML: エクスポートするHTMLコード
マーカー間の全ての行は文字どおり出力されます。
内部リンク(see 内部リンク) エクスポートされHTMLでも同様に動作します。これには、ラジオターゲット(see ラジオターゲット)により生成された自動リンクも含まれます。もしターゲットとなるファイルが公開されるOrgファイルを示す同じ相対パス上にあっても、リンクは外部リンクとして動作するでしょう。他の.orgファイルへのリンクは、HTMLにエクスポートされたものにも同じ相対パスでリンクされたファイルがある、という前提で、リンクに変換されます。 ‘id:’リンクはファイル間で特定のエントリーにジャンプするのに使われます。リンクするファイル、公開ディレクトリでの公開に関する情報については、ファイルリンク付きの公開参照してください。
リンクの属性を記述したい時は、特別な#+ATTR_HTML
行を用いることができます。
この行は、<a>
タグや<img>
タグを追加する属性を定義するために使われます。以下の例では、リンクにtitle
とstyle
の属性を設定しています。
#+ATTR_HTML: title="The Org-mode homepage" style="color:red;" [[http://orgmode.org]]
org-modeの表は、org-export-html-table-tag
で定義されているテーブルのタグを使ってHTMLにエクスポートされます。
デフォルトの設定では、セルの罫線とフレームがない状態でテーブルが出力されます。 個々のテーブルでその設定を変えたい場合は,
次のような行をテーブルの前に記述してください。
#+CAPTION: これはセルの周囲に線が引かれた表です。 #+ATTR_HTML: border="2" rules="all" frame="all"
HTMLのエクスポートではOrgファイルにリンクがある画像をインライン表示することができます。
その画像はリンクされているクリック可能な部分として扱われます。
デフォルトでは、116,
リンクにdescriptionがなければ、画像はインライン表示されます。 つまり、
‘[[file:myimg.jpg]]’はインライン表示されますが、‘[[file:myimg.jpg][the
image]]’はが画像にリンクされる‘the image’というテキストリンクが作られます。
descriptionの部分がfile:
リンクか画像を示すhttp:
のURLの場合,
画像はインラインに表示され、画像がクリックされると活性化されます。例えば、リンク先に高解像度の画像があるサムネイルを追加したい場合、次のように書くと良いでしょう。
[[file:highres.jpg][file:thumb.jpg]]
インライン画像に属性を追加したい場合は、#+ATTR_HTML
を使います。
次の例では、テキストでの見やすさとアクセスのしやすさを考慮してalt
属性とtitle
属性を指定して、alignを右にしています。
#+CAPTION: A black cat stalking a spider #+ATTR_HTML: alt="cat/spider image" title="Action!" align="right" [[./img/a.jpg]]
http
のアドレスも使うことができます。
LaTeXの数学用スニペット(see LaTeXのコード片)は二つの異なる方法でHTMLに表示される。デフォルトではorg-modeをインストールすると、すぐにMathJax systemが使えるようになっています。
http://orgmode.org
はMathJaxがOrg-modeユーザー、小さなアプリケーション、そしてテストにとって便利だと考えているからです。
もし特定のページで、あるいは常にMathJaxを使うのであれば、私達のサーバでの読みこみを減らすためにMathJaxをあなたのサーバにインストール117
してください。
MathJaxについて設定するには、org-export-html-mathjax-options
を使うか、バッファに次のような行を挿入してください。
#+MATHJAX: align:"left" mathml:t path:"/MathJax/MathJax.js"
この行の各パラメーターの意味の知るために,ドキュメント文字列の変数org-export-html-mathjax-options
を見てください.
望むのであれば、LaTeXを小さな画像に変換してブラウザ上のページに挿入することもできます。MathJaxが有用である前には、これがorg-modeでのデフォルトの方法でした。この方法を用いるには、あなたのシステムでdvipngプログラムが利用できる状態である必要があります。この方法は以下のような行を追加することでも有効になります。
#+OPTIONS: LaTeX:dvipng
コードサンプルをHTMLにして公開する方法として、テキストエリアを使う方法があります。何かのアプリケーションに貼りつける前であれば、そのコードサンプルは編集することができます。example
ブロックかsrc
ブロックに-t
スイッチが付加されることでテキストエリアに変換されます。
このスイッチを使うことで、シンタックス、ラベルのハイライト、行番号に関するオプションが無効になります。
-h
と-w
を使うことがあるかもしれません。それらのスイッチはテキストエリアの高さと幅を特定するもので、デフォルトでは高さがexampleブロックの行数で幅は80となります。設定は、例えば以下のようになります。
#+BEGIN_EXAMPLE -t -w 40 (defun org-xor (a b) "Exclusive or." (if a (not b) b)) #+END_EXAMPLE
エクスポートするファイルには、スタイルに関する情報を含めることができます。HTMLエクスポート機能には、文章のパーツを適切に表示するために次に示す特別なCSSクラス118があります。見出しやテーブルなどの標準的なクラスに加えて、それら特別なCSSクラスも変更することができます。
p.author 著者の情報、email含む p.date 公開日 p.creator 作成情報, org-modeのバージョン .title 文章のタイトル .todo DONEとなっていないTODOキーワード .done DONEキーワード、DONEと扱われる全てのキーワードが対象 .WAITING 各TODOキーワードはその名前のクラス名も用いることができる .timestamp タイムスタンプ .timestamp-kwd SCHEDULED等のタイムスタンプに関連するキーワード .timestamp-wrapper SCHEDULED等のキーワードとタイムスタンプ全体 .tag 見出し中のタグ ._HOME 各タグはその名前のクラス名も用いることができる("@"は"_"に置き換えられる) .target リンクのターゲット .linenr コード中の行番号 .code-highlighted 参照されコード行のハイライト div.outline-N 深さレベルNのdiv要素(見出しとテキスト) div.outline-text-N 深さレベルNのテキスト部分のdiv要素 .section-number-N 深さレベルNの見出しの番号。各レベルで異なる div.figure インライン画像のフォーマット方法 pre.src ソースコードブロックのフォーマット方法 pre.example 例示ブロック p.verse verseブロック div.footnotes 脚注の見出し p.footnote 脚注定義の文章、脚注を含む .footref 脚注の参照番号(常に<sup>となる) .footnum 脚注定義中の番号(常に<sup>となる)
エクスポートされたファイルは、基礎的な方法で定義されたコンパクトなスタイル119が含まれています。この設定は上書きされるかもしれませんし、
org-export-html-style
(Org-wideの設定に使われます)やorg-export-html-style-extra
(ファイルごとの設定のような詳細な設定に使われます。)を使って追加されるかもしれません。後者の変数をファイルごとに設定するには、次のように行ないます。
#+STYLE: <link rel="stylesheet" type="text/css" href="stylesheet.css" />
長いスタイルの定義には複数行で記述することもできます。外部ファイルを参照せずに<style>
</style>
セクションに直接記述してください。
サブツリーにスタイルを追加するには, ツリーにクラスを適用する:HTML_CONTAINER_CLASS:
プロパティを
使います。個々の見出しにCSSスタイルを適用するには、:CUSTOM_ID:
プロパティで指定されるIDを使うことができます。
Sebastian Roseは、org-modeが生成したHTMLファイルに関するウェブエクスペリエンスを拡張するためにデザインされたJavascriptプログラムを書きました。このプログラムを使うことで、異なる二つの方法で大きなファイルを見ることができます。一つめはInfoのようなモードで、それぞれの章は別々に表示され、nキーとpキーで操作できます。(他のキーでも操作できます。利用できるキーの概要を知るには、?を入力してください。)。二つめは、org-modeがEmacsで提供するような折りたたまれたスタイルです。 このスクリプトは、http://orgmode.org/org-info.jsで利用できます。ドキュメントについては、http://orgmode.org/worg/code/org-info-js/にあります。このスクリプトは私達のサイトでホスティングしていますが、何度も使う場合は、orgmode.orgにあるものを使わずにあなたのサーバにコピーしたものを使う方を選択するかもしれせん。
このスクリプトを使うには、org-jsinfo.elがロードされているか、確認する必要があります。デフォルトでは、ロードされるようになっていますが、M-x customize-variable <RET> org-modules <RET>と入力して、確かにロードされている確認してください。このプログラムを使えるようにするには、次のような行をOrgファイルに追加するだけです。
#+INFOJS_OPT: view:info toc:nil
ファイル中にこの行が見つかると、HTMLのヘッダーは自動的にこのスクリプトを起動させるのに必要なコードを自動的に追加します。以上のような行を使うと、次のようなオプションを設定できます。
path: スクリプトのパス。デフォルトでは、http://orgmode.org/org-info.js を使うようになっていますが、ローカルにコピーしたものを使いたい場合は ‘../scripts/org-info.js’のようなパスを使ってください。 view: ウェブサイトを最初に開いた時の表示。可能な値は次のとおり: info 一つのページに一つのセクションが表示されるInfoのようなインターフェイス overview 最初はトップレベルのみが表示される折りたたみインターフェイス content 全ての見出しが見える状態の折りたたみインターフェイス showall 全ての見出しと文章が見える状態の折りたたみインターフェイス sdepth: infoや折りたたみモードで独立して表示されるセクションの 最大の見出しレベル。デフォルトではorg-export-headline-levels
(=#+OPTIONS
の中のH
スイッチ)の値が使われる。 もし、org-export-headline-levels
の値より小さかった場合、 info/折りたたみ のセクションは小見出しまで含まれます。 toc: 目次表示の有無nil
としても、iを入力することで目次は表示されます。 tdepth: 目次の深さ。デフォルトでは、org-export-headline-levels
org-export-with-toc
の値が用いられます。 ftoc: CSSによって、目次の場所を指定するかどうか。 「yes」の場合は、セクションとして表示されなくなります。 ltoc: それぞれのセクションにショートコンテンツを設置するかどうか。 セクションの冒頭にショートコンテンツを設置する場合は値をabove
とします。 mouse: マウスを見出しの上に移動させた時にハイライトさせます。 ‘underline’ (default)か、‘#cccccc’のように背景色が指定できます。 buttons: ビューの変更をトグルさせるボタンを様々なところに設置するかどうか。nil
の場合は、(デフォルト)、ボタンが一つだけ表示されます。
org-infojs-options
を変更することで、これらのオプションの初期値を変更することができます。このスクリプトを常にページに適用させたい場合は、org-export-html-use-infojs
を変更してください。
org-modeには、Bastien Guerryによって書かれたLaTeXのエクスポート機能があります。追加的な処理と合わせて、120,このバックエンドはPDFの出力にも使われています。LaTeXの出力は、リンクと相互参照の実装にhyperrefを使っているので、出力されたPDFファイルは完全にリンクされているでしょう。セクションの階層に合わせて正しく出力されるためには、orgファイルは適切に構造化されていないといけないので注意してください。
org-export-as-latex
)EXPORT_FILE_NAME
プロパティを継承、または持っている場合、エクスポートされる際には、その名前が使われるでしょう。C-e L
org-export-as-latex-to-buffer
)
一時バッファに出力します。ファイルを作りません。
org-export-as-pdf
)
LaTeXに出力し、PDFにも変換します。d
org-export-as-pdf-and-open
)
LaTeXに出力し、PDFにも変換します。その際出力されたPDFファイルを開きます。
エクスポートされたものでは、 最初の3つのアウトラインの階層が一般的な文書の構造と見なされて、見出しとなります。
それ以外の階層は概要のリストとしてエクスポートされます。エクスポート機能では、org-latex-low-levels
を変更することで、この設定を無視、または変更することができます。
この違いを異なる階層で変えたい場合は、 前置引数で、その階層を指定します。 例えば、
C-2 C-c C-e l
この場合2番目のレベルまでを見出しとして取り扱い、それ以外は項目として取り扱います。
デフォルトでは、LaTeXの出力にはarticle
クラスが使われます。
クラスはorg-export-latex-default-class
の値を変更することで、全体的に変更することもできますし、ファイル中にorg-export-latex-default-class
のようなオプションを追加することで、局所的に変更することもできます。:LaTeX_CLASS:
プロパティを使えば、エクスポートするリージョンにそのツリー(サブツリー)のみが含まれていた場合にクラスを指定できます。クラスは、org-export-latex-classes
にリストアップされてます。
この変数は、各クラス123の見出しテンプレートを定義し、各クラスの構造の分割について定義します。クラス自体についても定義されます。#+LaTeX_CLASS_OPTIONS
、またはLaTeX_CLASS_OPTIONS
プロパティは\documentclass
マクロのオプションを指定します。見出しに#+LATEX_HEADER:
\usepackage{xyz}
を追加して同様のことをすることもできます。詳しい情報については、org-export-latex-classes
のドキュメント文字列を参照してください。
LaTeXの組み込みで記述された埋め込まれたLaTeXは、LaTeXに正しく挿入されます。図の相互参照を生成するために、‘\ref{LABEL}’のようなシンプルなマクロが含まれます。さらに、次のような行を追加することで、LaTeXエクスポートの際に表示だけしてほしい特別なコードを追加することができます。
#+LaTeX: エクスポートする際に文字のまま、出力されるLaTeX code
#+BEGIN_LaTeX マーカの間にある全ての行は文字がそのまま出力されます。 #+END_LaTeX
LaTeXで表を出力する際に、番号と表題を指定することができます
(see 画像とテーブル)、ATTR_LaTeX
行を使うことで、表に関するlongtable
環境を呼び出すこともできます。複数のページにまたがる表や、デフォルトの表の環境をtable
からtable*
にするため、またはデフォルトの内部tabular環境をtabularx
やtabulary
にしたい時にもATTR_LaTeX
行は使われます。つまり、文字の配置や
(tabularx
やtabulary
を使って)幅を次のようにして設定できます。:
#+CAPTION: A long table #+LABEL: tbl:long #+ATTR_LaTeX: longtable align=l|lp{3cm}r|l | ..... | ..... | | ..... | ..... |
tabulary
を使って、複数のセルにまたがる表を指定することもできます。
#+CAPTION: A wide table with tabulary #+LABEL: tbl:wide #+ATTR_LaTeX: table* tabulary width=\textwidth | ..... | ..... | | ..... | ..... |
‘[[file:img.jpg]]’ や ‘[[./img.jpg]]’ のように説明文にリンクされていない画像は、
LaTeX の処理によりPDFの中に挿入されます。 Org-modeは、画像を挿入するのに \includegraphics
マクロを使います。もし、画像とテーブルで説明されているように図の表題や番号を特定したいのならば、その図を figure
環境で囲むとfloat要素になります。 \includegraphics
マクロのオプション引数として使われている様々なオプションを特定するには #+ATTR_LaTeX:
を使います。
figure
環境のオプションの配置を変更するには、 ‘placement=[h!]’ のように属性に追加します。
画像のまわりに文字を回りこませたいのであれば、#+ATTR_LaTeX:
の行に ‘wrap’
を追加すると、画像がページの左半分にきます。微調整するには、wrapfigure
環境に引数として、 placement
フィールドを追加します。画像のサイズを変更する時は、互換性のある \includegraphics
と wrapfigure
を使わなければいけないので注意してください。
#+CAPTION: The black-body emission of the disk around HR 4049 #+LABEL: fig:SED-HR4049 #+ATTR_LaTeX: width=5cm,angle=90 [[./img/sed-hr4049.pdf]] #+ATTR_LaTeX: width=0.38\textwidth wrap placement={r}{0.4\textwidth} [[./img/hst.png]]
もし、このような番号を参照する必要があれば, LaTeX に ‘\ref{fig:SED-HR4049}’ と記述してください。
LaTeXの一種である beamer は、LaTeXとpdf処理により高品質なプレゼンテーション資料を提供します。Org-modeはOrg-modeのファイルやツリーを beamer のプレゼンテーション資料に変換するのに特別なサポートをします。
カレントバッファ ( #+LaTeX_CLASS: beamer
がセットされている) かサブツリー (
LaTeX_CLASS
属性がセットされている)のLaTeXクラスが beamer
ならば、特別なエクスポートモードがファイルやツリーをbeamerのプレゼンテーション資料にします。原則的にはあまり深くないネストのツリーなら何でもプレゼンテーション資料にします。デフォルトでは、トップレベルのエントリー
(または、選択したサブツリーの最初のレベル) がフレームに変換され、そのレベルの下のアウトライン構造が箇条書きされたリストになります。 変数
org-beamer-frame-level
は異なるレベルに設定でき、その時フレームより上の構造はプレゼンテーションの構造の区切りになります。
バッファでの便利なテンプレートに関する設定や属性は M-x org-insert-beamer-options-template によってバッファに挿入されます。その他については、カラムビューのフォーマットにインストールされます。カラムビューはbeamerで使う特別な属性を編集するのに便利だからです。
次のような属性を使ってプレゼンテーションの構造を変えることができます。:
BEAMER_env
org-beamer-environments-default
に定義されていて、さらに org-beamer-environments-extra
に追加して定義することができます。もし、この属性がセットされていれば、それを可視化するため、そのエントリーには
:B_environment:
タグがあるはずです。このタグは字句的な意味はなく、視覚的に補助するためにあります。
BEAMER_envargs
[t]
、 [<+->]
や <2-3>
のようなbeamerに特有な引数は、この環境で使われます。もし
BEAMER_col
属性がセットされていると、 columns
環境のオプション引数として、 C[t]
が追加されたことを意味します。 c[t]
や c<2->
は column
環境にオプションとして設定されたことを意味します。
BEAMER_col
:BMCOL:
属性が現れます。このタグも視覚的な補助のためにあります。もし、これが整数だった場合、 \textwidth
の割合とみなされます。
もしくは、 ‘3cm’ のような場合、特定の単位を使ったとみなされます。まず、フレームの中のそのような属性は列に囲まれた
columns
環境で始まります。 BEAMER_col
属性が0か1、または自動的にフレームの最後となるエントリーでは、その環境は閉じられます。
BEAMER_extra
もし、verbatim環境を使ったソースコードが含まれていると、フレームは自動的に fragile
を受けとります。
beamer 特有のコードは #+BEAMER:
を使うことで挿入され、
#+BEGIN_beamer...#+end_beamer
ブロックは,他のエクスポートのものと似ていますが、
#+LaTeX:
はプレゼンテーション資料にも含まれるという点で異なります。
BEAMER_env
属性があるノードの ‘note’ や ‘noteNH’
の値はbeamerのnotesとして処理されます。例えば、 \note{...}
のように囲まれます。
前者は、ノートのテキストの一部分として見出しが含まれ、後者は、ノードの見出しは無視されます。ノートの生成を簡単にするには、実は
BEAMER_env
属性を作るかわりに、 tag (または :B_note:
や
:B_noteNH:
) でマークするだけで十分です。
編集作業のサポートを得るには次のオプションを追加して、マイナーモードの org-beamer-mode
を有効にします。
#+STARTUP: beamer
org-beamer-select-environment
)org-beamer-mode
でこのキーバインドを使うことでbeamerの環境や BEAMER_col
属性を素早く選択することができます。
カラムビューはノードにおける環境及び重要なパラメーターをセットするうえで、優れたやり方です。 カラムのフォーマットがこの特別な目的のためにセットされている確認してください。 コマンド M-x org-insert-beamer-options-template はそのようなフォーマットを定義します。
次の例は、beamerへのエクスポートを意図した簡単なOrg-modeの文書の例です。
#+LaTeX_CLASS: beamer #+TITLE: プレゼンテーション資料の例 #+AUTHOR: Carsten Dominik #+LaTeX_CLASS_OPTIONS: [presentation] #+BEAMER_FRAME_LEVEL: 2 #+BEAMER_HEADER_EXTRA: \usetheme{Madrid}\usecolortheme{default} #+COLUMNS: %35ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Args) %4BEAMER_col(Col) %8BEAMER_extra(Ex) * これは最初の構造的な章です。 ** フレーム 1 \\ サブタイトル *** Eric Fraga へありがとう :BMCOL:B_block: :PROPERTIES: :BEAMER_env: block :BEAMER_envargs: C[t] :BEAMER_col: 0.5 :END: Org-modeでの最初のbeamerの設定 *** みんなへありがとう :BMCOL:B_block: :PROPERTIES: :BEAMER_col: 0.5 :BEAMER_env: block :BEAMER_envargs: <2-> :END: 議論への寄与してくれたみんなへ **** これは、beamerのnoteとして処理される。 :B_note: ** Frame 2 \\ 使わないカラム *** リクエスト :B_block: この部分を試してみてください! :PROPERTIES: :BEAMER_env: block :END:
さらに詳しく知りたい場合は、Worgの文書を見てください。
Org-modeは、Baoqiu Cuiによって作成されたDocBookへのエクスポート機能があります。Org-modeのファイルはDocBookのフォーマットで出力され、さらにDocBookのツールやスタイルシートを使ってPDF、HTMLやmanなど他のフォーマットに出力することができます。
現在、DocBookのエクスポート機能はDocBook V5.0をサポートしています。
org-export-as-docbook
)EXPORT_FILE_NAME
属性がある場合は、その名前がエクスポートに使われます。 V
org-export-as-docbook-pdf-and-open
)
DocBookファイルが出力され、PDF処理を経て出力されたPDFファイルが開きます。
DovBookファイルにエクスポートしてPDFに出力するには、XSLT処理系とXSL-FO処理系を環境にインストールしておく必要があるので注意してください。変数
org-export-docbook-xslt-proc-command
と
org-export-docbook-xsl-fo-proc-command
を確認してください。
変数 org-export-docbook-xslt-proc-command
でスタイルシートを表わす引数 %s
はユーザーによってセットされる変数 org-export-docbook-xslt-stylesheet
の値で置き換えられます。Org-modeファイルに #+XSLT:
を追加することで、グローバルな設定を封じることができます。
次のようなブロックを使えば、Org-modeのファイルでDocBookのコードを引用したり、文章をそのままDocBookのファイルにコピーすることができます。
#+DOCBOOK: エクスポートするDocBookコードの文字列
#+BEGIN_DOCBOOK これらのマーカの間の行はDocBookエクスポート機能により文字がそのまま出力されます。 #+END_DOCBOOK
例えば、DocBookの警告文を含めるには次のような文章を使います。この警告文により、Org-modeのファイルにDocBookコードをのせる時に、文章の文脈に注意を払うでしょう。DocBookコードを正しく引用しないと、DocBook XMLファイルを正確に出力できないかもしれせん。
#+BEGIN_DOCBOOK <warning> <para>Org-modeファイルの中でDocBook XMLコードを引用する際、何をしているか 知っておく必要があります。注意が足りないと、DocBookのエクスポート機能により 正しくないDocBook XMLが出力されるかもしれません。</para> </warning> #+END_DOCBOOK
DocBookのエクスポート機能は、DocBookの article
要素を使ってOrg-modeのファイルをarticlesとして出力します。再帰的なsections、例えば section
要素が出力されたarticlesの中で使われます。
Org-modeのファイルのトップレベルの見出しは、トップレベルのsectionsとして出力され、低いレベルの見出しはネストしたsectionsとして出力されます。Org-modeのファイルの全体構造は、完全に出力されます。見出しにネストされたレベルはどれだけあっても構いません。
再帰的なセクションを使えば、 出力されたDocBookコードを他の book
や set
のようなドキュメントタイプに移植したり、再利用したりするのが用意になります。
Org-modeの表はHTMLの表を出力します。HTMLの表はDocBook V4.3からサポートされています。
テーブルに表題がなかった場合、 informaltable
要素によってinformal
tableが出力されます。表題があれば、table
要素により、テーブルが出力されます。
‘[[file:img.jpg]]’ や ‘[[./img.jpg]]’ のように説明文にリンクされていない画像は、
mediaobject
タグが使われてDocBookに出力されます。 各 mediaobject
要素には、imagedata
要素を囲む
imageobject
要素が含まれます。もし、画像とテーブルで説明されているように図の表題を特定するならば、
caption
要素を mediaobject
の中に追加します。番号も特定する場合は、
mediaobject
要素の中に xml:id
属性が出力されます。figure
環境のオプションの配置を変更するには、 ‘placement=[h!]’ のように属性に追加します。
画像の属性には imagedata
要素がサポートされ、 align
や width
のような属性が二つの方法で特定されます。一つ目は変数
org-export-docbook-default-image-attributes
を設定する方法です。二つ目は
#+ATTR_DOCBOOK:
行を使う方法です。変数
org-export-docbook-default-image-attributes
で特定される属性は出力元のOrg-modeファイルに含まれる全ての画像に適用されます(ただし、 #+ATTR_DOCBOOK:
行で画像の属性が上書きされている場合は除きます。)。
#+ATTR_DOCBOOK:
行は、追加的な画像の属性の指定や個々の画像にデフォルトの画像の属性を上書きするのに使います。もし、
#+ATTR_DOCBOOK:
と 変数
org-export-docbook-default-image-attributes
に同じ属性が現れた場合、前者の値が優先的に使われます。次の例は画像の属性に関する設定例です。
#+CAPTION: Org-modeのロゴ #+LABEL: unicorn-svg #+ATTR_DOCBOOK: scalefit="1" width="100%" depth="100%" [[./img/org-mode-unicorn.svg]]
デフォルトでDocBookのエクスポート機能は、 jpeg, jpg, png, gif,
そして svg のような画像のタイプを認識します。変数
org-export-docbook-inline-image-extensions
を設定することで、DocBookがサポートしている画像のタイプを追加することができます。
\alpha
, \Gamma
, そして \Zeta
のような TeX
ライクなシンタックスで記述された特殊文字列は、DocBookのエクスポート機能でサポートされています。 そのような文字列は、変数
org-entities
に格納されているリストにもとづき、α
, Γ
, そして
Ζ
のように XML
エンティティとして記述されます。対応するエンティティが含まれるDocBookファイルが出力されると、特殊文字列が認識されます。
変数 org-export-docbook-doctype
を設定することで必要なエンティティを含めることができます。例えば、 変数
org-export-docbook-doctype
に次のような値を設定することで、XHTMLエンティティに含まれる全ての特殊文字列が認識されます。
"<!DOCTYPE article [ <!ENTITY % xhtml1-symbol PUBLIC \"-//W3C//ENTITIES Symbol for HTML//EN//XML\" \"http://www.w3.org/2003/entities/2007/xhtml1-symbol.ent\" > %xhtml1-symbol; ]> "
TaskJugglerはプロジェクト管理ツールです。 プロジェクトのアウトラインと設定して制限をもとにプロジェクトのタイムラインとリソースの割り当てを計算して最適化されたスケジュールを提供します。
TaskJugglerのエクスポート機能は、例えばHTMLやLaTeXのような他のエクスポート機能とは少し違い、ドキュメントのノード全てを出力しませんし、ドキュメントのノードの序列に従って出力することもしません。
代わりに、TaskJugglerのエクスポート機能はタスクが定義されているツリーか、このプロジェクトのリソースとして任意に定義されたツリーを探します。そして、それらツリーと全てのノードの中で定義された属性をもとにTaskJugglerファイルを作成します。
org-export-as-taskjuggler
)org-export-as-taskjuggler-and-open
)いつものようにOrg-modeでタスクを作ります。各タスクにプロパティを使ってエフォートを指定します (カラムビューを使うと簡単です。)。
最終的には、Peter
Jonesが作成したhttp://www.contextualdevelopment.com/static/artifacts/articles/2008/project-planning/project-planning.orgの例と似たものになっているはずです。次に、タスクのトップノードを:taskjuggler_project:
というタグでマークします
(または変数org-export-taskjuggler-project-tag
をカスタマイズします)。これでプロジェクトの計画をC-c
C-e Jで出力する準備ができました。出力されれば、TaskJugglerUIでガントチャートが開くはずです。
次に特定のタスクにリソースを割り当てることができます。階層的にリソースをまとめることもできます。トップノードのタグは:taskjuggler_resource:
になります
(またはorg-export-taskjuggler-resource-tag
をカスタマイズします。)。識別子(‘resource_id’)をリソースに割り当てることもできます(標準的なOrg-modeのプロパティについては,
see プロパティの表記法)。また、エクスポート機能は自動で識別子を生成することができます。(識別子はユニークであればよいので、エクスポート機能は見出しの最初の単語を抽出します。詳しくはorg-taskjuggler-get-unique-id
のドキュメントを読んでください)。識別子を使ってリソースをタスクに再配置することができます。‘allocate’属性がタスクで再び実行されます。カラムビューか、タスク上でC-c
C-x p allocate <RET> <resource_id> <RET>と入力することで実行されます。
再配置が実行されると、再びTaskJugglerに出力してリソースの再配置グラフを確認することができます。そのグラフでは、各人がいつ何のタスクをこなしているかがわかります。
エクスポート機能はTODOの状態に関する情報も考慮されています。例えば、タスクが「DONE」とマークされると、それに対応して、TaskJugglerの属性も(‘complete 100’)となります。タスクリソースやタスクノード上のうTaskJugglerで使われる‘limits’, ‘vacation’, ‘shift’, ‘booking’, ‘efficiency’, ‘journalentry’, ‘rate’のようなリソースの属性や‘account’, ‘start’, ‘note’, ‘duration’, ‘end’, ‘journalentry’, ‘milestone’, ‘reference’, ‘responsible’, ‘scheduling’などのタスクの属性も、出力されます。
エクスポート機能はタスクで‘ORDERED’ 属性 (see TODO間の関係)、‘BLOCKER’ 属性 (see org-depend.el)、そして選択的に‘depends’属性で表される依存状態を操作することができます。‘BLOCKER’ 属性も‘depends’属性も‘previous-sibling’のように扱えますし、プロジェクトの他のタスクで定義された識別子への参照 (‘task_id’)として扱うこともできます。‘BLOCKER’属性と‘depends’属性は、カンマやスペースで分けることで複数の依存状態として定義できます。依存状態の属性は、単純に追加することで任意の属性を追加することができます。これまでの例は次のように記述できます。
* Preparation :PROPERTIES: :task_id: 準備 :ORDERED: t :END: * 練習の材料 :PROPERTIES: :task_id: training_material :ORDERED: t :END: ** マークアップのガイドライン :PROPERTIES: :Effort: 2.0 :END: ** ワークフローのガイドライン :PROPERTIES: :Effort: 2.0 :END: * プレゼンテーション :PROPERTIES: :Effort: 2.0 :BLOCKER: training_material { gapduration 1d } preparation :END:
TaskJugglerは多くのレポートを作成できます。(例えば gantt chart, resource
allocationなど)。TaskJugglerファイルにあるプロジェクトでどのレポートを作成するか定義することができます。エクスポート機能は自動的にデフォルトのレポートをファイルに挿入します。それらは、org-export-taskjuggler-default-reports
で定義されています。カスタマイズ機能を使って、他の様々なオプションを変更することができます。ほかのオプションについて知りたい時はM-x
customize-group <RET> org-export-taskjuggler <RET>と入力した確認してください。
さらに詳しい情報や例を見たい時は、http://orgmode.org/worg/org-tutorials/org-taskjuggler.htmlでOrg-taskjugglerチュートリアルを見てください。
Freemindのエクスポート機能はLennart Borgmanによって作成されました。
org-export-as-freemind
)Org-modeにはXOXOスタイルで出力するエクスポート機能があります。現在、このエクスポート機能は一般的なアウトライン構造を扱うだけで、Org-modeの特徴を解釈しません。
org-export-as-xoxo
)
Org-modeユーザーには、プロジェクトの進行を記録している人もいますが、中にはまだ誕生日や予約のために標準的なカレンダーアプリケーションを好む人もいます。このような場合、カレンダーアプリケーションでOrg-modeのファイルにあるデッドラインとタイムスタンプのある項目が表示されると便利です。Org-modeはカレンダーの情報を標準的なiCalendarに出力することができます。もしTODOアイテムも出力したいならば、変数org-icalendar-include-todo
を調整しま。タイムスタンプはVEVENTとして出力され、TODOアイテムはVTODOとして出力されます。TODOアイテムでないデッドラインもイベントが生成されます。デッドラインとTODOアイテムの予定日はTODOアイテム126の開始日と期日として扱われます。カテゴリーには、見出しで定義されたタグやファイルやツリーのカテゴリー127が使われます。アラームを設定する方法については、変数org-icalendar-alarm-time
を参照してください。
標準のiCalendar形式はそれぞれのエントリーにグローバルでユニークな識別子(UID)が必要となります。Org-modeではエクスポートする際にこの識別子を作成します。変数org-icalendar-store-UID
が設定されていると、UIDはエントリーの
:ID:
属性に保存され、次にこのエントリーを使うときに再度利用されます。一つの項目が複数のiCalendar形式の項目(タイムスタンプ、デッドライン、スケジューリングされたアイテムやTODOアイテム)となるので,
エントリーの中のトリガーによって、Org-modeはUIDにプレフィックスをつけます。このようにして、UIDはユニークな値となりますが、同期処理では全て異なるエントリーから作られたエントリーとみなされるでしょう。
org-export-icalendar-this-file
)org-export-icalendar-all-agenda-files
)org-agenda-files
で指定された全てのファイルで実行されます。それぞれのファイルでiCalendar形式のファイルが作成されます。
org-export-icalendar-combine-agenda-files
)org-agenda-files
で指定されたファイルから単一のiCalendar形式のファイルを生成し、org-combined-agenda-icalendar-file
で指定されたファイルに出力します。
エクスポート機能はエントリーがSUMMARY、DESCRIPTIONそしてLOCATION属性128を持っていた場合、それを継承します。なかった場合はSUMMARY属性は見出しから抽出され、DESCRIPTION属性はその内容
(org-icalendar-include-body
で制限されます。)から抽出されます。
このカレンダーを読んだり更新したりするのにベストな方法は、使うカレンダーアプリケーション次第です。FAQではこの問題についてカバーしています。
Org-modeは連結されたOrg-modeのファイルから成るprojectsの自動的なHTMLへの変換設定をあなたに許可します.あなたはまた,エクスポートしたHTMLページと画像やソースコードのような関係する添付ファイルの自動的なアップロードをOrg-modeに設定できます.
あなたはまた,Org-modeからPDFへ変換することもでき,さらに,サーバ上で両方のファイルを利用できるようにHTMLとPDFへの変換を組み合わせることも可能です.
公開はDavid O'TooleによってOrg-modeに寄与されました.
公開はファイルの指定,公開先,プロジェクトのその他多くのプロパティの重要な設定を必要とします.
org-publishing-alist
変数
公開はorg-publish-project-alist
というある変数の値により設定されます.リストの各要素が1つのプロジェクトの設定で,2種類の設定方法について以下に示します:
("project-name" :property value :property value ...) i.e. a well-formed property list with alternating keys and values or ("project-name" :components ("project-name" "project-name" ...))
どちらの場合もプロパティと値の指定によって設定されます.プロジェクトは公開されるファイルのセットと,それらが公開される時に使用する設定を定義します.上記の2番目の形式を取る場合,:components
プロパティの個々のメンバは異なる公開設定を持つファイルをまとめたサブプロジェクトとして扱われます.あなたが“メタプロジェクト”を公開する時,全てのコンポーネントは特定の順序で公開されます.
多くの<プロパティは任意に選択でき,しかし多くは常にセットされているべきです.特に,Org-modeはソースファイルをどこで探すか,またファイルの公開先を知る必要があります.
:base-directory
| 公開するソースファイルを含むディレクトリ
|
:publishing-directory
| アウトプットファイルのあるディレクトリは公開されます.あなたはEmacstrampパッケージの構文のファイル名を使ってウェブサーバに直接公開することができます.もしくは,ローカルディレクトリに公開したり,あなたのウェブサイト(see ファイルのアップロード)にアップロードするための拡張ツールを使うことができます.
|
:preparation-function
| 公開プロセスの開始前に呼ばれる関数または関数のリストです(例えば,公開のためのファイルの更新に使うmake を実行します).project-plist 変数であるプロジェクトのプロパティリストはこの呼び出しにスコープされます.
|
:completion-function
| 公開プロセスが完了した後に呼ばれる関数または関数のリストです(例えば,出力したファイルの権限を変更します).project-plist 変数であるプロジェクトのプロパティリストはこの呼び出しにスコープされます.
|
デフォルトでは,ベースディレクトリの中の拡張子が.orgである全てのファイルはプロジェクトの一部であるとみなされます.これはプロパティの設定により変更することができます:
:base-extension
| ソースファイルの拡張子(.を除きます!)です.これは実際は正規表現です.もしあなたが:base-directory の中の全てのファイルを取得したいのであれば,any シンボルをセットします.
|
:exclude
| そのファイルの拡張子が選択されていたとしても,公開したくないファイル名にマッチする正規表現.
|
:include
| :base-extension と:exclude にかかわらずインクルードするファイルのリスト.
|
:recursive
| nilでなければ,ベースディレクトリから再帰的に公開するファイルをチェックします.
|
公開は,ファイルを宛先ディレクトリにコピーし,場合によっては変換することです.デフォルトの変換はOrg-modeファイルからHTMLファイルへのエクスポートで,これはHTMLエクスポーター(see HTMLのエクスポート)を呼び出すorg-publish-org-to-html
によって行われます.しかしあなたはまた,org-publish-org-to-pdf
を用いたPDFファイルのようなコンテンツも公開することができます.もしあなたがアーカイブされた,コメントされた,除外タグがついたツリーを消去したOrg-modeファイル自身を公開したいのであれば,org-publish-org-to-org
を使い,:plain-source
パラメーターと/または:htmlized-source
をセットします.これは公開ディレクトリ129にfile.orgとfile.org.htmlを作ります.画像のようなその他のファイル公開ディレクトリにコピーされる必要があります;
このために,あなたはorg-publish-attachment
を使うことができます.Org-modeでないファイルのために,あなたは常に公開用の関数を指定する必要があります:
:publishing-function
| ファイルの公開を実行する関数です.これは,順番に呼び出される関数のリストにすることもできます.
|
:plain-source
| nilでなければ,プレーンソースを公開します.
|
:htmlized-source
| nilでなければ,HTMLに変換されたソースを公開します.
|
関数には3つの引数を渡す必要があります:
最低でも:publishing-directory
プロパティを含むプロパティリスト,公開されるファイル名,出力ファイルの公開ディレクトリへのパスです.それは指定されたファイルを取り,(もしあれば)必要な変換を行い,出力をコピー先ディレクトリに置きます.
プロパティリストはHTMLとLaTeXエクスポート機能の多くのエクスポートオプションをセットするために使うことができます.多くの場合,これらのプロパティはOrg-mode中のユーザ変数と対応します.下のテーブルはそれらが所属する変数と同様なプロパティのリストです.各変数の詳細については,ドキュメントを参照してください.
:link-up | org-export-html-link-up
|
:link-home | org-export-html-link-home
|
:language | org-export-default-language
|
:customtime | org-display-custom-times
|
:headline-levels | org-export-headline-levels
|
:section-numbers | org-export-with-section-numbers
|
:section-number-format | org-export-section-number-format
|
:table-of-contents | org-export-with-toc
|
:preserve-breaks | org-export-preserve-breaks
|
:archived-trees | org-export-with-archived-trees
|
:emphasize | org-export-with-emphasize
|
:sub-superscript | org-export-with-sub-superscripts
|
:special-strings | org-export-with-special-strings
|
:footnotes | org-export-with-footnotes
|
:drawers | org-export-with-drawers
|
:tags | org-export-with-tags
|
:todo-keywords | org-export-with-todo-keywords
|
:priority | org-export-with-priority
|
:TeX-macros | org-export-with-TeX-macros
|
:LaTeX-fragments | org-export-with-LaTeX-fragments
|
:latex-listings | org-export-latex-listings
|
:skip-before-1st-heading | org-export-skip-text-before-1st-heading
|
:fixed-width | org-export-with-fixed-width
|
:timestamps | org-export-with-timestamps
|
:author | user-full-name
|
:email | user-mail-address : addr;addr;..
|
:author-info | org-export-author-info
|
:email-info | org-export-email-info
|
:creator-info | org-export-creator-info
|
:tables | org-export-with-tables
|
:table-auto-headline | org-export-highlight-first-table-line
|
:style-include-default | org-export-html-style-include-default
|
:style-include-scripts | org-export-html-style-include-scripts
|
:style | org-export-html-style
|
:style-extra | org-export-html-style-extra
|
:convert-org-links | org-export-html-link-org-files-as-html
|
:inline-images | org-export-html-inline-images
|
:html-extension | org-export-html-extension
|
:html-preamble | org-export-html-preamble
|
:html-postamble | org-export-html-postamble
|
:xml-declaration | org-export-html-xml-declaration
|
:html-table-tag | org-export-html-table-tag
|
:expand-quoted-html | org-export-html-expand
|
:timestamp | org-export-html-with-timestamp
|
:publishing-directory | org-export-publishing-directory
|
:select-tags | org-export-select-tags
|
:exclude-tags | org-export-exclude-tags
|
:latex-image-options | org-export-latex-image-default-option
|
org-export-with-*
変数の大部分はLaTeXエクスポートでnil
とt
のそれぞれで:TeX-macros
と:LaTeX-fragments
オプションを除きHTMLとLaTeXエクスポート機能の両方で同じ効果を持ちます.このオプションのリストをチェックするにはorg-export-plist-vars
を見てください.
プロパティがorg-publish-project-alist
中の値で与えられた時,その設定は公開時に対応するユーザー変数を上書きします.オプションをファイル(see エクスポートオプション)内でセットしても,全て上書きされます.
あるOrg-modeファイルから別のファイルへのリンクを作成する方法として,あなたは‘[[file:foo.org][The
foo]]’,もしくはより単純な‘file:foo.org.’(see ハイパーリンク)のような形式を使うことができます.公開するとき,このリンクはfoo.htmlへのリンクとなります.この方法では,あなたはあなたの\"Org-modeウェブ\"プロジェクトのページとHTMLへ公開するときにリンクを連結することができます.もしあなたがOrg-modeのソースファイルを公開したりそこへのリンクを作成したいのであれば,file:
リンクは対応するhtmlファイルにリンクが変換されるため,file:
リンクの代わりにhttp:
リンクを使います.
あなたはまた,画像のような関連するファイルへのリンクを作成することができます.あなたが関連するファイル名に慎重になっているとき,そしてあなたが関連するファイルをアップロードするOrg-modeの設定をするとき,これらのリンクも働きます.使い方の例は,複雑な例を参照してください.
時々,公開されるOrg-modeファイルはあなたの製品環境内でのみ有効で,公開する場所では有効でないなリンクを含むことができます.この場合,次のプロパティを使います.
:link-validation-function
| 有効にする関数
|
このプロパティはリンクの有効性をチェックする関数を定義します.この関数はファイル名と製品環境内で解釈できるファイル名に関連するディレクトリ2つの引数を持ちます.もしこの関数がnil
を返すなら,HTMLジェネレータはHTMLファイルにリンクを除き説明のみ挿入します.この関数へのオプションとして,org-publish-project-alist
中のプロジェクトの一部であるファイルが与えられているなチェックするorg-publish-validate-link
があります.
以下のプロパティはプロジェクトのファイルのマップの公開を制御するために使うことができます.
:auto-sitemap
| nilでないとき,org-publish-current-project もしくはorg-publish-all の実行中にサイトマップを公開します.
|
:sitemap-filename
| 出力するサイトマップのファイル名です.デフォルトではsitemap.org(sitemap.htmlになります)です.
|
:sitemap-title
| サイトマップページのタイトルです.デフォルトはファイル名です.
|
:sitemap-function
| サイトマップの生成に使うプラグイン関数です.デフォルトではorg-publish-org-sitemap で,プロジェクト中の全てのファイルへのリンクのプレーンリストを生成します.
|
:sitemap-sort-folders
| フォルダがサイトマップに表示される位置です.先頭か最後にそれぞれフォルダを表示するため,これにfirst (デフォルト)かlast をセットしてください.
|
:sitemap-sort-files
| サイトマップ中でのファイルのソート方法です.alphabetically (デフォルト),chronologically またはanti-chronologically をセットします.chronologically はファイルを日付の古い順番にソートし,anti-chronologically は新しい順番にソートします.alphabetically はファイルをアルファベット順にソートします.ファイルの日付はorg-publish-find-dat により検索します.
|
:sitemap-ignore-case
| ソート時に大文字と小文字を区別するかどうかです.デフォルトではnil です.
|
:sitemap-file-entry-format
| このオプションでサイトマップのエントリがサイトマップでフォーマットされているか知ることができます.これはエスケープシークエンスを含むフォーマット文字列です:
%t はファイルのタイトル,%a はファイルの著者,%d はファイルの日付を表します.日付はorg-publish-find-date 関数により検索され,org-publish-sitemap-date-format によりフォーマットされます.デフォルトは%t です.
|
:sitemap-date-format
| エントリの日付をどのようにフォーマットするかを決めるformat-time-string 関数用のフォーマット文字列です.このプロパティはデフォルトでは%Y-%m-%d であるrog-publish-sitemap-date-format を迂回します.
|
Org-modeは公開するプロジェクトのファイルを跨ぐインデックスを生成することができます.
:makeindex
| nilでないとき,theindex.orgファイルにインデックスを作成し,theindex.htmlに公開します.
|
:makeindex
を設定したプロジェクトの最初の公開のとき,ファイルは作成されます.ファイルは#+include:
\"theindex.inc\"
ステートメントのみを含みます.あなたはタイトルやスタイル情報等をステートメントの周囲に追加することができます.
Trampに深く頼っているOrg-modeの組込みの公開機能を使うことは望ましくなく,rsyncやunisonのようなサードパーティの同期ツールを人々は活用しています. Trampは非常に便利で協力ですが,複数のファイルを送る場合効率的でない場合があり,ヘビーに使う環境下での問題の原因として知られています.
専用の同期ユーティリティはいくつかのアドバンテージを提供します.タイムスタンプの比較に加えて,コンテンツや権限,属性のチェックも行います.そういうわけで,あなたのWEBページをローカルディレクトリ(場合によるとOrg-modeファイルの場所で)に公開し,そしてunisonやrsyncをリモートホストとの同期に使うために選ぶことができます.
Unisonはファイルを信頼できるリモートの公開先に転送する設定を行うことができるので,プロジェクトの公開についての定義を非常にシンプルにすることができます.org-publish
を用いるあなたのOrg-modeファイルの処理と同期ツールの設定により,正しい場所で全てのファイルをシンプルに保ちます.このシナリオでは,jpgやcss,gifのようなファイルの添付については,サードパーティの同期ツールがそれらを同期するため,設定する必要がありません.
ローカルディレクトリの公開はリモートへの公開に比べると高速で,
全てのプロジェクトをより簡単に再公開できます.もしあなたがorg-publish-use-timestamp-flag
をnil
に設定しているのであれば,変更が加えられた#+INCLUDE
でインクルードしたたソースファイルのような外部ファイルの再公開で恩恵を受けます.Org-modeにおけるタイムスタンプのメカニズムはファイルに変更が加えられたかどうか検出できるほどスマートではありません.
私達は2つの設定の例を以下に示します.1つ目の設定はOrg-modeファイルのみのシンプルなプロジェクトの公開です.2つ目の設定は複数のコンポーネントを持つプロジェクトで,少し複雑な例です.
この例はOrg-modeファイルのセットをローカルマシンのpublic_htmlにディレクトリ公開します.
(setq org-publish-project-alist '(("org" :base-directory "~/org/" :publishing-directory "~/public_html" :section-numbers nil :table-of-contents nil :style "<link rel=\"stylesheet\" href=\"../other/mystyle.css\" type=\"text/css\"/>")))
この少し複雑な例はHTMLに変換されたorg-modeファイル,画像ファイル,Emacs Lispのソースコード,スタイルシートなどを含む全てのウェブサイトを公開します.公開ディレクトリはリモートと除外されたプライベートなファイルです.
リンクが保持されていることを保証するには,ウェブサーバ上のディレクトリ構造の再現,ファイルの相対パスの使用を慎重にするべきです.例えば,もしあなたのOrg-modeファイルが~/orgに,公開する画像が~/imageにあるとすると,あなたは画像のリンクを以下のようにします.
file:../images/myimage.png
ウェブサーバ上では,画像への相対パスは同じにするべきです.あなたは\"images\"フォルダをウェブサーバ上の正しい一に置き,画像をそこに公開することでこれを達成することができます.
(setq org-publish-project-alist '(("orgfiles" :base-directory "~/org/" :base-extension "org" :publishing-directory "/ssh:user@host:~/html/notebook/" :publishing-function org-publish-org-to-html :exclude "PrivatePage.org" ;; regexp :headline-levels 3 :section-numbers nil :table-of-contents nil :style "<link rel=\"stylesheet\" href=\"../other/mystyle.css\" type=\"text/css\"/>" :html-preamble t) ("images" :base-directory "~/images/" :base-extension "jpg\\|gif\\|png" :publishing-directory "/ssh:user@host:~/html/images/" :publishing-function org-publish-attachment) ("other" :base-directory "~/other/" :base-extension "css\\|el" :publishing-directory "/ssh:user@host:~/html/other/" :publishing-function org-publish-attachment) ("website" :components ("orgfiles" "images" "other"))))
一度適切に設定すると,Org-modeは以下のコマンドを使うことで公開することができます.
org-publish
)org-publish-current-project
)org-publish-current-file
)org-publish-all
)
全てのプロジェクトを公開します.
Org-modeはファイルが変更された時を記録するためにタイムスタンプを使います.上記の関数は通常変更されたファイルのみを公開します.あなたはこれを上書きし,上記コマンドに前置引数を付けて実行するかorg-publish-use-timestamps-flag
変数をカスタマイズすることで全てのファイルを強制的に公開できます.もし,ファイルが#+SETUPFILE:
や#+INCLUDE:
を用いて他のファイルをインクルードしているなら特別必要です.
‘src’ブロックを使う事でOrg-modeの文書にソースコードを含めることができます。例えば
#+BEGIN_SRC emacs-lisp (defun org-xor (a b) "Exclusive or." (if a (not b) b)) #+END_SRC
Org-modeでは生のソースコードと連携する幾つかの機能を用意してます。その機能には、コードブロックをそのメジャーモードで編集する機能、コードブロックを評価する機能、コードブロックをソースコードへと変換する機能(文芸的プログラミングではtanglingと知られている機能)、そしてコードブロックとその結果を幾つかのフォーマットに沿ってエクスポートする機能が含まれます。この機能はもともとOrg-bablelと名付けられ、Eric SchultとDan Davidsonによって開発されました。
以下のセクションでは、Org-modeでコードブロックを取り扱う機能について説明します。
#+srcname: <name> #+begin_src <language> <switches> <header arguments> <body> #+end_src
スイッチとヘッダー引数は省略可能です。次のように、コードを文章にインラインで埋め込むこともできます。
src_<language>{<body>}
もしくは
src_<language>[<header arguments>]{<body>}
<name>
<language>
<switches>
<header arguments>
<body>
現在のコードブロックを編集するにはC-c 'を使ってください。コードブロックの本文を含んだ編集バッファが、その言語のメジャーモードで新たに開かれます。このバッファを保存すると、Org-modeのバッファへ新しい内容を上書きします。終了させるには再度C-c 'を使って下さい。
編集バッファにてorg-src-mode
のマイナーモードが起動します。編集バッファの振る舞いを設定するために、以下の変数が使えます。さらなる設定オプションについては、カスタマイズのグループorg-edit-structure
も見て下さい。
org-src-lang-modes
<lang>-mode
と名付けられたメジャーモードがEmacsに存在する場合、そのメジャーモードで編集バッファを開きます。ここで<lang>
とは、コードブロックのヘッダー行で指名された言語のことです。存在するメジャーモードに任意の言語名を割り当てるために、この変数を使えます。
org-src-window-setup
org-src-preserve-indentation
org-src-ask-before-returning-to-edit-buffer
Org-modeバッファ内にもかかわらず、記述した言語をメジャーモードの配色で表示したい場合には、変数org-src-fontify-natively
を設定してください。
コードブロックの内容、コードブロックを評価した結果、いずれでもないもの、もしくは内容と結果両方をエクスポートできます。ほとんどの言語では、デフォルトの設定ではコードブロックの内容をエクスポートします。しかし、ある言語(例えば
ditaa
)では、デフォルトの設定でコードブロックを評価した結果をエクスポートします。コードブロックの本文をエクスポートするには、リテラルの例を参照してください。
ヘッダー引数:exports
を設定することで、エクスポート時の振る舞いを指定できます:
:exports code
:exports results
:exports both
:exports none
エクスポートの間、コードブロックの評価を抑止することも可能です。変数org-export-babel-evaluate
をnil
と設定することで、エクスポートのプロセスの一部としてのコードブロックの評価を抑止できます。例えばwikiのマークアップ言語としてOrg-modeを使う場合など、信頼できない可能性があるOrg-modeが自動的にエクスポートされる場合には、この設定が役立ちます。
ソースブロックからコードを抽出して純粋なソースコードファイルを作成することを、“tangling”といいます。この用語は文芸的プログラミングのコミュニティで使われている専門用語です。コードブロックを“tangling”する間、変数と“noweb”スタイルの参照点(Nowebでの参照の構文を参照)との両方を展開できるorg-babel-expand-src-block
を使ってコードブロックの本文を展開します。
:tangle no
:tangle yes
:tangle filename
org-babel-tangle
org-babel-tangle-file
org-babel-post-tangle-hook
org-babel-tangle
によってtangleされたコードファイルの中から、このhookが実行されます。tangleされたコードファイルの後処理、編集もしくは評価を、実用例として含められます。
コードブロックを評価し130、その結果をOrg-modeバッファに表示することが可能です。デフォルトでは、emacs-lisp
のコードブロックだけを評価しますが、多くの言語での評価のサポートがあります。サポートされている言語のリストは、言語で見ることができます。コードブロックを定義する構文についてコードブロックの構造を参照してください。
コードブロックを評価する方法は多くあります。一番簡単な方法は、コードブロック131にてC-c C-cもしくはC-c C-v
eをと入力することです。これが関数org-babel-execute-src-block
をコール、コードブロックを評価し、その結果をOrg-modeバッファに挿入します。
Org-modeのバッファ内、もしくはOrg-modeのテーブル内のどこからでも、名前付きのコードブロックを評価することも可能です。現在のOrg-modeバッファや“Library
of Babel”(Babelライブラリにあるコードブロックを離れた場所から実行するには、#+call
行
(もしくは同義語として#+function
行や#+lob
行)が使えます。これらの行は、以下の構文を使います。
#+call: <name>(<arguments>) <header arguments> #+function: <name>(<arguments>) <header arguments> #+lob: <name>(<arguments>) <header arguments>
<name>
<arguments>
:var
と関係しています。例えば、double
と名付けられたもともとのコードブロックではヘッダー引数が:var
n=2
と書かれている場合、そのコードブロックへ数値の4を渡すには、call行を#+call: double(n=4)
と記述します。
<header arguments>
上の<header
arguments>
という部分に記述された全てのヘッダー引数は、#+call:
行の評価に適用されます。しかし、時には、コードブロックへ渡すヘッダー引数を指定することが好ましい場合もあります。
これには、以下の選択可能な拡張された構文を使えます。
#+call: <name>[<block header arguments>](<arguments>) <header arguments>
角括弧([])で囲まれた<block header
arguments>
部分に置かれたヘッダー引数がどのようなものであっても、名前付きコードブロックの評価に適用されます。#+call:
行へとヘッダー引数を渡す例については、関数実行時のヘッダー引数を参照してください。
“Library of Babel”は、どのOrg-modeのファイルからも呼び出せるコードブロックのライブラリです。 そのライブラリは、Org-modeの‘contrib’ディレクトリのOrg-modeファイルに格納されています。Org-modeのユーザーは、一般的に有用だと考えられる関数をそのライブラリ内に置くことができます。
“Library of Babel”で定義されたコードブロックは、あたかも現在のOrg-modeバッファで処理されるかのように、リモートで呼び出せます(リモートでコードブロックを評価する構文についての情報は、コードブロックの評価を参照してください)。
どんなOrg-modeファイルに記述されたコードブロックでも、org-babel-lob-ingest
を使って“Library of
Babel”の関数へロードできます。キーバインドはC-c C-v iです。
言語 | 識別子 | 言語 | 識別子
|
Asymptote | asymptote | Emacs Calc | calc
|
C | C | C++ | C++
|
Clojure | clojure | CSS | css
|
ditaa | ditaa | Graphviz | dot
|
Emacs Lisp | emacs-lisp | gnuplot | gnuplot
|
Haskell | haskell | Javascript | js
|
LaTeX | latex | Ledger | ledger
|
Lisp | lisp | MATLAB | matlab
|
Mscgen | mscgen | Objective Caml | ocaml
|
Octave | octave | Org-mode | org
|
Oz | oz | Perl | perl
|
Plantuml | plantuml | Python | python
|
R | R | Ruby | ruby
|
Sass | sass | Scheme | scheme
|
GNU Screen | screen | shell | sh
|
SQL | sql | SQLite | sqlite
|
言語特有の文書が存在する場合があります。文書が存在する場合、それはhttp://orgmode.org/worg/org-contrib/babel/languagesにて見つけられます。
どの言語を評価するかの管理には、関数org-babel-load-languages
を使います(デフォルトではemacs-lisp
のみを評価可能です)。
この変数を設定するには、カスタマイズのインターフェースを使うか、以下のコードをemacsの設定ファイルに追加します。
次のコードでは、emacs-lisp
を評価させないように設定し、R
のコードブロックを評価させるように設定しています。
(org-babel-do-load-languages 'org-babel-load-languages '((emacs-lisp . nil) (R . t)))
上記方法に加えて、require
関数を使って関連するelispファイルをロードすることでも、言語のサポートを有効にできます.
以下は、clojure
コードブロックの評価を有効にしています。
(require 'ob-clojure)
ヘッダー引数を通してコードブロックの機能を設定できます。このセクションではヘッダー引数の使い方を概説した後に、各ヘッダー引数の詳細について説明します。
ヘッダー引数の値は6通りの方法で設定できます。以下の説明で、後に説明されるものほど、個別の設定として優先されます。
変数org-babel-default-header-args
をカスタマイズすることで、システム全体にわたるヘッダー引数の値を指定できます。
:session => "none" :results => "replace" :exports => "code" :cache => "no" :noweb => "no"
例えば、次の例ではヘッダー引数:noweb
の初期値をyes
と設定できます。この設定は、ソースコードブロックを評価する時にデフォルトの設定として:noweb
の参照記号を展開します。
(setq org-babel-default-header-args (cons '(:noweb . "yes") (assq-delete-all :noweb org-babel-default-header-args)))
それぞれの言語用にデフォルトのヘッダー引数を定義できます。オンラインhttp://orgmode.org/worg/org-contrib/babelで閲覧可能な言語特有の文書を見て下さい。
Org-modeファイルにある特別な行を使って、バッファ全体にわたるヘッダー引数を設定できます。その行では、キーワード#BABEL:
に続いて、普通のヘッダー引数の構文を使って指定された一連のヘッダー引数があります。
次の例は、session
を*R*
と設定し、バッファ内にあるコードブロック毎のresults
をsilent
と指定しています。この設定により、全ての(コードブロックが)同一のセッションで実行されること、そして、結果はそのバッファに挿入されないことを確かにしています。
#+BABEL: :session *R* :results silent
ヘッダー引数はOrg-modeのプロパティから読み出すこともできます(プロパティの表記法を見て下さい)。プロパティはバッファ全体もしくは見出しごとの単位で設定できます。例えば、バッファ内の全コードブロックのヘッダー引数を設定するには、以下のようにします。
#+property: tangle yes
デフォルトのヘッダー引数を設定するためにプロパティを使う場合、プロパティは継承(関係)に沿って参照されます。したがって、以下の見出しに属するサブツリー内の全てのコードブロックでは、ヘッダー引数:cache
の値はデフォルトでyes
となります:
* アウトラインの見出し :PROPERTIES: :cache: yes :END:
このように設定されたプロパティは、org-babel-default-header-args
に設定されたプロパティを上書きします。Org-modeドキュメント内のプロパティを設定する関数org-set-property
を使うのが便利です。キーバインドはC-c
C-x pです。
コードブロックのレベルでヘッダー引数に値を割り当てる方法が最も一般的です。#+begin_src
行の一部として、ヘッダー引数とその値とを並べることによって設定されます。このように設定されたプロパティは変数org-babel-default-header-args
とプロパティとして設定されたヘッダー引数との両方を上書きします。以下に示す例では、実行結果をバッファに挿入しないように、ヘッダー引数:results
をsilent
と設定し、加えてHTMLやLaTeXへのエクスポート時にコードブロックの本文だけが保存されるように、ヘッダー引数:exports
をcode
と設定しています。
#+source: factorial #+begin_src haskell :results silent :exports code :var n=0 fac 0 = 1 fac n = n * fac (n-1) #+end_src
同様に、インラインのコードブロックにヘッダー引数を設定することも可能です:
src_haskell[:exports both]{fac 5}
コードブロックのヘッダー引数を複数行にわたって記述できます。=#+header:=もしくは=#+headers:=の行を、コードブロックの前に記述するか、名前付きコードブロックの名前とコード本文との間に記述します。
名前を付けていないコードブロックに複数行のヘッダー引数を設定します:
#+headers: :var data1=1 #+begin_src emacs-lisp :var data2=2 (message "data1:%S, data2:%S" data1 data2) #+end_src #+results: : data1:1, data2:2
名前を付けたコードブロックに複数行のヘッダー引数を設定します:
#+source: named-block #+header: :var data=2 #+begin_src emacs-lisp (message "data:%S" data) #+end_src #+results: named-block : data:2
一番個別のレベルにおいて、Babelライブラリのためのヘッダー引数もしくは関数の呼び出し行は、下に示す2つの例のように設定できます。#call:
行の構造についての更なる情報は、コードブロックの評価を参照してください。
以下は、ヘッダー引数:exports results
を#+call:
行の評価に適用します。
#+call: factorial(n=5) :exports results
以下は、ヘッダー引数:session special
をコードブロックfactorial
の評価に適用します。
#+call: factorial[:session special](n=5)
以下のヘッダー引数が定義されています:
:var
ヘッダー引数:var
はコードブロックへ引数を渡すために使われます。コードブロックに含まれている引数を受け取る方法は、言語によって異なります;これらは、言語固有の文書にて説明されています。しかし、引数を指定する構文はすべての言語で共通です。引数に渡される値は、定数(リテラル値)、Org-modeのテーブルとliteral
exampleブロックからの値、他のコードブロックの結果、あるいはEmacs Lispのコードです。—Emacs
Lispについては、以下の見出し“Emacs Lisp evaluation of variables”を見て下さい。
これらの値は配列のようにインデックス化できます—以下の見出し“indexable variable values”を見て下さい。
ヘッダー引数:var
を使ってコードブロックへ引数を渡すには、以下の構文を使います。
:var name=assign
ここで、assign
は以下のフォームのどれかをとることができます。
"string"
)、もしくは数字(例:9
)のどちらかです。
#+tblname: example-table | 1 | | 2 | | 3 | | 4 | #+source: table-length #+begin_src emacs-lisp :var table=example-table (length table) #+end_src #+results: table-length : 4
#+srcname:
(訳者注:#+source:
と同一のもの)で割り当てられたコードブロックの名前で、後ろに括弧「()」が続きます。
#+begin_src emacs-lisp :var length=table-length() (* 2 length) #+end_src #+results: : 8
加えて、:var
により参照されるコードブロックへと引数を渡すことも可能です。コードブロック名に続く括弧「()」内の引数が渡されます:
#+source: double #+begin_src emacs-lisp :var input=8 (* 2 input) #+end_src #+results: double : 16 #+source: squared #+begin_src emacs-lisp :var input=double(input=1) (* input input) #+end_src #+results: squared : 4
コードブロックの#+source:
行を利用するという方法でも引数を指定できます。もしかすると、こちらの方法がより自然かもしれません。以下の例のように、引数はソースの名前に続く括弧「()」の内に、カンマ「,」で分離された形でひとまとめにされています。
#+source: double(input=0, x=2) #+begin_src emacs-lisp (* 2 (+ input x)) #+end_src
変数の“indexing”インデックス化によって割り当てられた変数の一部分を参照できます。インデックス(添え字)は0から始まります。インデックスが負の値の場合、それは要素の最後から逆順に数え上げたものです。インデックスが「,
」で分割されているとき、後続する部分のそれぞれが、次に深いネスティング(入れ子構造)にインデックス化するか、値の次元にインデックス化します。:hlines
、:colnames
、そして:rownames
のようなヘッダー引数と関連する他のテーブルが変更される前に、このインデックス化が行われることに注意して下さい。次の例では、テーブルexample-table
1行目の最後のセルを変数data
に割り当てています:
#+results: example-table | 1 | a | | 2 | b | | 3 | c | | 4 | d | #+begin_src emacs-lisp :var data=example-table[0,-1] data #+end_src #+results: : a
:
で区切られた2つの整数を使うことで、変数の範囲(行や列?)を参照できます。この場合、包括的な範囲を参照します。例えば、以下ではexample-table
の中央3行をdata
に割り当てています。
#+results: example-table | 1 | a | | 2 | b | | 3 | c | | 4 | d | | 5 | 3 | #+begin_src emacs-lisp :var data=example-table[1:3] data #+end_src #+results: | 2 | b | | 3 | c | | 4 | d |
加えて、インデックスが空の場合もしくは単一文字*
の場合のどちらでも、全ての範囲すなわち0:-1
を意味していると解釈されます。次の例では、1列目すべてが参照されます。
#+results: example-table | 1 | a | | 2 | b | | 3 | c | | 4 | d | #+begin_src emacs-lisp :var data=example-table[,0] data #+end_src #+results: | 1 | 2 | 3 | 4 |
コードブロックの結果をテーブルの様にインデックス化できます。どんな次元数でもインデックス化できます。以下の例に示すように、次元はそれぞれカンマで分割されます。
#+source: 3D #+begin_src emacs-lisp '(((1 2 3) (4 5 6) (7 8 9)) ((10 11 12) (13 14 15) (16 17 18)) ((19 20 21) (22 23 24) (25 26 27))) #+end_src #+begin_src emacs-lisp :var data=3D[1,,1] data #+end_src #+results: | 11 | 14 | 17 |
変数の値を初期化するときにEmacs Lispのコードを使えます。変数の値が(
, [
, '
もしくは
`
で始まる場合、変数はEmacs
Lispとして評価され、その評価結果を変数の値として代入されます。次の例では、この評価を使ってOrg-modのファイル名を確かにコードブロックへ渡しています—元のOrg-file内でヘッダー引数が間違いなく評価されるということに注意して下さい。コードブロックで評価する場合そのような保証はありません。
#+begin_src sh :var file-name=(buffer-file-name) :exports both wc -w $file #+end_src
テーブルやリストから読み出された値はEmacs Lispとして評価されないことに注意して下さい。以下はその例です。
#+results: table | (a b c) | #+headers: :var data=table[0,0] #+begin_src perl $data #+end_src #+results: : (a b c)
:results
ヘッダー引数:results
には3つのクラスがあります。コードブロックでは、クラス毎に1個のオプションだけを付与できます。
以下のオプションは、コードブロックから結果を収める方法を指定します。どちらかのオプションしか指定できません。
value
デフォルトの設定です。コードブロックの最終行の値が結果になります。このヘッダー引数はfunctional
modeで評価します。このタイプの返り値を使う場合、Pythonなどの言語では、ソースコードブロックの本文でreturn
文が必要なことに注意して下さい。
例えば、:results value
のように記述します。
output
コードブロックで実行される間に標準出力(STDOUT)へと出力されたもの全てを収集して結果とします。このヘッダー引数はscripting
modeで評価します。例えば、:results output
のように記述します。
以下のオプションは相互に排他的で、コードブロックの結果のタイプを返します。デフォルトでは、結果の値によって、テーブルかスカラーのどちらかが結果として挿入されます。
table
, vector
結果は、Org-modeのテーブルとして解釈されます。単一の値が返された場合、結果は1行1列のテーブルへと変換されます。例えば、:results
value table
のように記述します。
list
結果は、Org-modeのリストとして解釈されます。単一のスカラー値が返された場合、結果は1要素からなるリストへと変換されます。
scalar
, verbatim
結果は文字通りに評価されます—結果はテーブルへと変換されません。結果は引用されたテキストとしてOrg-modeのバッファに挿入されます。例えば、:results
value verbatim
と記述します。
file
結果はファイルへのパスとして解釈され、ファイルのリンクとしてOrg-modeのバッファに挿入されます。例えば、:results value
file
のように記述します。
raw
, org
結果は加工されていないOrg-modeのコードとして解釈され、そのバッファに直接挿入されます。結果がテーブルのように見えるときは、Org-modeのように整形します。例えば、:results
value raw
のように記述します。
html
結果はHTMLであると見なされて、begin_html
ブロックに囲まれます。例えば、:results value
html
のように記述します。
latex
結果はLaTeXと見なされて、begin_latex
ブロックに囲まれます。例えば、:results value
latex
のように記述します。
code
結果は構文解析可能なコードと見なされて、コードブロックに囲まれます。例えば、:results value code
のように記述します。
pp
結果は装飾されたコードに変換されて、コードブロックに囲まれます。このオプションは、現在、Emacs Lisp,
PythonとRubyをサポートしています。例えば、:results value pp
のように記述します。
wrap
結果はbegin_result
ブロックに囲まれます。結果の展開方法(extend?名詞形を見つけられず)が分かっていて自動的に削除されるか置換されるような、raw
もしくはorg
構文の結果を挿入する時にこのオプションを使うと便利です。
以下のresultのオプションは、結果が1度集められた後に何が起こるかを示しています。
silent
結果はミニバッファに表示されますが、Org-modeのバッファには挿入されません。例えば、:results output
silent
と記述します。
replace
デフォルトの設定です。どんな結果でも存在していれば削除し、新しい結果をOrg-modeのバッファのその場所に挿入します。例えば、:results
output replace
と記述します。
append
コードブロックの結果が以前から存在する場合、現在存在する結果の最後に新しい結果を付け加えます。結果が存在しない場合は、replace
のように新しい結果を挿入します。
prepend
もしコードブロックの結果が既に存在する場合、現在存在する結果の先頭に新しい結果を追加します。結果が存在しない場合は、replace
のように新しい結果を挿入します。
:file
コードブロックの結果を保存する外部ファイルを指定するために、ヘッダー引数:file
を使います。コードブロックの評価の後に、そのファイルへのOrg-modeスタイルのリンク[[file:]]
(リンクのフォーマットを参照)が、Org-modeのバッファに挿入されます。R,
gnuplot,
dotやditaaなどの言語では、ヘッダー引数:file
を扱う特別な機能が用意されています。その機能とは、指定されたファイルへアウトプットを保存するために、必要な定型のコードでコードブロックの本文を囲むというものです。これは、コードブロックの画像出力を特定のファイルに保存する場合に、しばしば役立ちます。
:file
に対する引数は、ファイルのパスを示す文字列、もしくは、次の2つの文字列からなるリスト、のどちらかでなくてはなりません。2つの文字列からなるリストとは、第1要素はファイルのパス、第2要素はそのリンクの説明から構成されます。
:dir
とリモートでの実行ヘッダー引数:file
がアウトプットするファイルのパスを指定する一方で、:dir
はコードブロックを実行する間のデフォルトのディレクトリを指定します。指定されない場合、現在のバッファに関連するディレクトリが使われます。つまり、:dir
path
を一時的に与えることは、M-x cd
pathでカレントディレクトリを変えるだけで:dir
を設定しない場合と同じ効果を持ちます。水面下では、:dir
がEmacsの変数default-directory
を変更しているだけなのです。
:dir
を使う場合、アウトプットするファイルを相対パス(例 :file
myfile.jpg
もしくは:file
results/myfile.jpg
)で与えなければなりません。その場合、与えたパスはデフォルトディレクトリに対する相対パスとして解釈されます。
つまり、ホームディレクトリ内のWorkフォルダでプロット(グラフを描画)したい場合、次のように使えます。
#+begin_src R :file myplot.png :dir ~/Work matplot(matrix(rnorm(100), 10), type="l") #+end_src
trampのファイル構文を使う事でリモートマシン上のディレクトリを指定できます。その場合、リモートマシン上でコードが評価されます。1つの例です。
#+begin_src R :file plot.png :dir /dand@yakuba.princeton.edu: plot(1:10, main=system("hostname", intern=TRUE)) #+end_src
従来通りローカルのOrg-modeのバッファにテキストの結果が返されますが、リモートマシン上のリモートディレクトリを基準とした相対パスにファイルのアウトプットが作成されます。リモートのファイルへのOrg-modeのリンクが生成されます。
従って、上の例では、リモートマシン上にグラフが生成され、Org-modeバッファには次の形式のリンクが挿入されます。
[[file:/scp:dand@yakuba.princeton.edu:/home/dand/plot.png][plot.png]]
trampのおかげで、:dir
がEmacsの変数default-directory
の値をセットした後すぐに、この機能を使えます。これらの機能を正しく動かすためには、XEmacsやversion23より前のGNU
Emacsを使っている人はtrampを別にインストールする必要があるかもしれません。
:session
と並行して:dir
が使われるとき、新規セッションを開始する場合には開始ディレクトリを予想して決定します。しかし、すでにセッションが存在する場合には、現バージョンでは、そのセッションと関連したディレクトリを変更しません。
:exports results
や:exports
both
を使ってファイルをエクスポートする間、通常は:dir
を使ってファイルを生成するべきではありません。理由は以下の通りです。2つのマシンでエクスポートされた結果の移植性を維持するために、エクスポート時にバッファへと挿入されるリンクはdefault-directory
に対して展開
*されていません* 。それゆえ、もし:dir
を使ってdefault
directory
を変えてしまうと、リンクで意図していない場所にファイルが作られるという恐れがあります。
:exports
ヘッダー引数:exports
は、Org-modeファイルのHTMLエクスポートやLaTeXエクスポートに、何を含めるかを指定します。
code
デフォルトの設定です。コードの本文がエクスポートされるファイルに含まれます。例えば、:exports code
のように記述します。
results
コードの評価結果がエクスポートされるファイルに含まれます。例えば、:exports results
のように記述します。
both
コードと結果の両方がエクスポートされるファイルに含まれます。例えば、:exports both
のように記述します。
none
エクスポートされるファイルには何も含まれません。例えば、:exports none
のように記述します。
:tangle
ヘッダー引数:tangle
は、ソースコードファイルを抽出したファイルにコードブロックを含めるか否かを指定します。
tangle
コードブロックは、Org-modeのファイルのbasename(拡張子を取り除いた名前)にちなんだソースコードファイルにエクスポートされます。例えば、:tangle
yes
のように記述します。
no
デフォルトの設定です。コードブロックはソースコードファイルにエクスポートされません。例えば、:tangle no
のように記述します。
:tangle
に渡された何か他の文字列を、ブロックをエクスポートするファイルのbasenameと解釈します。例えば、:tangle
basename
のように記述します。
:mkdirp
抽出(tangle)されたファイルの親ディレクトリが無いときに、ヘッダー引数:mkdirp
を使って親ディレクトリを作成できます。ディレクトリ作成を許可するにはこのヘッダー引数をyes
と設定し、ディレクトリ作成を禁止するにはno
と設定します。
:comments
デフォルトの設定では、コードブロックをソースコードへと抽出するときに、コードブロック本文に既に存在するコメントだけを挿入します。抽出されたコードファイルに追加のコメントを挿入するには、ヘッダー引数:comments
を以下のように設定します。
no
デフォルトの設定です。抽出(tangle)する間に、コメントは追加挿入されません。
link
コードブロックは、コードが抽出された元のOrg-modeファイルへ戻るポインタを含むコメントに囲まれます。
yes
“link”と同じ意味です。これは後方互換性を保持するためです。
org
Org-modeのファイルからのテキストをコメントとして含みます。
抽出されたコードに先行する文脈からテキストが選ばれます。テキストは、状況に応じて、一番近い見出しもしくはソースブロックに限定されます。
both
コメントのオプションの“link”と“org”との両方を有効にします。
noweb
コメントのオプション“link”を有効にし、nowebの参照記号をコードブロック本文に展開し、それをリンクのコメントで囲みます。
:no-expand
デフォルトの設定では、抽出の際に関数org-babel-expand-src-block
によってコードブロックが展開されます。これには、:var
を使って変数を割り当てる(varを参照してください)効果に加えて、“noweb”の参照記号(Nowebでの参照の構文を参照してください)をそのターゲットで置き換える効果があります。この動作を無効にするためにヘッダー引数:no-expand
を使います。
:session
ヘッダー引数:session
は、読み取られた言語のにセッションを開始します。セッションでは、状態は保存されます。
デフォルトでは、セッションは開始されません。
ヘッダー引数:session
に渡された文字列が、セッション名になります。これにより、読み取られた言語のそれぞれについて並列セッションを実行可能です。
:noweb
ヘッダー引数:noweb
はコードブロック内における“noweb”スタイル(Nowebでの参照の構文を参照のこと)の参照記号を展開する方法について管理しています。このヘッダー引数は次の3つyes
、no
もしくは
tangle
から1つを選ぶことができます。
yes
そのブロックが評価、抽出、エクスポートされる前に、コードブロックの本文にある全ての“noweb”構文の参照記号が展開されます。
no
デフォルトの設定です。コードブロックの評価では“noweb”構文のアクションはありません。しかし、抽出の間にnoweb参照記号は展開されます。
tangle
ブロックを抽出する前に、コードブロックの本文にある全ての“noweb”構文の参照記号は展開されますが、ブロックが評価されるときやエクスポートされるときは“noweb”の参照記号は展開されません。
現在、Nowebの挿入機能は、<<reference>>
の行頭部分の後ろで実行されます。この振る舞いは次の例で説明されます。nowwebの参照記号<<example>>
がSQLのコメントの構文の後で見つかったため、nowebの参照記号を展開して、それぞれの行をコメントとして挿入します。
このコードブロックは:
-- <<example>>
次のように展開されます:
-- これは -- exampleの複数行の本文です
次の事に注意して下さい。改行を含まないnowebのテキスト置換ではこの変化の影響を受けません。したがって、インラインのnowebの参照記号を使う事も可能です。
:cache
ヘッダー引数:cache
はコードブロックの評価結果をバッファ内に保存するか(=キャッシュするか)を管理します。これにより、変化していないコードブロックを再度評価することを避けられます。このヘッダー引数は:yes
あるいはno
のどちらかの値をとります。
no
デフォルトの設定です。実行結果をバッファに保存せず、呼び出される度にコードブロックを評価します。
yes
コードブロックが実行される度に、そのコードとブロックに渡された引数とからなるSHA1ハッシュ値を生成します。このハッシュ値は#+results:
行に格納され、後のコードブロックの実行時にチェックされます。前回評価した時からコードブロックに変化が無い場合、そのコードブロックは改めて評価されません。
コードブロックの引数である変数の値が変化した場合でも、コードブロックのキャッシュは変化として検知します。この場合、キャッシュは無効となり、そのコードブロックは再度実行されます。次の例では、random
の結果が前回実行時から変化しない限り、caller
は実行されません。
#+srcname: random #+begin_src R :cache yes runif(1) #+end_src #+results[a2a72cd647ad44515fab62e144796432793d68e1]: random 0.4659510825295 #+srcname: caller #+begin_src emacs-lisp :var x=random :cache yes x #+end_src #+results[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller 0.254227238707244
:sep
Org-modeから外部のファイルへ表形式の結果を書き出す時に、ヘッダー引数:sep
を使って区切り文字のを管理できます。この機能は、次のどちらかの場合に使用できます。まずは、コードブロック上でC-c
C-oにキーバインドされた関数org-open-at-point
を呼び出して、表形式で書かれたコードブロックの結果を開く場合です。もう1つは、コードブロックの結果を外部ファイルのヘッダー引数へ出力する場合です(fileを参照してください。)。
デフォルトでは、:sep
が設定されていない場合、出力されるテーブルはタブで区切られています。
:hlines
テーブルは頻繁に1本以上の水平な線、すなわちhlines(訳者注:_h_orizontal
_lines_)を使って表現されます。コードブロックの引数:hlines
の値としてyes
もしくは
no
を使えます。デフォルトではno
と設定されています。
no
入力されたテーブルから水平な線を取り除きます。ほとんどの言語ではこれが望ましい設定です。なぜならhline
の記号を定義されていない変数と見なされて、エラーとなるからです。:hlines
no
と設定するか、デフォルトの設定値を使う場合、次のように出力されます。
#+tblname: many-cols | a | b | c | |---+---+---| | d | e | f | |---+---+---| | g | h | i | #+source: echo-table #+begin_src python :var tab=many-cols return tab #+end_src #+results: echo-table | a | b | c | | d | e | f | | g | h | i |
yes
テーブル内の水平な線を残したままにします。:hlines yes
と設定すると以下のようになります。
#+tblname: many-cols | a | b | c | |---+---+---| | d | e | f | |---+---+---| | g | h | i | #+source: echo-table #+begin_src python :var tab=many-cols :hlines yes return tab #+end_src #+results: echo-table | a | b | c | |---+---+---| | d | e | f | |---+---+---| | g | h | i |
:colnames
ヘッダー引数:colnames
は、yes
とno
そして宣言していない場合のnil
を値として持てます。デフォルトではnil
に設定されています。
nil
(2行目が水平な線であることから)入力されたテーブルに列の名前があるように考えられる場合には、列の名前を取り除いてから処理を行い、その結果に対して改めて列の名前を付け加えます。
#+tblname: less-cols | a | |---| | b | | c | #+srcname: echo-table-again #+begin_src python :var tab=less-cols return [[val + '*' for val in row] for row in tab] #+end_src #+results: echo-table-again | a | |----| | b* | | c* |
variable indexing (See Indexable variable values.)を使ってテーブルをインデックス化する前に、テーブルの列の名前が取り除かれていないことに注意してください。
no
列の名前に関する前処理は行われません。
yes
テーブルが列の名前を持っている「ように見えない」場合でも(すなわち
2行目が水平な線でない場合でも)、nil
を設定されたように、列の名前を除外し、改めて結果の列に名前を付け加えます。
:rownames
ヘッダー引数:rownames
はyes
もしくはno
を値として持つ事ができ、デフォルトではno
と設定されています。
no
行に関する前処理を行いません。
yes
前処理としてテーブルの1列目を取り除き、処理結果に列の名前を付け加えます。
#+tblname: with-rownames | one | 1 | 2 | 3 | 4 | 5 | | two | 6 | 7 | 8 | 9 | 10 | #+srcname: echo-table-once-again #+begin_src python :var tab=with-rownames :rownames yes return [[val + 10 for val in row] for row in tab] #+end_src #+results: echo-table-once-again | one | 11 | 12 | 13 | 14 | 15 | | two | 16 | 17 | 18 | 19 | 20 |
variable indexing (See Indexable variable values.)を使ってテーブルをインデックス化する前に、テーブルの行の名前が取り除かれていないことに注意してください。
:shebang
ヘッダー引数:shebang
に文字列の値(例えば :shebang
"#!/bin/bash"
)を設定することで、コードブロックを抽出した全てのファイルの1行目にその文字列を挿入し、抽出されたファイルのパーミッションを実行可能と設定します。
:eval
ヘッダー引数:eval
を使って、特定のコードブロックの評価を制限できます。:eval
は“never”と“query”の2つの値をとれます。:eval
never
はコードブロックが評価されないことを確かにします。 これは危険なコードブロックを評価することを防ぐのに便利です。:eval
query
と設定すると、変数org-confirm-babel-evaluate
の値に関係なく、コードブロックを実行する度に確認のダイアログがでます。
結果の取り扱われ方は、セッションが呼び出されたかに依存することに加えて、:results value
もしくは:results
output
が使われているかに依存します。(table
possibilies:の意味が分からない)次のテーブルでは全ての場合を表形式にまとめました。ヘッダー引数resultsが取り得る完全なリストは、resultsを見て下さい。
Non-session | Session
| |
:results value | 最後の式の値 | 最後の式の値
|
:results output | STDOUTの内容 | インタプリタの出力をつなげたもの
|
以下に注意すること::results
value
と設定することで、適切な場合は、:session
とnon-sessionの両方の結果はテーブル(文字列もしくは数字からなる1次元もしくは2次元のベクトル)の形でOrg-modeに返されます。
:results value
デフォルトの設定です。外部の言語で書かれた関数定義のコードを囲むことと、内部でその関数を評価することによってその値が得られます。それゆえ、コードはその関数の本文であるかのように書かなければなりません。特に、Pythonはreturn
文が存在しない限り自動的に関数から返り値を返しませんので、Pythonでは多くの場合に‘return’文が必要なことに注意してください。
コンテクストを評価する4つの方法の中で、これは関数定義にコードが自動的に囲まれるただ一つの方法です。
:results output
外部プロセスとしてのインタープリタにコードが渡され、標準出力ストリームの内容がテキストとして返されます。(いくつかの言語ではエラー出力のストリームも含まれます; これは今後の課題です。)
:results value
Emacsのインタラクティブな下位プロセスとして実行しているインタープリタにコードが渡されます。返される結果は、そのインタープリタが最後に評価した結果です。
(これは言語固有の方法で得られています:PythonやRubyでの変数_
の値であり、Rでの.Last.value
の値です)。
:results output
Emacsのインタラクティブな下位プロセスとして実行しているインタープリタにコードが渡されます。返される結果は、そのインタープリタからの一連の(テキストの)アウトプットを結合したものです。もし外部プロセスとして実行しているインタラクティブでないインタープリタに同じコードが送られるなら、STDOUT
へと送られるであろうものと全く同じである必要は無いことに注意して下さい。例えば、次の2つのブロックを比べて下さい:
#+begin_src python :results output print "hello" 2 print "bye" #+end_src #+resname: : hello : bye
non-sessionモードでは、`2'はプリントされず、表示されません。
#+begin_src python :results output :session print "hello" 2 print "bye" #+end_src #+resname: : hello : 2 : bye
しかし:session
モードでは、インタラクティブなインタープリタは入力`2'を受け取り、その値`2'を表示します。(実際には、ここでは他のprint文は不要です)。
“noweb” (http://www.cs.tufts.edu/~nr/noweb/を参照のこと)による文芸的プログラミングのシステムは、名付けられたコードブロックがよく知られたNowebの構文を使って参照されることを許しています:
<<code-block-name>>
コードブロックが抽出されるか評価されるとき、“noweb”参照記号を展開するかしないかは、ヘッダー引数:noweb
の値に依存します。もし:noweb
yes
なら、Nowebの参照記号が展開されてから評価が行われます。もし:noweb
no
なら、デフォルトの設定ですが、参照記号は展開されずに評価が行われます。
注意:ある言語内で正しいコードが破壊されないように、デフォルトの値を:noweb
no
と設定しています。例えばRubyでは、<<arg>>
が構文的に有効な構成要素です。もしあなたが使っている言語で<<arg>>
が構文的に有効な構成要素でない場合に、デフォルトの値を検討してください。
多くの一般のOrg-modeのキー操作が、コンテクストに応じて再定義されています。
コードブロックの中では、以下のキーバインドが有効になっています。
C-c C-c | org-babel-execute-src-block
|
C-c C-o | org-babel-open-src-block-result
|
C-<up> | org-babel-load-in-session
|
M-<down> | org-babel-pop-to-session
|
Org-modeのバッファ内では、以下のキーバインドが有効になっています。
コマンドラインから関数を呼び出すことができます。このシェルスクリプトは、引数のそれぞれに対してorg-babel-tangle
を呼び出します。
あなたのシステムに合わせてパスを設定するように注意してください。
#!/bin/sh # -*- mode: shell-script -*- # # org-mode でファイルを抽出する # DIR=`pwd` FILES="" ORGINSTALL="~/src/org/lisp/org-install.el" # tangleする必要があるそれぞれの引数をクォーテーションで囲む for i in $@; do FILES="$FILES \"$i\"" done emacs -Q --batch -l $ORGINSTALL \ --eval "(progn (add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\")) (add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\")) (require 'org)(require 'org-exp)(require 'ob)(require 'ob-tangle) (mapc (lambda (file) (find-file (expand-file-name file \"$DIR\")) (org-babel-tangle) (kill-buffer)) '($FILES)))" 2>&1 |grep tangled
Emacsは補完無しではEmacsとはいえません,そしてorg-modeはそれが意味をなすたびに使用します.もしあなたがiswitchb-
かido-のようなインタフェースを補完のプロンプトとして好むのであれば,あなたはorg-completion-use-iswitchb
やorg-completion-use-ido
変数のいずれかを設定することで指定することができます.
Org-modeはバッファ中の補完をサポートします.この種類の補完はミニバッファを活用します.あなたは簡単に数文字をバッファに入力し,補完キーを補完するテキストの右側で押します.
org-tag-alist
変数(see タグの設定より,もしかすると,バッファ中の‘#+TAGS’オプションでも設定されているかもしれません.)から与えられるか,カレントバッファで使われている全てのタグから動的に生成されます.
Org-modeは僅かなキーストロークのみによる空の構造の(#+BEGIN_SRC
や#+END_SRC
のような)要素の挿入をサポートします.これはネイティブなテンプレート拡張機構を通じて得られるものです.ここで留意すべきこととして,Emacsは例えばyasnippetのような同じように使うことができるいくつかの他のテンプレート機構を持ちます.
構造要素の挿入には,‘<’をタイプし,続いてテンプレートセレクタと<TAB>をタイプします.補完は上記のキーストロークが単独で行に入力されている場合のみ働きます.
以下のテンプレートセレクタが現在サポートされています.
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 | #+include: line
|
例えば,空の行で"<e"と入力し,その後TABを入力すると,EXAMPLEテンプレートが補完されます.
あなたはorg-structure-template-list
変数をカスタマイズすることで追加のテンプレートをインストールすることができます.詳細は変数のdocstringを参照してください.
最初のアスタリスクの前のように,カーソルが見出しの先頭にある時,シングルキーはコマンドを実行できるようになっています.org-use-speed-commands
変数を設定することでこの機能を有効にします.あらかじめ定義されているコマンドのリストを挙げます.そして,org-speed-commans-user
変数にコマンドを追加することもできます.Speed
keysは操作や他のコマンドを使うスピードを上げるだけではなく,TTYやキーボードに限界があるモバイル端末上で実行できない,または簡単に実行できないキーに割り当てられたコマンドを実行するための別の可能性を提供します.
コマンドが実行可能かどうかを見るには,機能を有効にして見出しの先頭にカーソルを置いて?を押します.
Org-modeは評価を含むコードのスニペットを使って作業をするためのツールを提供します.
あなたのマシン上でコードが動くことは常にセキュリティのリスクをもたらします.目的のため,またはアクシデントによって良くないコードや悪意のあるコードは実行されます.Org-modeはあなたが明確に実行の許可を与える場合のみそのようなコードを評価するデフォルトの設定を持っていて,そしてカジュアルなユーザーに対してはこれらの機能は予防措置として保つべきです.
そのようなコードを通常用いる人々のために,確認用のプロンプトが表示され,そしてあなたはそれをオフにするかもしれません.これを行うことは可能ですが,あなたはリスクとかかわることを承知しなくてはなりません.
コードの評価は以下に挙げる状況を引き起こします:
デフォルトのセキュリティ装置を切る変数をカスタマイズする前にあなたがしていることを確かめてください.
t(これがデフォルトです)の時,ユーザーはコードブロックを評価する前に毎回確認されます.nilの時,ユーザは確認されません.関数をセットすると,それは2つの引数(言語とコードブロックの本体)を伴って呼ばれ,tを返せば尋ね,nilならば尋ねません.
例えば,これは"ditaa"コード(安全性は考慮されています)を確認無しで実行する方法です:
(defun my-org-confirm-babel-evaluate (lang body) (not (string= lang "ditaa"))) ; don't ask for ditaa (setq org-confirm-babel-evaluate 'my-org-confirm-babel-evaluate)
shell
とelisp
はリンクしています.
Org-modeをカスタマイズするために使われる変数は180以上あります.マニュアルの圧縮のため,私はここで変数の説明はしません.変数のカスタマイズの構造化された概要はM-x
org-customizeで見ることができます.もしくは,Org->Customization
からBrowse Org
Group
を選択してください.多くの設定はバッファに特別な行を書くこと(see バッファ内での変数制御)でそのファイル中で有効にすることができます.
Org-modeはファイル単位で設定を定義するために,バッファ内の特別な行を使用します.これらの行は‘#+’に続くキーワードとコロン,そして設定を定義する語句でできています.いくつかの設定用語句は同じ行に書くことも,分けて書くこともできます.これらの設定はマニュアルを通じて説明されており,ここには要約を載せています.バッファ中の行を編集した後は,カーソル位置の変更をすぐに反映するためにC-c C-cを押しれください.そうでなければ,新しいEmacsのセッションでファイルを再び開いた時のみ反映されます.
org-archive-location
です.
COLUMNS
プロパティが適用されていない箇所でカラムビューが呼ばれた場合,このフォーマットが適用されます.
org-table-formula-constants-local
を設定します.グローバルバージョンはorg-table-formula-constants
です.
org-drawers
です.
org-link-abbrev-alist
です.
最初のオプションセットはアウトラインツリーの初期表示を設定します.グローバルなデフォルトの設定に関係する変数はorg-startup-folded
で,初期値はt
で,それはすなわちoverview
です.
overview トップレベルの見出しのみ content 全ての見出し showall 全てのエントリを畳み込まない showeverything コンテンツの引き出しも表示する
動的な仮想インデントは変数org-startup-idented
132によって制御されます.
indent start withorg-indent-mode
turned on noindent start withorg-indent-mode
turned off
それから,開いたファイルの表を整列させつオプションがあります.これはファイルがナローされた表を含む時に役に立ちます.関係する変数はorg-startup-align-all-tables
で,デフォルトではnil
です.
align align all tables noalign don't align tables on startup
ファイルを開いたとき,インライン画像は自動的に表示されます.関係する変数はorg-startup-with-inine-images
で,ファイルを開いた際の遅延を避けるためにデフォルトではnil
になっています.
inlineimages show inline images noinlineimages don't show inline images on startup
TODOアイテムの完了と再開のログを取ることとその感覚はこれらのオプションによって設定することが可能です(変数org-log-done
とorg-log-note-clock-out
,org-log-repeat
を参照してください).
logdone アイテムにDONEマークがついたとき,タイムスタンプを記録します lognotedone ノートにDONEマークがついたとき,タイムスタンプを記録します nologdone アイテムにDONEマークがついたとき,タイムスタンプを記録しません logrepeat アイテムが再開されたとき,時刻を記録します lognoterepeat アイテムが再開されたとき,ノートをを記録します nologrepeat アイテムが再開されたとき,記録を行わいません lognoteclock-out 時間測定が終了したとき,ノートを記録します nolognoteclock-out 時間測定が終了したとき,ノートを記録しません logreschedule スケジューリングが変わったとき,タイムスタンプを記録します lognotereschedule スケジューリングが変わったとき,ノートを記録します nologreschedule スケジューリングが変わったとき,記録しません logredeadline デッドラインが変更されたとき,タイムスタンプを記録します lognoteredeadline デッドラインが変更されたとき,ノートを記録します nologredeadline デッドラインが変更されたとき,記録しません logrefile リファイル時にタイムスタンプを記録します lognoterefile リファイル時にノートを記録します nologrefile リファイル時に記録しません
ここは,インデントされたアウトラインの見出しを隠すオプションです.関係する変数はorg-hide-leading-stars
とorg-odd-levels-only
で,デフォルトの設定は両方ともnil
(showstars
とoddeven
)を意味します.
hidestars 全てのヘッドラインの「*」を見えなくします showstars 全てのヘッドラインの「*」を見えるようにします indent virtual indentation according to outline level noindent アウトラインのレベルに一致する仮想インデントを行いません odd 奇数のアウトラインレベル(1,3……)のみ oddeven 全てのアウトラインレベル
タイムスタンプ(org-put-time-stamp-overlays
とorg-time-stamp-overlay-formats
変数)のカスタムフォーマットオーバレイを切り替えます,
customtime カスタマイズされたタイムフォーマットで覆います
以下のオプションは表計算(constants-unit-system
変数)に影響を与えます.
constcgs constants.el should use the c-g-s unit system constSI constants.el should use the SI unit system
脚注の設定を行うには,以下のキーワードを使います.関係する変数はorg-footnote-define-inline
とorg-footnote-auto-label
,org-footnote-auto-adjust
です.
fninline 脚注のインラインを定義します fnnoinline 分割されたセクションでの脚注を定義します fnlocal 最初の言及元の近くの脚注を定義しますが,インラインではありません fnprompt 脚注ラベルのプロンプト fnauto[fn:1]
のようなラベルを自動的に作成します(これがデフォルトです) fnconfirm 編集と確認用の自動ラベルを用意します fnplain[1]
のようなラベルを自動的に作成します fnadjust 自動的に脚注の番号を振り直し,ソートします nofnadjust 自動的に番号の振り直しとソートを行いません
開始時にブロックを見えなくするには,これらのキーワードを使います.関連する変数はorg-hide-block-startup
です.
hideblocks 開始時に全ての開始/終了ブロックを見えなくします nohideblocks 開始時にブロックを見えなくしません
UTF-8の文字の表示は変数org-pretty-entities
と以下のキーワードにより制御されます.
entitiespretty 可能な時,UTF-8の文字を表示します entitiesplain 空白にします
org-tag-alist
です.
org-todo-keywords
です.
Org-modeではC-c C-cキーは多くの目的を持っていて,それはこのマニュアルの中のあちこちに分かれて書かれています.このキーの具体的な機能として,見出しにタグを追加するものがあります(see タグ).他の多くの状況では,“ここを見て,見たものに応じて更新する”というようなものを意味します.これは,異なる文脈でそれが何を意味するかの概要です.
#+KEYWORD
行上にあるなら,このトリガーはバッファをこの行でスキャンし情報を更新します.
#+TBLFM
行にあるなら,全ての表に式を再適用します.
<<<target>>>
上にあるなら,ラジオターゲットとバッファ中の関係するリンクを更新します.
#+BEGIN
行上にあるなら,ブロックを更新します.
多くの人々はOrg-modeの見出しについている「*」の数が増えたときや見出しの下のテキストがインデントされていないことを不快に感じます.アウトラインの見出しが本当のセクションの見出しの場所で本のように文書を書く時,これは問題ではありませんが,さらに正しい位置のリストアウトライン中では,インデント構造はより見やすくなります.
* Top level headline | * Top level headline ** Second level | * Second level *** 3rd level | * 3rd level some text | some text *** 3rd level | * 3rd level more text | more text * Another top level headline | * Another top level headline
もしあなたが少なくともEmacs23.2133とOrg-modeのバージョン6.29を使っているのなら,この主のビューはorg-indent-mode
を使って表示する時間を動的に実現できます.このマイナーモードでは,全ての行は必要なスペース134が前について表示されます.見出しはまた追加の「*」が前に置かれていて,それで1レベルにつき2135スペースシフトしてインデントします.全ての見出しの「*」の最後の1個だけはorg-hide
フェイス136を使うことで見えなくなります
-
これについてのさらなる情報は‘2.’を見てください.あなたはorg-indent-mode
を有効にするかorg-startup-indented
変数で全てのファイルについて設定するか,ファイル毎に独立して設定することができます.
#+STARTUP: indent
もしあなたがEmacs/Org-modeの古いバージョンでも同じような効果を得たいのであれば,またはもしあなたがプレーンテキストの見た目がEmacsでの表示と同様になるようにスペース文字でインデントしたいのであれば,Org-modeは以下の方法であなたをサポートします:
*** 3rd level more text, now indented
org-hide-leading-stars
変数を設定するか,以下のようにファイル毎に設定するかです.
#+STARTUP: hidestars #+STARTUP: showstars
「*」を隠した状態だと,ツリーはこうなります:
* Top level headline * Second level * 3rd level ...
先頭の「*」は本当に空白スペースに置き換えられたわけではなく,それらは文字色を背景色にするorg-hide
フェイスによって見えているだけです.もしあなたが白か黒の背景色を使っていないのであれば,あなたはこのフェイスを必要な効果が得られるようにカスタマイズする必要があるでしょう.別の方法として,このフォントは余分な「*」が色を用いて,例えば,白い背景色の上にgray90
を使うことで目に見えなくするというものがあります.
org-odd-levels-only
変数を設定するか,各ファイルに以下のような行を追加します.
#+STARTUP: odd #+STARTUP: oddeven
あなたはM-x org-convert-to-odd-levels RETによりOrg-modeのファイルを1レベル1スターから1レベル2スターに変換することができます.逆の操作は.M-x org-convert-to-oddeven-levelsです.
Org-modeはとても多くのコマンドを用意しているため,デフォルトではOrg-modeのコアコマンドの多くは,例えばカーソルキー(<left>,<right>,<up>,<down>)や<TAB>,<RET>,とりわけ<Meta>や<Shift>といったモディファイヤキーと一緒に使われるキーなど,通常tty端末では扱えないキーにバインドされています.特別なキーが利用できない時にtty端末上でこれらのコマンドにアクセスするには,以下の別バインディングを用いることができます.下記のtty端末バインディングはおそらく扱いにくいでしょう; カスタマイズしたバインディングの方が以下のいくつかのものよりよいことに気づくかもしれません.
デフォルト | 代替 1 | スピードキー | 代替 2
|
S-<TAB> | C-u <TAB> | C |
|
M-<left> | C-c C-x l | l | <Esc> <left>
|
M-S-<left> | C-c C-x L | L |
|
M-<right> | C-c C-x r | r | <Esc> <right>
|
M-S-<right> | C-c C-x R | R |
|
M-<up> | C-c C-x u | <Esc> <up>
| |
M-S-<up> | C-c C-x U | U |
|
M-<down> | C-c C-x d | <Esc> <down>
| |
M-S-<down> | C-c C-x D | D |
|
S-<RET> | C-c C-x c |
| |
M-<RET> | C-c C-x m | <Esc> <RET>
| |
M-S-<RET> | C-c C-x M |
| |
S-<left> | C-c <left> |
| |
S-<right> | C-c <right> |
| |
S-<up> | C-c <up> |
| |
S-<down> | C-c <down> |
| |
C-S-<left> | C-c C-x <left> |
| |
C-S-<right> | C-c C-x <right> |
|
Org-modeはGNU Emacsの世界に生きていて,他のコードと様々な方法で連携します.
calc-eval
関数を探し,Calcが利用できることを確認します.Emacs22現在で,CalcはEmacsに最初から組込まれています.2つのパッケージの連携の別の方法はCalcを組込み計算に使うことです.See Embedded Mode.
org-table-formula-constants
変数に定数を定義する代わりに,多くの定数や単位を定義しているconstantsパッケージをインストールすることで,あなたは‘Mega’に‘M’のような表現を使うことができるようになります.このパッケージのバージョン2.0が必要で,http://www.astro.uva.nl/~dominik/Toolsから利用できます.Org-modeは設定中に自動で読み込まれるconstants-get
関数をチェックします.constants.elのインストール説明を参照してください.
(add-hook 'org-mode-hook (lambda () (imenu-add-to-menubar "Imenu")))
デフォルトではインデックスは2レベルの深さです—あなたはorg-imenu-depth
オプションを用いることで深さを変更できます.
org-edit-special
)org-table-create-with-table.el
)org-convert-table
コマンドのドキュメントを参照してください.
shift-selection-mode
がデフォルトで有効になっています.カーソルがそのような位置にある場合,Org-modeでのタイムスタンプ,TODOキーワード,プライオリティ,アイテムbulletタイプの変更とS-<cursor>コマンドは衝突します.デフォルトでは,S-<cursor>コマンドは特別なコンテクスト以外では何も起きませんが,org-support-shift-select
変数をカスタマイズすることができます.Org-modeはスペシャルコマンドが適用される特別なコンテクストの外で(i)使用することによりShift選択を提供しようとし,また(ii)アクティブなリージョンを拡張することによっても特別なコンテクストを通してカーソルが移動します.
pc-select-mode
やs-region-mode
と同様に)CUAモードで使われるS-<cursor>と衝突します.実際,前の段落を見れば分かりますが,Emacs23はshift-selection-mode
の形でこのビルトインを持ちますます.あなたがEmacs23を使っているのであれば,まず間違いなくこの目的のための別のパッケージは使いたくないでしょう.しかし,Org-modeでの作業中に別のパッケージにこれらのキーを渡すことを選ぶのであれば,org-replace-disputed-keys
変数を設定してください.設定したとき,Org-modeはOrg-modeファイルとアジェンダバッファ(日付の選択を除きます)中で以下のキーバインディングを変えるでしょう.
S-UP ⇒ M-p S-DOWN ⇒ M-n S-LEFT ⇒ M-- S-RIGHT ⇒ M-+ C-S-LEFT ⇒ M-S-- C-S-RIGHT ⇒ M-S-+
はい,残念ながら覚えることがより困難です.もしあなたが他の代わりのキーを持ちたいのであえれば,org-disputed-keys
変数を見てください.
"\t"
の代わりに.[tab]
をバインドします)をバインドするこのキーでYASnippetsのアクセスを優先します.以下のコードはこの問題を修正します:
(add-hook 'org-mode-hook (lambda () (org-set-local 'yas/trigger-key [tab]) (define-key yas/keymap [tab] 'yas/next-field-group)))
yasnippetの最新のバージョンはOrg-modeと相性がよくありません.上記のコードが衝突を修正しないなら,以下の関数を定義してください:
(defun yas/org-very-safe-expand () (let ((yas/fallback-behavior 'return-nil)) (yas/expand)))
それから,Org-modeに実行すべき新しい関数を教えてくさい:
(add-hook 'org-mode-hook (lambda () (make-variable-buffer-local 'yas/trigger-key) (setq yas/trigger-key [tab]) (add-to-list 'org-tab-first-hook 'yas/org-very-safe-expand) (define-key yas/keymap [tab] 'yas/next-field)))
;; Make windmove work in org-mode: (add-hook 'org-shiftup-final-hook 'windmove-up) (add-hook 'org-shiftleft-final-hook 'windmove-left) (add-hook 'org-shiftdown-final-hook 'windmove-down) (add-hook 'org-shiftright-final-hook 'windmove-right)
org-sparse-tree
コマンドに対応しているキーを使えないようにします.あなたはこのコマンドに別のキーを割り当てるか,viper-vi-global-user-map
でキーを上書きする必要があります:
(define-key viper-vi-global-user-map "C-c /" 'org-sparse-tree)
この付録では、ユーザーがOrg-modeの機能を拡張できる幾つかの特徴を紹介します。
Org-modeには、機能を追加するためのフック変数が数多くあります。ハッキングに関するこの付録では、それらの使い方を説明します。全フックの完全なリストと説明文は Worg project によって維持管理されており、http://orgmode.org/worg/org-configs/org-hooks.phpにて見つけられます。
様々な人によって膨大な数のアドオンパッケージが書かれました。これらのパッケージはEmacsの一部ではありませんが、投稿されたパッケージとして独自のリリースで配布されており、Org-modeのホームページ http://orgmode.orgにて入手できます。投稿されたパッケージのリストとその説明文は Worg project によって http://orgmode.org/worg/org-contrib/にて維持管理されています。
Org-modeにはビルトインのハイパーリンク形式が多数用意されています(see ハイパーリンク)。新しいタイプのリンクを追加したい場合、Orgは追加するためのインターフェスを用意します。例となるファイル org-man.elを見て下さい。これは UnixのmanページをEmacsで表示するために、‘[[man:printf][printfのmanページ]]’というリンクを生成するサポートを作成します:
;;; org-man.el - Org-modeでmanページのリンクをサポートする (require 'org) (org-add-link-type "man" 'org-man-open) (add-hook 'org-store-link-functions 'org-man-store-link) (defcustom org-man-command 'man "manのページを表示するためのEmacsのコマンド。" :group 'org-link :type '(choice (const man) (const woman))) (defun org-man-open (path) "パス(PATH)にあるmanpageを開きます。 パスはコマンドmanに渡せる内容でなければなりません。" (funcall org-man-command path)) (defun org-man-store-link () "manページへのリンクを保存します。" (when (memq major-mode '(Man-mode woman-mode)) ;; これはmanページなので、リンクを作成します。 (let* ((page (org-man-get-page-name)) (link (concat "man:" page)) (description (format "Manpage for %s" page))) (org-store-link-props :type "man" :link link :description description)))) (defun org-man-get-page-name () "バッファ名からページ名を抽出します。" ;; `Man-mode' と `woman-mode' の両方で動作します。 (if (string-match " \\(\\S-+\\)\\*" (buffer-name)) (match-string 1 (buffer-name)) (error "このmanページへのリンクを作成できません"))) (provide 'org-man) ;;; org-man.el ends here
以下を.emacsに加えて、この新しいタイプのリンクを有効にします。
(require 'org-man)
そのファイルを一つずつ順番に検討して、何をするのか見てみましょう。
(require 'org)
を実行してorg.elが読み込まれたことを確認します。
org-add-link-type
を呼び出して、新しいタイプのリンクを接頭辞 ‘man’
で定義します。またこの呼び出しでは、そのようなリンクを辿るために呼び出される関数の名前も含まれています。
org-store-link-functions
に追加します。
ファイルの残りは必要な変数と関数を定義しています。最初に、manページの表示にどのEmacsのコマンドを使うかを決める変数のカスタマイズがあります。2つのオプション、man
と woman
があります。次に、リンクを辿る関数が定義されています。リンクのパスは引数として渡されます —
この場合、リンクのパスは単にmanコマンドのトピックです。この関数はmanページの表示にorg-man-command
の値を呼び出します。
最後に、関数org-man-store-link
が定義されています。C-c
lでリンクを保存する時に、リンクを作成するためにこの関数が呼び出されます。関数は、このバッファのタイプでリンク作成がサポートされているかどうかを最初に判断します;
変数major-mode
の値をチェックして判断します。サポートされていない場合、関数は終了して、nil
の値を返します。サポートされている場合、バッファ名からmanのトピックを取得して、文字列
‘man:’
の後に繋げることで、リンクを生成します。次に、コマンドorg-store-link-props
を呼び出して、:type
と:link
プロパティを設定します。任意で:descriptiion
プロパティを設定できます。これは、後にC-c
C-lでOrg-modeのバッファにリンクが挿入される時のリンクの説明のデフォルト値を用意します。
新しいタイプのリンクを正しく設定できると、C-c C-lでリンクを挿入するときの特別な機能(例えば
補完機能)のサポートを実装する関数org-PREFIX-complete-link
を定義できます。そのような関数は引数をとらず、接頭辞がついたリンク全体を返します。
Org-modeでは、文脈に依存して動作が変わるコマンドが幾つかあります。最も重要な例はC-c C-c(see 「C-c C-c」キーはとても忙しい)です。また、M-cursor と M-S-cursor キーもこの性質を持っています。
アドオンにとって特別な文脈を検知し、文脈に沿って適切に実行する関数を準備することによって、アドオンはこの機能を活用できます。ここに例として Dan
Davisonの
org-R.elがあります。このファイルはRプログラミング言語138に基づいてコマンドを実行できます。このパッケージでは、特別な文脈とは#+R:
や #+RR:
で始まる行のことです。
(defun org-R-apply-maybe () "org-Rの文脈なら検知して、Rのコマンドを実行します。" (if (save-excursion (beginning-of-line 1) (looking-at "#\\+RR?:")) (progn (call-interactively 'org-R-apply) t) ;; 処置したと信号を送ります nil)) ;; 処置しなかったと信号を送ります (add-hook 'org-ctrl-c-ctrl-c-hook 'org-R-apply-maybe)
関数は最初にそのような行にカーソルがあるのかをチェックします。そうである場合、org-R-apply
が呼び出されて関数は処置したと信号を送るためにt
を返し、そしてC-c
C-cは他の文脈を探すことを止めます。もし関数がそこですべきことが無いと分かった場合は、他の同じような関数が試せるようにnil
を返します。
Orgtblモードを任意のバッファでマイナーモードとして使えるため、LaTeXのような特定言語のテーブルでモードを動作させる機能の要望がよく出されます。しかし、通常の方法でこれを実装するのは極めて難しく、結局悪夢のような設定となってしまい、Orgtblモードのテーブルエディタによって得られる単純さのほとんどを失ってしまうでしょう。
この付録では、別の方法を説明します。Orgtblモード本来のフォーマットでテーブルを保ち(もとのテーブル)、その表を正しいシンタックスへと変換するカスタム関数を使い、(目的のテーブルを)正しい場所に配置します。これはユーザーに変換する関数を書く負担をかけますが、まさにフレキシブルな方法が可能となります。
Bastienはリストに対して同じ機能をOrgstructモードに加えました。リストを編集したり構造化するOrg-modeの機能を使うには、orgstruct-mode
をオンにして、そこで当該リストを別のフォーマット(HTML,
LaTeX もしくは Texinfo)へとエクスポートしてください。
ターゲットテーブルの場所を定義するには、Orgtblモードが見つけ出せるマジックワード含んだ2行のコメントを最初にカレントモード内で作成します。Orgtblモードはその2行の間に変換されたテーブルを挿入します。前に何が在ったかは考慮せずに置き換えます。例えば:
/* BEGIN RECEIVE ORGTBL table_name */ /* END RECEIVE ORGTBL table_name */
ソーステーブル(元のテーブル)のすぐ上に、変換する方法と挿入する場所をOrgtblモードに知らせる特別な行を付け加えます。例えば:
#+ORGTBL: SEND table_name translation_function arguments....
table_name
はそのテーブルの参照名で、それは変換結果を挿入する行でも使われます。translation_function
は変換するLispの関数です。加えて、その行の最後では、(keyとvalueを交互においた)引数のリストを含むことができます。引数はプロパティのリストとして解釈するために、変換する関数(translation
function)に渡されます。変換する関数(translation
function)が呼び出される前に、いくつかの基本的なパラメーターは既に認識され、影響を受けています。
:skip N
:skipcols (n1 n2 ...)
残る1つの問題は、ファイルの通常動作を妨げずに、バッファ内のソーステーブルを保つ方法です。例えば、C言語のファイルやLaTeXファイルを編集している場合です。いくつかの方法があります:
LaTeXでソーステーブルを囲む最良の方法は、comment.styで提供されるcomment
環境を使うことです。文書のヘッダーに\usepackage{comment}
と書くことで有効になります。OrgtblモードでM-x
orgtbl-insert-radio-tableとすると、テーブルのスケルトンを挿入できます139。
テーブル名を確認されますので、‘salesfigures’と入力します。 そして以下のテンプレートを得ました:
% BEGIN RECEIVE ORGTBL salesfigures % END RECEIVE ORGTBL salesfigures \begin{comment} #+ORGTBL: SEND salesfigures orgtbl-to-latex | | | \end{comment}
#+ORGTBL:
SEND
の行は、関数orgtbl-to-latex
を使ってテーブルをLaTeXへ変換し、salesfigures
の名前で受け取る場所に設置するようにと、Orgtblモードに指示しています。これからテーブルに記入します—スプレッドシートの機能を自由に使ってください140:
% BEGIN RECEIVE ORGTBL salesfigures % END RECEIVE ORGTBL salesfigures \begin{comment} #+ORGTBL: SEND salesfigures orgtbl-to-latex | 月 | 日数 | 販売数 | 一日あたり | |-----+------+--------+------------| | 1月 | 23 | 55 | 2.4 | | 2月 | 21 | 16 | 0.8 | | 3月 | 22 | 278 | 12.6 | #+TBLFM: $4=$3/$2;%.1f % $ (font-lock 色分けをうまく動作させるための余分なドル記号、脚注参照) \end{comment}
入力し終わり、テーブルの中でC-c C-cと押下すると、目印となる2行の間に変換されたテーブルが挿入されます。
さて、列の文字揃えを制御したいなどの理由から、テーブルのヘッダーを書きたいとします。この場合は次のことを確認します。テーブルを変換する関数がソーステーブルの最初の2行を飛ばすことと、接合部として動作すること、すなわち ターゲットテーブルのヘッダーとフッターを生成しないことです:
\begin{tabular}{lrrr} 月 & \multicolumn{1}{c}{日数} & 販売数 & 一日あたり \\ % BEGIN RECEIVE ORGTBL salesfigures 1月 & 23 & 55 & 2.4 \\ 2月 & 21 & 16 & 0.8 \\ 3月 & 22 & 278 & 12.6 \\ % END RECEIVE ORGTBL salesfigures \end{tabular} % \begin{comment} #+ORGTBL: SEND salesfigures orgtbl-to-latex :splice t :skip 2 | 月 | 日数 | 販売数 | 1日あたり | |-----+------+--------+-----------| | 1月 | 23 | 55 | 2.4 | | 2月 | 21 | 16 | 0.8 | | 3月 | 22 | 278 | 12.6 | #+TBLFM: $4=$3/$2;%.1f \end{comment}
LaTeXへ変換する関数orgtbl-to-latex
は既にOrgtblモードの一部です。tabular
環境を使ってテーブルをタイプセットし、横線に\hline
で印を付けます。加えて、以下のパラメーターを解釈します(see 変換関数も参照してください):
:splice nil/t
:fmt fmt
%s
にはフィールドの元の値が入っています。例えばドルマークで囲む場合には、:fmt
"$%s$"
と書けます。また、列の番号とフォーマットというプロパティのリストにもなります。例えば:fmt (2 "$%s$" 4
"%s\\%%")
と書けます。文字列の変わりに、1つの引数を持つ関数を使えます; その関数は書式設定された文字列を返します。
:efmt efmt
%s
が2回出現します。例えば"%s\\times10^{%s}"
。デフォルトでは"%s\\,(%s)"
です。これも列数と書式設定のリスト、例えば:efmt
(2 "$%s\\times10^{%s}$" 4
"$%s\\cdot10^{%s}$")
となり得ます。値にefmt
が適用された後に、fmt
も適用されます。fmt
と同様に、文字列の代わりに引数2つの関数を使えます。
Orgtblモードには幾つかの組み込み変換関数があります: orgtbl-to-csv
(カンマ区切り),
orgtbl-to-tsv
(タブ区切り) orgtbl-to-latex
, orgtbl-to-html
そして
orgtbl-to-texinfo
です。orgtbl-to-html
141を除いた、これら全ての関数は包括的な変換関数orgtbl-to-generic
を使います。例えば、orgtbl-to-latex
それ自体はとても短い関数でtabular
環境の列の定義を計算したり、幾つかのフィールドセパレータや行セパレータを定義してそれから処理を包括的な変換関数へと渡しています。ここに完全なコードがあります:
(defun orgtbl-to-latex (table params) "OrgtblモードのテーブルをLaTeXに変換します。" (let* ((alignment (mapconcat (lambda (x) (if x "r" "l")) org-table-last-alignment "")) (params2 (list :tstart (concat "\\begin{tabular}{" alignment "}") :tend "\\end{tabular}" :lstart "" :lend " \\\\" :sep " & " :efmt "%s\\,(%s)" :hline "\\hline"))) (orgtbl-to-generic table (org-combine-plists params2 params))))
ご覧のように、関数に渡されたプロパティ(変数PARAMS)が、関数の中で新しく定義されたプロパティ(変数PARAMS2)と結合されています。関数に渡されたもの(すなわち‘ORGTBL SEND’行でセットされたプロパティ)が優先されます。よって、もしLaTeX 変換関数を使いたけれども、行の最後はデフォルトの‘\\’の代わりに‘\\[2mm]’としたいなら、デフォルトの設定をこのように上書きできます
#+ORGTBL: SEND test orgtbl-to-latex :lend " \\\\[2mm]"
新しい言語に対して、LaTeX変換関数とのアナロジーから自分で変換関数を書くか、もしくは、包括的な変換関数を直接使うこともできます。例えば、もしある言語では、テーブルが始まるときは‘!BTBL!’、終わるときには‘!ETBL!’、そしてテーブル行は‘!BL!’で始まり、‘!EL!’で終わり、フィールドセパレータはタブだとしたら、このように(1行だけで!)包括的な変換関数を呼び出すことができます:
#+ORGTBL: SEND test orgtbl-to-generic :tstart "!BTBL!" :tend "!ETBL!" :lstart "!BL! " :lend " !EL!" :sep "\t"
関数によって理解されるパラメーターの完全なリストのために、関数orgtbl-to-generic
の説明文をチェックしてください。そして、それらの1つずつをorgtbl-to-latex
、orgtbl-to-texinfo
や、包括的な変換関数を使った何か他の関数に渡せることを覚えて下さい。
もちろん包括的な変換関数では行えない複雑な事を処理する全く新しい関数を書くこともできます。変換関数は2つの引数を持ちます。1つ目の引数はテーブル、行のリスト、それぞれの行のシンボルコードhline
もしくはフィールドのリストです。2つめの引数はプロパティリストで、‘#+ORGTBL:
SEND’行で指定された全てのパラメーターを含みます。関数は書式設定されたテーブルを含む1つの文字列を返します。もし一般に有用な変換関数を書いた場合、他の人があなたの仕事から恩恵に預かれるように、どうかemacs-orgmode@gnu.orgに投稿して下さい。
ラジオリストを送受信する方法は、ラジオテーブル(see ラジオテーブル)を送受信する方法と全く同じです。ラジオテーブル(ラジオリストのtypo?)に関しては、関数org-list-insert-radio-list
を呼び出して、HTMLモード、LaTeXモードそしてTexinfoモードにラジオリストを挿入できます。
ここではラジオテーブルとの違いを説明します:
ORGTBL
の代わりに、キーワードORGLST
を使います。
これはLaTeXの例です。LaTeXファイルに以下が書いてあるとします:
% BEGIN RECEIVE ORGLST to-buy % END RECEIVE ORGLST to-buy \begin{comment} #+ORGLST: SEND to-buy org-list-to-latex - 新しい家 - 新しいコンピュータ + 新しいキーボード + 新しいマウス - 新しい生活 \end{comment}
新しい家
の上で`C-c C-c'とタイプすると、LaTeXに変換されたリストが目印の2行の間に挿入されます。
Org-modeの文書は動的なブロックを含むことができます。これらのブロックはユーザーが書いた関数によって更新される印のついた領域です。そのようなブロックの良い例は、C-c C-x C-r(see 作業に費やした時間の計測)というコマンドで挿入した時計のテーブル(クロックテーブル)です。
動的なブロックは、そのブロックに名前を指定し、そしてそのブロックの内容を実行する機能のためのパラメーターを指定する「BEGIN-END」構造によって囲まれている必要があります。
#+BEGIN: myblock :parameter1 value1 :parameter2 value2 ... #+END:
org-dblock-update
)動的なブロックを更新するということは、すべての「BEGIN」と「END」の間のテキストを取り除き、「BEGIN」の行に書かれているパラメーターを解析し、それからそのブロックのための特定の書き出し用の関数を呼び出して新しい内容を書き込むことを意味します。もしもその書き出し用の関数の中で元の中身を使いたい場合は、追加のパラメーターである:content
を使えます。
myblock
という名前のブロックに対する書き出し用の関数はorg-dblock-write:myblock
です。BEGINの行にて与えられるパラメーターのプロパティリストを単一パラメータとして受け取ります。ブロックの一例として、ブロックを更新する関数が最後に実行されたのはいつかを記録します:
#+BEGIN: block-update-time :format "on %m/%d/%Y at %H:%M" #+END:
対応するブロックへの書き出し用の関数は、このようになっています:
(defun org-dblock-write:block-update-time (params) (let ((fmt (or (plist-get params :format) "%d. %m. %Y"))) (insert "ブロックの最終更新日時は: " (format-time-string fmt (current-time)))))
もしもすべての動的なブロックが常に最新のものに更新されるようにしたいならば、関数org-update-all-dblocks
をフック、例えば変数before-save-hook
に追加します。org-update-all-dblocks
はorg-mode
内ではないバッファの中では何もしないように書かれています。
org-narrow-to-block
を使って、(他のブロックの様に)現在のバッファを現在の動的なブロックへとナローイングできます。
Org-modeでは、以下のアジェンダビューによって選択されたものを絞り込む特別なフック関数を用意しています: todo
,
alltodo
, tags
, tags-todo
,
tags-tree
。検索でマッチする度に、実際にアジェンダビューでマッチしたかを確認したり、もしマッチしなければどれくらい飛ばすのかを、関数で指定できます。全てのアジェンダビューに適用されるようにグローバルな条件を設定でき、それは変数org-agenda-skip-function-global
に格納されます。通常は、変数org-agenda-skip-function
を使って、このような定義を特定のカスタムサーチに適用します。
プロジェクトのツリーのどこかにWAITINGというタグを含むプロジェクトのリストを作成する場合を考えてみましょう。ツリーの見出しには、プロジェクトを定義するTODOのキーワード「PROJECT」でマークされているとします。この場合、キーワードのPROJECTでTODOを検索し、プロジェクトのサブツリーにWAITINGのタグが無ければ検索でマッチしてもスキップしたいとします。
これを達成するには、サブツリーをタグで検索する関数を書かなければなりません。もしそのタグが見つかったら、そのマッチはスキップされるべきではないと示すために、その関数はnil
を返さなければなりません。もしそのようなタグが無ければ、そこから検索し続けるということを示すために、そのサブツリーの終端の場所を返さなくてはなりません。
(defun my-skip-unless-waiting () "waitingでないツリーをスキップします" (let ((subtree-end (save-excursion (org-end-of-subtree t)))) (if (re-search-forward ":waiting:" subtree-end t) nil ; タグが見つかったので、スキップしません subtree-end))) ; タグが見つからないので、サブツリーの最後から検索を再開します
今からこの関数をアジェンダのカスタムコマンドで使えます。例えばこうなります:
(org-add-agenda-custom-command '("b" todo "PROJECT" ((org-agenda-skip-function 'my-skip-unless-waiting) (org-agenda-overriding-header "waiting (待ち)状態のプロジェクト: "))))
関数org-agenda-overriding-header
を使って、アジェンダビューで意味のある見出しに変更したことにも注意して下さい。
カスタム検索を作成するには、あるレベルの制限を設けた検索を基づくのが一般的な方法です。自作の検索関数で全てのエントリーを検索したい場合は、単に‘LEVEL>0’142を検索した後に、必要なエントリを選択してください。
変数org-agenda-skip-function
にLispフォームを渡すこともできます。具体的に言うと、例えばこのように関数org-agenda-skip-entry-if
と関数org-agenda-skip-subtree-if
とを使えます:
'(org-agenda-skip-entry-if 'scheduled)
'(org-agenda-skip-entry-if 'notscheduled)
'(org-agenda-skip-entry-if 'deadline)
'(org-agenda-skip-entry-if 'scheduled 'deadline)
'(org-agenda-skip-entry-if 'todo '("TODO" "WAITING"))
'(org-agenda-skip-entry-if 'todo 'done)
'(org-agenda-skip-entry-if 'timestamp)
'(org-agenda-skip-entry 'regexp "regular expression")
'(org-agenda-skip-entry 'notregexp "regular expression")
'(org-agenda-skip-subtree-if 'regexp "regular expression")
従って特別な関数を定義しなかったとしても、WAITINGがあるプロジェクトの検索をこのように書くこともできました:
(org-add-agenda-custom-command '("b" todo "PROJECT" ((org-agenda-skip-function '(org-agenda-skip-subtree-if 'regexp ":waiting:")) (org-agenda-overriding-header "waiting (待ち)状態のプロジェクト: "))))
Org-modeは、コマンドラインからEmacsのバッチモードでアジェンダの情報にアクセスするコマンドを用意しています。
この抽出された情報はプリンタに直接送ることも可能ですし、更にデータを処理させるプログラムに読み込ませることも可能です。1つ目のコマンドは関数org-batch-agenda
であり、アジェンダビューを作成し、それをASCIIテキストとしてSTDOUTへと送ります。コマンドはパラメーターとして1つの文字列をとります。文字列の長さが1のとき、org-agenda-custom-commands
にあなたが設定したコマンドの1つが使われます。基本的に、C-c
aの後にはどんなキーも使えます。例えば、現在のTODOリストを直接印刷するなら、このように使えます
emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr
パラメーターが2文字以上の文字列の場合、tags/TODOの検索に使われます。例えば、地元でのショッピングリスト(‘shop’というタグが付いていて、‘NewYork’というタグを含んでいない全てのアイテム)を印刷するには、このように使えます
emacs -batch -l ~/.emacs \ -eval '(org-batch-agenda "+shop-NewYork")' | lpr
このように、その場でパラメーターを変えることもできます:
emacs -batch -l ~/.emacs \ -eval '(org-batch-agenda "a" \ org-agenda-span month \ org-agenda-include-diary nil \ org-agenda-files (quote ("~/org/project.org")))' \ | lpr
これは30日のアジェンダを作成します。情報は、Org-modeのファイル~/org/projects.orgだけに制限され、~/diary(日誌)ファイルでさえ含まれません。
もっと洗練された方法でアジェンダのデータを処理したい場合は、アジェンダのアイテム毎に値をカンマで区切られたリストを作成するorg-batch-agenda-csv
というコマンドを使えます。アウトプットの各行にはカンマで区切られたいろいろなフィールドがあります。行内のフィールドは以下の通りです:
category アイテムのカテゴリーです head TODOキーワード、TAGSそしてPRIORITYを除いた見出しです type アジェンダのタイプは、以下が考えられます todo TODO検索で選ばれた tagsmatch tags検索で選ばれた diary diaryからインポートされた deadline デッドラインを設定された scheduled スケジューリングされた timestamp タイムスタンプで選ばれたアポイントメント closed その日付にcloseされたエントリ upcoming-deadline デッドラインが近づいていると警告している past-scheduled その日付より前にスケジューリングされたアイテム, 原文:forwarded scheduled item. block エントリが日付のブロックを持っていて日付を含む todo もしあれば、TODOのキーワード tags 継承したものも含めた全てのtags。コロンで区切られている。 date 2007-2-14のような基準日 time 15:00-16:50のような時間 extra 追加のプラニング情報の文字列 priority-l もし与えられていれば優先順位の文字 priority-n 計算された数字の優先度
タイムスタンプ(すなわちデッドラインを設定された/スケジューリングされた)がそのアイテムのセクションをleadする場合にのみTimeもしくはdateが与えられます。
このようなCSVリストは後処理のスクリプトでとても使いやすいです。例のPerlプログラムは、Emacs/Org-modeからTODOリストを取得して、前にチェックボックスを挿入して、全てのアイテムを出力します。
#!/usr/bin/perl # 実行するEmacsのコマンドを定義します $cmd = "emacs -batch -l ~/.emacs -eval '(org-batch-agenda-csv \"t\")'"; # 実行してアウトプットを取得します $agenda = qx{$cmd 2>/dev/null}; # 全ての行についてループします foreach $line (split(/\n/,$agenda)) { # それぞれの値を取得します ($category,$head,$type,$todo,$tags,$date,$time,$extra, $priority_l,$priority_n) = split(/,/,$line); # 処理して出力します print "[ ] $head\n"; }
ポイントかマーカー(point-or-marker POM)の位置でのエントリのプロパティを全て取得します。
これには、TODOキーワード, tags, デッドラインのtime文字列, スケジューリングのtime文字列, 計測のtime文字列, エントリ内で更に定義されているプロパティが含まれます。返り値は連想リストです。プロパティのキーが何度も使われた場合は、キーは複数回出現します。
POMはnilとなり得ます。その場合は現在のエントリが使われます。WHICHがnilもしくは`all'の場合、全てのプロパティを取得します。WHICHが`special'もしくは`standard'の場合、部分集合(subclass)を取得します。
ポイントかマーカー(point-or-marker POM)の位置でのエントリーのプロパティ PROPERTY の値を取得します。デフォルトでは、そのエントリーで局所的に定義されたプロパティのみを調べます。もしINHERITがnon-nilかつエントリーがプロパティを持っていない場合、階層のより高いレベルをチェックします。もしINHERITがシンボル
selective
である場合、継承を使います。また、継承を使うのは、継承のためのプロパティをorg-use-property-inheritance
の設定が選んだときに限ります。
ポイントかマーカー(point-or-marker POM)の位置のエントリーからプロパティPROPERTYを削除します。
ポイントかマーカー(point-or-marker POM)の位置のエントリにプロパティPROPERTYの値VALUEをセットします。
ポイントかマーカー(point-or-marker POM)のプロパティPROPERTYを値VALUESにセットします。値VALUESは文字列のリストでなければなりません。それらはスペースを区切り文字として連結されます。
プロパティPROPERTYの値を、値がスペースで区切られたリストとして扱い、文字列のリストを返します。
プロパティPROPERTYの値を、値がスペースで区切られたリストとして扱い、このリストの中に値VALUEがあることを確認します。
プロパティPROPERTYの値を、値がスペースで区切られたリストとして扱い、このリストの中に値VALUEがないことを確認します。
プロパティPROPERTYの値を、値がスペースで区切られたリストとして扱い、このリストの中に値VALUEがあるかをチェックします。
特定のプロパティに許可された値を提供する関数へのフックです。その関数はプロパティの名前を単一の引数として受け取り、許可された値の単純なリストを返します。‘:ETC’がその値の1つである場合、その値を補完の候補として使いますが、他の値も入力することができます。もし関数がプロパティと関係無い場合には、関数は
nil
を返します。
Org-modeは一定の基準を満たす全てのエントリーを探すために、洗練されたマッピング機能を持っています。アジェンダビューを作成するために内部でこの機能を使われていますが、エントリのそれぞれもしくは選択されたエントリに対して任意の関数を実行するためにAPIも使われます。
範囲SCOPEの内でMATCHにマッチして選択された各見出しで関数FUNCを呼び出します。
FUNCは関数かLispのフォームです。関数は引数なしですが、見出しの始まりと終わりのカーソル位置とともに呼び出されます。関数への全ての返り値は、リストとして集められて返されます。
save-excursionフォームの中でFUNCを呼び出されるので、ポイントを保存する必要がありません。評価の後に、カーソルは(処理しているエントリの)行末に移動し、検索を続行します。ある条件では、この方法では希望する結果を得られないかも知れません。例えば、もし現在の(サブ)ツリーを削除した(例えば アーカイブした)場合、次のエントリをスキップすることを意味します。そのような場合、変数`org-map-continue-from'に希望するバッファポジションをFUNCに設定させることで、どこから検索を続けるべきかというポジションを指定できます。
アジェンダビューに使われるとき、MATCHはtags/property/todoにマッチします。繰り返しの間、このクエリにマッチする見出しだけが考慮されます。もしMATCHがnilかtの場合、繰り返しで全ての見出しがチェックされます。
SCOPEはこのコマンドのスコープ(対象とする範囲)を決定します。以下のどれかになり得ます:
nil カレントバッファ、 制限があればそれに従う tree 現在位置のエントリから始まるサブツリー file カレントバッファ、制限なしで file-with-archives カレントバッファ、関連したアーカイブも含む agenda 全てのアジェンダファイル agenda-with-archives 全てのアジェンダフィル、関連したアーカイブファイルも含む (file1 file2 ...) ファイルがリスト形式の場合、リスト内の全てのファイルをスキャンします残りの引数は、スキャナー(読み取る関数?)のスキップ機能の設定として取り扱われます。以下のアイテムをとることができます。
archive アーカイブタグ(archive tag)があるツリーをスキップします comment キーワードCOMMENTがあるツリーをスキップします function or Lisp formorg-agenda-skip-function
の値として使われます。 関数であればいつもtを返します、 FUNCはは呼び出されません、 関数がポイントを置いたままにした位置から検索は続きます
マッピングルーティーンへと与えられる関数はどのような動作もできます。エントリに関する情報を更に集めるためにプロパティAPI(see プロパティAPIを使う)を使えますし、もしくはエントリのメタデータを変更するために使えます。 便利な幾つかの関数を紹介します:
現在のエントリのタグTAGをトグルします。
on
かoff
のいずれかを設定するということは、タグをトグルするのではなく、onかoffのどちらかであることを確かにします。
これは、現在のファイルの中でTODOTOMORROW
を持つ全てエントリを、キーワードUPCOMIND
をつけたTODOのエントリへと変化させる簡単な例です。
(org-map-entries '(org-todo "UPCOMING") "+TOMORROW" 'file 'archive 'comment)
以下の例では、全てのアジェンダファイルに渡って、TODOのキーワードにWAITING
があるエントリの数をカウントします。
(length (org-map-entries t "/+WAITING" 'agenda))
MobileOrg はRichard Morelandよって開発されたiPhone/iPod Touch シリーズの携帯端末のためのアプリケーションです。MobileOrgは「リアル」のコンピュータ上にあるOrg-modeシステムのために、オフラインのビューとキャプチャによるサポートを提供します。その機能によって、実際のエントリーがどのように変化したかについて記録することができます。AndroidのユーザーはMatt Jonesよって作成されたMobileOrg Androidのアプリをチェックしてください。
この付録では、MobileOrgで表示されるフォーマットの中でアジェンダビューを作成し、キャプチャされたノートとMobileOrgで変更を、メインのシステムに統合していくために、Org-modeのサポートについて説明します。
MobileOrgの中でタグやTODOの状態を変更するためには、あなたは、例え、ひとつひとつのファイルが、一部しか使っていないとしても、全ての重要なタグやTODOキーワードを網羅するようにorg-todo-keywords
とorg-tags-alist
変数のカスタマイズを設定しなければなりません。MobileOrgは、同様にインバッファの設定で状態やタグを提供しますが、これらの変数の中で設定されているものについてのみ、TODOの状態についての設定
(see ファイル毎のキーワード) や相互に排他的な タグ (see タグの設定) についての装備状況を理解してください。
MobileOrgはサーバー上のディレクトリを通して、Emacsと相互に連携させる必要があります。もしも公開のサーバーを使用しているなら、そのサーバーにアップロードされるファイルを暗号化したいと考えるかもしれません。この機能はOrg-mode7.02の
MobileOrg 1.5(iPhoneバージョン)で実現していますが、あなたのシステムに openssl
をインストールしておく必要があるでしょう。暗号化するために、MobileOrgにパスワードを設定し、Emacs上では、org-mobile-use-encryption
143変数を設定しておく必要があります。
無料のDropbox.comのアカウント144を使い、ディレクトリを作成するのが最も簡単な方法です。MobileOrgで最初にDropboxに接続したときにDropboxの中にMobileOrgのディレクトリが作成されます。そのディレクトリが作成されたあと、次のようにEmacsに書き込みます。
(setq org-mobile-directory "~/Dropbox/MobileOrg")
Org-modeはそのディレクトリの中に、MobileOrg用のファイルを置いたり、そこからキャプチャされたノートを読み込んだりするコマンドを持っています。
この操作では、org-mobile-files
の中にリストアップされている全てのファイルを、org-mobile-directory
で指定したディレクトリにコピーします。デフォルトではこのリストにはすべてのアジェンダファイル(org-agenda-files
に登録されている)を含んでいます。しかしながら、org-mobiles-files
をカスタマイズすることでファイルを追加できます。ファイル名は、org-directory
との相対パスで登録されるので、すべてのファイルがこのディレクトリの中に入ることになります。プッシュする操作で、ユーザー145によって定義されたすべてのカスタマイズされたアジェンダビューを持ったagendas.orgという特別なOrg-modeファイルを作成します。最後に、Org-modeは全ての他のファイルへのリンクを含んだindex.orgというファイルを書き込みます。MobileOrgは、最初サーバーからこのファイルを読み込み、それから、そこに置かれているすべてのアジェンダファイルとOrg-modeファイルをダウンロードします。ダウンロードのスピードを上げるために、MobileOrgは、どのファイルのチェック記号146が変更されたかどうかを読み取るだけなのです。
MobileOrgがサーバーと同期する際に、Org-modeのファイルを閲覧するために呼び出すだけではありません。それによってサーバー上のmobileorg.orgというファイルに対して、フラグがつけられたり、変更されたりしたエントリーに対して、キャプチャされたエントリーやポインタを追加します。Org-modeでは、この情報をInBoxファイルに統合し、フラッグがつけられたエントリーにポインタを使って操作するというpullの操作機能をもっています。どのように動作するのでしょうか。
org-mobile-inbox-for-pull
変数によって、ポインタが付けられたファイルに追加します。記録されたエントリと編集されたイベントは、それぞれInBoxファイル中でトップレベルのエントリーとして位置づけられるでしょう。
:FLAGGED:
というタグが付けられるでしょう。そのため、再び簡単に見つけることができるでしょう。あるエントリを探したり、変更を適用するさいに問題があれば、ポインタのついたエントリーはinboxに残され、エラーメッセージの印がつけられるでしょう。あなたはあとでこれらの案件を手動で解決する必要があります。
:FLAGGED:
というタグを削除するよう指示したことになります。この方法で、あなたはこのフラグの付けられたエントリーを意図したプロセスで完了させるという指示をすることになります。
もしも、すべてのフラグのついたエントリーを直接処理することができないならば、あなたはC-c a ?を入力して、アジェンダビュー148にいつでも戻ることができます。
Org-modeは2003年に誕生しました.Emacs Outlineモードのユーザーインターフェイスに対するフラストレーションから自由になるためでした.私(Carsten Dominik)は,自分のノートとプロジェクトを整理しようと試みていて,Emacs使うことが自然なやり方に思えました.ところが,アウトラインツリーの一部を隠したり表示したりするだけでも,2〜3個のキーを組み合わせたコマンドを,7種類も覚えなければならず,これは全く受け入れがたいことでした(訳注:org-modeでは<TAB>だけでよい).また,アウトラインでノートを取るとき,私は絶えずツリーの構造を変更して,自分の考えや計画に合わせて整理しておきたかったのです.Visibility cyclingとstructure editingは,当初outline-magic.elパッケージに実装されていましたが,すぐにより一般的なorg.elに移しました.プロジェクトを計画するための心地良い環境になったので,次の段階はTODOリスト,基本的なタイムスタンプそしてテーブル機能を追加することでした.これらの機能は,org-modeが今日も追求している2つの主要なゴールを明らかにしました.すなわち,現代的で,アウトラインベースの,革新的かつ直感的な編集機能を持ったプレーンテキストモードになること.そして,ノートファイルに,プロジェクトプランイングの機能を直接組み込むことです.
Org-modeをリリースして以来,私やemacs-orgmode@gnu.orgに送られてくる,文字通りに何千ものeメールは,バグレポート,フィードバック,新しいアイディア,そして時にはパッチやアドオンを絶えず提供してくれます.org-modeを改良するために手助けしてくれるすべての人に感謝します.org-modeの様々な側面で,改善に多大な影響を与えた方々のリストをここに記したいと思います.このリストは完全ではないと思うので,もし書き忘れてしまった方がいればお詫びすると共に,連絡をください.
リストを記す前に,何名かについてアルファベット順で特別に紹介します.
さて!いよいよ貢献してくれた方々のリストに移ります.繰り返しますが,忘れているところがあれば教えてください.
keymapp nil
のミステリアスなバグ(allout.elとの衝突)を解消しました.
content
, STARTUPキーワード: バッファ内での変数制御content
, STARTUPキーワード: 表示、非表示の切り替えentitiesplain
, STARTUPキーワード: バッファ内での変数制御entitiespretty
, STARTUPキーワード: バッファ内での変数制御fnadjust
, STARTUPキーワード: バッファ内での変数制御fnauto
, STARTUPキーワード: バッファ内での変数制御fnconfirm
, STARTUPキーワード: バッファ内での変数制御fninline
, STARTUPキーワード: バッファ内での変数制御fnlocal
, STARTUPキーワード: バッファ内での変数制御fnplain
, STARTUPキーワード: バッファ内での変数制御fnprompt
,キーワード: バッファ内での変数制御hideblocks
, STARTUP keyword: ブロックhideblocks
, STARTUP keyword: バッファ内での変数制御inlineimages
, STARTUP keyword: リンクの扱いinlineimages
, STARTUP keyword: バッファ内での変数制御nofnadjust
, STARTUPキーワード: バッファ内での変数制御nofninline
, STARTUPキーワード: バッファ内での変数制御nohideblocks
, STARTUP keyword: ブロックnohideblocks
, STARTUP keyword: バッファ内での変数制御noinlineimages
, STARTUP keyword: バッファ内での変数制御noinlineimages
, STARTUP keyword: リンクの扱いoverview
, STARTUPキーワード: 表示、非表示の切り替えoverview
, STARTUPキーワード: バッファ内での変数制御shift-selection-mode
: 衝突showall
, STARTUPキーワード: バッファ内での変数制御showall
, STARTUPキーワード: 表示、非表示の切り替えshoweverything
, STARTUPキーワード: バッファ内での変数制御showeverything
, STARTUPキーワード: 表示、非表示の切り替えconstcgs
: バッファ内での変数制御constSI
: バッファ内での変数制御customtime
: バッファ内での変数制御even
: バッファ内での変数制御hidestars
: バッファ内での変数制御odd
: バッファ内での変数制御showstars
: バッファ内での変数制御nologrefile
: バッファ内での変数制御align
: バッファ内での変数制御indent
: バッファ内での変数制御logdone
: バッファ内での変数制御lognoredeadline
: バッファ内での変数制御lognoteclock-out
: バッファ内での変数制御lognotedone
: バッファ内での変数制御lognoterefile
: バッファ内での変数制御lognoterepeat
: バッファ内での変数制御lognotereschedule
: バッファ内での変数制御logredeadline
: バッファ内での変数制御logrefile
: バッファ内での変数制御logrepeat
: バッファ内での変数制御logschedule
: バッファ内での変数制御noalign
: バッファ内での変数制御noindent
: バッファ内での変数制御nologdone
: バッファ内での変数制御nologredeadline
: バッファ内での変数制御nologrepeat
: バッファ内での変数制御nologreschedule
: バッファ内での変数制御nolognoteclock-out
: バッファ内での変数制御$
: アジェンダのコマンド'
: CDLaTeXモード+
: アジェンダのコマンド,
: アジェンダのコマンド,org-agenda-filter-by-tag-refine
: アジェンダのコマンド-
: アジェンダのコマンド.
: アジェンダのコマンド/
: アジェンダのコマンド:
: アジェンダのコマンド;
: カウントダウンタイマー<
: カラムビューの利用<
: 日付/時間プロンプト<
: アジェンダファイル<RET>
: タグの設定<RET>
: 日付/時間プロンプト<RET>
: アジェンダのコマンド<RET>
: 組み込みのテーブルエディタ<SPC>
: タグの設定<SPC>
: アジェンダのコマンド<TAB>
: タグの設定<TAB>
: アジェンダのコマンド<TAB>
: CDLaTeXモード<TAB>
: エントリー中の階層構造<TAB>
: 見出し位置と階層の変更<TAB>
: 表示、非表示の切り替え<TAB>
: 組み込みのテーブルエディタ<TAB>
: 数式の編集とデバッグ<TAB>
: エントリー中の階層構造>
: カラムビューの利用>
: アジェンダのコマンド>
: アジェンダファイル>
: 日付/時間プロンプト?
: MobileOrgからpullする[
: アジェンダのコマンド]
: アジェンダのコマンド^
: CDLaTeXモード_
: CDLaTeXモード`
: CDLaTeXモードa
: カラムビューの利用a
: アジェンダのコマンドB
: アジェンダのコマンドc
: アジェンダのコマンドC
: アジェンダのコマンドC-#
: 一歩進んだ機能C-'
: アジェンダファイルC-,
: アジェンダファイルC-0 C-c
: ノートの再配置C-<RET>
: 見出し位置と階層の変更C-_
: アジェンダのコマンドC-c
: 数式の編集とデバッグC-c
: 移動C-c
: 見出し位置と階層の変更C-c
: 組み込みのテーブルエディタC-c
: 表示、非表示の切り替えC-c
: 組み込みのテーブルエディタC-c
: 数式の編集とデバッグC-c
: タグとプロパティとのマッチングC-c
: 数式の編集とデバッグC-c
: リンクの扱いC-c
: LaTeX/PDFエクスポートコマンドC-c
: リンクの扱いC-c
: TODOの基本C-c
: HTMLエクスポートコマンドC-c
: チェックボックスC-c
: タグの設定C-c
: タグの検索C-c
: 移動C-c
: プロパティの表記法C-c
: カラムビューの利用C-c
: カラム表示の保存C-c
: タイムスタンプの作成C-c
: アジェンダのコマンドC-c
: デッドライン/スケジュールを挿入C-c
: アジェンダのコマンドC-c
: 計測コマンドC-c
: アジェンダのコマンドC-c
: クロックテーブルC-c
: 工数の見積もりC-c
: 相対時間タイマーC-c
: キャプチャの使用C-c
: アジェンダのコマンドC-c
: ファイル内部でのアーカイブC-c
: アジェンダファイルC-c $
: サブツリーを移動するC-c '
: 協調C-c '
: ソースコードの編集C-c '
: ファイルの挿入C-c '
: リテラルの例C-c *
: 見出し位置と階層の変更C-c *
: エントリー中の階層構造C-c *
: テーブルの更新C-c +
: 組み込みのテーブルエディタC-c -
: エントリー中の階層構造C-c /
: プロパティの検索C-c /
: デッドライン/スケジュールを挿入C-c /
: ツリーの抽出C-c /
: デッドライン/スケジュールを挿入C-c /
: 衝突C-c /
: デッドライン/スケジュールを挿入C-c / m
: タグの検索C-c / m
: プロパティの検索C-c / r
: ツリーの抽出C-c ;
: コメント行C-c =
: 数式の編集とデバッグC-c =
: 列の数式C-c \
: プロパティの検索C-c \
: タグの検索C-c ^
: エントリー中の階層構造C-c `
: 組み込みのテーブルエディタC-c a
: タグの検索C-c a
: タグとプロパティとのマッチングC-c a
: タイムラインC-c a
: 検索ビューC-c a
: 毎週/毎日のアジェンダC-c a
: アジェンダビューの出力C-c a
: グローバルなTODOリストC-c a !
: 詳細が未決定なプロジェクトC-c a #
: 詳細が未決定なプロジェクトC-c a ?
: MobileOrgからpullするC-c a C
: 検索式の保存C-c a M
: プロパティの検索C-c a m
: プロパティの検索C-c c C
: キャプチャテンプレートC-c C-*
: エントリー中の階層構造C-c C-a
: 添付C-c C-a a
: 添付C-c C-a c
: 添付C-c C-a d
: 添付C-c C-a D
: 添付C-c C-a f
: 添付C-c C-a F
: 添付C-c C-a i
: 添付C-c C-a l
: 添付C-c C-a m
: 添付C-c C-a n
: 添付C-c C-a o
: 添付C-c C-a O
: 添付C-c C-a s
: 添付C-c C-a z
: 添付C-c C-b
: BeamerクラスのエクスポートC-c C-c
: 脚注C-c C-c
: 協調C-c C-c
: 「C-c C-c」キーはとても忙しいC-c C-c
: キーバインドと便利関数C-c C-c
: コードブロックの評価C-c C-c
: LaTeXコード片のプレビューC-c C-c
: キャプチャの使用C-c C-c
: 計測コマンドC-c C-c
: プロパティの表記法C-c C-c
: 数式の編集とデバッグC-c C-c
: 組み込みのテーブルエディタC-c C-c
: エントリー中の階層構造C-c C-e
: ASCII/Latin-1/UTF-8エクスポートc-c C-e
: 公開の開始C-c C-e
: DocBookエクスポートコマンドC-c C-e
: エクスポート用コマンド選択画面C-c C-e
: LaTeX/PDFエクスポートコマンドC-c C-e A
: ASCII/Latin-1/UTF-8エクスポートC-c C-e a
: ASCII/Latin-1/UTF-8エクスポートC-c C-e c
: iCalendarエクスポートC-c C-e D
: DocBookエクスポートコマンドC-c C-e F
: 公開の開始C-c C-e h
: HTMLエクスポートコマンドC-c C-e H
: HTMLエクスポートコマンドC-c C-e i
: iCalendarエクスポートC-c C-e I
: iCalendarエクスポートC-c C-e j
: TaskJugglerエクスポートC-c C-e J
: TaskJugglerエクスポートC-c C-e l
: LaTeX/PDFエクスポートコマンドC-c C-e m
: FreemindエクスポートC-c C-e n
: ASCII/Latin-1/UTF-8エクスポートC-c C-e P
: 公開の開始C-c C-e R
: HTMLエクスポートコマンドC-c C-e t
: エクスポートオプションC-c C-e u
: ASCII/Latin-1/UTF-8エクスポートC-c C-e U
: ASCII/Latin-1/UTF-8エクスポートC-c C-e v
: ツリーの抽出C-c C-e v D
: DocBookエクスポートコマンドC-c C-e v x
: XOXOエクスポートC-c C-e X
: 公開の開始C-c C-e x
: XOXOエクスポートC-c C-k
: 表示、非表示の切り替えC-c C-k
: キャプチャの使用C-c C-l
: リンクの扱いC-c C-n
: 移動C-c C-o
: 脚注C-c C-o
: リンクの扱いC-c C-o
: キーバインドと便利関数C-c C-q
: タグの設定C-c C-t
: TODOの基本C-c C-v a
: キーバインドと便利関数C-c C-v b
: キーバインドと便利関数C-c C-v C-a
: キーバインドと便利関数C-c C-v C-b
: キーバインドと便利関数C-c C-v C-f
: キーバインドと便利関数C-c C-v C-l
: キーバインドと便利関数C-c C-v C-p
: キーバインドと便利関数C-c C-v C-s
: キーバインドと便利関数C-c C-v C-t
: キーバインドと便利関数C-c C-v C-z
: キーバインドと便利関数C-c C-v f
: キーバインドと便利関数C-c C-v g
: キーバインドと便利関数C-c C-v h
: キーバインドと便利関数C-c C-v i
: BabelライブラリC-c C-v l
: キーバインドと便利関数C-c C-v p
: キーバインドと便利関数C-c C-v s
: キーバインドと便利関数C-c C-v t
: ソースコードの抽出C-c C-v t
: キーバインドと便利関数C-c C-v z
: キーバインドと便利関数C-c C-w
: ノートの再配置C-c C-x
: 組み込みのテーブルエディタC-c C-x
: アジェンダファイルC-c C-x
: 表示、非表示の切り替えC-c C-x
: 計測コマンドC-c C-x
: アジェンダのコマンドC-c C-x
: クロックテーブルC-c C-x
: カスタムタイムフォーマットC-c C-x
: ファイル内部でのアーカイブC-c C-x
: クロックテーブルC-c C-x
: RSSフィードC-c C-x
: カラム表示の保存C-c C-x
: リンクの扱いC-c C-x
: カラム表示の保存C-c C-x
: 工数の見積もりC-c C-x
: 見出し位置と階層の変更C-c C-x
: 相対時間タイマーC-c C-x
: アジェンダのコマンドC-c C-x ,
: 相対時間タイマーC-c C-x ;
: カウントダウンタイマーC-c C-x \
: 下付き文字と上付き文字C-c C-x \
: 特殊記号C-c C-x C-a
: アーカイブC-c C-x C-c
: アジェンダのカラム表示C-c C-x C-c
: カラムビューの利用C-c C-x C-i
: 計測コマンドC-c C-x C-l
: LaTeXコード片のプレビューC-c C-x C-p
: リンクの扱いC-c C-x C-s
: サブツリーを移動するC-c C-x C-u
: ダイナミックブロックC-c C-x C-w
: 見出し位置と階層の変更C-c C-x f
: 脚注C-c C-x g
: RSSフィードC-c C-x M-w
: 組み込みのテーブルエディタC-c C-x o
: TODO間の関係C-c C-x p
: Orgプロパティでのヘッダー引数C-c C-y
: 計測コマンドC-c C-z
: 引き出しC-c C-z
: アジェンダのコマンドC-c l
: リンクの扱いC-c l
: リテラルの例C-c {
: CDLaTeXモードC-c {
: 数式の編集とデバッグC-c }
: 数式の編集とデバッグC-c ~
: 協調C-k
: アジェンダのコマンドC-S-<left>
: アジェンダのコマンドC-S-<left>
: キーワードセットC-S-<RET>
: 見出し位置と階層の変更C-S-<right>
: アジェンダのコマンドC-S-<right>
: キーワードセットC-
TAB: ファイル内部でのアーカイブC-u
: クロックテーブルC-u
: テーブルの更新C-u
: ノートの再配置C-u
: カラム表示の保存C-u
: サブツリーを移動するC-u
: TODO間の関係C-u C-c
: TODOの基本C-u C-c
: ダイナミックブロックC-u C-c !
: タイムスタンプの作成C-u C-c *
: テーブルの更新C-u C-c .
: タイムスタンプの作成C-u C-c =
: 数式の編集とデバッグC-u C-c =
: フィールドと範囲の数式C-u C-c c
: キャプチャの使用C-u C-c C-c
: テーブルの更新C-u C-c C-l
: リンクの扱いC-u C-c C-x
: ファイル内部でのアーカイブC-u C-c C-x ,
: 相対時間タイマーC-u C-u
: 表示、非表示の切り替えC-u C-u C-c
: ノートの再配置C-u C-u C-c =
: 数式の編集とデバッグC-u C-u C-c c
: キャプチャの使用C-u C-u C-c C-c
: テーブルの更新C-u C-u C-c C-e
: エクスポート用コマンド選択画面C-u C-u C-c C-t
: キーワードセットC-u C-u C-u <TAB>
: 表示、非表示の切り替えC-up
: キーバインドと便利関数C-v
: 日付/時間プロンプトC-x C-s
: 数式の編集とデバッグC-x C-w
: アジェンダのコマンドC-x C-w
: アジェンダビューの出力C-x n
: 見出し位置と階層の変更C-x n w
: 見出し位置と階層の変更C-y
: 見出し位置と階層の変更d
: アジェンダのコマンドD
: アジェンダのコマンドE
: アジェンダのコマンドe
: カラムビューの利用f
: アジェンダのコマンドF
: アジェンダのコマンドG
: アジェンダのコマンドg
: アジェンダのコマンドg
: カラムビューの利用H
: アジェンダのコマンドI
: アジェンダのコマンドi
: アジェンダのコマンドj
: アジェンダのコマンドJ
: アジェンダのコマンドk
: アジェンダのコマンドk a
: デッドライン/スケジュールを挿入k s
: デッドライン/スケジュールを挿入L
: アジェンダのコマンドl
: アジェンダのコマンドm
: アジェンダのコマンドM
: アジェンダのコマンドM-<down>
: 数式の編集とデバッグM-<down>
: 組み込みのテーブルエディタM-<left>
: 組み込みのテーブルエディタM-<left>
: エントリー中の階層構造M-<left>
: 見出し位置と階層の変更M-<RET>
: エントリー中の階層構造M-<RET>
: 見出し位置と階層の変更M-<RET>
: 相対時間タイマーM-<RET>
: 組み込みのテーブルエディタM-<right>
: 見出し位置と階層の変更M-<right>
: 組み込みのテーブルエディタM-<right>
: エントリー中の階層構造M-<TAB>
: ファイル毎のキーワードM-<TAB>
: 補完M-<TAB>
: タグの設定M-<TAB>
: 数式の編集とデバッグM-<TAB>
: プロパティの表記法M-<up>
: 数式の編集とデバッグM-<up>
: 組み込みのテーブルエディタM-a
: 組み込みのテーブルエディタM-down
: キーバインドと便利関数M-e
: 組み込みのテーブルエディタM-g
: ツリーの抽出M-g M-n
: ツリーの抽出M-g p
: ツリーの抽出M-S-<down>
: 見出し位置と階層の変更M-S-<down>
: 数式の編集とデバッグM-S-<down>
: エントリー中の階層構造M-S-<down>
: 組み込みのテーブルエディタM-S-<left>
: 日付/時間プロンプトM-S-<left>
: 見出し位置と階層の変更M-S-<left>
: エントリー中の階層構造M-S-<left>
: 組み込みのテーブルエディタM-S-<RET>
: チェックボックスM-S-<RET>
: エントリー中の階層構造M-S-<RET>
: 見出し位置と階層の変更M-S-<right>
: 見出し位置と階層の変更M-S-<right>
: エントリー中の階層構造M-S-<right>
: 日付/時間プロンプトM-S-<right>
: 組み込みのテーブルエディタM-S-<up>
: 数式の編集とデバッグM-S-<up>
: エントリー中の階層構造M-S-<up>
: 組み込みのテーブルエディタM-S-<up>
: 見出し位置と階層の変更M-v
: 日付/時間プロンプトM-x org-iswitchb
: アジェンダファイルmouse-1
: 脚注mouse-1
: 日付/時間プロンプトmouse-1
: リンクの扱いmouse-2
: アジェンダのコマンドmouse-2
: 脚注mouse-2
: リンクの扱いmouse-3
: アジェンダのコマンドmouse-3
: リンクの扱いn
: アジェンダのコマンドn
: カラムビューの利用o
: アジェンダのコマンドO
: アジェンダのコマンドp
: アジェンダのコマンドp
: カラムビューの利用P
: アジェンダのコマンドq
: アジェンダのコマンドq
: カラムビューの利用R
: アジェンダのコマンドr
: アジェンダのコマンドr
: カラムビューの利用r
: グローバルなTODOリストS
: アジェンダのコマンドS-<down>
: プロパティS-<down>
: エントリー中の階層構造S-<down>
: 日付/時間プロンプトS-<down>
: 数式の編集とデバッグS-<down>
: アジェンダのコマンドS-<down>
: タイムスタンプの作成S-<left>
: カラムビューの利用S-<left>
: 数式の編集とデバッグS-<left>
: TODOの基本S-<left>
: キーワードセットS-<left>
: プロパティの表記法S-<left>
: アジェンダのコマンドS-<left>
: タイムスタンプの作成S-<left>
: エントリー中の階層構造S-<left>
: 日付/時間プロンプトS-<left>
: クロックテーブルS-<RET>
: 組み込みのテーブルエディタS-<right>
: プロパティの表記法S-<right>
: エントリー中の階層構造S-<right>
: タイムスタンプの作成S-<right>
: 日付/時間プロンプトS-<right>
: 数式の編集とデバッグS-<right>
: アジェンダのコマンドS-<right>
: TODOの基本S-<right>
: キーワードセットS-<right>
: クロックテーブルS-<right>
: カラムビューの利用S-<TAB>
: 表示、非表示の切り替えS-<TAB>
: 組み込みのテーブルエディタS-<up>
: タイムスタンプの作成S-<up>
: 日付/時間プロンプトS-<up>
: アジェンダのコマンドS-<up>
: 数式の編集とデバッグS-<up>
: プロパティS-M-<left>
: カラムビューの利用S-M-<RET>
: TODOの基本S-M-<right>
: カラムビューの利用t
: アジェンダのコマンドT
: アジェンダのコマンドU
: アジェンダのコマンドv
: カラムビューの利用v
: アジェンダのコマンドv A
: アジェンダのコマンドv d
: アジェンダのコマンドv L
: アジェンダのコマンドv m
: アジェンダのコマンドv SPC
: アジェンダのコマンドw
: アジェンダのコマンドX
: アジェンダのコマンドx
: アジェンダのコマンドz
: アジェンダのコマンド{
: アジェンダのコマンド}
: アジェンダのコマンドlisp-complete-symbol
: 数式の編集とデバッグnext-error
: ツリーの抽出org-aganda-day-view
: アジェンダのコマンドorg-agenda-action
: アジェンダのコマンドorg-agenda-add-note
: アジェンダのコマンドorg-agenda-archive
: アジェンダのコマンドorg-agenda-archive-default-with-confirmation
: アジェンダのコマンドorg-agenda-archive-to-archive-sibling
: アジェンダのコマンドorg-agenda-archives-mode
: アジェンダのコマンドorg-agenda-bulk-action
: アジェンダのコマンドorg-agenda-bulk-mark
: アジェンダのコマンドorg-agenda-bulk-remove-all-marks
: アジェンダのコマンドorg-agenda-clock-cancel
: アジェンダのコマンドorg-agenda-clock-goto
: アジェンダのコマンドorg-agenda-clock-in
: アジェンダのコマンドorg-agenda-clock-out
: アジェンダのコマンドorg-agenda-clockreport-mode
: アジェンダのコマンドorg-agenda-columns
: アジェンダのカラム表示org-agenda-columns
: アジェンダのコマンドorg-agenda-convert-date
: アジェンダのコマンドorg-agenda-date-prompt
: アジェンダのコマンドorg-agenda-deadline
: アジェンダのコマンドorg-agenda-diary-entry
: アジェンダのコマンドorg-agenda-do-date-earlier
: アジェンダのコマンドorg-agenda-do-date-later
: アジェンダのコマンドorg-agenda-entry-text-mode
: アジェンダのコマンドorg-agenda-exit
: アジェンダのコマンドorg-agenda-file-to-front
: アジェンダファイルorg-agenda-filter-by-tag
: アジェンダのコマンドorg-agenda-follow-mode
: アジェンダのコマンドorg-agenda-goto
: アジェンダのコマンドorg-agenda-goto-calendar
: アジェンダのコマンドorg-agenda-goto-date
: アジェンダのコマンドorg-agenda-goto-today
: アジェンダのコマンドorg-agenda-holidays
: アジェンダのコマンドorg-agenda-kill
: アジェンダのコマンドorg-agenda-later
: アジェンダのコマンドorg-agenda-list
: 毎週/毎日のアジェンダorg-agenda-list-stuck-projects
: 詳細が未決定なプロジェクトorg-agenda-log-mode
: アジェンダのコマンドorg-agenda-manipulate-query-add
: アジェンダのコマンドorg-agenda-month-view
: アジェンダのコマンドorg-agenda-month-year
: アジェンダのコマンドorg-agenda-next-line
: アジェンダのコマンドorg-agenda-open-link
: アジェンダのコマンドorg-agenda-phases-of-moon
: アジェンダのコマンドorg-agenda-previous-line
: アジェンダのコマンドorg-agenda-priority-down
: アジェンダのコマンドorg-agenda-priority-up
: アジェンダのコマンドorg-agenda-quit
: アジェンダのコマンドorg-agenda-recenter
: アジェンダのコマンドorg-agenda-refile
: アジェンダのコマンドorg-agenda-remove-restriction-lock
: アジェンダファイルorg-agenda-remove-restriction-lock
: アジェンダのコマンドorg-agenda-remove-restriction-lock
: アジェンダファイルorg-agenda-reset-view
: アジェンダのコマンドorg-agenda-rodo
: アジェンダのコマンドorg-agenda-schedule
: アジェンダのコマンドorg-agenda-set-restriction-lock
: アジェンダファイルorg-agenda-set-tags
: アジェンダのコマンドorg-agenda-show-and-scroll-up
: アジェンダのコマンドorg-agenda-show-priority
: アジェンダのコマンドorg-agenda-show-tags
: アジェンダのコマンドorg-agenda-sunrise-sunset
: アジェンダのコマンドorg-agenda-switch-to
: アジェンダのコマンドorg-agenda-todo
: アジェンダのコマンドorg-agenda-todo-nextset
: アジェンダのコマンドorg-agenda-todo-previousset
: アジェンダのコマンドorg-agenda-toggle-archive-tag
: アジェンダのコマンドorg-agenda-toggle-diary
: アジェンダのコマンドorg-agenda-toggle-time-grid
: アジェンダのコマンドorg-agenda-tree-to-indirect-buffer
: アジェンダのコマンドorg-agenda-undo
: アジェンダのコマンドorg-archive-subtree
: サブツリーを移動するorg-archive-subtree-default
: アーカイブorg-archive-to-archive-sibling
: ファイル内部でのアーカイブorg-attach
: アジェンダのコマンドorg-attach
: 添付org-attach-attach
: 添付org-attach-delete-all
: 添付org-attach-delete-one
: 添付org-attach-new
: 添付org-attach-open
: 添付org-attach-open-in-emacs
: 添付org-attach-reveal
: 添付org-attach-reveal-in-emacs
: 添付org-attach-set-directory
: 添付org-attach-set-inherit
: 添付org-attach-sync
: 添付org-backward-same-level
: 移動org-beamer-select-environment
: Beamerクラスのエクスポートorg-buffer-property-keys
: プロパティAPIを使うorg-calendar-goto-agenda
: アジェンダのコマンドorg-capture
: キャプチャの使用org-capture-finalize
: キャプチャの使用org-capture-kill
: キャプチャの使用org-capture-refile
: キャプチャの使用org-check-after-date
: デッドライン/スケジュールを挿入org-check-before-date
: デッドライン/スケジュールを挿入org-check-deadlines
: デッドライン/スケジュールを挿入org-clock-cancel
: 計測コマンドorg-clock-display
: 計測コマンドorg-clock-goto
: 計測コマンドorg-clock-in
: 計測コマンドorg-clock-modify-effort-estimate
: 計測コマンドorg-clock-modify-effort-estimate
: 工数の見積もりorg-clock-out
: 計測コマンドorg-clock-report
: クロックテーブルorg-clocktable-try-shift
: クロックテーブルorg-clone-subtree-with-time-shift
: 見出し位置と階層の変更org-columns
: カラムビューの利用org-columns-delete
: カラムビューの利用org-columns-edit-allowed
: カラムビューの利用org-columns-edit-value
: カラムビューの利用org-columns-narrow
: カラムビューの利用org-columns-new
: カラムビューの利用org-columns-next-allowed-value
: カラムビューの利用org-columns-previous-allowed-value
: カラムビューの利用org-columns-quit
: カラムビューの利用org-columns-redo
: カラムビューの利用org-columns-set-tags-or-toggle
: カラムビューの利用org-columns-show-value
: カラムビューの利用org-columns-widen
: カラムビューの利用org-compute-property-at-point
: プロパティの表記法org-copy-subtree
: 見出し位置と階層の変更org-cut-subtree
: 見出し位置と階層の変更org-cycle
: 見出し位置と階層の変更org-cycle
: エントリー中の階層構造org-cycle
: 表示、非表示の切り替えorg-cycle
: エントリー中の階層構造org-cycle-agenda-files
: アジェンダファイルorg-date-from-calendar
: タイムスタンプの作成org-dblock-update
: ダイナミックブロックorg-dblock-update
: カラム表示の保存org-dblock-update
: クロックテーブルorg-deadline
: デッドライン/スケジュールを挿入org-delete-property
: プロパティの表記法org-delete-property-globally
: プロパティの表記法org-demote
: マッピングAPIを使うorg-demote-subtree
: 見出し位置と階層の変更org-do-demote
: 見出し位置と階層の変更org-do-promote
: 見出し位置と階層の変更org-edit-special
: 協調org-entry-add-to-multivalued-property
: プロパティAPIを使うorg-entry-delete
: プロパティAPIを使うorg-entry-get
: プロパティAPIを使うorg-entry-get-multivalued-property
: プロパティAPIを使うorg-entry-member-in-multivalued-property
: プロパティAPIを使うorg-entry-properties
: プロパティAPIを使うorg-entry-put
: プロパティAPIを使うorg-entry-put-multivalued-property
: プロパティAPIを使うorg-entry-remove-from-multivalued-property
: プロパティAPIを使うorg-evaluate-time-range
: タイムスタンプの作成org-evaluate-time-range
: 計測コマンドorg-export
: エクスポート用コマンド選択画面org-export-as-ascii
: ASCII/Latin-1/UTF-8エクスポートorg-export-as-ascii-to-buffer
: ASCII/Latin-1/UTF-8エクスポートorg-export-as-docbook
: DocBookエクスポートコマンドorg-export-as-docbook-pdf-and-open
: DocBookエクスポートコマンドorg-export-as-freemind
: Freemindエクスポートorg-export-as-html
: HTMLエクスポートコマンドorg-export-as-html-and-open
: HTMLエクスポートコマンドorg-export-as-html-to-buffer
: HTMLエクスポートコマンドorg-export-as-latex
: LaTeX/PDFエクスポートコマンドorg-export-as-latex-to-buffer
: LaTeX/PDFエクスポートコマンドorg-export-as-latin1
: ASCII/Latin-1/UTF-8エクスポートorg-export-as-latin1-to-buffer
: ASCII/Latin-1/UTF-8エクスポートorg-export-as-pdf
: LaTeX/PDFエクスポートコマンドorg-export-as-pdf-and-open
: LaTeX/PDFエクスポートコマンドorg-export-as-taskjuggler
: TaskJugglerエクスポートorg-export-as-taskjuggler-and-open
: TaskJugglerエクスポートorg-export-as-utf8
: ASCII/Latin-1/UTF-8エクスポートorg-export-as-utf8-to-buffer
: ASCII/Latin-1/UTF-8エクスポートorg-export-as-xoxo
: XOXOエクスポートorg-export-icalendar-all-agenda-files
: iCalendarエクスポートorg-export-icalendar-combine-agenda-files
: iCalendarエクスポートorg-export-icalendar-this-file
: iCalendarエクスポートorg-export-region-as-html
: HTMLエクスポートコマンドorg-export-visible
: エクスポート用コマンド選択画面org-feed-goto-inbox
: RSSフィードorg-feed-update-all
: RSSフィードorg-force-cycle-archived
: ファイル内部でのアーカイブorg-forward-same-level
: 移動org-global-cycle
: 表示、非表示の切り替えorg-goto
: 移動org-goto-calendar
: タイムスタンプの作成org-insert-columns-dblock
: カラム表示の保存org-insert-export-options-template
: エクスポートオプションorg-insert-heading
: 相対時間タイマーorg-insert-heading
: エントリー中の階層構造org-insert-heading
: 見出し位置と階層の変更org-insert-heading-respect-content
: 見出し位置と階層の変更org-insert-link
: リンクの扱いorg-insert-property-drawer
: プロパティAPIを使うorg-insert-property-drawer
: プロパティの表記法org-insert-todo-heading
: TODOの基本org-insert-todo-heading
: チェックボックスorg-insert-todo-heading
: 見出し位置と階層の変更org-insert-todo-heading-respect-content
: 見出し位置と階層の変更org-map-entries
: マッピングAPIを使うorg-mark-entry-for-agenda-action
: デッドライン/スケジュールを挿入org-mark-ring-goto
: リンクの扱いorg-mark-ring-push
: リンクの扱いorg-match-sparse-tree
: プロパティの検索org-match-sparse-tree
: タグの検索org-move-subtree-down
: 見出し位置と階層の変更org-move-subtree-up
: 見出し位置と階層の変更org-narrow-to-block
: 見出し位置と階層の変更org-narrow-to-subtree
: 見出し位置と階層の変更org-next-link
: リンクの扱いorg-occur
: ツリーの抽出org-open-at-point
: リンクの扱いorg-open-at-point
: タイムスタンプの作成org-paste-subtree
: 見出し位置と階層の変更org-previous-link
: リンクの扱いorg-priority
: プロパティorg-priority
: マッピングAPIを使うorg-priority-down
: プロパティorg-priority-up
: プロパティorg-promote
: マッピングAPIを使うorg-promote-subtree
: 見出し位置と階層の変更org-property-action
: プロパティの表記法org-property-next-allowed-value
: プロパティの表記法org-property-previous-allowed-value
: プロパティの表記法org-publish
: 公開の開始org-publish-all
: 公開の開始org-publish-current-file
: 公開の開始org-publish-current-project
: 公開の開始org-refile
: ノートの再配置org-refile
: 見出し位置と階層の変更org-refile-cache-clear
: ノートの再配置org-refile-goto-last-stored
: ノートの再配置org-remove-file
: アジェンダファイルorg-reveal
: 表示、非表示の切り替えorg-schedule
: デッドライン/スケジュールを挿入org-search-view
: 検索ビューorg-set-effort
: 工数の見積もりorg-set-property
: プロパティの表記法org-set-startup-visibility
: 表示、非表示の切り替えorg-set-tags-command
: タグの設定org-show-todo-key
: TODOの基本org-sort-entries-or-items
: 見出し位置と階層の変更org-sparse-tree
: ツリーの抽出org-speedbar-set-agenda-restriction
: アジェンダファイルorg-store-agenda-views
: アジェンダビューの出力org-store-link
: リンクの扱いorg-table-align
: 組み込みのテーブルエディタorg-table-beginning-of-field
: 組み込みのテーブルエディタorg-table-copy-down
: 組み込みのテーブルエディタorg-table-copy-region
: 組み込みのテーブルエディタorg-table-create-or-convert-from-region
: 組み込みのテーブルエディタorg-table-create-with-table.el
: 協調org-table-cut-region
: 組み込みのテーブルエディタorg-table-delete-column
: 組み込みのテーブルエディタorg-table-edit-field
: 組み込みのテーブルエディタorg-table-edit-formulas
: 数式の編集とデバッグorg-table-end-of-field
: 組み込みのテーブルエディタorg-table-eval-formula
: 列の数式org-table-eval-formula
: 数式の編集とデバッグorg-table-eval-formula
: フィールドと範囲の数式org-table-export
: 組み込みのテーブルエディタorg-table-fedit-abort
: 数式の編集とデバッグorg-table-fedit-finish
: 数式の編集とデバッグorg-table-fedit-line-down
: 数式の編集とデバッグorg-table-fedit-line-up
: 数式の編集とデバッグorg-table-fedit-lisp-indent
: 数式の編集とデバッグorg-table-fedit-ref-down
: 数式の編集とデバッグorg-table-fedit-ref-left
: 数式の編集とデバッグorg-table-fedit-ref-right
: 数式の編集とデバッグorg-table-fedit-ref-up
: 数式の編集とデバッグorg-table-fedit-scroll-down
: 数式の編集とデバッグorg-table-fedit-scroll-up
: 数式の編集とデバッグorg-table-fedit-toggle-ref-type
: 数式の編集とデバッグorg-table-field-info
: 数式の編集とデバッグorg-table-hline-and-move
: 組み込みのテーブルエディタorg-table-insert-column
: 組み込みのテーブルエディタorg-table-insert-hline
: 組み込みのテーブルエディタorg-table-insert-row
: 組み込みのテーブルエディタorg-table-iterate
: テーブルの更新org-table-iterate-buffer-tables
: テーブルの更新org-table-kill-row
: 組み込みのテーブルエディタorg-table-move-column-left
: 組み込みのテーブルエディタorg-table-move-column-right
: 組み込みのテーブルエディタorg-table-move-row-down
: 組み込みのテーブルエディタorg-table-move-row-up
: 組み込みのテーブルエディタorg-table-next-field
: 組み込みのテーブルエディタorg-table-next-row
: 組み込みのテーブルエディタorg-table-paste-rectangle
: 組み込みのテーブルエディタorg-table-previous-field
: 組み込みのテーブルエディタorg-table-recalculate
: テーブルの更新org-table-recalculate-buffer-tables
: テーブルの更新org-table-rotate-recalc-marks
: 一歩進んだ機能org-table-sort-lines
: 組み込みのテーブルエディタorg-table-sum
: 組み込みのテーブルエディタorg-table-toggle-coordinate-overlays
: 数式の編集とデバッグorg-table-toggle-formula-debugger
: 数式の編集とデバッグorg-table-wrap-region
: 組み込みのテーブルエディタorg-tags-view
: プロパティの検索org-tags-view
: タグとプロパティとのマッチングorg-tags-view
: タグの検索org-time-stamp
: タイムスタンプの作成org-time-stamp-inactive
: タイムスタンプの作成org-timeline
: タイムラインorg-timer
: 相対時間タイマーorg-timer-item
: 相対時間タイマーorg-timer-start
: 相対時間タイマーorg-timestamp-down-day
: タイムスタンプの作成org-timestamp-down-down
: タイムスタンプの作成org-timestamp-up
: タイムスタンプの作成org-timestamp-up-day
: タイムスタンプの作成org-todo
: TODOの基本org-todo
: マッピングAPIを使うorg-todo
: 計測コマンドorg-todo-list
: TODOの基本org-todo-list
: グローバルなTODOリストorg-toggle-archive-tag
: ファイル内部でのアーカイブorg-toggle-checkbox
: チェックボックスorg-toggle-heading
: 見出し位置と階層の変更org-toggle-inline-images
: リンクの扱いorg-toggle-ordered-property
: TODO間の関係org-toggle-ordered-property
: チェックボックスorg-toggle-tag
: マッピングAPIを使うorg-toggle-time-stamp-overlays
: カスタムタイムフォーマットorg-tree-to-indirect-buffer
: 表示、非表示の切り替えorg-update-all-dblocks
: カラム表示の保存org-update-statistics-cookies
: チェックボックスorg-write-agenda
: アジェンダのコマンドorg-write-agenda
: アジェンダビューの出力org-yank
: 見出し位置と階層の変更outline-next-visible-heading
: 移動outline-previous-visible-heading
: 移動outline-up-heading
: 移動pcomplete
: プロパティの表記法previous-error
: ツリーの抽出show-all
: 表示、非表示の切り替えshow-branches
: 表示、非表示の切り替えwiden
: 見出し位置と階層の変更これは変数とフェイスの完全なインデックスではありません.このマニュアルで言及したものだけを列挙しています.さらに詳しいリストは,M-x org-customize <RET>で表示されるカスタムブラウザで確認できます.表示されるツリーをクリックしてください.
cdlatex-simplify-sub-super-scripts
: CDLaTeXモードconstants-unit-system
: バッファ内での変数制御constants-unit-system
: 参照htmlize-output-type
: アジェンダビューの出力LaTeX-verbatim-environments
: LaTeXの例org-adapt-indentation
: アウトラインの「*」を取り除くorg-agenda-add-entry-text-maxlines
: アジェンダビューの出力org-agenda-columns-add-appointments-to-effort-sum
: 工数の見積もりorg-agenda-confirm-kill
: アジェンダのコマンドorg-agenda-custom-commands
: 検索式の保存org-agenda-custom-commands
: アジェンダ情報の抽出org-agenda-custom-commands
: ツリーの抽出org-agenda-custom-commands
: 設定オプションorg-agenda-diary-file
: アジェンダのコマンドorg-agenda-dim-blocked-tasks
: TODO間の関係org-agenda-entry-text-maxlines
: アジェンダのコマンドorg-agenda-exporter-settings
: アジェンダビューの出力org-agenda-exporter-settings
: アジェンダのコマンドorg-agenda-files
: アジェンダの項目をソートするorg-agenda-files
: アジェンダファイルorg-agenda-files
: iCalendarエクスポートorg-agenda-filter-preset
: アジェンダのコマンドorg-agenda-log-mode-items
: アジェンダのコマンドorg-agenda-ndays
: 毎週/毎日のアジェンダorg-agenda-overriding-header
: 特別なアジェンダビューorg-agenda-prefix-format
: 表示とソートorg-agenda-restore-windows-after-quit
: アジェンダビューorg-agenda-show-inherited-tags
: アジェンダのコマンドorg-agenda-skip-archived-trees
: ファイル内部でのアーカイブorg-agenda-skip-function
: 特別なアジェンダビューorg-agenda-skip-function
: マッピングAPIを使うorg-agenda-skip-function-global
: 特別なアジェンダビューorg-agenda-skip-scheduled-if-done
: デッドラインとスケジュールorg-agenda-sorting-strategy
: アジェンダの項目をソートするorg-agenda-span
: アジェンダのコマンドorg-agenda-span
: 毎週/毎日のアジェンダorg-agenda-start-with-clockreport-mode
: アジェンダのコマンドorg-agenda-start-with-entry-text-mode
: アジェンダのコマンドorg-agenda-start-with-follow-mode
: アジェンダのコマンドorg-agenda-tags-column
: 表示とソートorg-agenda-tags-todo-honor-ignore-options
: タグとプロパティとのマッチングorg-agenda-text-search-extra-files
: アジェンダのコマンド選択org-agenda-text-search-extra-files
: 検索ビューorg-agenda-time-grid
: 時刻の仕様org-agenda-time-grid
: アジェンダのコマンドorg-agenda-todo-ignore-deadlines
: グローバルなTODOリストorg-agenda-todo-ignore-scheduled
: グローバルなTODOリストorg-agenda-todo-ignore-timestamp
: グローバルなTODOリストorg-agenda-todo-ignore-with-date
: グローバルなTODOリストorg-agenda-todo-list-sublevels
: タスクの分割org-agenda-todo-list-sublevels
: グローバルなTODOリストorg-agenda-use-time-grid
: アジェンダのコマンドorg-agenda-use-time-grid
: 時刻の仕様org-agenda-window-setup
: アジェンダビューorg-alphabetical-lists
: エントリー中の階層構造org-archive-default-command
: アーカイブorg-archive-default-command
: アジェンダのコマンドorg-archive-location
: バッファ内での変数制御org-archive-location
: サブツリーを移動するorg-archive-save-context-info
: サブツリーを移動するorg-attach-directory
: 添付org-attach-method
: 添付org-babel-default-header-args
: システム全体のヘッダー引数org-babel-default-header-args
: Orgプロパティでのヘッダー引数org-calc-default-modes
: Calc用の数式構文org-clock-idle-time
: 空き時間の解決org-clock-into-drawer
: 計測コマンドorg-clock-modeline-total
: 計測コマンドorg-clocktable-defaults
: クロックテーブルorg-coderef-label-format
: リテラルの例org-columns-default-format
: 工数の見積もりorg-columns-default-format
: カラムビューの利用org-columns-default-format
: アジェンダのコマンドorg-columns-default-format
: アジェンダのカラム表示org-columns-skip-archived-trees
: ファイル内部でのアーカイブorg-combined-agenda-icalendar-file
: iCalendarエクスポートorg-confirm-babel-evaluate
: コード評価の安全性org-confirm-elisp-link-function
: コード評価の安全性org-confirm-shell-link-function
: コード評価の安全性org-create-file-search-functions
: カスタム検索org-ctrl-c-ctrl-c-hook
: 状況依存のコマンドorg-ctrl-k-protect-subtree
: ヘッドラインorg-cycle-emulate-tab
: 表示、非表示の切り替えorg-cycle-global-at-bob
: 表示、非表示の切り替えorg-cycle-include-plain-lists
: エントリー中の階層構造org-cycle-separator-lines
: ヘッドラインorg-deadline-warning-days
: デッドラインとスケジュールorg-deadline-warning-days
: デッドライン/スケジュールを挿入org-default-notes-file
: テンプレートの要素org-default-notes-file
: キャプチャの設定org-default-priority
: バッファ内での変数制御org-default-priority
: プロパティorg-display-custom-times
: 公開オプションorg-display-custom-times
: カスタムタイムフォーマットorg-display-internal-link-with-indirect-buffer
: リンクの扱いorg-disputed-keys
: 衝突org-done
(フェイス): TODOキーワードのフェイスorg-drawers
: バッファ内での変数制御org-drawers
: 引き出しorg-effort-property
: 工数の見積もりorg-empty-line-terminates-plain-lists
: エントリー中の階層構造org-enable-table-editor
: 組み込みのテーブルエディタorg-enforce-todo-dependencies
: TODO間の関係org-entities
: 特殊文字org-entities
: 特殊記号org-execute-file-search-functions
: カスタム検索org-export-ascii-links-to-notes
: ASCII/Latin-1/UTF-8エクスポートorg-export-author-info
: 公開オプションorg-export-creator-info
: 公開オプションorg-export-default-language
: エクスポートオプションorg-export-default-language
: 公開オプションorg-export-docbook-default-image-attributes
: DocBookエクスポートでの画像org-export-docbook-doctype
: 特殊文字org-export-docbook-inline-image-extensions
: DocBookエクスポートでの画像org-export-docbook-xsl-fo-proc-command
: DocBookエクスポートコマンドorg-export-docbook-xslt-proc-command
: DocBookエクスポートコマンドorg-export-docbook-xslt-stylesheet
: DocBookエクスポートコマンドorg-export-email
: 公開オプションorg-export-exclude-tags
: 選択エクスポートorg-export-exclude-tags
: 公開オプションorg-export-headline-levels
: 公開オプションorg-export-headline-levels
: 見出しとセクションorg-export-highlight-first-table-line
: 公開オプションorg-export-html-expand
: 公開オプションorg-export-html-extension
: 公開オプションorg-export-html-extra
: CSSサポートorg-export-html-inline-images
: 公開オプションorg-export-html-inline-images
: HTMLエクスポートでの画像org-export-html-link-home
: 公開オプションorg-export-html-link-org-files-as-html
: 公開オプションorg-export-html-link-up
: 公開オプションorg-export-html-postamble
: 公開オプションorg-export-html-preamble
: 公開オプションorg-export-html-style
: CSSサポートorg-export-html-style
: 公開オプションorg-export-html-style-default
: CSSサポートorg-export-html-style-extra
: 公開オプションorg-export-html-style-include-default
: CSSサポートorg-export-html-style-include-default
: 公開オプションorg-export-html-style-include-scripts
: 公開オプションorg-export-html-table-tag
: 公開オプションorg-export-html-table-tag
: HTMLエクスポートでのテーブルorg-export-html-tag-class-prefix
: CSSサポートorg-export-html-todo-kwd-class-prefix
: CSSサポートorg-export-html-use-infojs
: JavaScriptサポートorg-export-html-with-timestamp
: 公開オプションorg-export-latex-classes
: ヘッダーと章立てorg-export-latex-default-class
: ヘッダーと章立てorg-export-latex-default-packages-alist
: ヘッダーと章立てorg-export-latex-packages-alist
: ヘッダーと章立てorg-export-preserve-breaks
: 公開オプションorg-export-publishing-directory
: 公開オプションorg-export-run-in-background
: エクスポート用コマンド選択画面org-export-section-number-format
: 公開オプションorg-export-select-tags
: 公開オプションorg-export-select-tags
: 選択エクスポートorg-export-skip-text-before-1st-heading
: 公開オプションorg-export-skip-text-before-1st-heading
: 冒頭のテキストorg-export-taskjuggler-default-reports
: TaskJugglerエクスポートorg-export-taskjuggler-project-tag
: TaskJugglerエクスポートorg-export-taskjuggler-resource-tag
: TaskJugglerエクスポートorg-export-with-archived-trees
: 公開オプションorg-export-with-archived-trees
: ファイル内部でのアーカイブorg-export-with-drawers
: 公開オプションorg-export-with-emphasize
: 公開オプションorg-export-with-fixed-width
: 公開オプションorg-export-with-footnotes
: 公開オプションorg-export-with-LaTeX-fragments
: 公開オプションorg-export-with-LaTeX-fragments
: LaTeXのコード片org-export-with-priority
: 公開オプションorg-export-with-section-numbers
: 公開オプションorg-export-with-special-strings
: 公開オプションorg-export-with-sub-superscripts
: 下付き文字と上付き文字org-export-with-sub-superscripts
: 公開オプションorg-export-with-tables
: 公開オプションorg-export-with-tags
: 公開オプションorg-export-with-TeX-macros
: 公開オプションorg-export-with-timestamps
: 公開オプションorg-export-with-toc
: 目次org-export-with-toc
: 公開オプションorg-export-with-todo-keywords
: 公開オプションorg-fast-tag-selection-include-todo
: TODOの状態への素早い対応手段org-fast-tag-selection-single-key
: タグの設定org-file-apps
: リンクの扱いorg-file-apps
: 添付org-footnote-auto-adjust
: 脚注org-footnote-auto-adjust
: バッファ内での変数制御org-footnote-auto-label
: 脚注org-footnote-auto-label
: バッファ内での変数制御org-footnote-define-inline
: バッファ内での変数制御org-footnote-define-inline
: 脚注org-footnote-section
: 脚注org-format-latex-header
: LaTeXのコード片org-format-latex-options
: LaTeXコード片のプレビューorg-format-latex-options
: LaTeXのコード片org-from-is-user-regexp
: テンプレートの拡張org-global-properties
: 工数の見積もりorg-global-properties
: プロパティの表記法org-goto-auto-isearch
: 移動org-goto-interface
: 移動org-hide
(face): アウトラインの「*」を取り除くorg-hide-block-startup
: ブロックorg-hide-leading-stars
: アウトラインの「*」を取り除くorg-hide-leading-stars
: バッファ内での変数制御org-hierarchical-checkbox-statistics
: チェックボックスorg-hierarchical-todo-statistics
: タスクの分割org-highest-priority
: プロパティorg-highest-priority
: バッファ内での変数制御org-icalendar-alarm-time
: iCalendarエクスポートorg-icalendar-categories
: iCalendarエクスポートorg-icalendar-include-body
: iCalendarエクスポートorg-icalendar-include-todo
: iCalendarエクスポートorg-icalendar-store-UID
: iCalendarエクスポートorg-icalendar-use-deadline
: iCalendarエクスポートorg-icalendar-use-scheduled
: iCalendarエクスポートorg-imenu-depth
: 協調org-infojs-options
: JavaScriptサポートorg-insert-mode-line-in-empty-file
: アクティベーションorg-irc-link-to-logs
: リンクの扱いorg-keep-stored-link-after-insertion
: リンクの扱いorg-latex-low-levels
: LaTeX/PDFエクスポートコマンドorg-link-abbrev-alist
: リンクの省略記法org-link-abbrev-alist
: バッファ内での変数制御org-link-to-org-use-id
: リンクの扱いorg-list-automatic-rules
: エントリー中の階層構造org-list-automatic-rules
: チェックボックスorg-list-automatic-rules
: エントリー中の階層構造org-list-demote-modify-bullet
: エントリー中の階層構造org-list-end-regexp
: エントリー中の階層構造org-list-ending-method
: エントリー中の階層構造org-log-done
: 作業の状態変化の追跡org-log-done
: アジェンダのコマンドorg-log-done
: バッファ内での変数制御org-log-into-drawer
: 作業の状態変化の追跡org-log-into-drawer
: アジェンダのコマンドorg-log-note-clock-out
: 計測コマンドorg-log-note-clock-out
: バッファ内での変数制御org-log-refile
: ノートの再配置org-log-repeat
: 繰り返されるタスクorg-log-repeat
: バッファ内での変数制御org-log-states-order-reversed
: 作業の状態変化の追跡org-lowest-priority
: バッファ内での変数制御org-lowest-priority
: プロパティorg-M-RET-may-split-line
: エントリー中の階層構造org-M-RET-may-split-line
: 見出し位置と階層の変更org-odd-levels-only
: 特別なアジェンダビューorg-odd-levels-only
: アウトラインの「*」を取り除くorg-odd-levels-only
: バッファ内での変数制御org-odd-levels-only
: タグとプロパティとのマッチングorg-outline-path-complete-in-steps
: ノートの再配置org-overriding-columns-format
: アジェンダのカラム表示org-plain-list-ordered-item-terminator
: エントリー中の階層構造org-popup-calendar-for-date-prompt
: 日付/時間プロンプトorg-priority-faces
: プロパティorg-priority-start-cycle-with-default
: プロパティorg-property-allowed-value-functions
: プロパティAPIを使うorg-publish-project-alist
: プロジェクトのリストorg-publish-project-alist
: 公開オプションorg-publish-use-timestamps-flag
: 公開の開始org-put-time-stamp-overlays
: バッファ内での変数制御org-read-date-display-live
: 日付/時間プロンプトorg-read-date-prefer-future
: 日付/時間プロンプトorg-refile-allow-creating-parent-nodes
: ノートの再配置org-refile-targets
: ノートの再配置org-refile-use-cache
: ノートの再配置org-refile-use-outline-path
: ノートの再配置org-remove-highlights-with-change
: 計測コマンドorg-remove-highlights-with-change
: ツリーの抽出org-replace-disputed-keys
: 衝突org-return-follows-link
: リンクの扱いorg-reverse-note-order
: ノートの再配置org-show-entry-below
: ツリーの抽出org-show-following-heading
: ツリーの抽出org-show-hierarchy-above
: ツリーの抽出org-show-siblings
: ツリーの抽出org-sort-agenda-noeffort-is-high
: アジェンダのコマンドorg-sparse-tree-open-archived-trees
: ファイル内部でのアーカイブorg-special-ctrl-a/e
: ヘッドラインorg-special-ctrl-k
: ヘッドラインorg-speed-commands-user
: スピードキーorg-startup-align-all-tables
: バッファ内での変数制御org-startup-align-all-tables
: 列幅と整列org-startup-folded
: 表示、非表示の切り替えorg-startup-folded
: バッファ内での変数制御org-startup-indented
: バッファ内での変数制御org-startup-with-inline-images
: リンクの扱いorg-startup-with-inline-images
: バッファ内での変数制御org-store-link-functions
: ハイパーリンクのタイプの追加org-stuck-projects
: 詳細が未決定なプロジェクトorg-support-shift-select
: 衝突org-support-shift-select
: エントリー中の階層構造org-sycle-open-archived-trees
: ファイル内部でのアーカイブorg-table-auto-blank-field
: 組み込みのテーブルエディタorg-table-copy-increment
: 組み込みのテーブルエディタorg-table-export-default-format
: 組み込みのテーブルエディタorg-table-formula
: バッファ内での変数制御org-table-formula-constants
: バッファ内での変数制御org-table-formula-constants
: 参照org-table-formula-constants
: 協調org-table-use-standard-references
: 参照org-table-use-standard-references
: 数式の編集とデバッグorg-tag-alist
: バッファ内での変数制御org-tag-alist
: タグの設定org-tag-faces
: タグorg-tag-persistent-alist
: タグの設定org-tags-column
: タグの設定org-tags-exclude-from-inheritance
: タグの継承org-tags-match-list-sublevels
: タグの継承org-tags-match-list-sublevels
: プロパティの検索org-tags-match-list-sublevels
: タグとプロパティとのマッチングorg-tags-match-list-sublevels
: タグの検索org-time-stamp-custom-formats
: カスタムタイムフォーマットorg-time-stamp-overlay-formats
: バッファ内での変数制御org-time-stamp-rounding-minutes
: タイムスタンプの作成org-todo
(フェイス): TODOキーワードのフェイスorg-todo-keyword-faces
: TODOキーワードのフェイスorg-todo-keywords
: TODOの基本org-todo-keywords
: グローバルなTODOリストorg-todo-keywords
: バッファ内での変数制御org-todo-keywords
: TODO拡張org-todo-repeat-to-state
: 繰り返されるタスクorg-todo-state-tags-triggers
: TODOの基本org-track-ordered-property-with-tag
: TODO間の関係org-track-ordered-property-with-tag
: チェックボックスorg-treat-insert-todo-heading-as-state-change
: 見出し位置と階層の変更org-treat-S-cursor-todo-selection-as-state-change
: TODOの基本org-use-property-inheritance
: iCalendarエクスポートorg-use-property-inheritance
: プロパティの継承org-use-property-inheritance
: プロパティAPIを使うorg-use-speed-commands
: スピードキーorg-use-tag-inheritance
: タグの継承org-yank-adjusted-subtrees
: 見出し位置と階層の変更org-yank-folded-subtrees
: 見出し位置と階層の変更parse-time-months
: 日付/時間プロンプトparse-time-weekdays
: 日付/時間プロンプトps-landscape-mode
: アジェンダビューの出力ps-number-of-columns
: アジェンダビューの出力user-full-name
: エクスポートオプションuser-full-name
: 公開オプションuser-mail-address
: エクスポートオプションuser-mail-address
: 公開オプション[1] もしグローバルにフォントロックを使わない場合は,(add-hook
'org-mode-hook 'turn-on-font-lock)
を使って,Org-modeのバッファのフォントロックを有効化してください.
[2] メーリングリストの管理者の仕事量を最小化するために,ぜひメーリングリストの購読を検討してください.
[3] 見出しの中で、C-a、C-eおよびC-kの特別な作用を設定するために、org-special-ctrl-a/e
、org-special-ctrl-k
、およびorg-ctrl-k-protect-subtree
の変数を参照してください。
[4] しかしながら、org-cycle-emulate-tab
オプションを参照してください。
[5] org-cycle-global-at-bob
オプション参照。
[6] 間接的なバッファとは、(see the Emacs manual for more information about indirect buffers) は全てのバッファを含んでいるが、カレントのツリーに制限されるだろう。間接的なバッファを編集することは、オリジナルのバッファに変更を加えることでもある。だがそのバッファの中での表示に影響を与えることはできない。
[7] もしも行を途中で分割したくないときは、org-M-RET-may-split-line
変数をカスタマイズしてください。
[8] 検索に一致したときに、どの範囲の内容を表示するかを詳細にコントロールするために、org-show-hierarchy-above
org-show-following-heading
、org-show-siblings
、そしてorg-show-entry-below
変数を参照のこと
[9] これはorg-remove-highlights-with-change
オプションに依存する。
[10] このコマンドは、XEmacsでは動作しません。というのは、XEmacsでは、テキスト属性の部分ではなく、アウトラインを選択して表示するために使用するものだからです。
[11] ‘*’を箇条書きの太い中黒として使用するときは、それらの行はインデントが設定されている必要があります。そうでなければ、それらの行は見出しのトップ階層と見なされてしまいます。また、わかりやすいアウトラインビューを得るために、先頭の星印を隠しているときは、プレーンなリストアイテムの場合は、本当の見出しと区別が付かなくなります。簡単に言えば、‘*’をサポートしているもののプレーンなリストアイテムのためには使用しない方が良いかもしれません。
[12] org-plain-list-ordered-item-terminator
の設定によって、それらのリストをはずすことが可能です。
[13] ‘a.’、‘A.’、あるいは‘a)’といった形式も可能です。通常のテキストの混乱を最小限にするために、1つの文字のみに限定されています。この制限を超えると、数字に替えてbulletが自動的に使用されます。
[14] そのアイテムの中にチェックボックスがある場合は、そのクッキーは、チェックボックスの前に置かれなければなりません。もしも活性化されたアルファベットのついたリストがあるならば、[@b]
といったカウンターを使用することもできます。
[15] これらどちらも無効にするためには、org-list-ending-method
を設定します。
[16] org-empty-line-terminates-plain-lists
を参照してください。
[17] Org-modeではEmacs用のみの埋め込みの設定を変更できます。XEmacs用としては、Kyle
E.
Jonesのfilladapt.elを使用しなければなりません。この設定を起動するためには、.emacs:に(require
'filladapt)
を記述しておく必要があります。
[18] もしもアイテムを分割したくないならば、org-M-RET-may-split-line
変数をカスタマイズしてください。
[19] もっと多くの情報が必要ならば、org-list-automatic-rules
の中のbullet
を参照してください。
[20] #+DRAWERS:
HIDDEN PROPERTIES
STATE
というような行を使ってファイル毎に引き出しを定義することができます。
[21] 対応するインバッファの設定は、#+STARTUP:
fninline
または #+STARTUP:
nofninline
となります。
[22] 対応するインバッファのオプションはfnadjust
とnofnadjust
になります。
[23] この機能は,XEmacsでは動作しません
[24] Emacsの表示上は中央揃えにはできませんが,HTMLへエクスポートするときに中央揃えになります.
[25] org-modeはユーザーが指定する‘B4’のような参照を理解しますが,編集を目的とした数式を提供するときはこのシンタックスは使われません.変数org-table-use-standard-references
を使うことで,この動作を変更できます.
[26] 後方互換のために,‘$LR5’や‘$LR12’のような特別な名前も利用できます.これらは,テーブル最終行にある5番目と12番目のフィールドを正しく参照します.しかしながら,このシンタックスは廃止予定であり,新たな文書で使うべきではありません
[27] テーブルの各行を分離している水平ラインだけがカウントされることに注意してください.ヘッダーの上に水平ラインがあるテーブルでは,その水平ラインをカウントしません.
[28] この計算の規模は,O(N^2)のオーダーです.各フィールドをコピーするために,テーブルFOOがパースされるのが原因です.
[29] constants.elは,SI
とcgs
の二つの異なる単位系で定数の値を提供します.どちらが利用されるかは,変数constants-unit-system
の値に依存します.カレントバッファで値を設定するために,#+STARTUP
でオプションconstSI
とconstcgs
を指定します.
[30] printf
による再フォーマットは,精度の影響を受けます.integer
やdouble
に変換された値が渡されるためです.integer
は,符号付き32ビット整数値に丸め込まれます.double
は,全体が64ビット精度に制限され,近似的に16ビットの10進数の有意桁数があります.
[31] 最初の見出しより前の文はエクスポートされないことに注意してください。このためそのようなターゲットの最初のものは、最初の見出しより後にある必要があります。
[32] 見出しへのリンクを挿入するときは、バッファ内補完をすることができます。*印の後にいくつか文字を入力し、M-<TAB>を実行してください。現在のバッファ内にあるすべての見出しが補完候補として表示されます。
[33] リンクを挿入するのに、このコマンドを使わなければならないわけではないことに注意してください。Org-modeでのリンクはプレーンテキストですので、リンクはタイプしたりペーストしたりして直接バッファへ入力することができます。このコマンドを使うことによって、リンクは自動的に二重括弧に入れられ、オプションとして項目名を入力するかどうかをたずねられます。
[34] 一時保管されたリンクを挿入した後は、そのリンクは一時保管リストから削除されます。後で使用するためにリンクを保存したままにしておきたい場合は、C-c
C-lの前に3回C-uをタイプするか、org-keep-stored-link-after-insertion
オプションを設定してください。
[35] これはorg-PREFIX-complete-link
という特別な関数を呼び出すことによって行います。
[36] org-display-internal-link-with-indirect-buffer
変数を参照してください。
[37] 対応する#+STARTUP
inlineimages
とinlineimages
と共に。
[38] 下方互換性のために、行番号はシングルコロンの後に置くこともできます。
[39] もちろん、長いTODOリストだけを含む個別の文書を作成することもできますが、そうする必要はないということです。
[40] この変数の変更は、Org-modeをバッファ内で再起動した場合のみ有効になります。
[41] タイムラインやアジェンダのバッファでは、「t」コマンドも同じ仕様です。
[42] 変数org-fast-tag-selection-include-todo
も見てください、この変数は、タグを使って状態の変更を可能にします(see タグの設定)、この二つを混ぜて使いたいならですが。この場合、それぞれのキーワードセットに単一なキーを準備する必要があります。
[43] Org-modeがこれらの行を読み込むのは、ファイルを開いてOrg-modeが実行された場合だけです。‘#+’で始まる行にカーソルを置いてC-c C-cをすると、単に現在のバッファでOrg-modeを再起動したことになります。
[44] これに対応するイン-バッファ定義は:#+STARTUP:
logdone
[45] これに対応するイン-バッファ定義は:#+STARTUP:
lognotedone
[46] 変数org-log-states-order-reversed
を確認してください
[47] Org-modeは、org-log-done
と状態変化の際の記録機能を使えば、二つのタイムスタンプを記録することも可能です。それでも、二つのメモをするように聞かれることはできません。もし実際に、両方の機能を設定した場合、状態変化の際の記録機能の方が優先されて、‘Closing
Note’は、使われません。
[48] 次のオプションも参照してください。org-priority-start-cycle-with-default
.
[49] サブタスクをグローバルTODOリストに含めないようにするには、org-agenda-todo-list-sublevels
を参照してください。
[50] これは概要リスト以外という意味ですが、このリストもorg-list-automatic-rules
を修正することで可能です。
[51] もし直下だけでなくクッキーのしたにあるすべてのチェックボックスを網羅したい場合は、変数org-hierarchical-checkbox-statistics
を設定してください。
[52] これら全てのバッファ内の設定は,C-c C-cとタイプすることでその行の変更を有効にすることができる
[53] タグ以外の条件を加えて検索するとこの限りではない(これはもしその検索が,より複雑な属性を含む条件を伴わないときだけ正しい)(see プロパティの検索)
[54] キーが設定されていないタグにはは自動的にキーがアサインされます.
[55] COLUMNS定義は1行でなければならないことに注意して下さい。書式の制約のためここでラップされます。
[56] 寄付されたパッケージはEmacsの一部ではありませんがOrgのメインの配布物と共に配布されます(http://orgmode.orgを訪ずれて下さい)。
[57] この表記は標準的なISO8601の日付、時刻フォーマットをもとに考案されています。代替フォーマットの使用については、カスタムタイムフォーマットを参照してください。
[58] org-read-date-prefer-future
の変数を参照。この変数time
に該当する変数を変更することにより、現在時刻より前の時刻を明日にシフトすることも可能です。
[59] カレンダーの表示が不要の場合、変数org-popup-calendar-for-date-prompt
を変更して下さい。
[60] もしミニバッファの表示が目障りな場合は、org-read-date-display-live
で表示しないよう設定することができます。
[61] 項目がDONEとマークされた場合でも、指定日の項目に表示され続けます。この設定が好みでなければ、変数org-agenda-skip-scheduled-if-done
を指定して下さい
[62] ‘SCHEDULED’あるいは‘DEADLINE’の付いた日付が見出しのすぐ下の行に挿入されます。見出しとこの行の間には文字を記入してはいけません。
[63] 対応する#+STARTUP
キーワードlogredeadline
、lognoteredeadline
、およびnologredeadline
[64] 対応する#+STARTUP
キーワードlogredeadline
、lognoteredeadline
、およびnologredeadline
[65] 実際には、変更される状態はREPEAT_TO_STATE
プロパティ或いは変数org-todo-repeat-to-state
によって決められます。これらが指定されていない場合は、デフォルトとしてTODO状態に戻ります。
[66] この部分の動作は、オプションorg-log-repeat
、あるいは#+STARTUP
オプションのlogrepeat
、lognoterepeat
、nologrepeat
により変更することができます。lognoterepeat
を指定した場合には、メモを入力するように促されます。
[67] Emacsの外でタスクに取りかかっていたという想定で時計を再開する場合は、(setq
org-clock-persist
t)
を使用して下さい。
[68] 「その場で」工数の見積もりを追加するには、その機能を持つ関数を変数org-clock-in-prepare-hook
にフックして下さい
[69] プロパティLAST_REPEAT
により記録
[70] 変数org-clock-modeline-total
についても参照
[71] これに対応するバッファ内の設定は#+STARTUP:
lognoteclock-out
です。
[72] 言語に関する項目は、変数org-clock-clocktable-language-setup
により設定することができます。
[73] 全てのパラメーターは単一行で指定する必要があるので注意して下さい。この例ではマニュアルの文字幅の制約のために改行が入っています。
[74] Mac OS Xのコンピュータでは、Emacsの休止時間だけでなくユーザーが実際に休止した時間を計測します。X11では、Org-modeのgitディストリビューションから入手できるユーティリティプログラムx11idle.cをインストールすることにより、同様に全体の休止時間を計測することができます。その他のシステムでは、休止時間はEmacsが休止していた時間のみを表します。
[75] 使用されるプロパティは、変数org-effort-property
で変更することができます
[76] 単準なリストを階層的に足し合わせる際には落とし穴があります(see アジェンダのカラム表示)。
[77] 自分のキーを選択して下さい。C-c cはただの提案です。
[78] もしこれらの文字通りの並びが必要な場合は、%をバックスラッシュでエスケープすること
[79] もしあなたが自分のリンクタイプを定義しているならば(see ハイパーリンクのタイプの追加)、org-store-link-props
に保存されているいずれのプロパティもキャプチャテンプレート中に同じ方法でアクセス可能です。
[80] これはユーザーではなく常に他人になる。org-from-is-user-regexp
を参照すること。
[81] もしエントリーやOrgファイルを他のディレクトリに移動した場合、org-attach-directory
が絶対パスを含むように設定する必要があります。
[82] #+STARTUP
キーワード、logfile
、lognoterefile
、そしてnologrefile
に対応している。
[83] 後方互換性のために、もしこれらの行がファイル中にいくつか存在する場合、それ以下のテキストのアーカイブ場所をそれぞれ指定します。最初の行はその定義以前のすべてのテキストに適応されます。しかし、この方法は文書のアウトライン構造と互換性が無く、全く推奨されません。複数のアーカイブ場所をバッファ内で設定する正しい方法は、プロパティを使う方法です。
[84] もしもその変数の値がリストではなく、単独のファイル名の場合には、その外部ファイルの中に記載されているアジェンダファイルの名前となります。
[85] コマンド選択画面を使用しているときに、コマンドを選択する前に、<を押すと、編集中のファイルに対するコマンドが制限されて、次のコマンド選択画面でコマンドが入力されるまで、org-agenda-files
は無視されます。
[86] 逆の互換性として、1をカレントバッファを制限するために入力することもできます。
[87] 逆の互換性として、カレントリージョンまたはカレントサブツリーに限定するために0を入力することもできます。.
[88] 逆方向の互換性のために、普遍的な前置引数C-uをつけることでアジェンダ(予定表)より上に、TODOリストを書き出すことができます。この機能は軽視されており、専用のTODOリストやブロックアジェンダ(see ブロックアジェンダ).をその代わりに利用することが多いです。
[89] Note that the order of the arguments (month, day, year) depends on the setting of calendar-date-style
.
[91] 逆に言うと、以下のような動作も生じます。もしも1つのファイルの中に、いくつかののそういう行が存在するならば、それよりも下の行にあるテキストに、そのカテゴリーをそれぞれ指定することになります。最初のカテゴリーは、その最初のCATEGORYの行はよりも前にあるどのテキストにも適用されます。しかしながら、stronglyという手法を使うことは、文書のアウトライン構造と非互換であることを、強く非難することになります。複数のカテゴリーをバッファの中で設定する正しい方法は属性を使用することです。.
[92] ここではタグフィルターだけが有効です。工数のフィルターは無視されます。
[93] カスタムコマンドによって、オプションとしてorg-agenda-filter-preset
変数と結びつけることで、フィルターを事前にセットすることができます。このフィルターは、ビューに適用されます。そして、リフレッシュや2番目のフィルターを通して、基本的なフィルターとして存続します。このフィルターは、アジェンダのブロックの中で、アジェンダビュー全体のグローバルなプロパティです。この設定を行うためには、個別のブロックのセクションではなく、グローバルオプションのセクションで行います。
[94] org-agenda-include-diary
が設定されているときは、このファイルはアジェンダ用に解析されます。
[95] あなたは前置引数と説明をつけて、コンソールのセルを挿入することで、前置引数のキーのための説明を表示することができます。
[96] あなたはHrvoje Niksic氏のhtmlize.elをインストールする必要があります。
[97] PDFの出力を作成するためには、Ghostscriptのps2pdfユーティリティがシステムにインストールされている必要があります。pdfファイルを選択するとポストスクリプトファイルも作成されます。
[98] もしもあなたが週間アジェンダやグローバルなTODOリストなどのような標準的なビューを保存したいならば、ファイル名を指定することができるようにするために、それらのビューのためにカスタムなコマンドを定義する必要があります。
[99] 引用の方法はあなたの使用しているシステムに依存します。事例用のFAQを確認してください。
[100] HTMLバックエンドに対しては,この作業は自動的に行われます(Org-modeと一緒に配布されているhtmlize.elのバージョン1.34が必要です).LaTeXの要塞化されたコードの塊はリスティングか,mintedパッケージによってアーカイブされます.リスティングを使うには,org-export-latex-listings
変数をオンにし,LaTeXのヘッダにリスティングパッケージが含まれているようにします(例:
org-export-latex-packages-alist
の設定とを使います).色付きの出力を含む設定のオプションについて,リスティングのドキュメントを見てください.mintedを使うには,pygemntsプログタムをインストールする必要があり,org-export-latex-minted
を追加で設定し,LaTeXのヘッダーにmitedパッケージが含まれていることと-shell-escape
オプションがpdflatexに引き継がれている(org-latex-to-pdf-process
を見てください)ことを確認します.
[101] Org-modeの例で説明するのに便利なリンクに行番号を使う間,-k
を-n
-r
に追加することでソースコードのラベルを維持します.
[102] 終了時,Org-modeによってアウトラインの見出しや特別なコメントと間違えられないようにするために,‘*’か‘#’から始まる行はカンマが銭湯に追加されます.
[103] org-edit-fixed-width-region-mode
変数により,異なるモードを選択することもできます.
[104] LaTeXはドナルド・クヌースのTeXシステムを基としたマクロシステムです.“LaTeX”で説明される多くの機能はTeXからのものですが,違いはそれほどありません
[105] あなたは
org-pretty-entities
変数または#+STARTUP
オプションentitiespretty
にデフォルトを設定することができます
[106]
[107] これを行うには,あなたのシステムにLaTeXをインストールする必要があります.そしてまた,http://sourceforge.net/projects/dvipng/で入手できるdvipngプログラムも必要です.
[108] MathJaxが使われている時,MathJaxによって認識されている環境が処理されます.dvipngを画像の生成に用いる時,LaTeX環境が扱われます.
[109] カーソルがコード片の中にあるときにOrg-modeはテストを行うためのメソッドを持ちます.詳細はorg-inside-LaTeX-fragment-p
関数のドキュメントを参照してください.
[110] もし、このように多くのオプションを設定したい時は, それぞれオプション行を作りことができます。
[111] このような挙動をデフォルトにするには、
org-export-run-in-background
変数を設定してください.
[112] transient-mark-mode
が有効である必要があります。
[113] 現在のサブツリーを選択するには、 C-c @ と入力してください。
[114] transient-mark-mode
が有効である必要があります。
[115] 現在のサブツリーを選択するには、 C-c @ と入力してください。
[116] ただし、org-export-html-inline-images
を確認してください。
[117] インストール方法については、MathJaxのウェブサイトにあります。http://www.mathjax.org/resources/docs/?installation.htmlを参照してください。
[118] TODOキーワードやタグにCSSが適用されるとコンフリクトを起こします。org-export-html-todo-kwd-class-prefix
とorg-export-html-tag-class-prefix
を使って、それらをユニークにしてください。
[119] このスタイルはorg-export-html-style-default
で定義されており、変更できません。
この初期設定を無効にするにはorg-export-html-style-include-default
を修正してください。
[120] デフォルトのLaTeX出力は、pdftexまたはlatexにより出力されるよう設計されています。それには、xetexや恐らくluatexと互換性のないパッケージが含まれています。org-export-latex-default-packages-alist
やorg-export-latex-packages-alist
を参照してください。
[121] transient-mark-mode
が有効である必要があります。
[122] 現在のサブツリーを選択するには、C-c @を入力してください。
[123] org-export-latex-default-packages-alist
とorg-export-latex-packages-alist
が接合されたものです。
[124] transient-mark-mode
を有効にしている必要があります。
[125] 現在のツリーを選択するには C-c @ を使ってください。
[126] 詳しくは変数org-icalendar-use-deadline
とorg-icalendar-use-scheduled
を見てください。
[127] 継承したタグやTODOの状態を追加するには変数org-icalendar-categories
をカスタマイズしてください。
[128] org-use-property-inheritance
を設定した場合、それに応じてLOCATION属性は高い階層からその値が継承されます。
[129] もしソースと公開ディレクトリが同じであれば,file-source.orgとfile-source.org.htmlです.このようなセットアップでは,プロジェクトが公開される次回,新しいOrg-modeファイルとみなされるソースファイルが公開されるのを防ぐためにあなたは:exclude
\"-source\\\\.org\"
をorg-publish-alist
中のプロジェクトの定義に追加する必要があることに注意しください.
[130] コードを評価するときはいつでも、そのコードが害をなす可能性があります。Org-modeは、ユーザーから明示的な確認をできたときのみにコードを評価する安全装置をいくつも用意しています。これらの安全装置については(加えて、それらを無効化する方法についても)、コード評価の安全性を参照してください。
[131] 変数org-babel-no-eval-on-ctrl-c-ctrl-c
を設定することで、キーバインドC-c
C-cからコードの評価を除去できます。
[132] Emacs22とOrg-mode6.29が必要です
[133] Emacs23.1はorg-indent-mode
がクラッシュします
[134] org-indent-mode
はvisual-line-mode
(または純粋にword-wrap
をセットします)が(見出しを含めた)長い行を正しいインデントでラップするようにwrap-prefix
プロパティをセットします
[135] org-indent-indentation-per-level
変数を参照してください
[136] org-indent-mode
を有効にすると,org-hide-leading-stars
にt
が,org-adapt-indentation-hige
にnil
がセットされます
[137] あなたがプロパティの検索やリファイルの対象のためにレベルを指定する必要がある時,‘LEVEL=2’は3つの「*」などにも対応します
[138] org-R.elはソースコードとの連携で説明されたOrg-modeの機能によって置き換えられ、現在使われておりません。
[139] デフォルトでは、LaTeX,
HTMLと
Texinfoの場合だけ動作します。他のモードのテンプレートをインストールするには、変数orgtbl-radio-tables
を編集して下さい。
[140] ‘#+TBLFM’行に奇数個のドル記号(dollar
character,
$)が在る場合、LaTeXモードの色分けで問題が生じるかも知れません。この問題を解決するには、例で示すようにcomment
環境内に行を追加してドル記号の表現を調整してください。AUCTeXをfont-latexライブラリと使っている場合のはるかに優れた解決法は、変数LaTeX-verbatim-environments
にcomment
環境追加することです。
[141] HTMLの変換関数は、HTMLをエクスポートする時にテーブルを作るコードと全く同じものを使っています。
[142] org-odd-levels-only
を使用している場合、level
numberは階層構造のレベルと対応していて、スター「*」の数ではないことに注意して下さい。
[143] もしもあなたのEmacsの設定ファイルの中にパスワードを安全に保存したいならば、org-mobile-encryption-password
変数を設定すると良いでしょう。その変数の説明文を読んでください。暗号化は、.org
ファイルの内容のみに適用されることに注意してください。ファイルの名称そのものは、そのまま表示されます。
[144] もしもDropboxを利用できない場合、またはMobileOrgのバージョンがそれをサポートしていない場合には、webdavサーバが利用できます。詳しい情報を得るには、MobileOrgの説明部とFAQ entryをチェックしてください。
[145] アジェンダを作成する際に、Org-modeではすべての参照されるエントリーにID属性を強制的に付加します。そのため、これらのエントリーは、将来の行動のために、それらのエントリーにMobileOrgによってフラグを付けたとしても、ユニークなものとして識別されます。もしも、こんなにも沢山のエントリーにそういう属性値をつけたくない場合は、org-mobile-force-id-on-agenda-items
変数をnil
と設定してください。Org-modeは、各エントリーが十分ユニークであることを期待したうえで、アウトラインの階層構造に依存することになるでしょう。
[146] checksums.datというファイルの中に自動的に保存されます。
[147] mobileorg.orgはこの操作のあとで空になります。
[148] しかしながら、微妙な差があることに注意してください。M-x org-mobile-pull <RET>によって、自動的に作成されたビューは、最後にpullされて配置されたすべてのファイルを検索することを保証されています。これは、あなたのアジェンダファイルのリストに、現在含まれていないファイルも含みます。もしもあなたが、ビューを再作成するために、C-c a ?を最後に使用したならば、カレントのアジェンダファイルのみが検索されます。