Typora

提供:Turgenev's Wiki
2023年11月24日 (金) 21:33時点におけるTurgenev (トーク | 投稿記録)による版 (Notion-MW)

TyporaはWYSIWYGのマークダウン編集ソフトである。

数式の基本

Web上のTeX風数式レンダリングのJavaScriptライブラリは古くからあるMathJaxと新興のKaTeXが有名だが、Markdownで主に使われるのはMathJaxで、TyporaでもMathJaxが使われている。ちなみにNotionで使われているのはKaTeX。

数式間の参照

基本的には、\labelで付けたラベルを\eqrefで参照することになる(筆者はMathJax自体にあまり詳しくないが、MathJaxがわかっていればここは簡単な話だと思う)。また有効なのはおそらくdisplay-styleの数式($$の間)のみ。詳しくはMath and Academic Functions - Typora Supportを参照。

Typoraのauto numberingに関する設定によって使える構文の範囲が異なる。設定は以下の3通りである。

  • No Automatic Equation Numbering
  • Use AMS Numbering Rules
  • Auto Numbering for All Math Equations

最も汎用的なのが\labelとともに\tagで式の名前を指定するもので、上記の全ての設定で有効である。

$$
a=b\label{expr1}\tag{*}
$$

reference : $\eqref{expr1}$

こうすると以下のように表示される。

typora-math.jpg

auto numberingを利用するとこの\tagの部分をわざわざ書かなくて済むようになる。「Use AMS Numbering Rules」の場合、equationなど一部の環境に自動で番号が付加される。このとき\labelは\begin{equation}と\end{equation}の間に書く必要がある。実用的にはこれが最も使いやすい?

$$
\begin{equation}
a=b\label{expr2}
\end{equation}
$$

reference : $\eqref{expr2}$

「Auto Numbering for All Math Equations」の場合はequation環境などがなくても全てのdisplay style数式ブロックに番号が付けられる。

$$
a=b\label{expr3}
$$

reference : $\eqref{expr3}$

ただしequation環境を使う場合は\labelを\begin{equation}と\end{equation}の間に書く必要がある模様(詳細不明)。

  • eqrefで指定したラベルが存在しない場合だけでなく、ラベルは存在するものの対応するtag(あるいはauto numberingによる番号)が存在しない場合も(???)と表示される。
  • Typora上ではCtrl+クリックにより参照先の数式にジャンプできる。pdfにも反映される。

ライセンス

基本的には有料(買い切り$20なので安い)だが、Linux versionまたはdev versionを使用する場合は15日より大幅に長く使えるとhttps://support.typora.io/purchase/にひっそり書いてある。

You will have a 15-day free trial before the purchase. If you use the dev version or the Linux version, you will have much longer trial time if you keep Typora updated. However, we may show a “trial button”, disable certain features or shorten trial time in the future, but most functions will be kept.

Typoraを使う層は割とLinux使ってそうなもんだがこれで本当に大丈夫なのか…?

https://twitter.com/e9g/status/1563874586487169025も参照

マクロ

例えば$\def \llbracket{[\![}\def\rrbracket{]\!]}$とかどっかに書いておけばglobalに有効になる。反映されないときは「すべての数式を更新」を押そう。

Extension

MathJaxはextensionというものを入れることで機能を拡張できる(LaTeXのパッケージにあたる)。

The TeX/LaTeX Extension List — MathJax 3.2 documentationに列挙されている。

だいたいTyporaには既に入っている?

MathJax3で、requireというのが使えるようになって、さらにTyporaはMathJax3に対応した?https://github.com/typora/typora-issues/issues/3388 しかし既にだいたい拡張が読まれているので無関係?

要するに、コマンド調べて、打ってみて、エラーが出たなら、きっぱり諦めて無理やり\!とか使ってマクロ自作したほうが早いような気がする。幸いマクロはglobalに効くので。

日本語入力のバグ

数式を多く含んだ比較的長いファイルの編集時、方向キーでブロックをまたいだ移動をした直後に日本語入力をすると、最初の(正確には最初の文字が入力されてから0.1-0.3秒くらいの間に入力された全ての)文字が変換前に確定されてしまう、というバグがある。たとえば「」(下線は変換確定前であることを表す)と打とうとすると「k」になる。

おそらくインライン数式(の処理によるタイムラグ?)が原因と思われ、インライン数式無しでは100KB程度の大きなファイルでも再現できなかった。しかし、インライン数式があっても量が少なければ発生しない。また量が少ないときは再起動すると治る場合もある。量が多い場合はいくら再起動しても治らないようである。

手元では、例えば「xx」という行を500行程度繰り返す(ファイルサイズとしては4~5KB程度)ようなファイルを作ると、いくら再起動してもこのバグが発生する。

回避策は現状思いつかないので、とりあえず方向キーで別ブロックに移動した際は何か適当に1文字打ってから消すことにしている。

  • 日本語入力についてなど現象をわかりやすく説明するのが面倒すぎてIssue投稿はしていない。

画像

https://github.com/typora/typora-issues/issues/1059

テーマ

「テーマフォルダを開く」とやると各テーマのCSSがみられるので好きに変えられる。ただ"C:\Program Files\Typora\resources\DO NOT ADD FILES HERE"を見るとわかるがTyporaをアップデートするとまたもとに戻ってしまう。

行間

デフォルトだとやや行間が広すぎるように思うので変える。

まず基本の行の高さは

body {
    font-family: "TRIVFONT", "NazoMin", "NazoMin+", "Open Sans","Clear Sans", "Helvetica Neue", Helvetica, Arial, 'Segoe UI Emoji', sans-serif;
    color: rgb(51, 51, 51);
    line-height: <strong>1.3;</strong>
}

ここで変える。(もともとは1.6)

次に段落間は

p,
blockquote,
ul,
ol,
dl,
table{
    margin: 0.8em 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    position: relative;
    margin-top: 1rem;
    margin-bottom: 1rem;
    font-weight: bold;
    line-height: 1.4;
    cursor: text;
}

となっているので、それぞれ

p<strong>{
    margin: 0.4em 0;
}</strong>
blockquote,
ul,
ol,
dl,
table{
    margin: 0.8em 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    position: relative;
    margin-top: <strong>0.6rem</strong>;
    margin-bottom: <strong>0.6rem</strong>;
    font-weight: bold;
    line-height: 1.4;
    cursor: text;
}

と変更すると狭まる。

両側の余白

max-widthと書いてある部分を全部消せば余白もなくなる

折りたたみ(summary/detail)

サポートは不完全 https://github.com/typora/typora-issues/issues/1581

脚注

普通のMarkdownの文法による脚注の追加は可能。補完はされないようである。補完やBibTeXとの連携(?)についてはSupport academic referencing in the future? · Issue #912 · typora/typora-issuesで議論されている。