とうとうTextwellがMarkdown+LaTeX対応エディタになったよ MathJax

表現力が倍増。


TextwellでLaTeXの数式をプレビューしHTML変換もする方法 MathJax
てふてふ。A JavaScript display engine for mathematics that works in all browsers. No more setup for reade...
MathJaxプレビューを改造しながら思いつきました。「Markdownも使えたら最強じゃね?」。ワープロより手軽に、美しく整った文書を作成できる。出力先もEvernoteにすればパソコンで印刷できるし、そんなに非現実的でもないよなあ。そんなわけで試行錯誤の末。


Textwell 1.4.1
分類: 仕事効率化,ユーティリティ
価格: \360 (Sociomedia)

このようなものが出来たわけです。MathJaxアクション改造版。
Import Textwell ActionMathJax



基本はMarkdownプレビューです。HTMLタグも表示します。Textwellでダラダラ書いて、ほどよく空行を入れてください。見出しに「#」、リストには「-」を付ける。それだけで構造化テキストに変わります。見出しはゴシック体、地の文は明朝体で出力します。



「$$」で挟まれた範囲をLaTeXと見なします。インライン変換であれば「$」で挟んでください。MathJaxを使っているので、見た目バッチリ眉目秀麗です。LaTeXが身近になる。DOSの頃は挫折したのになあ。やっぱり数式がそのまま描けるのはエクセレント。



画面を閉じるとメニューが出る。「HTML」でHTML変換。「Evernote」でEvernoteに転送できます。あるいは「Open in」を使ってDocumentsやPrinterProに保存も可能。


作っておいてなんですけど、これ、すごいわ。LaTeXの表現力が半端ない。ネットで調べると、なんでも書けるんじゃないかと思えてくる。意味なく数式を描きじゃくる。
http://easy-copy-mathjax.xxxx7.com


アクション本体は下記の通り。

<meta name=viewport content=initial-scale=1>
<title>MathJax</title>
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {inlineMath: [['$','$']], displayMath: [['$$','$$']]}
});
</script>
<body id=wine></body>
<script>

style="p{font-family:Hiragino Mincho ProN;} table{border-left:1px gray solid;border-top:1px gray solid;border-spacing:0;} th{background:ivory;border-right:1px gray solid;border-bottom:1px gray solid;} td{border-right:1px gray solid;border-bottom:1px gray solid;} pre{background:#eee;padding:5px}";

T.closelets([
  {title:"HTML",
  fn:function(){
    s=wine.innerHTML.split("<!---MJ--->")[1];
    T("replace",{text:s});
  }},
  {title:"Evernote",
  fn:function(){
    s=wine.innerHTML.split("<!---MJ--->")[1];
    editor="evernote://x-callback-url/new-note?x-cancel=textwell:&x-success=textwell:&";
    title=T.line(1).replace(/^#+\s*/,"");
    url=editor+"type=html&title="+encodeURIComponent(title)+"&text="+encodeURIComponent(s);
    T(url);
  }},
  {title:"Open in",
  fn:function(){
    s=wine.innerHTML.split("<!---MJ--->")[1];
    title=T.line(1).replace(/^#+\s*/,"");
    text="<meta charset='UTF-8'>"+s;
    T("openin",{filename:title+".html",text:text});
  }}
],
  function(){
  e=document.createElement("script");
  e.src="https://raw.github.com/chjj/marked/master/lib/marked.js";
  e.onload=function(){
    wine.innerHTML= "<!---MJ---><style>"+style+"</style>\n" + marked(T.text) + "<!---MJ--->";
    MathJax.Hub.Queue(["Typeset",MathJax.Hub,"wine"]);
  };
  document.head.appendChild(e);
}
);
</script>