Select sjis if the characters are not shown properly. Google chrome is the targetted browser.
※ html は、xhtml (XML の規則に従って記述された HTML) に拡張されました。[2017-02-09] に、xhtml に変換するようにしました。
$ C:¥Ruby242¥bin¥ruby.exe C:¥bar¥o2h.rb foo.txt > qux.html
※ exe 化できれば、
$ o2h.exe foo.txt > qux.html
,~ ここは、行頭に ,~ (カンマとチルダ) だけがある行と ,. (カンマ とピリオド) だけがある行で囲まれているので 詰め込み処理 されません。 ,.
: 例えば、引用文などは、 字下げして示しても、詰め込み処理して 欲しいことがあります。 そういう場合は、このように引用文の最初を : 一個とその 後に半角スペースを一個置いた行で書き初めて、 その後に、同じ字 下げで文字列を書き並べます。 ここも 詰め込まれます。
# ここで書いたリンクは、(Net ...) を使って記述されました。(Netで始まる文字列は、特別な意味を持っています。この文書の Net 関数 H1 の項をご覧ください。
:語句A 語句Aの説明文です。 :語句B 語句Bの説明文です。 説明文の間に空白行を入れると、最初の語句説明の文の前に 空白がとられるのが嫌。 語句Aとの違いを見てください。
語句A 語句Aの説明文です。 語句B 語句Bの説明文です。 説明文の間に空白行を入れると、最初の語句説明の文の前に空 白がとられるのが嫌。語句Aとの違いを見てください。
※ アウトライン見出し行の行頭の * の個数は、5個以下であるとします。
※ o2h で整形した場合は、「* アウトラインモードとアウトライン文書」と書いてある行の行頭の * は数字に変更されています。
== startdoc ;;; @(#) 文書のタイトル ;;; -*- outline-tree: hierarchy-star -*- ;;; ;;; @(%) $default_fontcolor = "Black" ---------------------------------------------------------- * abstract この部分は、Contents の前に表示されます。 ---------------------------------------------------------- * main body 本文です。 ---------------------------------------------------------- == enddoc ;;; Local Variables: *** ;;; mode: Outline *** ;;; fill-column: 66 *** ;;; End: ***
※ panel 環境を使って書いています。背景色は floralwhite です。
※ 行頭から半角空白文字が0個以上あり、その後、; (セミコロン)を連続して3個以上置き、その後に、" @(%) " を置いた行が読み込まれると、その後の文字列が変換プログラムに書かれていたものとして評価されます。
;;; @(%) $tablestyle = "align=center"
$tablestyle = "align=center"
Select sjis if the characters are not shown properly. 文書のタイトル この部分は、Contents の前に表示されます。 [Body] CONTENTS 1 main body. ------------------------------------------------------------ [Top] [Last] ------------------------------------------------------------ [Contents] 1 main body 本文です。 ------------------------------------------------------------ [Contents] [Top] .
※ xyzzy をエディターとして使っている場合、拡張子 .odr を持っているファイルを xyzzy で開くと、編集モードが text mode になるように、.xyzzy につぎのように書いておきます。
(pushnew '("¥¥.odr$" . text-mode) *auto-mode-alist* :test 'equal)
※ ODR 文書を抽出して、それを html ファイルの形に整形するプログラム o2h.rb を動かすことを「処理する」と言っています。
たとえば、このつぎの行は .. 詰め込まれません。 ただし、後に続く行は詰め込まれます。
行末に [br] 記号があるとそこで改行されます。[br][br] ここから新しい行が始まりま。
::ソマリア ソマリアの公式国名を「ソマリア民主共和国(Somali Democratic Republic)」とする場合が多かったが、これはモハメド・シアド・バ ーレ政権下で「ソマリア民主共和国憲法」が有効であった時期の国名 である。 .::
※ ここで、標題付きリスト H1を利用しています。標題付きリストの説明文の部分はパラグラフとして処理されます。これを利用しています。.:: は説明部分の終わりを指定しています。.:: の代わりに ::. と書くことはできません。
〓ソマリア ソマリアの公式国名を「ソマリア民主共和国(Somali Democratic Republic)」とする場合が多かったが、これはモハメド・シアド・バ ーレ政権下で「ソマリア民主共和国憲法」が有効であった時期の国名 である。
※ 〓を書いたこの例は、マーク付き標題環境 H1 を利用しました。
※ 行頭に ,~ (カンマとチルダー) だけがある行と ,. (カンマとピリオド) だけがある行で囲んだ環境をCommaVerbatim 環境 H1 と呼びます。
,~ ここは、行頭に ,~ (カンマとチルダー) だけがある行と ,. (カンマとピリオド) だけがある行で囲まれているので 詰め込み処理 されません。(h CO<sub>2</sub> /h) は置き換え処理されません。 ,.
,~ ここは、行頭に ,~ (カンマとチルダー) だけがある行と ,. (カンマとピリオド) だけがある行で囲まれています。 ここは行頭に半角空白が4個あり、 詰め込まれません。(h CO<sub>2</sub> /h) は置き換え処理されません。 ,.
つぎに別の環境が来ると字下げ環境が終了します。 , ここは字下げ環境として処理: (h CO<sub>2</sub> /h) したらどうなる?
ここは字下げ環境です。 . (Net "foo") y = a (h x<sup>2</sup> /h) + b x + c ここはまた字下げ環境です。
※ 数式を書くには、\(y = ax^2 + bx + c\) のように書くという方法があります。数式を書く H1 を参照してください。
1. 何個かの空白の後に、数字または英文字(英文字の場合は 1字)を書き、 その後にピリ オッドを置いて、半角空白を1個置き、 非空白文字で始まる文字列 を置いた行は、番号付きのリストと解釈されます。
2. 番号付きのリストの中に、 字下げした環境を置くことができます。 ここは、字下げした環境であって、 詰め込まれません。 : コロンで始めると 詰め込みされるような文章を 書くことができます。 ここは、番号付きの リストの文章のつづきとして詰め込み処理されます。
3. 番号付きのリストの中に、別のリスト環境を置くことができま す。 * リスト環境の中にリスト環境を置くことが できます。 * マークつきリストは、行を詰めて置けば、 詰めて表示されます。
4. 番号付きリストの番号は、元文書で使用されている番号がそ のまま使用されます。番号欄には、英文字も使用できます。 a. ここでは、英小文字を使用しています。 b. いまのところ、番号欄には、 英小文字1字か英大文字1字か数字以外は書けません。 6. 見出しのところに英大文字も使えます。 A. ここでは英大文字を使用しています。 B. いまのところ、番号欄には、 英小文字1字か英大文字1字か数字以外は書けません。 7. 番号付きリストもつめて書けます。 8. 前の行との行間に注意。
(1) このような形の番号付きリストも受け付けることにしました。 (2) 数字を両括弧で囲みます。
1.1 このように、[0-9]+(¥.[0-9]+)+ にマッチする文字列 があってその後に半角空白があり、その後に文字列が来るも のを番号付きリストのように整形できます。 1.2 数字と.だけが許されます。1.a のように、英字を使うことは できません。
※ マーク付きリストの始まりとして、* または ** を書く場合、行頭に半角空白を置かずに書くと、アウトライン見出し行 H1 と判定され、マーク付きリストとは判定されません。これは、構文を解析するときに、見出し行の解析が先に実行されるためです。++ を書く場合は、行頭から書いても見出し行と判定されることはありません。
++ 番号付きのリストと同様にマーク付きリストを使用することが できます。 ++ マークとして、* または ** または ++ が使用できます。 * または ** を、その前に半角空白文字を置かずに行頭から書 くと、マーク付きリストの開始行と認識されず、outline 文書 の見出し行であると認識されます。マーク付きリストの開始行 という意味で、*または、** を使う場合は、一個以上の空白を 置いてから、* または ** の前に半角空白を1個以上置いてく ださい。 マークとして、++ を使う場合は、行頭から書いても構いません。 (*1個だけ + を置いても、マーク付きリストの開始行とは認識 され_ません*)ので注意してください。数式などで、+ 1個が行 頭に来ることがよくあるので、+ を一個だけ置いた場合は、マ ーク付きリストと認識されないようにしています。 ++ マークつきリストをいれこにして使用することができます。 例を示します。 ** 内側のマークつきリストです。 * さらに深いマーク付きリストです。 * マークとして、* を再度利用できます。 ** 連続
☆ 厳密に言えば、マーク付きリストとして実現されているのではないのですが、マークとして、□、#(全角)、☆、★、※、#(半角)を使うこともできます。
# マークとして、□、#(全角)、☆、★、※、##(半角#2個) を使う方法は、マークとして、++、*、** を使う方法とは異なる方法で、具体的に言うと、ぶら下げインデント環境 H1 と同じ仕組を使って実装されています。
# 半角のシャープ記号2個を使うマークは、英語モードでも利用できるものとして導入しました。整形したときには、# は1個だけ表示されます。
# The mark string "##" was introduced for the english mode. The mark string "##" is changed to "#" when the sentence is formatted.
"##"
@begin{frame}{bgcolor: beige} ------------------------------ :標題 ここに説明を書きます。 詰めこまれます。 一行空けてこの行を書いています。 ::ボールドで書く標題 このように標題部分を :: (コロン2つ)で始めると標題はボール ドで表示されます。 ::{:foo} このようにコロンで始まる標題を扱いたいときは、標題部分を {} で囲んで、::{:foo} のように書きます。 ::{{foo}} {} で囲むと、{} で囲まれた文字列が標題として表示されます。 ここでは、標題部分は、::{{foo}} と書いています。 ::説明文がない項目 .:: ::連続する標題1 ::連続する標題2 標題部分を連続させることができます。 @end{frame} ------------------------------------------------
::標題 ここの標題は半角2文字だけ字下げして書き出されます。
::標題1 ::標題2 ::標題3 このように、 標題部分を複数行に分けることができます。
(h <span style="font-size: small">/h)[2017-08-16] 標題の 直前に小さな字で補足説明を挿入できるようになりました。 (h </span>/h) ::標題の前に小さな字で説明を挿入 標題の前に余分な空白を取らなくなったので、 このような整形も簡単にできるようになりました。
:::大きいフォントの標題 ::ゴシックの標題 :普通の書体の標題 このように、標題部分だけを並べることができます。
::上位の標題 :下位の標題1 下位の標題1に対応する本文。 :(Color "red" "下位の標題2") 下位の標題2に対応する本文。 :下位の標題3 下位の標題3に対応する本文。 上位の標題に 対する本文。ここは詰め込まれます。
※ o2h の以前の版では、標題を置いた行に続いて、「下位の標題1」で始まる文のように、直下に標題付きリストを置くと、直下の標題付きリストの標題の前に空白行が置かれていました。
※ 説明文の終わりの位置を指定する記号として :., ::., :::. (コロン1個、2個あるいは3個の後にピリオド)を採用せずに、.:, .::, .::: (ピリオドの後にコロン) を採用したのは、:、::、::: (コロン1個、2個あるいは3個コロン) の後に、. (ピリオド) から始まる文字列を置くのを許すためです。
++ 標題と説明文の書き出し位置を制御する例。 ::説明文の書き出し位置 標題部分に続く説明文は、標題部分の字下げ位置よりも1個以 上 半角空白を余分に置く字下げ位置から書くのをお薦めし ます。 その方が、説明文の終わりが分かりやすくなります。とはいえ、 説明文を標題部分の同じ桁位置から書き出すこともできます。 ここの例では、標題部分の字下げ位置と同じ字下げ位 置から書き出してしまっています。 .:: ここは 詰め込まれません。 ここは 詰め込まれます。
::標題 ここは説明文ではありません。
:option は、オプションを 指定しています。
¥:option は、オプションを 指定しています。
... :option は、 オプションを指定しています。
: (注) ここの部分は、 字下げして、しかも 詰めこまれます。: (コロン) のある行と同じだ け字下げした一連の行は、引用環境として扱われます。 ここも同じ引用環境の続き です。
: (注) ここの部分は、 字下げして、しかも詰めこまれます。: のある行と同じだけ字下 げした一連の行は、引用環境として扱われます。 ここも同じ引用環境の続き です。
※ ". :" のピリオドとコロンの間に半角空白を1個置くことは重要です。".:" のように、ピリオドとコロンを続けた場合は、標題付きリストで、標題部分を :標題の形で始め、説明文の書き出し位置を標題部分の書き出し位置と同じにしたときに、説明文の終わりの位置を明示するのに使用します。
: 引用環境が開始しました。 字下げして、しかも詰めこまれます。: のある行と同じだけ字下 げした一連の行は、引用環境として扱われます。 . : ここは、 別の環境です。
: 引用環境が開始しました。 字下げして、しかも詰めこまれます。: のある行と同じだけ字下 げした一連の行は、引用環境として扱われます。 ここは、 別の環境です。
: この行は、引用環境の開始行 です。
:標題部分 直前の行は「標題つきリスト」の標題行です。
: /beige/ 明るい世を望むなら、 真っ先に自分が明るくなることだ。 チャンスなんて来はしない。 欲しければ手作りして自分で持参せよ。 . :
: /beige, blue/ このように、背景色の指定の後に、カンマを置いて、文字色を指 定することもできます。 この例では、背景色は beige で、文字色は blue です。 背景色を指定せずに、文字色を指定したい場合は、/, blue/ の ように背景色の指定の部分には何も書かずに、カンマを置いて文字色 を指定します。 . :
: /beige/ ━━━━━━━━━━━━━━━━━━━━━━━━ 明るい世を望むなら、 真っ先に自分が明るくなることだ。 チャンスなんて来はしない。 欲しければ手作りして自分で持参せよ。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ . :
: (h <span style="font-size: small">/h) ここは字下げして(実際には字下げなし)、小さい字で書かれます。 1. : の後に、字を小さくする命令 =(h <span style="font-size: small">/h) を書いています。 2. 字を小さくする命令の効果を終える命令 =(h </span>/h) を書いています。 (h </span>/h) . :
---- Don't waste any moment easily because learning is hard and boys grow old easily. 少年老い易く学成り難し、一寸の光陰軽んずべからず
---- Don't waste any moment easily because learning is hard and boys grow old easily.
※ 行頭から - 記号を4個連続して書いたとしても、その後に半角空白を丁度1個置いて、その後に非空白文字を置いて書きださなかれば、マイナス記号標題環境とは認識されません。
---- Don't waste any moment easily [br] because learning is hard and boys grow old easily. 少年老い易く学成り難し、一寸の光陰軽んずべからず
* このようにマーク付き環境のときの中に配置するときは、マイ ナス記号標題環境は、そのインデントの位置から書き出してく ださい。 ---- Don't waste any moment easily [br] because learning is hard and boys grow old easily. 少年老い易く学成り難し、一寸の光陰軽んずべからず
01: ◇ 標題 02: ◆ 標題 03: ○ 標題 04: ● 標題 05: ◎ 標題 06: $* 標題 07: $$ 標題 08: $@ 標題 09: ■標題 10: $#標題 11: 〓標題 12: $=標題 13: ‥標題 14: $-標題
※ 行番号 (数字とコロン) は参照のために付けたものです。マーク ◇、◆、○、●、◎、$*、$$、$@、■、$#、〓、$=、 ‥、$- に続く"標題" の部分に標題文字列を書きます。
※ 詰め込み処理されるところを「詰め込み環境」と言っています。
○ 行頭のマークも表示される
■行頭のマークは表示されない
〓標題
〓標題 このように書けば、標題付きリストで、説明文を行頭から 書いたのとよく似た整形結果が得られます。
● 行頭マークが保存されるタイプの標題 ◇、◆、○、●、◎、$*、$$、$@ を書いて、その後に、 ちょうど1個の半角空 白を置き、その後に空でない文字列を書いた行です。ここが詰め 込み処理されていることに注意して下さい。 〓行頭マークを除いて表示されるタイプの標題 前の行は、行頭に〓を置いてすぐその後に文字列を書かれていま したが、〓は表示されません。このタイプの行頭マークは、■、 〓、‥です。 ここの 文章も詰め込まれます。
※ マーク付き標題が拡張見出しになるか、ならないかで分類すると、マーク付き標題のマークははつぎのように分類されます。
□ 中が白い四角は、♯、★、☆、※ などとともに、特別なぶら下げインデント環境 H2 の先頭文字と認識されるもので、マーク付き標題環境の標題を導くものではありません。
■マーク付き標題1 〓マーク付き標題2 ‥マーク付き標題3 $#マーク付き標題a $=マーク付き標題b $-マーク付き標題c
[2016-04-20] 〓マーク付き標題の前が空白行ではない例 マーク付き標題行が現れた行の直前が空白行でなかった場合、直前の 行の行末で改行されます。この例では、[2016-04-20] が置かれて います。
&(*ぶら下げインデント環境*) ここはぶら下げインデント環境の (*見出し部分*)です。ぶらさげインデント環境は、行頭に、&を 書き、2行目以降は、&を置いた最初の行に比べて少し字下げした 位置から書きます。 .. ここはまだ、ぶら下げインデント環境の見出し部分です。 見出し 部分では、あまり複雑なことはできません。 行頭の .. や、@begin{html} ... @end{html} は使えます。炭酸 ガスは @begin{html} --------------------------------------------- CO<sub>2</sub> @end{html} ----------------------------------------------- と表記します。 .. 見出し部分は、空白行で終わります。したがって、ここが (*ぶら下げインデント環境の見出し部分*)の 終わりです。 ここは(*ぶら下げインデント環境の本体部分*)です。見出し部分 に続いて、見出し部分の字下げ量と同じ字下げで書く段落は、ぶ ら下げインデント環境の本体部分です。 ぶら下げインデントの本体部分には、他のリスト環境を入れ ることができます。 * ここにマーク付きリストを置いています。 * マーク付きリストの2番目。
ぶら下げインデント環境 ここはぶら下げインデント環境の見出し部分です。ぶらさげインデント環境は、行頭に、&を書き、2行目以降は、&を置いた最初の行に比べて少し字下げした位置から書きます。 ここはまだ、ぶら下げインデント環境の見出し部分です。見出し部分では、あまり複雑なことはできません。行頭の .. や、@begin{html} ... @end{html} は使えます。炭酸ガスは CO2と表記します。見出し部分は、空白行で終わります。したがって、ここがぶら下げインデント環境の見出し部分の終わりです。
&※ user パッケージも editor パッケージも system を use-package していな いので、 呼び出すときは si: を付けて、(si::system-root)としなけ ればいけません。 ぶら下げインデント環境の開始行の & の前に半角空白を置くと、それだけ字下げされます。 &ぶらさげインデントの最初の行で改行[br] このようにぶら下げインデントの最初の行の行末に改行記号を 入れると、標題付きリストのような感じにすることができます。 炭酸ガスは、(h CO<sub>2</sub> /h) と書きます。 整形したときの字下げ量として、ソーステキストの2行目の字下げ量 が取られます。この項目の字下げ量は少し大きく取られています。
※ user パッケージも editor パッケージもsystem を use-package していないので、呼び出すときは si: を付けて、(si::system-root)としなければいけません。
ぶらさげインデントの最初の行で改行このようにぶら下げインデントの最初の行の行末に改行記号を入れると、標題付きリストのような感じにすることができます。炭酸ガスは、CO2 と書きます。
[a] ぶら下げインデント環境の見出し部分は2行以上に。
&[a] ぶら下げインデント環境の見出し部分は 2行以上に。 ぶら下げインデント環境の見出し部分が短い場合は、 途中で改行して、...
[b] 「ぶら下げインデント環境の見出し部分」は、2行以上に渡って書くのが簡明です。「ぶら下げインデント環境の見出し部分」が短い場合でも、できれば、途中で改行して、2行に渡って書くようにしてください。「ぶら下げインデント環境の見出し部分」が短くて、途中で改行しない場合は、本体部分は、ぶら下げインデント環境の最初の行の書き出し位置から、半角3文字分字下げして書くものとします。
ぶら下げインデント環境の出だしが短くても改行した例
ぶら下げインデント環境の出だしが短く1行にした例。
[c] ぶら下げインデント環境を始めようとしているのではないのに、段落の最初に & を書きたい場合は、そのまえに、".. " を置きます。段落の途中で、たまたま行頭に & が来たら、改行位置を変えて、& が行頭に来ないようにします。
□ マークで始まるぶら下げインデント このように、行頭が□で、その後に半角を1個置き、その後に非 空白文 字で始まる文字列が来ると、ぶらさげインデント環境として処 理されます。 □ チェックを入れるための四角1 □ チェックを入れるための四角2[br] 「チェックを入れるための四角1」の続きにぶら下げインデ ントが始まりました。最初の「チェックを入れるための四角 1」の行を読み取ったときに、このぶら下げインデント環境の 字下げ量を +3 に設定しています。 ここは「チェックを入れるための四角1」に対応して決めら れたインデント量に対応しています。 このような形でも使用できます。 ☆ 行頭が☆でも同様です。 ここは「ぶら下げインデントの見出し部分」なので、行頭に、 □ などのマークが来ても新たにぶら下げインデント構文が 開始したと見なされません。 ここは「ぶら下げインデントの本文部分」です。 詰め込まれます。 □ ここはぶら下げインデントの見出し行 です。 ## 行頭に半角 # を2個書いて、ぶら下げインデントできます。 整形されると、# は1個だけ表示されます。 行頭に半角 # を1個置いて書かれた行は、普通に出てくると思 われるので、このような仕様が採用されました。 && 行頭に半角 & を2個書いて、ぶら下げインデントできます。 整形されると、& は1個だけ表示されます。
□ マークで始まるぶら下げインデントこのように、行頭が□で、その後に半角を1個置き、その後に非空白文字で始まる文字列が来ると、ぶらさげインデント環境として処理されます。
□ チェックを入れるための四角2「チェックを入れるための四角1」の続きにぶら下げインデントが始まりました。最初の「チェックを入れるための四角1」の行を読み取ったときに、このぶら下げインデント環境の字下げ量を +3 に設定しています。
☆ 行頭が☆でも同様です。ここは「ぶら下げインデントの見出し部分」なので、行頭に、□ などのマークが来ても新たにぶら下げインデント構文が開始したと見なされません。
□ ここはぶら下げインデントの見出し行です。
# 行頭に半角 # を2個書いて、ぶら下げインデントできます。整形されると、# は1個だけ表示されます。
& 行頭に半角 & を2個書いて、ぶら下げインデントできます。整形されると、& は1個だけ表示されます。
@begin{frame}{double} -------------------------------------- @begin{frame}{xxxx} ... @end{frame} で囲むとその範囲を枠で 囲んで示します。xxxx の部分には、 * solid * dashed * dotted * double * null のいずれかを指定します。 @end{frame} ------------------------------------------------
@begin{frame}{double bgcolor: beige} ----------------------- @begin{frame}{xxxx} ... @end{frame} で囲むとその範囲を枠で 囲んで示します。xxxx の部分には、 * solid * dashed * dotted * double * null のいずれかを指定します。背景色は、枠線のスタイルの後に bgcolor: に続けて指定してください。 背景色を透明にするには、 bgcolor:null と指定してください。 @end{frame} ------------------------------------------------
@begin{frame}{solid bgcolor: beige} ------------------------ @begin{frame xxxx} ... @end{frame xxxx} で囲むとその範囲を枠で 囲んで示します。xxxx の部分には、 * solid * dashed * dotted * double * null のいずれかを指定します。枠線のスタイルを指定している部分を省略することもできます。枠線のスタイルの指定を省略すると null を指定したものと見なされます。 @end{frame} ------------------------------------------------
※ 細かいことを言うと...。枠の幅と書きましたが、width: に続いて設定する幅は、正確には、中に納める文章部分の横幅を意味します。枠線は、その外側に付け足されので、枠の幅は、width: に続いて設定する幅より広くなります。
@begin{frame}{solid align: center bgcolor: snow width: 70%} @begin{frame}{xxxx} ... @end{frame} で囲むとその範囲を枠で 囲んで示します。xxxx の部分に、 bgcolor: snow width: 70% align: center のような文字列を書いて、背景色や横幅や全体の横方向の配置を指定できます。 @end{frame} ------------------------------------------------
@begin{frame}{double align: center width: 70%} ------------- frame を入れ子にすることができます。 * マーク付きリストの中 @begin{frame}{solid} ------------------------------------ ここに書けるか。 * aaa * bbbbbb これはどうなる? ;;; @(%) $endnote = "※ 背景色は " + $default_frame_backcolor + " です。" @end{frame} --------------------------------------------- * aaaaaaaaaaaaaaa 途中に別の frame が開かれたらどうなるか。 @begin{frame}{dotted} -------------------------------------- こんな風に。 @end{frame} ------------------------------------------------ ブラウザが問題なく処理してくれます。 ;;; @(%) $endnote = "※ 背景色は " + $default_frame_backcolor + " です。この注釈文は、注釈文がどのように配置されるかを確認するために書いています。frame を中央配置した場合は、枠線は本体の外側に描かれるのだと考えられる結果です。" @end{frame} ------------------------------------------------
※ 背景色は null です。
※ 背景色は null です。この注釈文は、注釈文がどのように配置されるかを確認するために書いています。frame を中央配置した場合は、枠線は本体の外側に描かれるのだと考えられる結果です。
@begin{frame}{solid} --------------------------------------- この外側の frame の中に frame を配置します。 @begin{frame}{double} ---------------------------------- ここの frame 環境は、他の文書環境 の「詰め込まれる箇所」で はなく、いきなり字下げした位置に配置されています。 そのため、この frame 環境が始まる前に、「引用環境」が 開始されます。 @end{frame} -------------------------------------------- ここにある 文章は詰め込まれます。 ここは親の frame 環境です。 ;;; @(%) $endnote = "※ 背景色は " + $default_frame_backcolor + " です。" @end{frame} ------------------------------------------------
@begin{panel} -------------------------------------------- これは、panel 環境の例です。 @begin{panel} で始まって、@end{panel} で終わる範囲に囲まれて います。始まりの @begin{panel} や 終わりの @end{panel} は、 それぞれ単独の行に書かれていて、 0個以上の半角空白が前にあり、後ろに、一個の半角空白と - の 連続があるか、後ろには何も書かないかのいずれかとします。 @end{panel} ----------------------------------------------
これは、panel 環境の例です。 @begin{panel} で始まって、@end{panel} で終わる範囲に囲まれて います。始まりの @begin{panel} や 終わりの @end{panel} は、 それぞれ単独の行に書かれていて、 0個以上の半角空白が前にあり、後ろに、一個の半角空白と - の 連続があるか、後ろには何も書かないかのいずれかとします。
これは、panel 環境で、オプション文字列を指定する例です。 @begin{panel}{bgcolor: beige} で始めることによって、 背景色を beige に指定しています。
@begin{code a}{bold} --------------------------------------- ここは、@begin{code a} ... @end{code a} 環境の中です。 @begin{code}{bold} ----------------------------------------- ここは、@begin{code} ... @end{code} 環境の中です。 @end{code} ------------------------------------------------- ここは、@begin{code a} ... @end{code a} 環境の中です。 @end{code a} -----------------------------------------------
ここは、@begin{code a} ... @end{code a} 環境の中です。 @begin{code}{bold} ----------------------------------------- ここは、@begin{code} ... @end{code} 環境の中です。 @end{code} ------------------------------------------------- ここは、@begin{code a} ... @end{code a} 環境の中です。
.~ ここは 左詰めされます。 ..
.~ (Ref "labelfunc" "Label関数") のような emacs 関数を使う ことができます。 炭酸ガスは (h CO<sub>2</sub> /h) (※2) と表記します。 .. 炭酸ガスは (h CO<sub>2</sub> /h) (※3) と表記します。 炭酸ガスは (h CO<sub>2</sub> /h) ... (※4) と 表記します。
※1 左詰めでしかもhtmlのタグを使うには、@begin{htmlbr} ... @end{htmlbr} 環境を使用します。
※2 左詰めするときに、文中の半角空白が整形後も保存されていることに注意してください。ただし、固定幅フォントで表示されているのでなければ、半角空白を保存したからといって、複数行の間で、桁位置の関係がソースのままにはなりません。
※3 ここは詰め込み環境なので、CO2 の後ろの半角空白5個は1個しかないように見えます。
※4 詰め込み環境の中で、複数の半角空白があったのが分かるようにするには、... を行頭に書きます。
. (Ref "labelfunc" "Label関数") のような emacs 関数を使えます。
※ DotFlushleft 環境は、.~ を書いた行と、ピリオド2つを書いた行で囲むので、CommaVerbatim 環境は、,~を書いた行と、,, を書いた行で囲むかと思うかも知れませんが、閉じる方は、カンマ2つではなく、カンマとピリオドです。閉じる方には、ピリオドを付加することになっています。
,~ (Ref "labelfunc" "Label関数") のような emacs 関数は使う ことができません。 炭酸ガスは (h CO<sub>2</sub> /h) と表記してもうまく行きません。 ,.
, (Ref "labelfunc" "Label関数") のような emacs 関数は使うことができません。
,~ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, (Ref "labelfunc" "Label関数") のような emacs 関数は使う ことができません。 炭酸ガスは (h CO<sub>2</sub> /h) と表記してもうまく行きません。 ,. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
例を示します。 == double distance( double x1, double y1, double z1, double x2, double y2, double z3 ) のように書きます。間に空白行を入れた例は、 == double distance( double x1, double y1, double z1, double x2, double y2, double z3 ) .. double distance( double x1, double y1, double x2, double y2 ) のようです。
=== double distance( double x1, double y1, double z1, double x2, double y2, double z3 )
* 他のリスト環境の中にも置くことができます。 .~ ここに 置くことができます。 詰め込みモードではないので 行頭、文中の空白は保存されます。置かれた環境の なかで左詰めされます。 ..
2. 番号付きのリストの中に、 字下げした環境を置くことができます。 ,~ ここは、字下げした環境であって、左詰めで表示され ます。パラグラフと同じフォントで表示されます。 ,. ここは、番号付きの リストの文章のつづきとして詰め込み処理されます。
ここは詰め込みモード で、この後は、 . 左詰めに なります。
ここは詰め込みモード で、この後は、 .. 左詰めに なります。
2. 番号付きのリストの中に、 字下げした環境を置くことができます。 : ここは、字下げした環境であって、 詰め込み処理されます。 == 太字で 表示される環境 ここも詰め込み ます。 ここは、番号付きの リストの文章のつづきとして詰め込み処理されます。
..中央合わせ..
,,~ こんな風に、,,~ があってすぐ改行して、 間に文字が書かれて 最後に、最初の行と同じ桁位置から ,,. がある行で終わる範囲は 詰め込み処理されずに固定幅フォントで表示されます。 ,,.
,,~ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, こんな風に、,,~ があってすぐ改行して、 間に文字が書かれて 最後に、最初の行と同じ桁位置から ,,. がある行で終わる範囲は 詰め込み処理されずに固定幅フォントで表示されます。 ,,. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
※ cbar が使っている xyzzy の環境では、こんな風に行末まで、, を書き並べるには、C-c l c とします。
こんな風に、,,~ があってすぐ改行して、 間に文字が書かれて 最後に、最初の行と同じ桁位置から ,,. がある行で終わる範囲は 詰め込み処理されずに固定幅フォントで表示されます。
Enter #¥C-m Tab #¥C-i Backspace #¥C-h Delete #¥C-? Esc #¥C-[ LFD(Enter+Tab) #¥C-j
,,~ ----+----*----+----*----+----*----+----*----+----* (Ref "labelfunc" "Label関数") のような emacs関数は 変換されません。 ----+----*----+----*----+----*----+----*----+----* ここは行頭にカンマが2つある行で囲みました。半角50 ----+----*----+----*----+----*----+----*----+----* ,,. ,, (Ref "labelfunc" "Label関数") のような emacs関数
----+----*----+----*----+----*----+----*----+----* (Ref "labelfunc" "Label関数") のような emacs関数は 変換されません。 ----+----*----+----*----+----*----+----*----+----* ここは行頭にカンマが2つある行で囲みました。半角50 ----+----*----+----*----+----*----+----*----+----*
(Ref "labelfunc" "Label関数") のような emacs関数
,,~ y = sin(x) ,,.
,, y = sin(x)
,, y = sin(x) (1) ,, z = cos(x) (2)
y = sin(x) (1) z = cos(x) (2)
,,,~ static void Main() { Console.WriteLine("Hello World!"); } ,,,.
static void Main() { Console.WriteLine("Hello World!"); }
,,,~ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, static void Main() { Console.WriteLine("Hello World!"); } ,,,. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
@begin{code} --------------------------------------------- static void Main() { Console.WriteLine("Hello World!"); } @end{code} -----------------------------------------------
,,,~ y = sin(x) ,,,.
,,, y = sin(x)
,,, y = sin(x) (1) ,,, z = cos(x) (2)
y = sin(x) (1)
サンプル式1 ,,, y = sin(x) サンプル式2 ,,, y = sin(x) ,,, z = cos(x) サンプル式3 ,,,~ y = sin(x) z = cos(x) ,,,.
y = sin(x)
y = sin(x) z = cos(x)
001: nw = nb 002: nextline = $io.gets 003: $io.pushback 004: if /^([ ]*)[^ ].*$/ =~ nextline 005: nk = $1.bytesize 006: nw = nk if nk < nb 007: end 008: 009: line = $io.gets.detab 010: while /^#{" " * nb},,,$/ !~ line && 011: /^#{" " * nb},,, ,,*$/ !~ line && 012: /^#{" " * nb},,, --*$/ !~ line 013: if /^=¥*/ =~ line 014: # 行頭に * があるのを回避するために、行頭に = を置い 015: # たので元に戻している。 016: line.sub!(/^=/, "") 017: end 018: line.sub!(/^#{" " * nw}/, "") 019: $fp.print line.svquoteline 020: line = $io.gets 021: unless line 022: FileendErrorMessage(nline, sline) 023: exit 024: end 025: line.detab 026: end 027: $fp.print "</pre></b></span>¥n";
nw = nb nextline = $io.gets $io.pushback if /^([ ]*)[^ ].*$/ =~ nextline nk = $1.bytesize nw = nk if nk < nb end
nw = nb nextline = $io.gets $io.pushback if /^([ ]*)[^ ].*$/ =~ nextline nk = $1.bytesize nw = nk if nk < nb end +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+
,,,,~ nw = nb nextline = $io.gets $io.pushback if /^([ ]*)[^ ].*$/ =~ nextline nk = $1.bytesize nw = nk if nk < nb end ,,,~ +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+ ,,,. ,,,,.
---------------------------------------------------------~ こんな風に、長さが20桁以上の - (マイナス) の並びの後 に ~ (チルダー) を書いた行で始まり、20個以上の - の並びの後にピリオドで終わる範囲は 詰め込み処理せず、枠で囲んで、固定幅フォントで表示されます。 (h CO<sub>2</sub> /h) ---------------------------------------------------------.
こんな風に、長さが20桁以上の - (マイナス) の並びの後 に ~ (チルダー) を書いた行で始まり、20個以上の - の並びの後にピリオドで終わる範囲は 詰め込み処理せず、枠で囲んで、固定幅フォントで表示されます。 (h CO<sub>2</sub> /h)
-~ こんな風に、-~ (マイナスとチルダー) を置いて、すぐ改 行した行で始まり、行頭に -. (マイナスとピリオド) を置いて すぐ改行した行で終わる範囲は、詰め込み処理せず、枠で囲ん で、固定幅フォントで 表示されます。(h CO<sub>2</sub> /h) -. -~ ------------------------------------------------------ こんな風に、-~ (マイナスとチルダー) を置いて、すぐ改 行した行で始まり、行頭に -. (マイナスとピリオド) を置いて すぐ改行した行で終わる範囲は、詰め込み処理せず、枠で囲ん で、固定幅フォントで 表示されます。(h CO<sub>2</sub> /h) -. ------------------------------------------------------ @begin{panel} ------------------------------------------- こんな風に、-~ (マイナスとチルダー) を置いて、すぐ改 行した行で始まり、行頭に -. (マイナスとピリオド) を置いて すぐ改行した行で終わる範囲は、詰め込み処理せず、枠で囲ん で、固定幅フォントで 表示されます。(h CO<sub>2</sub> /h) @end{panel} ---------------------------------------------
こんな風に、-~ (マイナスとチルダー) を置いて、すぐ改 行した行で始まり、行頭に -. (マイナスとピリオド) を置いて すぐ改行した行で終わる範囲は、詰め込み処理せず、枠で囲ん で、固定幅フォントで 表示されます。(h CO<sub>2</sub> /h)
--- y = sin(x) --- z = cos(x) 1. --- y = sin(x) --- z = cos(x) このように項目の中に、Display 環境を置くことができます。
---~ y = sin(x) z = cos(x) ---.
---~ ------------------------------------------------------- y = sin(x) z = cos(x) ---. -------------------------------------------------------
1. ;;; @(%) $caption = "- で囲んだときの色指定" -~ /lightcyan/ y = sin(x) z = cos(x) ここのフォントは大きい。 -. 2. ;;; @(%) $caption = "--- で囲んだときの色指定" ---~ /papayawhip/ y = sin(x) z = cos(x) ここのフォントは小さい。 ---. 3. ;;; @(%) $caption = ",,, で囲んだときの色指定" ,,,~ /mistyrose/ y = sin(x) z = cos(x) ここのフォントは小さい。 ,,,.
y = sin(x) z = cos(x) ここのフォントは大きい。
y = sin(x) z = cos(x) ここのフォントは小さい。
* tar zxvof foo.tar .. cd foo ここからは詰め込み モードになります。
行末に、[br] このような改行記号をおくと そこで改行されます。
行末に、[br] .. このような改行記号をおくと そこで改行されます。
行末に、[br] .. このような改行記号をおくと、 そこで 改行されます。
※ html ファイルとして半角空白の個数を1個にしているのではなくて、ブラウザーが、半角空白1個のように見せているだけです。
間に空白行を置くのではなく、.. を置いて .. のように書くと、空白行が取られます。
/^[ ]*@begin{verbatim([^{}]*)}(| [-]+)$/ または /^[ ]*@begin{verbatim([^{}]*)}{[^{}]*}(| [-]+)$/
/^[ ]*@end{verbatim#{sub}}(| [-]+)$/
@begin{verbatim} ------------------------------------------- ここは、詰め込み処理 も置き換え処理もされません。 @end{verbatim} ---------------------------------------------
ここは、詰め込み処理 も置き換え処理もされません。
,,,~ ここは、詰め込み処理 も置き換え処理もされません。 ,,,.
@begin{verbatim}{...} ----------------------------------
@begin{vb}{bgcolor: beige color: crimson} ------------------ void main() { cout << "Hello, world!"; } @end{vb} ---------------------------------------------------
void main() { cout << "Hello, world!"; }
@begin{verbatim} ------------------------------------------- @begin{vb} ------------------------------------------------- static void Main() { Console.WriteLine("Hello World!"); } @end{vb} --------------------------------------------------- @end{verbatim} ---------------------------------------------
@begin{vb} ------------------------------------------------- static void Main() { Console.WriteLine("Hello World!"); } @end{vb} ---------------------------------------------------
@begin{vb}{bold} ------------------------------------------- static void Main() { Console.WriteLine("Hello World!"); } @end{vb} ---------------------------------------------------
@begin{verbatim}{bold} ------------------------------------- +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+ @end{verbatim} ---------------------------------------------
+-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+
@begin{verbatim} ------------------------------------------- +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+ @end{verbatim} ---------------------------------------------
@begin{verbatim}{bold} ---------------------------------- nw = nb nextline = $io.gets $io.pushback if /^([ ]*)[^ ].*$/ =~ nextline nk = $1.bytesize nw = nk if nk < nb end ,,,~ +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+ ,,,. @end{verbatim} ------------------------------------------
@begin{verbatim}{bbold} --------------------------------- nw = nb nextline = $io.gets $io.pushback if /^([ ]*)[^ ].*$/ =~ nextline nk = $1.bytesize nw = nk if nk < nb end ,,,~ +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+ ,,,. @end{verbatim} ------------------------------------------
nw = nb nextline = $io.gets $io.pushback if /^([ ]*)[^ ].*$/ =~ nextline nk = $1.bytesize nw = nk if nk < nb end ,,,~ +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+ ,,,.
/^[ ]*@begin{code([^}]*)}(| [-]+)$/ または /^[ ]*@begin{code([^{}]*)}{[^{}]*}(| [-]+)$/
/^[ ]*@end{code#{sub}}(| [-]+)$/
@begin{code3} ---------------------------------------------- static void Main() { Console.WriteLine("Hello World!"); } @end{code3} ------------------------------------------------
@begin{code}{...} --------------------------------------
@begin{code}{double} --------------------------------------- static void Main() { Console.WriteLine("Hello World!"); } @end{code} -------------------------------------------------
@begin{code}{dashed bgcolor: beige} ------------------------ static void Main() { Console.WriteLine("Hello World!"); } @end{code} ------------------------------------------------- @begin{code}{bgcolor: beige color: crimson} ---------------- static void Main() { Console.WriteLine("Hello World!"); } @end{code} -------------------------------------------------
@begin{code} ----------------------------------------------- +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+ @end{code} ------------------------------------------------- @begin{code}{bold} ----------------------------------------- +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+ @end{code} -------------------------------------------------
@begin{code}{bold} -------------------------------------- nw = nb nextline = $io.gets $io.pushback if /^([ ]*)[^ ].*$/ =~ nextline nk = $1.bytesize nw = nk if nk < nb end ,,,~ +-------------+-------------+ | | | | C | | | | | +-------------+ B | | | | | A | | | | | +-------------+-------------+ ,,,. @end{code} ----------------------------------------------
/^[ ]*@begin{panel([^}]*)}(| [-]+)$/ または /^[ ]*@begin{panel([^{}]*)}{[^{}]*}(| [-]+)$/
/^[ ]*@end{panel#{sub}}(| [-]+)$/
@begin{panel} ---------------------------------------------- ここは、詰め込み処理 も置き換え処理もされません。 @end{panel} ------------------------------------------------
$default_panel_backcolor = "snow"
@begin{panel}{bgcolor: beige} ------------------------------ ここは、詰め込み処理 も置き換え処理もされません。 @end{panel} ------------------------------------------------
@begin{panel}{double bgcolor: beige} ----------------------- ここは、詰め込み処理 も置き換え処理もされません。 @end{panel} ------------------------------------------------
@begin{frame}{solid bgcolor: beige} ------------------------ ここは、frame 環境を使っているので 詰め込こまれます。 詰め込み処理されて全体がひとつの段落として整形 されます。 中に、番号付きリストなどを置くこともできます。 間に空白行を置くこともできます。 @end{frame} ------------------------------------------------
/^[ ]*@begin{fpanel}(| [-]+)$/ または /^[ ]*@begin{fpanel}{[^{}]*}(| [-]+)$/
/^[ ]*@end{fpanel}(| [-]+)$/
@begin{fpanel} --------------------------------------------- ここは詰め込み処理されます。全体が一つの段落として整形されます。 ただし、間に空白行が来たら、その間で段落が終わり、つぎの行で段落が開始するように整形されます。 ここはつぎの段落のように整形 されます。 @end{fpanel} -----------------------------------------------
ここは詰め込み処理されます。全体が一つの段落として整形されます。ただし、間に空白行が来たら、その間で段落が終わり、つぎの行で段落が開始するように整形されます。 ここはつぎの段落のように整形されます。
@begin{fpanel}{bgcolor: beige} ----------------------------- ここは詰め込み処理 されます。全体が一つの段落として整形されます。ただし、間に空白行が 来たら、その間で段落が終わり、つぎの行で段落が開始するように 整形されます。 ここはつぎの段落のように整形 されます。 @end{fpanel} -----------------------------------------------
@begin{ignore} --------------------------------------------- ここは無視 します。 @end{ignore} -----------------------------------------------
ここに @begin{ignore} --------------------------------------------- ここは無視 します。 @end{ignore} ----------------------------------------------- 無視された領域があります。
ここに 無視された領域があります。
001: @_cTable 環境の使用例 002: @begin{cTable}{center 80% 10% 20% null} -------------------- 003: ============================================================ 004: 県名 005: ---------------------------------------------------------- 006: 県庁所在地 007: -------------------------------------------------------- 008: >< 特徴 009: ------------------------------------------------------------ 010: 京都府 011: ---------------------------------------------------------- 012: > 京都市 013: -------------------------------------------------------- 014: 京都府(きょうとふ)は、日本国・近畿地方(関西地方) 015: の 016: 都道府県。 017: <br><br> 018: 794年の平安京遷都以来、天皇の御所がある。令制国 019: でいう山城国の 020: 全域、丹波国の東部および丹後国の全域を府域とする。 021: ------------------------------------------------------------ 022: 長崎県 023: ---------------------------------------------------------- 024: . 025: -------------------------------------------------------- 026: 長崎県(ながさきけん)は、日本の九州西端部にある県。 027: 028: 東に佐賀県と隣接する他は、周囲を海に囲まれている。対馬、 029: 壱岐、五島列島などの島嶼が971あり、その数は日本一である。 030: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 031: □京都府と長崎県の比較表。Wikipedia に記載されていたものを参 032: 考にしました。 033: 長い文章を書いても自動的に折り返されます。 034: (H "Emacs 関数")を使用することができます。[br] 035: html のタグを使用できるので、箇条書きもできます。 036: <dl> 037: <dt>罹災証明書 038: <dd>災害対策基本法で、「市町村長は、当該市町村の地域 039: に関わる災害が発生した場合において、当該地域の被災者 040: から申請があったときは、遅滞なく、住家の被害その他の 041: 当該市町村長が定める種類の被害の状況を調査し、罹災証 042: 明書 (災害による被害の程度を証明する書面) を交付しな 043: ければならない。」と定められている。 044: <dt>被災者支援と罹災証明書 045: <dd>被災者への支援策としては、給付、融資、減免・猶予、現物 046: 支給などの各種対策があり、それらの支援を受けるときに、 047: 罹災証明書の提示を求められることがある。 048: </dl> 049: @end{cTable} -----------------------------------------------
@begin{cTable}{center 80% 10% 20% null}
※ この例では、"10% 20% null" とあることで表の列が 3 列であると指定していることになりました。"null" だけを指定すると、列は 1 列ということになります。
※ Google 日本語入力を使っている場合は、簡単な四則演算ができます。全角文字 15 字分の幅は、余裕を含めて、15*16 + 10 を計算すればいいのですが、全角で、15*16+10=と入力して、TAB を押して改行すれば、250 と入力されます。
@begin{cTable}{60% 25% 25% 25% null} ----------------------- = 県名 : 県庁所在地 : 県人口 : 県面積 - 京都府 : 京都市 : > 261 万人 : > 4613 km<sup>2</sup> - 長崎県 : . : > 137 万人 : > 4093 km<sup>2</sup> @end{cTable} -----------------------------------------------
@begin{cTable}{60% 25% 25% 25% null} ----------------------- = 県名 : 県庁所在地 : 県人口 : 県面積 - 京都府 : 京都市 : > 261 万人 : > 4613 km<sup>2</sup> - 長崎県 -------------------------------------------------------- . : > 137 万人 : > 4093 km<sup>2</sup> @end{cTable} -----------------------------------------------
@begin{cTable}{60% 25% 25% 25% null} ----------------------- = 県名 : 県庁所在地 : 県人口 : 県面積 - 京都府 : 京都市 : > 261 万人 : > 4613 km<sup>2</sup> - 長崎県 - . : > 137 万人 : > 4093 km<sup>2</sup> @end{cTable} -----------------------------------------------
- . : > 137 万人 : > 4093 km<sup>2</sup>
-------------------------------------------------------- . : > 137 万人 : > 4093 km<sup>2</sup>
@begin{cTable}{40% null} -------------------------------- --------------------------------------------------------- Upgrade to v1.1.24.00 (Unicode 64-bit) --------------------------------------------------------- Custom Installation @end{cTable} --------------------------------------------
@begin{cTable}{40% null} -------------------------------- - Upgrade to v1.1.24.00 (Unicode 64-bit) - Custom Installation @end{cTable} --------------------------------------------
bgcolor: beige
: @_wTable 環境の使用例 @begin{wTable}{left 700 25% null} ------------------------ ========================================================== リストの名前 -------------------------------------------------------- リストの概要 ---------------------------------------------------------- 番号付きリスト -------------------------------------------------------- 見出しに番号がつけられるリスト。番号の代わりにアルファベ ットも使用できる。 ---------------------------------------------------------- マーク付きリスト -------------------------------------------------------- ++、* または ** を見出しにするリスト。 ---------------------------------------------------------- 標題つきリスト -------------------------------------------------------- 標題とその説明という形のリスト。標題の部分をボールドにす ることができる。標題を表示するのに一行とる。<br> 改行もできる。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ □京都府と長崎県の比較表。Wikipedia に記載されていたものを 参考にしました。長い文章を書いても自動的に折り 返されます。<br> (H "Emacs 関数")を使用することができます。 @end{wTable} ---------------------------------------------
@begin{wTable}{50% 35% 35% null} ------------------------- = 県名 : 県庁所在地 : 人口 - 京都府 : 京都市 : > 261 万人 - 長崎県 : 長崎市 : > 137 万人 @end{wTable} ---------------------------------------------
\begin{tikzpicture} \fill[yellow] (-0.1, -0.1) rectangle (2.1,1.1); \draw[-latex] (0,0) -- (2,0); \draw[-latex] (0,0) -- (0,1); \draw[very thick] (0,0) .. controls (1,0) .. (2,1); \end{tikzpicture}
※ 特別に、第1列の幅を null に指定し、第2列の列幅を指定することもできます。
※ 次に示す tcTable 環境の使用例のコード H1の005行がその例です。006 行の「リスト」は、行頭からデータが書かれているので、その前の 005 行の「番号付き」の続きと見なされます。
001: @_tcTable 環境の使用例 002: @begin{tcTable}{left 98% 130} ---------------------------- 003: = >< リストの名前 004: >< リストの概要 005: - 番号付き 006: リスト 007: 見出しに番号がつけられるリスト。 008: .. 番号の代わりにアルファベットも使用できる。 009: - マーク付きリスト 010: ++、* または ** を見出しにするリスト。 011: - 標題つきリスト 012: 標題とその説明という形のリスト。標題の部分をボールドに 013: することができる。標題を表示するのに一行とる。[br] 014: 改行もできる。 015: - 第1欄でも[br]で[br] 016: 改行可能 017: この例のように第1欄でも [br] を書くことが 018: できます。[br][br] 019: 行末に置いた [br] は複数個数でもすべて改行記号に置き換 020: えられます。 021: - . ,,, を書いた行で挟む 022: プログラムコードなどを示したい場合は、,,, を書いて 023: すぐ改行した行と ,,,. を書いた行で囲みます。 024: 025: ,,,~ 026: static void Main() 027: { 028: Console.WriteLine("Hello World!"); 029: } 030: ,,,. 031: - . --- を書いた行で挟む 032: プログラムコードなどを示したい場合に、--- を書いて 033: すぐ改行した行で囲むと枠で囲んで示します。 034: 035: ---~ 036: static void Main() 037: { 038: Console.WriteLine("Hello World!"); 039: } 040: ---. 041: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 042: □ これらのリスト環境は、「説明文」を書く部分を持っていて、 043: その部分は、詰め込み処理される。詰め込み処理される部分に、 044: また、入れ子にして、 045: これらのリスト環境を置くことができる。[br][br] 046: tcTableでは、(H "番号付きリスト") のように (H "Emacs 関数") 047: を使用できる。 048: @end{tcTable} --------------------------------------------
@begin{tcTable}{40% 45%} ---------------------------------- = 県名 : 人口 - 京都府 : > 261 万人 - 長崎県 : > 137 万人 @end{tcTable} --------------------------------------------- @begin{tcTable}{98% 20%} -------------------------------- = キー : 機能の説明 - F2 : バッファリストが表示され、表示されたリストから ジャンプしたいリストを選択します。 .. select-buffer - F3 : 現在表示されているバッファ以外のバッファを閉じ ます。 - F5 : 次を検索 (ファイラーでは、すべて選択) - C-x 9 ¥: : C-¥: を押したときの動作を決めます。 @end{tcTable} --------------------------------------------
@begin{tcTable}{40% null 30%} ----------------------------- = 県名 : 人口 - 京都府 : > 261 万人 - 長崎県 : > 137 万人 @end{tcTable} ---------------------------------------------
※ 特別に、第1列の幅を null に指定し、その後に第2列の列幅を指定するという様式で第2列の列幅の方を指定することもできます。
001: @_twTable 環境の使用例 002: @begin{twTable}{left 700 25%} ---------------------------- 003: = リストの名前 004: リストの概要 005: - 番号付きリスト 006: 見出しに番号がつけられるリスト。番号の代わりにアルファ 007: ベットも使用できる。 008: - マーク付きリスト 009: ++、* または ** を見出しにするリスト。 010: - 標題つきリスト 011: 標題とその説明という形のリスト。標題の部分をボールドに 012: することができる。標題を表示するのに一行とる。[br] 013: 改行もできる。 014: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 015: □ これらのリスト環境は、「説明文」を書く部分を持っていて、 016: その部分は、詰め込み処理される。詰め込み処理される部分に、 017: また、入れ子にして、 018: これらのリスト環境を置くことができる。[br][br] 019: twTableでは、(H "番号付きリスト") のように Emacs 関数を使用 020: できる。 021: @end{twTable} --------------------------------------------
@begin{twTable}{bgc: beige 40% 45%} ----------------------- = 県名 : 人口 - 京都府 : > 261 万人 - 長崎県 : > 137 万人 @end{twTable} ---------------------------------------------
@begin{twTable}{100% 20%} --------------------------------- = 項目名 : 説明 - 項目名1 : 説明1 - 項目名2 : 説明2 @end{twTable} ---------------------------------------------
= 項目名 : 説明 - 項目名1 : 説明1 - 項目名2 : 説明2
※ twTable 環境の簡易記法では、第2列に空白行を置くと、twTable 環境自身が終了するとみなされることになるので、普通には、第2列に空白行を置くことができなくなってしまいます。twTable 環境の簡易記法を使いながら、第2列に空白行を置くには、.. だけを置いた行を挿入します。
= 項目名 : 説明 - 項目名1 : 説明1 - 項目名2 : 説明2 .. 説明2の続き
= 項目名 : 説明
※ 半角文字が表示されるときの横幅は文字によって異なりますが、英大文字の場合大体12ドット幅と見積もられるので、半角文字は、1字12ドットとして計算しています。英大文字の I や、英小文字の幅は、これより小さいので、英小文字が含まれている場合には、少し広めに見積もることになります。
= 区間 : 金額 . - 京都--東京 : > 13,080 円 - 京都--桃山 : > 190 円
※ 第2欄のセル内の先頭に > を書いているのは、その後の内容 (この例では、"13,080 円" や "190 円") を右寄せすることを指示しています。このように第2欄のデータを右寄せするときは、第2欄の幅を指定する必要があります。そうでないと、ページの右端に寄せることになってしまいます。
= 環境変数名 : 値 - DESKTOPWRK : C:¥Users¥me¥Desktop¥desktopWork - DIRLINK : C:¥Users¥me¥Dropbox¥dirlink - DROPBOX : C:¥Users¥me¥Dropbox
※ このように、欄幅を指定するために置く、+ で書き始める行を欄幅指定行と呼ぶことにします。
+ DESKTOPWORK : C:¥Users¥me¥Desktop¥desktopWork = 環境変数名 : 値 - DESKTOPWORK : C:¥Users¥me¥Desktop¥desktopWork - DIRLINK : C:¥Users¥me¥Dropbox¥dirlink - DROPBOX : C:¥Users¥me¥Dropbox
+ ----------- : ------------------------------- = 環境変数名 : 値 - DESKTOPWORK : C:¥Users¥me¥Desktop¥desktopWork - DIRLINK : C:¥Users¥me¥Dropbox¥dirlink - DROPBOX : C:¥Users¥me¥Dropbox
※ 2番目の書き方の方が、その行が欄幅指定行であることが分かりやすいと思います。
+ ーーーーーー : ーーーーーー . = 区間 : 金額 - 京都--東京 : > 13,080 円 - 京都--桃山 : > 190 円
+. ーーーーーー : ーーーーーー . = 区間 : 金額 - 京都--東京 : > 13,080 円 - 京都--桃山 : > 190 円 =. キー : 機能の説明 - F2 : バッファリストが表示され、表示されたリストから ジャンプしたいリストを選択します。 .. select-buffer - F3 : 現在表示されているバッファ以外のバッファを閉じ ます。 - F5 : 次を検索 (ファイラーでは、すべて選択) - C-x 9 ¥: : C-¥: を押したときの動作を決めます。 -. nil : 選択なし - 1 : 行モード選択状態 - 2 : 文字モード選択状態 - 3 : 矩形選択状態
# subTable 環境は、cTable 環境, wTable 環境, tcTable 環境, twTable 環境, subTable 環境の中だけで使用できます。
@begin{tcTable}{100% 20%} ---------------------------------- = オプション 動作 - /t:bf 背景色と前景色(文字色)を設定する。bfには16進2桁で背景 色と前景色を指定する。色コードについては次の表を参照。デ フォルトは"/t:07"(背景色は0の黒色で、文字色は7の白色)。 @_色コードと色の対応 @begin{subTable}{bgc: beige center 450 60 90 60 90 60 90} ======================================================== 数値 ----------------------------------------------------- 色 ----------------------------------------------------- 数値 ----------------------------------------------------- 色 ----------------------------------------------------- 数値 ----------------------------------------------------- 色 -------------------------------------------------------- 0 ----------------------------------------------------- 黒 ----------------------------------------------------- 6 ----------------------------------------------------- 黄色 ----------------------------------------------------- C ----------------------------------------------------- 明るい赤 -------------------------------------------------------- 1 ----------------------------------------------------- 青 ----------------------------------------------------- 7 ----------------------------------------------------- 白 ----------------------------------------------------- D ----------------------------------------------------- 明るい紫 -------------------------------------------------------- 2 ----------------------------------------------------- 緑 ----------------------------------------------------- 8 ----------------------------------------------------- 灰色 ----------------------------------------------------- E ----------------------------------------------------- 明るい黄色 -------------------------------------------------------- 3 ----------------------------------------------------- 水色 ----------------------------------------------------- 9 ----------------------------------------------------- 明るい青 ----------------------------------------------------- F ----------------------------------------------------- 明るい白 -------------------------------------------------------- 4 ----------------------------------------------------- 赤 ----------------------------------------------------- A ----------------------------------------------------- 明るい緑 ----------------------------------------------------- ----------------------------------------------------- -------------------------------------------------------- 5 ----------------------------------------------------- 紫 ----------------------------------------------------- B ----------------------------------------------------- 明るい水色 ----------------------------------------------------- ----------------------------------------------------- @end{subTable} @end{tcTable} ----------------------------------------------
@begin{tcTable}{100% 20%} ---------------------------------- = オプション 動作 - /t:bf 背景色と前景色(文字色)を設定する。bfには16進2桁で背景 色と前景色を指定する。色コードについては次の表を参照。デ フォルトは"/t:07"(背景色は0の黒色で、文字色は7の白色)。 @@_色コードと色の対応 @begin{subTable}{bgc: beige center 450 60 90 60 90 60 90} = 数値 : 色 : 数値 : 色 : 数値 : 色 - 0 : 黒 : 6 : 黄色 : C : 明るい赤 - 1 : 青 : 7 : 白 : D : 明るい紫 - 2 : 緑 : 8 : 灰色 : E : 明るい黄色 - 3 : 水色 : 9 : 明るい青 : F : 明るい白 - 4 : 赤 : A : 明るい緑 : : - 5 : 紫 : B : 明るい水色 : : @end{subTable} @end{tcTable} ----------------------------------------------
行1[br][br] 行2
.~ 行1 (H "bar") 行2 =(H "bar") 行3 <span style="color:red">文字色を赤く。</span> 行4 ..
あああ ... (H "bar") いいい .. あああ (Vb (H "bar") /Vb) いいいと書くこともできます。
あああ ... いいいい
,~ 行1 (H "bar") 行2 <span style="color:red">文字色を赤く。</span> 行3 ,.
,,~ static void Main() { Console.WriteLine("Hello World!"); } ,,.
,,,~ static void Main() { Console.WriteLine("Hello World!"); } +----------+---------+ | | B | | A +---------+ | | C | +----------+---------+ ,,,.
static void Main() { Console.WriteLine("Hello World!"); } +----------+---------+ | | B | | A +---------+ | | C | +----------+---------+
---~ static void Main() { Console.WriteLine("Hello World!"); } ---.
(Vb <abc> /Vb) と書く。 ... <abc> と書くこともできます。
/^[==]+[ ]*\.$/
この例を見てください。 <ol> <li> 第1項目</li> <li> 第2項目</li> </ol>
@begin{html} ----------------------------------------------- <p><table border="1"><tr><td>表の</td> <td>挿入</td></tr> </table></p> @end{html} -------------------------------------------------
:表の挿入 標題つきリストの説明の中にも挿入できます。 @begin{html} --------------------------------------------- <p><table border="1"><tr><td>表の</td> <td>挿入</td></tr> </table></p> @end{html} ----------------------------------------------- @begin{html} --------------------------------------------- <table border=4 width=250> <caption>【テーブルの例】</caption> <tr bgcolor="#cccccc"> <th><br></th> <th>列-a</th> <th>列-b</th> <th>列-c</th> </tr> <tr align=center> <td>行-1</td> <td>a1</td> <td>b1</td> <td rowspan=2>c1-c2</td> </tr> <tr align=center> <td>行-2</td> <td>a2</td> <td>b2</td> </tr> <tr align=center> <td>行-3</td> <td>a3</td> <td colspan=2>a3-b3</td> </tr> </table> <p> @end{html} ----------------------------------------------- ## <table> タグに、align=left あるいは align=right と指定 すると、文章が表の横に 回り込みます。文章が表の周りに回り 込まないようにするには、align=center とするか、 <table> で align を指定せず、</table> の後に <p> を挿 入してください。 (Net "http://www.1uphp.com/con1/table/float.html") table タグの詳細については、 .. (Net "http://www.tohoho-web.com/html/table.htm") を参照してください。 @begin{html} --------------------------------------------- 炭酸ガスは、CO<sub>2</sub> のように書きます。 特に強調したい箇所を色を付けて表示するには、 <span style="color: red;">html コードを挿入して色づけ</span> すればいいでしょう。 @end{html} ----------------------------------------------- @begin{htmlbr} ------------------------------------------- 炭酸ガスは、CO<sub>2</sub> のように書きます。 特に強調したい箇所を色を付けて表示するには、 <span style="color: red;">html コードを挿入して色づけ</span> すればいいでしょう。 @end{htmlbr} --------------------------------------------- 炭酸ガスは、(Html CO<sub>2</sub> /Html) のように書きます。 特に強調したい箇所を色を付けて表示するには、 (Html <span style="color: red;">html コードを挿入して色づけ</span> /Html) すればいいでしょう。 普通に文章を書いていて、 @begin{html} --------------------------------------------- html のタグを使って書きたいとしたら、CO<sub>2</sub> のように 書くことができます。<span style="color: red;">html コードを挿 入して色づけ</span>して @end{html} ----------------------------------------------- 書くことができます。そのまま挿入されます。
# <table> タグに、align=left あるいは align=right と指定すると、文章が表の横に周り込みます。文章が表の周りに回り込まないようにするには、align=center とするか、<table> で align を指定せず、</table> の後に <p> を挿入してください。http://www.1uphp.com/con1/table/float.html
@begin{foo} ------------------------------------------------ ここの部分は、@begin{code} ... @end{code} で囲まれていたかの ように整形されますfoo がキャプションとして表示されます。 @end{foo} --------------------------------------------------
;;; @(%) $caption = 'foo' @begin{code} ----------------------------------------------- ここの部分は、@begin{code} ... @end{code} で囲まれていたかの ように整形されます。foo がキャプションとして表示されます。 @end{code} -------------------------------------------------
ここの部分は、@begin{code} ... @end{code} で囲まれていたかの ように整形されます。foo がキャプションとして表示されます。
@begin{code} ... @end{code} @begin{panel} ... @end{panel} @begin{fpanel} ... @end{fpanel} threecommasverbatim 環境 @begin{verbatim} ... @end{verbatim} @begin{cTable} ... @end{cTable} @begin{frame} ... @end{frame}
;;; @(%) $caption = 'sample code'
;;; @(%) $caponly = 'sample code'
※ 後で、$caption, $caponly, $endnote の簡易記法 H1 のところで簡易な記述方法について述べます。
;;; @(%) $endnote = 'sample code'
@begin{frame} ---------------------------------------------- ○ キャプションを置く例 ;;; @(%) $caption = 'sample code' @begin{code} ----------------------------------------------- if $opt_version puts "#{file.basename($0)}: #{verstring}" exit 0 end @end{code} ------------------------------------------------- ○ 注釈を書く例 ;;; @(%) $endnote = 'sample note' @begin{code} ----------------------------------------------- if $opt_version puts "#{file.basename($0)}: #{verstring}" exit 0 end @end{code} ------------------------------------------------- @end{frame} ------------------------------------------------
if $opt_version puts "#{file.basename($0)}: #{verstring}" exit 0 end
sample note
;;; @(%) $endnote = '<strong>sample code</strong>'
;;; @(%) $caption = 'OR検索' ;;; @(%) $endnote = '"hello"または"world"がある行にマッチする。' @begin{code} ----------------------------------------------- select-string -path "*.txt" -pattern "hello","world" @end{code} -------------------------------------------------
select-string -path "*.txt" -pattern "hello","world"
"hello"または"world"がある行にマッチする。
;;; @(%) $caption = '前に置くキャプション'
;;; @(%) $caption = '前に置くキャプション' @begin{frame}{double} -------------------------------------- frame の中に次のようにリストを置くことができます。 * aaa * bbbbbb @end{frame} ------------------------------------------------
;;; @(%) $endnote = '注釈文'
@begin{frame}{double} -------------------------------------- frame の中に次のようにリストを置くことができます。 * aaa * bbbbbb ;;; @(%) $endnote = 'dotted の例' @begin{frame}{dotted} ----------------------------------- こんな風に。 @end{frame} --------------------------------------------- ;;; @(%) $endnote = '後に置く注釈' @end{frame} ------------------------------------------------
dotted の例
後に置く注釈
;;; @(%) $endnote = '一行目<br>二行目'
@begin{endnote} -------------------------------------------- 長い $endnote を書くときは、 @begin{endnote} ... @end{endnote} を使うのが簡単でしょう。[br] 改行したい場合は、[br] コードを書きます。[br] (H "特殊環境のキャプションや注釈") のような Emacs 関数を 書くこともできます。 @end{endnote} ---------------------------------------------- @begin{fpanel} --------------------------------------------- ◎ fpanel 環境の endnote ここは、$endnote の例を示すために 書いています。 @end{fpanel} -----------------------------------------------
◎ fpanel 環境の endnote ここは、$endnote の例を示すために書いています。
長い $endnote を書くときは、@begin{endnote} ... @end{endnote} を使うのが簡単でしょう。改行したい場合は、[br] コードを書きます。特殊環境のキャプションや注釈 H2 のような Emacs 関数を書くこともできます。
@begin{code} --------------------------------------------- (a) ≡ (a . nil) (a b c) ≡ (a . (b . (c . nil))) ((a b) (c d)) ≡ ((a . (b . nil)) . (c . (d . nil))) [訂正] '02-4-15 ((a b) (c d)) ≡ ((a . (b . nil)) (c . (d . nil))) [訂正] '02-6-27 ≡ ((a . (b . nil)) . ((c . (d . nil)) . nil)) ((a b) c d) ≡ ((a . (b . nil)) . (c . (d . nil))) @end{code} ----------------------------------------------- @begin{frame}{null font-size: small} --------------------- @begin{code} ... @end{code} 環境とは独立して、コメントを付 加することもできます。 1. 普通の番号付きリストを書くこともできます。 2. ここは小さなサイズで書かれています。 @end{frame} ----------------------------------------------
(a) ≡ (a . nil) (a b c) ≡ (a . (b . (c . nil))) ((a b) (c d)) ≡ ((a . (b . nil)) . (c . (d . nil))) [訂正] '02-4-15 ((a b) (c d)) ≡ ((a . (b . nil)) (c . (d . nil))) [訂正] '02-6-27 ≡ ((a . (b . nil)) . ((c . (d . nil)) . nil)) ((a b) c d) ≡ ((a . (b . nil)) . (c . (d . nil)))
@begin{endnote} -------------------------------------------- エンドノート1 エンドノート2 @end{endnote} ----------------------------------------------
;;; @(%) $endnote = 'エンドノート1_ エンドノート2'
@_見出し文字列
;;; @(%) $caption = '見出し文字列'
;;; @(%) $caption = heading
@@_標題だけ文字列
;;; @(%) $caponly = '標題だけ文字列'
;;; @(%) $caponly = heading
require 'date' $today = Date.today.to_s
@@_$today
code 環境の標題に日付を 書く例を示します。
@@@_注釈文字列
;;; @(%) $endnote= '注釈文字列'
;;; @(%) $endnote = heading
この panel 環境が始まるところで、@begin{panel} の前に @_"panel 環境"の前の見出し @@@_'※ panel 環境を使って書いています。_ 背景色は ' + $default_panel_backcolor + ' です。' と書いています。
@begin{vb}{prefix: "| "} ----------------------------------- | * 注釈 | | (note "emacs から xyzzy へ") | cbar は、最近は、xyzzy を主として使用していて、emacs ではなく | て、xyzzy で odr 文書を編集しています。emacs の outline mode | は、xyzzy には移植されていませんが、xyzzy には、outline-tree | というすばらしいモードがあります。 @end{vb} ---------------------------------------------------
* 注釈 (note "emacs から xyzzy へ") cbar は、最近は、xyzzy を主として使用していて、emacs ではなく て、xyzzy で odr 文書を編集しています。emacs の outline mode は、xyzzy には移植されていませんが、xyzzy には、outline-tree というすばらしいモードがあります。
※ 例えば、行頭から * が現れる行を調べて、見出し行の番号システムを用いて見出し行を特定する方式は、行頭から * が現れる行が、アウトライン見出しを表現するところ以外では使われないということを前提としています。説明のために引用する文章で、行頭から * を書く部分があると、その前提が崩れます。そうした困った事態を避けるために、「前置文字列の仕組み」が導入されました。
@begin{fpanel}{prefix: "| "} ------------------------------- | ここは詰め込み処理 | されます。全体が一つの段落として整形されます。ただし、 | 間に空白行が | 来たら、その間で段落が終わり、つぎの行で段落が開始するように | 整形されます。 | | ここはつぎの段落のように整形 | されます。 @end{fpanel} -----------------------------------------------
@begin{vb}{linenum} ---------------------------------------- static void Main() { Console.WriteLine("Hello World!"); } @end{vb} ---------------------------------------------------
001: static void Main() 002: { 003: Console.WriteLine("Hello World!"); 004: }
※ code 環境でも、オプション文字列のところに linenum を指定できます。
linenum: 15
@begin{vb}{linenum: 15} ------------------------------------ static void Main() { Console.WriteLine("Hello World!"); } @end{vb} ---------------------------------------------------
015: static void Main() 016: { 017: Console.WriteLine("Hello World!"); 018: }
---- o2h.rb が読み込んで処理するファイルの中に、文字通り行頭から、セミコロンを3個書いて、@(#) に続いて書いた行は ODR 文書のキャプションを指定するものと解釈されます。
;;; @(#) ODR 文書の書き方
---- 行頭から半角空白を0個以上置いて、つまり、字下げもありで、セミコロンを3個書いて、@(%) に続いて書いた文字列は、その位置で、書き換えプログラム o2h.rb に書かれていたものとして「評価」されます。
;;; @(%) $default_fontcolor = "Blue"
---- 行頭から半角空白を0個以上置いて、つまり、字下げもありで、セミコロンを3個書いて、前の2項に書いたものに合致しない行 (つまり、;;; の後に 、@(#) も @(%) も書かれていない行) は、その行自体が書かれていなかったように処理されます。
;;; (File "C:/home/me/foo.txt")
あいうえおかきくけこさしすせそたちつてと ここの行のアンダースコア_ の後が継続されます。
あいうえおかきくけこさしすせそたちつてと ここの行のアンダースコアの後が継続されます。
あいうえおかきくけこさしすせそたちつてと ここの行のアンダースコア_ _ の後が継続されます。
あいうえおかきくけこさしすせそたちつてと ここの行のアンダースコア の後が継続されます。
※ 「行末に、アンダースコアがあり、その直前がアンダースコアでない場合に、つぎの行に継続されるという」ルールが副作用を起こすようなプログラム言語では、プログラムファイルに ODR 文書を埋め込むときに、プログラムの表示の部分でうまく行かないことが起こる可能性があります。
@begin{html} ----------------------------------------------- <table border=0 width=700 bgcolor="beige" cellpadding="6" align=center> <tr><td colspan=3><hr size="3" noshade></td></tr> <tr> <th width="10%" align="left">項目</th> <th width="50%" align="left">第1欄</th> <th width="40%" align="left">第2欄</th> </tr> <tr><td colspan=3><hr></td></tr> <tr> <td width="10%" valign="top">京都府</td> <td width="50%" valign="top"> ああああああああああああああああああああああああああああああ。</td> <td width="40%" valign="top"> いいいいいいいいいいいいいいいいいいいいいいいいいいいい。<br> ううううううううううううううううううううううう。</td> </tr> <tr> <td width="10%" valign="top">長崎県</td> <td width="50%" valign="top"> セルの中に、リスト環境が置けるか試しました。 <ol> <li> 県庁所在地は、長崎市。</li> <li> ああああああああああああああああああああああああああああああ。 </ol> </td> <td width="40%" valign="top">いいいいいいいいいいいいいいいいいい。<br> ううううううううううううううううううううううううううううううう。</td> </tr> <tr><td colspan=3><hr size="3" noshade></td></tr> </table> <br clear="all"> @end{html} -------------------------------------------------
@begin{cTable}{center 700 10% 50% null} -------------------- ============================================================ 項目 ---------------------------------------------------------- 第1欄 ---------------------------------------------------------- 第2欄 ------------------------------------------------------------ 京都府 ---------------------------------------------------------- あああああああああああああああああああああああああああああ あ。 ---------------------------------------------------------- いいいいいいいいいいいいいいいいいいいいいいいいいいいい。 <br> ううううううううううううううううううううううう。 ------------------------------------------------------------ 長崎県 ---------------------------------------------------------- セルの中にリスト環境を置けるか試しました。 <ol> <li> 県庁所在地は、長崎市。</li> <li> あああああああああああああああああああああああああ あああああ。 </ol> ---------------------------------------------------------- いいいいいいいいいいいいいいいいいい。<br> ううううううううううううううううううううううううううううう うう。 @end{cTable} -----------------------------------------------
@begin{bgcolor}{beige} ------------------------------------- この範囲の文章は、背景色が beige で表示されます。 .. 背景色の指定は、入れ子にできます。 @begin{bgcolor}{色名} ... @end{bgcolor} で囲んだ範囲の 背景色がその色名の色になります。 @end{bgcolor} ----------------------------------------------
@begin{bgcolor}{beige} ------------------------------------- .. この範囲の文章は、背景色が beige で表示 されます。 .. .. @end{bgcolor} ---------------------------------------------- この行には背景色の指定は及びません。
@begin{bgcolor}{beige color: crimson} ---------------------- 文字色の指定を追加できます。 @end{bgcolor} ----------------------------------------------
@begin{bgcolor}{color: crimson} ---------------------------- 背景色の指定のところに色を指定せず、 .. 文字色だけを指定することができます。 @end{bgcolor} ----------------------------------------------
1. @begin{bgcolor}{#98fb98} ----------------------------- 番号付きリストの中で、ひとつの項目全体を指定した背景色 で表示するように指定することができます。 ... この方法は、マーク付きリストにも適用できます。 @end{bgcolor} ----------------------------------------
@begin{bgcolor}{lemonchiffon} --------------------------- マークつきリストの項目を色づけすることももちろんできます。 .. @end{bgcolor} ------------------------------------------- @begin{bgcolor}{palegreen} ------------------------------ * マーク付きリストの全体の色をつけることもできます。 * @begin{bgcolor}{#AAEE00} ------------------------------ 色づけを入れ子にすることができます。 @end{bgcolor} ----------------------------------------- * ここでは元の背景色が採用されます。 @end{bgcolor} -------------------------------------------
@begin{bgcolor}{lightyellow} ---------------------------- ::標題つきリスト @begin{bgcolor}{lightcyan} --------------------------- 標題部分と説明部分を違う背景色にするにはこのようにします。 @end{bgcolor} ---------------------------------------- @end{bgcolor} -------------------------------------------
: @begin{bgcolor}{lightcyan} ---------------------------- ,~ ここは DotFlushleft 環境 です。 ,. @end{bgcolor} -------------------------------------------
: ;;; @(%) $twbgcolor = "beige" + ----------------- : ================= . - メニューテキスト : > xyzzyfiler - アイテムの種類 : > フォルダ - アイテムのみ : いいえ - プログラム : C:¥home¥me¥bin¥xyzzyfiler.exe - 引数 : "%FILEPATH1%" 表の背景色の指定の例を 示しています。
1. .~ /lightyellow/ ここは DotFlushleft 環境 です。emacs 環境の置き換えあり。 (Net "http://www.colordic.org/") .. 2. .~ /lightyellow, crimson/ ここは DotFlushleft 環境 です。emacs 環境の置き換えあり。 (Net "http://www.colordic.org/") .. 3. ,~ /lightcyan/ ここは CommaVerbatim 環境 です。emacs 環境の置き換えなし。 (Net "http://www.colordic.org/") ,. 4. ,~ /lightcyan, crimson/ ここは CommaVerbatim 環境 です。emacs 環境の置き換えなし。 (Net "http://www.colordic.org/") ,. 5. ,,,~ /beige/ void main() { cout << "Hello, world!"; } ,,,. 6. ,,,~ /beige, crimson/ void main() { cout << "Hello, world!"; } ,,,. 7. ---~ /beige/ void main() { cout << "Hello, world!"; } ---. 8. ---~ /beige, crimson/ void main() { cout << "Hello, world!"; } ---.
: /beige/ ここは引用環境です。 引用環境なので 詰め込まれます。
@end{bgcolor}
: /beige/ ここは引用環境です。 引用環境なので 詰め込まれます。 @end{bgcolor} ここは背景色が指定されていません。 引用環境は続いているので 詰め込まれます。
: /beige/ 万事において負けること自体は恥ではない。 負けを恥と思う心を恥じよ。 引用環境なので 詰め込まれます。 . : ここは 背景色が指定されていません。 もう引用環境ではないので詰め込まれません。
※ この例では、引用環境を明示的に閉じるには、. : (ピリオド+半角空白+コロン) だけを書いた行をおきました。.: のようにピリオドとコロンの間に半角空白を置かない文字列だけを書いた行は、標題部分を : で始める標題付きリスト H2 で、書き出し位置を標題部分の書き出し位置と同じにしたときに、説明文の終わりの位置を明示するときに使用します。
1. ;;; @(%) $caption = "code 環境の背景色を指定する" @begin{code}{bgcolor: beige} ---------------------------- void main() { cout << "Hello world."; } @end{code} ---------------------------------------------- 2. ;;; @(%) $caption = "verbatim 環境、vb 環境の背景色を指定する" @begin{vb}{bgcolor: beige} ------------------------------ void main() { cout << "Hello world."; } @end{vb} ------------------------------------------------ 3. ;;; @(%) $caption = "verbatim 環境、vb 環境の文字色を指定する" @begin{vb}{color: black} ------------------------------ void main() { cout << "Hello world."; } @end{vb} ------------------------------------------------ 4. ;;; @(%) $caption = "panel 環境の背景色を指定する" @begin{panel}{bgcolor: beige} --------------------------- ここは パネル環境です。 @end{panel} --------------------------------------------- 5. ;;; @(%) $caption = "frame 環境の背景色を指定する1" @begin{frame}{solid bgcolor: lightyellow} --------------- ここは frame 環境です。 ++ abc ++ def @end{frame} --------------------------------------------- 6. ;;; @(%) $caption = "frame 環境の背景色を指定する2" @begin{frame}{double bgcolor: lightcyan} ---------------- ここは frame 環境です。 ++ abc ++ def @end{frame} ---------------------------------------------
void main() { cout << "Hello world."; }
ここは パネル環境です。
@begin{wTable}{bgcolor: beige left 650 18% null} ----------- - BUFFER : 出力するバッファ - POINT - 出力をするポイントを指定します。 指定しない場合には、バッファの先頭から出力されます。 - BODY : 実行するフォーム @end{wTable} ----------------------------------------------- @begin{twTable}{bgcolor: aquamarine 650 18%} ---------------- - BUFFER : 出力するバッファ - POINT - 出力をするポイントを指定します。 指定しない場合には、バッファの先頭から出力されます。 - BODY : 実行するフォーム @end{twTable} ----------------------------------------------
ここは(h <span style="background-color: yellow;">背景色が 黄色です。<span style="color: crimson;">その中に、赤い色</span> で文字列を</span> /h)書いています。
$default_bgcolor = "null"
$bgcolor = ""
;;; @(%) $bgcolor = "beige"
このようにダッシュラインで囲まれた範囲の文字列は、 デフォールトで指定しているダッシュライン環境の背景色 $default_dashline_backcolor によって 表示されます。
$default_dashline_backcolor = "whitesmoke"
bgcolor = $bgcolor if bgcolor.bytesize == 0 bgcolor = $default_dashline_backcolor end
;;; @(%) $bgcolor = "beige" ----------------------------------------------------------~ このようにダッシュラインで囲まれた範囲の文字列は、 デフォールトで指定しているダッシュライン環境の背景色 $default_dashline_backcolor によって 表示されます。 ----------------------------------------------------------.
;;; @(%) $bgcolor = ""
$default_frame_backcolor = "null" $default_panel_backcolor = "null"
$default_panel_backcolor は、ダッシュライン環境、frame 環境以外の、枠で囲む環境の背景色に使用されます。 @begin{panel} ... @end{panel} 環境のデフォールトの背景色は、$default_panel_backcolor とされます。
---~ /beige/ -------------------------------------------- このように、背景色を /.../ で指定した場合は、 $default_dashline_backcolor の指定よりも優先して採用され ます。 ---. ----------------------------------------------------
このように、背景色を /.../ で指定した場合は、 $default_dashline_backcolor の指定よりも優先して採用され ます。
$default_fontcolor = "Black" $default_vbcode_color = "mediumblue"
$fontcolor = ""
;;; @(%) $fontcolor = "crimson"
;;; @(%) $fontcolor = "crimson" ,,,~ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, void main() { cout << "Hello, world!"; } ,,,. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,~ /,green/ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, void main() { cout << "Hello, world!"; } ,,,. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"> </script>
※ MathJax については、http://genkuroki.web.fc2.com/ を参照してください。
※ [2017-05-08] より前は、html コードの中であっても、そうでなくても、文中の数式を、¥( ¥) で囲めば文中数式になっていましたが、[2017-05-08] に気づいたときには、文中数式は、さらに (h ... /h) で囲まないとうまく整形できなくなっていました。
1. (Html ¥(y = ax^3 + bx^2 + cx + d¥) /Html) 2. ¥(y = ax^2 + bx + c¥) 3. (Vb ¥(y = ax^2 + bx + c¥) /Vb) 4. ... ¥(y = ax^2 + bx + c¥) 5. (Code ¥(y = ax^2 + bx + c¥) /Code)
\(y = ax^2 + bx + c\)
(Anchor "式(1)") @begin{html} ----------------------------------------------- ¥[ ¥sum_{n=1}^¥infty ¥frac{1}{n^2} = ¥frac{¥pi^2}{6} ¥tag{1} ¥] @end{html} -------------------------------------------------
(Anchor "式(2.1)") (Anchor "式(2.2)") @begin{html} ¥[ ¥begin{eqnarray} {¥rm Prob}[Q_p > Q_{p1}] &=& ¥sum_{i=1}^{N} p_{i} ¥ {¥rm Prob} ¥left [ Q_p > Q_{p1} ¥; | ¥; ¥xi =¥xi_i ¥right ] ¥tag{2.1} ¥¥ &=& ¥sum_{i=1}^{N} p_i ¥ {¥rm Prob} ¥left [ ¥boldsymbol{R} > R_{i}(Q_{p1}) ¥right ] ¥tag{2.2} ¥end{eqnarray} ¥] @end{html}
(Anchor "(式3)") @begin{html} ¥[ ¥begin{align*} A & = B ¥tag{3} ¥¥ & = C ¥¥ & = D. ¥end{align*} ¥] @end{html}
ガウスの発散定理は, @begin{html} ----------------------------------------------- ¥[ ¥begin{align} ¥int_V ¥nabla¥cdot AdV=¥int_S A¥cdot n dS ¥tag{4} ¥label{eq:gauss} ¥end{align} ¥] @end{html} ------------------------------------------------- です.式(h ¥eqref{eq:gauss}/h)は,微分の体積分はもとの関数の面積分になる,と言っています.
---~ void main() { cout << "Hello world."; } ---.
---~ ----------------------------------------------------- void main() { cout << "Hello world."; } --- ------------------------------------------------------
----------------------------------------------------------~ void main() { cout << "Hello world."; } ----------------------------------------------------------.
@begin{code} --------------------------------------------- void main() { cout << "Hello world."; } @end{code} -----------------------------------------------
--~ ここは普通のフォントサイズで 表示されます。 --.
--~ ------------------------------------------------------ ここは普通のフォントサイズで 表示されます。 --. ------------------------------------------------------
@begin{panel} -------------------------------------------- ここは普通のフォントサイズで 表示されます。 @end{panel} ----------------------------------------------
ここは普通のフォントサイズで 表示されます。
,,,~ void main() { cout << "Hello world."; } ,,,.
,,,~ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, void main() { cout << "Hello world."; } ,,,. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
@begin{vb} ----------------------------------------------- void main() { cout << "Hello world."; } @end{vb} -------------------------------------------------
,,,,~ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, void main() { cout << "Hello world."; } ,,,,. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
@begin{vb}{bold} ----------------------------------------- void main() { cout << "Hello world."; } @end{vb} -------------------------------------------------
... (Foo ...) のように
※ ピリオド3つを行頭に置く H1 を参照してください。詰め込み処理される環境で、行頭にピリオドを3つ置いて、その後に半角空白を1 個おき、その後に書いた文字列は、行末まで、Emacs 関数の処理はせず、タグ文字は代替コードに置き換えて表示されます。
あるいは、Emacs 関数を呼び出す ( の前に = を書いて、 ... =(H "H 関数") のように書くと、 Emacs 関数とは解釈されません。 そうすると =(H "H 関数") のように地の文の中に書くことができます。
例えば、=(H "..." の後に、右丸括弧が来ないと、置き換えをしません。(H "Emacs 関数" ) (右括弧の前に半角空白がある。)とか、(H " "Emacs 関数") (間違えて、" を入れてしまったので引用符号の対応がとれていない。) とかは置き換えられません。 (H abc のように、引数が二重引用符号で始まっていない場合、置き換え処理しません。 (H "o2h") では、Emacs 関数の記述の誤りを発見したときには、誤りを表示して先に処理を進めようとします。 (File "foo" あ (H "Emacs 関数")
: (Net "http://xyzzy.s53.xrea.com/wiki/index.php?_ QuickTour%2Fetc%2F%A4%D8%A4%CA%A4%C1%A4%E7%A4%B3%A5_ %EA%A5%D5%A5%A1%A5%EC%A5%F3%A5%B9%A4%CE%BB%C8%A4%A4_ %CA%FD" _ _ "■ QuickTour/etc/へなちょこリファレンスの使い方 - XyzzyWiki")
※ このように、href="..." の ... の部分の文字列の先頭に # を置くと、その html ファイル内の文字列をアンカー文字列とするアンカーへのリンクになります。... の部分の文字列の先頭が # でなければ、その文字列を URL としたページへのリンクになります。
; * Ref ; (Ref "foo" "Foo") のように書かれた箇所で、 ; C-c C-e (my-eval-last-sexp) を実行すると、 ; (Label "foo" を探して、そこに jump します。 (defun Ref (tag displayWord) (interactive) (let (searchword) (setq searchword (concat "[^=]¥(Label " "¥¥¥"" tag "¥¥¥"")) ; (message-box searchword) (if (re-search-forward searchword t) (progn (search-forward ")") (forward-char 1)) (if (re-search-backward searchword t) (progn (search-forward ")") (forward-char 1)) (message-box "対応する Label がありません。")) ) ))
; * Label ; (Label "foo" "Foo") のように書かれた箇所で、 ; C-c C-e (my-eval-last-sexp) を実行すると、 ; (Ref "foo" を探して、そこに jump します。 ; (defun Label (tag displayWord) (interactive) (let (searchword) (setq searchword (concat "[^=]¥(Ref " "¥¥¥"" tag "¥¥¥"")) (if (re-search-backward searchword t) (progn (search-forward ")") (forward-char 1)) (if (re-search-forward searchword t) (progn (search-forward ")") (forward-char 1)) (message-box "対応するRefがありません。")) ) ))
※ プログラム上での工夫。(Note "Foo") であれ、(N "Foo") であれ、Note 関数、または N 関数の引数として最初に出現した時点で、文字列 "Foo" に対応して使用されるアンカー文字列を内部的に乱数を用いて生成しています。
※ 上のパラグラフは、つぎのように書かれました。
(Anchor "Anchor 関数による拡張見出し") Anchor 関数は、=(Anchor "...") の形で使用し、Head 関数や Hd 関数と同じ機能を持っています。=(Anchor "...") のようなコード が、詰め込み処理される文書環境に書かれると、... に書かれた文 字列が 「Anchor 関数による拡張見出し」として登録されます((H "見出し")参照)。=(H "...") の形の H 関数を使って参照されます。
※ この文書では、別の箇所で、(H "Anchor 関数による拡張見出し") によって参照しているので、(Anchor "Anchor 関数による拡張見出し")は、□ Referred at: [1][2] のような形になっているはずです。確認してください。
※ ここの「見出しへのリンクを作成する」は、(H "見出しへのリンクを作成する") と書きました。以前は、リンクの文字列は整形されたときには "..." で囲まれるようにしていましたが、今の版では、そのまま書かれます。
@begin{frame} ---------------------------------------------- ..(Xv "./win-odr.odr--khlogo.png").. ..(Hd "khlogo.png").. @end{frame} ------------------------------------------------
..(Xv "./win-odr.odr--khlogo.png" "20%" "20%")..
(defun attachclippedimage () (interactive) (let (retcode str) (setq retcode (call-process (concat "clipimagesave.exe" " " "¥"" (get-buffer-file-name (selected-buffer)) "¥"") :wait t)) (if (= retcode 0) (progn (setq str (concat "@begin{frame} ----------------------------------------------¥n" "(Xv ¥"" "./" (get-clipboard-data) "¥")¥n" "¥n" "図のタイトル¥n" "@end{frame} ------------------------------------------------¥n")) (insert str)) ) ) )
(defun attachimagefile () (interactive) (let (retcode str) (setq retcode (call-process (concat "attachfile.exe" " " "¥"" (get-buffer-file-name (selected-buffer)) "¥"") :wait t)) (if (= retcode 0) (progn (setq str (concat "@begin{frame} ----------------------------------------------¥n" "(Xv ¥"" "./" (get-clipboard-data) "¥")¥n" "¥n" "図のタイトル¥n" "@end{frame} ------------------------------------------------¥n")) (insert str)) ) ) )
※ o2h.rb は ruby で書かれています。(Eval "...") が書かれている箇所で、"..." が評価されます。
$default_panel_backcolor の値は、"(Eval "$default_panel_backcolor")" です
今日の日付は、(Eval "$today") です。 .. このファイルのフルパスは、(Eval "$sourcefile") です。 .. ファイルのディレクトリは、(Eval "$directory") です。 .. ディレクトリを除いたファイル名は、(Eval "$basename") です。 .. ファイルの基幹部分は、(Eval "$basepart") です。 .. ファイルの拡張子は、(Eval "$extpart") です。 .. 今日は、(Eval "$wday")曜日です。
(Ruby ... /Ruby)
明日は、(Ruby i = Time.now.wday; i = (i+1).modulo(7); $wdays[i]/Ruby)曜日です。 .. 1 から 10 までの合計は、(Ruby sum = 0; for i in 1..10 sum = sum + i end sum.to_s /Ruby) です。
(RubyDef ... /RubyDef)
(RubyDef def RedBox(str) return ("<span style=¥"border:1px solid red¥">" + str + "</span>") end def BlueBox(str) return ("<span style=¥"border:1px solid #4169e1¥">" + str + "</span>") end /RubyDef)
※ RedBox と BlueBox を定義するこのコードは、この文書ファイルの最初の方、概要 H1 の前に記述しています。o2h で整形したファイルではなくて、ソースのテキストファイル win-odr.odr で、概要 H2 の前を参照してください。
: /beige/ 文字列の一部分を、 (Html <span style="color: crimson;">赤い色で書いて 表示したい場合は、 このように色づけ</span>する /Html) ことができます。 炭酸ガスは、(Html CO<sub>2</sub> /Html) のように書きます。
: /beige/ (h <span style="color: crimson;"> このように書くと、段落全体の背景色とフォントの色を指定する ことができます。背景色の指定を省略して、フォントの色だけを指定することもできます。 </span>/h) . :
(h <span style="color: green;"> フォントの色だけを指定するのであれば、 このように書くのが簡単です。途中で <span style="background-color: yellow; color: crimson;">背景色</span> を指定することもできます。 </span>/h)
(h <font size="6"> ここは大きな文字で 書かれているはず。</font>/h)ここは普通サイズの文字列
(Color "red" "'赤い'文字列")
(Color "red" '"赤い"文字列')
(h <span style="color:red">'赤い'文字列</span>/h)
※ > や <、& のように、html の特別な記法を採用して、それが意図する結果を得るには、(h ... /h) で囲みます。(h > や <、& /h) と書いて、> や <、& のように整形されます。
(h <code>¥(y = ax^2 + bx + c¥)</code> /h)
(h <code>/^[==]+$/</code> /h)
(Code /^[==]+$//Code)
/^[==]+$/
※ 全角の = と半角の = が表示されたときにはっきり区別できないかも知れませんが、[==] の中の前の=は全角の=、後の = は半角の = です。
=
=
[==]
(Prev "△")(Next "▼")
(*強調文字*)
((大文字))
(*強調したい文字列や大文字にしたい文字列が長くて、_ 複数行に渡る場合は、「行を継続する」の項目で述べた_ 行継続の仕組みを利用するようにします。*)ここの段落はつぎ のように書きました。
(*置き換え処理1*) はするけれども、(*置き換え処理2) はしたくないと いう場合は、 文頭に、... (ピリオドを3つ) と書いて、その後に半角空白を1 個 おき、その後に、 ... (*強調文字*) や ((大きい文字)) のように 書きます。また、Emacs 関数の処理もされないので、 ... (H "どこにも無い見出し") のように書くことができます。 また、詰め込み処理される環境では、半角空白が複数個あっても 1個しかなかったように表示されますが、 ... "ここには複数の半角空白 " が あるのが整形後も分かります。 ここの段落はつぎのように書きました。
$OPT_NOCONTENTS = true
[CTop][Contents][TopHeadingList][Prev][□][Next][SameLevelPrevious][Child][SameLevelNext][Parent][Top][End]
※ cbar の xyzzy の環境では、C-5 6 として、「ちょっと寄り道¥*」という検索語の正規表現を入力すれば、「ちょっと寄り道*」で始まる見出し行をリストするリストボックスを表示できます。
※ 文書の先頭に、
;;; @(%) $OPT_ACCEPTDUPLICATEDHEADER = true
※ ここは、(N "Note 関数による注釈項目") と書きました。(N "...") と書いた場合、注釈項目が []で囲んで表示されます。 (H "...") と書いた場合は、見出しが 「」 で囲んで表示されます。これにより、(N "...") で参照したのか、(H "...") で参照したのかが分かります。
* 注釈 (Note "Emacs から Xyzzy へ") cbar は、最近は、xyzzy を主として使用していて、emacs ではなく て、xyzzy で ODR 文書を編集しています。emacs の outline mode は、xyzzy には移植されていませんが、xyzzy には、outline-tree というすばらしいモードがあります。 (Note "DotFlushleft 環境") cbar が作成した o2h.rb の中では、 この左詰め環境を DotFlushleft 環境と呼んでいます。
o2h は、その作成者 cbar が、文書を emacs のアウトラインモードで 作成していて ((N "Emacs から Xyzzy へ"))、 アウトラインモードで作成 した文書を html 文書に変換できたら便利だと考えて、作成したプログ ラムです。
. (Prev "▲本項目の見出し部分を画面トップに表示") . (Next "▼次の項目の見出し部分を画面トップに表示")
(Label "421.355" "") (Ref "421.355" "□")(Ref "647.255" "▽") ;;;(Ref "421.355" "△") ;;;(Ref "421.355" "▽")
(Label "647.255" "") (Ref "647.255" "□")(Ref "421.355" "△") ;;;(Ref "647.255" "△") ;;;(Ref "647.255" "▽")
TextBlock aaa この部分は複数行の コメントになる EndTextBlock
001: #| 002: ;;; ブロックコメント1 003: == startdoc 004: ;;; @(#) foo.l 005: ;;; @(%) $OPT_NOCONTENTS = true 006: ;;; @(%) $OPT_PROGLISTIGNORE = false 007: | 008: ---------------------------------------------------------- 009: * 概要 010: 011: ここには普通のコメントを書くことができます。 012: 013: ---------------------------------------------------------- 014: * fooa 015: 016: fooa はサンプルのプログラムです。 017: 018: @begin{code}{proglist} ----------------------------------- 019: |# 020: 021: (defun fooa (num) 022: (interactive 023: "nDInsert a number: " 024: :default 10) 025: (message-box (format nil "~D" num)) 026: ) 027: 028: #| 029: @end{code} ----------------------------------------------- 030: ;;; ブロックコメント2 031: 032: @begin{ignore} ------------------------------------------- 033: |# 034: 035: (defun foob (num) 036: (interactive 037: "nDInsert a number: " 038: :default 10) 039: (message-box (format nil "~D" num)) 040: ) 041: 042: ; ... ODR 文書としては、ここは無視されます。 043: 044: #| 045: @end{ignore} --------------------------------------------- 046: ;;; ブロックコメント3 047: 048: == enddoc 049: |#
(注) 行番号は参照のために付加したものでソースファイルに含まれるものではありません。
018: @begin{code}{proglist} ------------------------------ 019: |# 020: 021: (defun fooa (num) 022: (interactive 023: "nDInsert a number: " 024: :default 10) 025: (message-box (format nil "~D" num)) 026: ) 027: 028: #| 029: @end{code} ------------------------------------------
※ vb 環境でも、オプション文字列のところに proglist を指定できます。
021: (defun fooa (num) 022: (interactive 023: "nDInsert a number: " 024: :default 10) 025: (message-box (format nil "~D" num)) 026: )
※ proglist オプションを指定すると、@begin{code} ... @end{code} の間の最初の1行と最後の1行は、無視されます。ここに、ブロックコメントの最後のコード(この例では、|#)、ブロックコメントの最初のコード(この例では、#|)が書かれるのが普通です。ブロックコメントの機能が無いバッチファイルや emacs lisp などでは、ここは空白行にしてください。
032: @begin{ignore} -------------------------------------- 033: |# 034: 035: (defun foob (num) 036: (interactive 037: "nDInsert a number: " 038: :default 10) 039: (message-box (format nil "~D" num)) 040: ) 041: 042: ; ... ODR 文書としては、ここは無視されます。 043: 044: #| 045: @end{ignore} ----------------------------------------
@begin{code}{proglist} ------------------------------ ... ... ... @end{code} ------------------------------------------
@begin{code}{proglist} ------------------------------------- */ (defun fooa (num) (interactive "nDInsert a number: " :default 10) (message-box (format nil "~D" num)) ) /* @end{code} -------------------------------------------------
001: (defun fooa (num) 002: (interactive 003: "nDInsert a number: " 004: :default 10) 005: (message-box (format nil "~D" num)) 006: )
@begin{code}{proglist bold} -------------------------------- */ (defun fooa (num) (interactive "nDInsert a number: " :default 10) (message-box (format nil "~D" num)) ) /* @end{code} -------------------------------------------------
/* == startdoc ;;; @(#) Matrix.cs ;;; @(%) $OPT_PROGLISTIGNORE = false $math 文中の数式は、(Vb ¥( ¥) /Vb) で囲みます。 .. 例を示します。(Vb ¥(¥pi¥) /Vb) のように 書くと、¥(¥pi¥) と表示されます。 ¥(¥sum_{n=1}^¥infty ¥frac{1}{n^2} = ¥frac{¥pi^2}{6}¥) のような 文中数式も書けます。 Matrix.cs で扱うクラスは、Rfri という namespace の中で定義 されています。 ---------------------------------------------------------- * using 文 @begin{code}{proglist} --------------------------------------- */ using System; using System.Collections.Generic; using System.Linq; using System.Text; /* @end{code} --------------------------------------------------- ---------------------------------------------------------- ** class DeoubleItem -- double の配列の sort のための補助クラス == public class DoubleItem : IComparable class DoubleItem は、double 型の変数を小さい順に並べるため に使用する補助のクラスです。 @begin{code}{proglist} -------------------------------------- */ public class DoubleItem : IComparable { /* @end{code} ------------------------------------------------- ------------------------------------------------------------ *** class DoubleItem のフィールド =. フィールドの宣言 : 使用目的 - public int index : インデックス - public double value : 配列の値 @begin{code}{proglist} ----------------------------------- */ public int index; public double value; ... /* @end{code} ------------------------------------------------- ------------------------------------------------------------ *** メソッド double distance(...) == double distance( double x1, double y1, double x2, double y2 ) 点 P1(x1, y1) から点 P2(x2, y2) との間の距離 (h ¥(¥sqrt{(x1-x2)^2 + (y1-y2)^2}¥) /h) を計算して返します。 =. 引数 : 意味 - double x1 : 点 P1 の x座標 - double y1 : 点 P1 の y座標 - double x2 : 点 P2 の x座標 - double y2 : 点 P2 の y座標 = 戻り値 : 意味 - double : 点 P1 と点 P2 の距離 @begin{code}{proglist} ------------------------------------- */ double distance(double x1, double y1, double x2, double y2) { x1 -= x2; y1 -= y2; return sqrt(x1 * x1 + y1 * y1); } /* @end{code} ------------------------------------------------- == enddoc */
001: # @(#) pl.ps1 002: # 003: # -- 引数で与えた link ファイルの指すディレクトリに移動する 004: # 005: <# 006: == startdoc 007: = pl.ps1 008: ;;; @(%) $OPT_PROGLISTIGNORE = false 009: 010: pl.ps1 は、引数で指定した情報に基づいて、ディレクトリを移 011: 動します。 012: 013: @begin{code}{proglist} ------------------------------------- 014: #> 015: 016: <# 017: .SYNOPSIS 018: 指定したディレクトリを移動します。 019: .DESCRIPTION 020: 指定したディレクトリを移動します。ディレクトリ dirlink の 021: 下に、ディレクトリへのショートカット群が置かれていて、その 022: ショートカットファイルの基本部分を引数に指定して、そのショ 023: ートカットが指すディレクトリに移動します。 024: 025: ~/bat で定義されています。 026: 027: 使用例 028: PS> pl bat 029: #> 030: 031: if ($Args.Count -eq 0) { 032: $message = ($MyInvocation.MyCommand.Name -replace "[.][^.]*$","") + 033: ": No argument was specified." 034: write-host $message 035: exit 1 036: } 037: $basename = $args[0] 038: 039: if ($basename -is [string]) 040: { 041: if ($basename -like "*.lnk") { 042: if (split-path $basename -isAbsolute) { 043: # $basename がショートカットファイルで、絶対パスである 044: # なら、直接、その指す先に移動したい 045: $linkfile = $basename 046: } 047: elseif ($basename -like ".¥*") { 048: $linkfile = $basename 049: } 050: else 051: { 052: # $basename はショートカットであるが、絶対パスではな 053: # かった。 054: $basename = (Split-path $basename -Leaf) -Replace 055: ".lnk$", "" 056: $linkfile = $env:dirlink + "¥" + $basename + ".lnk" 057: } 058: } 059: else { 060: $linkfile = $env:dirlink + "¥" + $basename + ".lnk" 061: } 062: if (test-path -path $linkfile) { 063: pushd (linkpath.exe -w $linkfile) 064: } 065: else { 066: if (test-path $basename) { 067: pushd $basename 068: } 069: else { 070: "File " + $args[0] + 071: ".lnk does not exist in the folder " + 072: $env:dirlink + ",`n and the sub-folder " + $basename + 073: " does not exist." 074: } 075: } 076: } 077: elseif ($basename.gettype().Name -eq "FileInfo") { 078: $linkfile = $basename.fullname 079: if ($linkfile -like "*.lnk") { 080: pushd (linkpath.exe -w $linkfile) 081: } 082: else { 083: write-host $basename.Name はショートカットファイルではありません。 084: } 085: } 086: elseif ($basename.gettype().Name -eq "DirectoryInfo") { 087: $linkfile = $basename.fullname 088: pushd $linkfile 089: } 090: else { 091: Write-host $basename は有効な引数ではありません。 092: break 093: } 094: 095: <# 096: @end{code} ------------------------------------------------- 097: 098: == enddoc 099: #>
001: @echo off 002: ::| == startdoc "::|" 003: ::| ;;; @(#) o2hs.bat 004: ::| 005: ::| $Filename: o2hs.bat $ 006: ::| $Lastupdate: 2016-03-31 22:22:59 $ 007: ::| 008: ::| -------------------------------------------------------- 009: ::| * 概要 010: ::| 011: ::| 引数で指定した ODR 文書ファイルまたは ODR 文書が埋め込ま 012: ::| れたファイルを html ファイルに変換して表示します。 013: ::| 014: ::| -------------------------------------------------------- 015: ::| * コード 016: ::| 017: ::| @begin{code}{proglist} --------------------------------- 018: 019: :: o2h.rb のフルパスを %o2hrb% に格納します。 020: set o2hrb=C:/home/me/script/o2h.rb 021: 022: :: html ファイルを作成します。 023: @"C:¥Ruby200¥bin¥ruby.exe" "%o2hrb%" %~f1 > qux.html 024: 025: :: 作成された html ファイルを表示します。 026: start qux.html 027: 028: :END 029: 030: ::| @end{code} --------------------------------------------- 031: ::| 032: ::| == enddoc
□行番号は参照のために付加したものです。
※ == startdoc の後に "..." のようにダブルクォートで囲まれた文字列が来ています。
001: ;;; @(#) o2hs.bat 002: 003: $Filename: o2hs.bat $ 004: $Lastupdate: 2016-03-31 22:22:59 $ 005: 006: ---------------------------------------------------------- 007: * 概要 008: 009: 引数で指定した ODR 文書ファイルまたは ODR 文書が埋め込ま 010: れたファイルを html ファイルに変換して表示します。 011: 012: ---------------------------------------------------------- 013: * コード 014: 015: @begin{code}{proglist} ----------------------------------- 016: 017: :: o2h.rb のフルパスを %o2hrb% に格納します。 018: set o2hrb=C:/home/me/script/o2h.rb 019: 020: :: html ファイルを作成します。 021: @"C:¥Ruby200¥bin¥ruby.exe" "%o2hrb%" %~f1 > qux.html 022: 023: :: 作成された html ファイルを表示します。 024: start qux.html 025: 026: :END 027: 028: @end{code} ----------------------------------------------- 029: 030: == enddoc
//| == startdoc "//|" //| ;;; @(#) screensize.uws //| 〓uwsc スクリプトの概要screensize.uws //| -- ここにこのスクリプト・ファイルが何をするか簡潔に書く //| ;;; (File *my-winnote* "win-uwsc.txt") //| ;;; (File *my-dropboxdata* "xyzzy/insert/template.uws") //| ;;; (File *my-progform.sample* "uwsformVer02.txt") //| ;;; (File *my-sitelisp* "uwsc-mode.l") //| ;;; (File *my-sitelisp* "my-form.l") //| //| $Filename: screensize.uws $ //| $Lastupdate: 2016-07-31 18:44:47 $ //| //| M-x auto-fill-mode で、コメント行の編集が容易になります。 //| //| @begin{code}{proglist} ------------------------------ layoutini = trim(doscmd("echo %HOME%")) + "¥layout-uwsc.ini" screenWidth = G_SCREEN_W screenHeight = G_SCREEN_H // MsgBox(_ // "スクリーンの幅 " + screenWidth + "<#CR>" + _ // "スクリーンの高さ " + screeHeight _ // ) WRITEINI("layout", "screenWidth", _ screenWidth, _ layoutini) WRITEINI("layout", "screenHeight", _ screenHeight, _ layoutini) //| @end{code} ----------------------------------------- //| //| == enddoc
# @(#) win-odr.odr.rb # [2017-08-21] def Box(str) return ("<span style=¥"border:2px solid black; background-color: lightcyan¥">" + str + "</span>") end
def GreenBox(str) return ("<span style=¥"border:2px solid green; background-color: palegreen;¥">" + str + "</span>") end
$ gem install win32-shortcut
※ Ruby 187, Ruby 230 以降、Ruby 2.4.1 で正常に動作することを確認しています。
$ ruby c:¥script¥o2h.rb foo.txt
$ ruby c:¥script¥o2h.rb .¥foo.txt > .¥foo.html
※ 大事なのは、foo.txt の方で、変換した html ファイルの方ではないので、例えば、いつでも、qux.html という固定した名前の html ファイルに変換して、qux.html を閲覧するようにしておくというのも一つの方法です。そうすると、多くの html ファイルであふれるということもありません。
$ ruby c:¥script¥o2h.rb [options] .¥foo.txt > .¥foo.html
= 項目名 : 説明 - 項目名1 : 説明1 - 項目名2 : 説明2 .
, ここは、, (カンマ) だけがある行と , (カンマ) だけがある行で囲まれていて 詰め込み処理 されません。 ,
※ カンマだけがある行に特別な意味はないことになるので、ただ、行頭に , が1文字書かれているものとして処理されるようになりました。つぎの例を見てください。
. ここは 左詰めされます。 .
※ ピリオドだけがある行に特別な意味はないことになるので、ただ、行頭に ピリオドが1文字書かれているものとして処理されるようになりました。つぎの例を見てください。
- ここは 枠で囲まれます。 -
ここは 枠で囲まれます。
※ マイナス記号だけがある行に特別な意味はないことになるので、ただ、行頭に マイナス記号が1文字書かれているものとして処理されるようになりました。つぎの例を見てください。
:標題1<br>標題2<br>標題3 説明文
:標題1 :標題2 :標題3 説明文
標題 :: 説明文1 説明文2
標題:: ここに説明を書きます。 詰めこまれます。 一行空けてこの行を書いています。 つぎの標題:: 連続して標題つきリストが出てきたらどうなるか。 さらにつぎの標題:: 標題つきリストは、各々が独立した環境なので、連続していて も特段変わりはありません。
::標題 ここに説明を書きます。 詰めこまれます。 一行空けてこの行を書いています。 ::つぎの標題 連続して標題つきリストが出てきたらどうなるか。 ::さらにつぎの標題 標題つきリストは、各々が独立した環境なので、連続していて も特段変わりはありません。
標題::; ここに説明を書きます。
::標題 ここに説明を書きます。
::標題 ここに説明を書きます。 詰めこまれます。 ::入れこ このように入れこにできます。 ::つぎの標題 連続して標題つきリストが出てきたらどうなるか。
$ gem install ocra
$ ocra --console o2h.rb
こんな風に 書けます。
001: aaaaaaaaaa 002: bbbbb
003: cccc 004: dddddddddddddd
@begin{code}{proglist} ----------------------------------- */ aaaaaaaaaa bbbbb /* @end{code} -----------------------------------------------
005: aaaaaaaaaa 006: bbbbb
行頭に . を置いて、そこですぐ改行されるような行を書くには . とします。
あああああああああああああ いいい
require 'rubygems' require 'win32/shortcut' include Win32
,,,~ /beige/ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, static void Main() { Console.WriteLine("Hello World!"); } ,,,. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
: /beige, crimson/ このように背景色を beige に指定すると同時に、フォントの色を crimson に指定することができるようにしました。 . :
;;; @(%) $endnote = "foo" @begin{bar} ---------------------------------------------- aaaaaaaaaaaaa @end{bar} ------------------------------------------------
aaaaaaaaaaaaa
foo
@begin{foobar} ------------------------------------------- aaaaaaaaaaaaa @end{foobar} ---------------------------------------------
;;; @(%) $caption = "foobar" @begin{code} --------------------------------------------- aaaaaaaaaaaaa @end{code} -----------------------------------------------
<style type="text/css"> body { line-height: 140% } </style>
※ 場所によってここに書いているようにはならない(複数行の空白行が1個の空白行にまとめられてしまう)ことがあります。引き続き、原文の空白行の個数が整形後に反映されるように改善していきます。