自作プラグイン/tex.inc.php
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
** tex.inc.php [#ybcef194]
|RIGHT:100|LEFT:360|c
|~サマリ|LaTeXのインストールなしでLaTeX数式を表示させるプ...
|~リビジョン|1.0|
|~対応バージョン|1.4.7|
|~投稿者|[[abicky]]|
|~投稿日|&new{2010-04-18 (日) 10:41:04};|
#contents
**概要 [#x0e2251d]
PukiWikiでTeXの数式を表示するためのプラグイン.~
ref.inc.phpをベースに作成しました.なので強制的にGPLライ...
**特徴 [#v6f0bfb4]
--Google Chart APIを使用するため,サーバ側のインストール...
--ブラウザに依存しない(mathmlとの比較)
--TeXの数式なので数式が綺麗(mathmlとの比較)
--数式画像をキャッシュするので2回目以降の表示が速い(jsma...
--オプションが豊富(math2, mimetex, jsmath, mathmlとの比...
**使い方 [#k5946f4c]
#tex($数式$ [,options] [,parameters])
&tex($数式$ [,options] [,parameters]);
options
left: 左寄せ(デフォルト)
center: 中央揃え
right: 右寄せ
around: 回り込み
link: 元ファイルへのリンクを貼る
url: Google Chart API のURLを表示する
noimg: 画像を展開しない
zoom: 縦横比を保持する(拡大率の小さい方に合わせる)
parameters
WIDTHxHEIGHT: WIDTH px,HEIGHT pxにする ※WIDTH, HEI...
NUM%: NUM%のサイズにする ※NUM は数値
#RRGGBB: 数式の色を16進数で指定(デフォルトは#000000)
bg#RRGGBBAA: 背景色を16進数で指定.AAは不透過度(デフ...
TITLE: タイトルをTITLEにする
**サンプル [#adc56d9c]
[[こちら:http://abicky.site90.com/pukiwiki/index.php?Plug...
**ダウンロード&インストール [#kf0112c3]
+WIKIHOMEディレクトリにteximgディレクトリをパーミッション...
+[[こちら:http://abicky.site90.com/pukiwiki/index.php?Plu...
**数式を手軽に表示させる(PukiWiki 1.4.7のみで確認)[#e4e...
LaTeXのようにドルマークで挟んだり,\[ \]などで挟んだりす...
※この記法でオプションは使えません
***数式をドルマークで挟むことでインライン要素として表示さ...
-WIKIHOME/lib/make_link.phpを書き換える
--InlineConverterクラスの$convertersを以下のように変更('...
$converters = array(
'plugin', // Inline plugins
'TeX', // LaTeX Mathematical Expression
'note', // Footnotes
'url', // URLs
'url_interwiki', // URLs (interwiki definition)
'mailto', // mailto: URL schemes
'interwikiname', // InterWikiNames
'autolink', // AutoLinks
'bracketname', // BracketNames
'wikiname', // WikiNames
'autolink_a', // AutoLinks(alphabet)
);
--以下の内容を適当なところに追加
// LaTeX Mathematical Expression
class Link_TeX extends Link_plugin
{
function Link_plugin($start)
{
parent::Link_plugin($start);
}
function get_pattern()
{
$this->pattern = '(?<!\\\\)\$((.+?))(?<!\\\\)\$';
return $this->pattern;
}
function get_count()
{
return 2;
}
function set($arr, $page)
{
list($all, $this->plain, $this->param) = $this->splice...
$matches = array();
return parent::setParam($page, 'tex', '', 'plugin');
}
}
--1行にドルマークを2つ表示させたい場合はInlineConverterク...
$retval .= array_shift($arr) . array_shift($this->result);
↓
$retval .= str_replace('\$', '$', array_shift($arr)) . a...
※ドルマークを表示させる場合は\$と表記します
-サンプル~
[[こちら:http://abicky.site90.com/pukiwiki/index.php?Plug...
***数式を\[ \]などで挟むことでブロック要素として表示させ...
-WIKIHOME/lib/convert_html.phpを書き換える
--Bodyクラスのparse関数内で //Default の前に以下の内容を...
// LaTeX Mathematical Expression
if (substr($line, 0, 2) == '\[') {
if (strpos($line, '\]') === false){
while (! empty($lines)) {
$next_line = preg_replace("/[\r\n]*$/", '', array_shif...
$line .= $next_line;
if (strpos($next_line, '\]') !== false) break;
}
}
$this->last = & $this->last->add(TeX($this, $line));
continue;
} else if (substr($line, 0, 6) == '\begin'){
if (strpos($line, '\end') === false){
while (! empty($lines)) {
$next_line = preg_replace("/[\r\n]*$/", '', array_shif...
$line .= $next_line;
if (strpos($line, '\end') !== false) break;
}
}
$this->last = & $this->last->add(TeX($this, $line));
continue;
}
--以下の内容を適当なところに追加
function & TeX(& $root, $text)
{
if(exist_plugin_convert('tex'))
return new Div(array('', 'tex', $text));
else
return new Paragraph($text);
}
-サンプル~
[[こちら:http://abicky.site90.com/pukiwiki/index.php?Plug...
**不具合 [#v109e88f]
--URLエンコード後の数式の文字数が200を超えると画像を取得...
※\bm x は \mathbf{x} に変換されるなどの処理をしているので...
**コメント [#zba6412e]
不具合や感想などがあれば[[こちら:http://abicky.site90.com...
終了行:
** tex.inc.php [#ybcef194]
|RIGHT:100|LEFT:360|c
|~サマリ|LaTeXのインストールなしでLaTeX数式を表示させるプ...
|~リビジョン|1.0|
|~対応バージョン|1.4.7|
|~投稿者|[[abicky]]|
|~投稿日|&new{2010-04-18 (日) 10:41:04};|
#contents
**概要 [#x0e2251d]
PukiWikiでTeXの数式を表示するためのプラグイン.~
ref.inc.phpをベースに作成しました.なので強制的にGPLライ...
**特徴 [#v6f0bfb4]
--Google Chart APIを使用するため,サーバ側のインストール...
--ブラウザに依存しない(mathmlとの比較)
--TeXの数式なので数式が綺麗(mathmlとの比較)
--数式画像をキャッシュするので2回目以降の表示が速い(jsma...
--オプションが豊富(math2, mimetex, jsmath, mathmlとの比...
**使い方 [#k5946f4c]
#tex($数式$ [,options] [,parameters])
&tex($数式$ [,options] [,parameters]);
options
left: 左寄せ(デフォルト)
center: 中央揃え
right: 右寄せ
around: 回り込み
link: 元ファイルへのリンクを貼る
url: Google Chart API のURLを表示する
noimg: 画像を展開しない
zoom: 縦横比を保持する(拡大率の小さい方に合わせる)
parameters
WIDTHxHEIGHT: WIDTH px,HEIGHT pxにする ※WIDTH, HEI...
NUM%: NUM%のサイズにする ※NUM は数値
#RRGGBB: 数式の色を16進数で指定(デフォルトは#000000)
bg#RRGGBBAA: 背景色を16進数で指定.AAは不透過度(デフ...
TITLE: タイトルをTITLEにする
**サンプル [#adc56d9c]
[[こちら:http://abicky.site90.com/pukiwiki/index.php?Plug...
**ダウンロード&インストール [#kf0112c3]
+WIKIHOMEディレクトリにteximgディレクトリをパーミッション...
+[[こちら:http://abicky.site90.com/pukiwiki/index.php?Plu...
**数式を手軽に表示させる(PukiWiki 1.4.7のみで確認)[#e4e...
LaTeXのようにドルマークで挟んだり,\[ \]などで挟んだりす...
※この記法でオプションは使えません
***数式をドルマークで挟むことでインライン要素として表示さ...
-WIKIHOME/lib/make_link.phpを書き換える
--InlineConverterクラスの$convertersを以下のように変更('...
$converters = array(
'plugin', // Inline plugins
'TeX', // LaTeX Mathematical Expression
'note', // Footnotes
'url', // URLs
'url_interwiki', // URLs (interwiki definition)
'mailto', // mailto: URL schemes
'interwikiname', // InterWikiNames
'autolink', // AutoLinks
'bracketname', // BracketNames
'wikiname', // WikiNames
'autolink_a', // AutoLinks(alphabet)
);
--以下の内容を適当なところに追加
// LaTeX Mathematical Expression
class Link_TeX extends Link_plugin
{
function Link_plugin($start)
{
parent::Link_plugin($start);
}
function get_pattern()
{
$this->pattern = '(?<!\\\\)\$((.+?))(?<!\\\\)\$';
return $this->pattern;
}
function get_count()
{
return 2;
}
function set($arr, $page)
{
list($all, $this->plain, $this->param) = $this->splice...
$matches = array();
return parent::setParam($page, 'tex', '', 'plugin');
}
}
--1行にドルマークを2つ表示させたい場合はInlineConverterク...
$retval .= array_shift($arr) . array_shift($this->result);
↓
$retval .= str_replace('\$', '$', array_shift($arr)) . a...
※ドルマークを表示させる場合は\$と表記します
-サンプル~
[[こちら:http://abicky.site90.com/pukiwiki/index.php?Plug...
***数式を\[ \]などで挟むことでブロック要素として表示させ...
-WIKIHOME/lib/convert_html.phpを書き換える
--Bodyクラスのparse関数内で //Default の前に以下の内容を...
// LaTeX Mathematical Expression
if (substr($line, 0, 2) == '\[') {
if (strpos($line, '\]') === false){
while (! empty($lines)) {
$next_line = preg_replace("/[\r\n]*$/", '', array_shif...
$line .= $next_line;
if (strpos($next_line, '\]') !== false) break;
}
}
$this->last = & $this->last->add(TeX($this, $line));
continue;
} else if (substr($line, 0, 6) == '\begin'){
if (strpos($line, '\end') === false){
while (! empty($lines)) {
$next_line = preg_replace("/[\r\n]*$/", '', array_shif...
$line .= $next_line;
if (strpos($line, '\end') !== false) break;
}
}
$this->last = & $this->last->add(TeX($this, $line));
continue;
}
--以下の内容を適当なところに追加
function & TeX(& $root, $text)
{
if(exist_plugin_convert('tex'))
return new Div(array('', 'tex', $text));
else
return new Paragraph($text);
}
-サンプル~
[[こちら:http://abicky.site90.com/pukiwiki/index.php?Plug...
**不具合 [#v109e88f]
--URLエンコード後の数式の文字数が200を超えると画像を取得...
※\bm x は \mathbf{x} に変換されるなどの処理をしているので...
**コメント [#zba6412e]
不具合や感想などがあれば[[こちら:http://abicky.site90.com...
ページ名: