はやしくん雑記

はやしです


はてなブログのMarkdown記法でLaTeX数式を書いたりするの結構つらくて変にスペース入れたりいろいろしなきゃいけないから普通のMarkdownからはてなブログにいい感じに投稿できるように変換するやつを書いた

はてなブログでLaTeX数式を書くのはつらいところがありました。

hatena_md_converter.py · GitHub

gist.github.com

つらいところ

[tex: x^2+y^2=z] だとだめで、スペースを入れて [tex: x ^ 2+y ^ 2=z]にしないと  x ^ 2+y ^ 2=z と正しく表示されない。下付き_でも同様のことが起きたりする。

今後改良をいろいろやっていく必要があると思うが、今回書いたやつはだいたいいい感じにしてくれるはず。

つかいかた

$ python hatena_md_converter.py  # クリップボードに保存されているテキストを変換し、変換結果はクリップボードに保存される
$ python hatena_md_converter.py -p /path/to/markdown  # ファイルを指定して変換し、変換結果はクリップボードに保存される
$ python hatena_md_converter.py -bk  # Bra-Ketの定義が頭に付く

例えば

これが

# Fermi function $f_{FD}$

$$
f(\varepsilon, \mu, T) = \frac{1}{\exp[(\varepsilon-\mu)/k_B T] + 1}
$$

where $k_B$ is Boltzmann's constant, $T$ is the absolute temperature, $ε$ is the energy of the single-particle state, and $\mu$ is the total chemical potential.

# 2 qubit 

$$
\ket{ab} = \ket{a} \otimes \ket{b} = c_{00} \ket{00} + c_{01} \ket{01} + c_{10} \ket{10} + c_{11} \ket{11} \to
  \left(\begin{array}{c}
    c_{00} \\
    c_{01} \\
    c_{10} \\
    c_{11}
  \end{array}\right)
$$

# etc.

- $x^a_\alpha$
- $y^{ab}_{\alpha \beta}$
- $\sqrt[3]{27}=3$

こうなって

[tex:
\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
]
# Fermi function [tex: f _ {FD} ]

<div align="center">
[tex:\begin{aligned}
f(\varepsilon, \mu, T) = \frac{1}{\exp\[(\varepsilon-\mu)/k_B T\] + 1}
\end{aligned}]
</div>

where [tex: k _ B ] is Boltzmann's constant, [tex: T ] is the absolute temperature, [tex: ε ] is the energy of the single-particle state, and [tex: \mu ] is the total chemical potential.

# 2 qubit 

<div align="center">
[tex:\begin{aligned}
\ket{ab} = \ket{a} \otimes \ket{b} = c_{00} \ket{00} + c_{01} \ket{01} + c_{10} \ket{10} + c_{11} \ket{11} \to
  \left(\begin{array}{c}
    c_{00} \\
    c_{01} \\
    c_{10} \\
    c_{11}
  \end{array}\right)
\end{aligned}]
</div>

# etc.

- [tex: x ^ a _ \alpha ]
- [tex: y ^ {ab} _ {\alpha \beta} ]
- [tex: \sqrt\\[3\\]{27}=3 ]

こうじゃ


\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}

Fermi function  f _ {FD}

\begin{aligned}
f(\varepsilon, \mu, T) = \frac{1}{\exp[(\varepsilon-\mu)/k_B T] + 1}
\end{aligned}

where  k _ B is Boltzmann's constant,  T is the absolute temperature,  ε is the energy of the single-particle state, and  \mu is the total chemical potential.

2 qubit

\begin{aligned}
\ket{ab} = \ket{a} \otimes \ket{b} = c_{00} \ket{00} + c_{01} \ket{01} + c_{10} \ket{10} + c_{11} \ket{11} \to
  \left(\begin{array}{c}
    c_{00} \\
    c_{01} \\
    c_{10} \\
    c_{11}
  \end{array}\right)
\end{aligned}

etc.

  •  x ^ a _ \alpha
  •  y ^ {ab} _ {\alpha \beta}
  •  \sqrt[3]{27}=3

元のMarkdownはVSCodeで書けばPreviewも見える

Markdown+MathというExtensionを入れれば、数式を含んだMarkdownもPreviewしてくれる。

Markdown+Math - Visual Studio Marketplace

f:id:hayashikunsan:20190528233855p:plain

ただし、Bra-Ketを表示させるためには、設定のjsonにこれを書く必要がある。

{
    "mdmath.macros": {
        "\\bra": "{\\mathinner{\\left\\langle{#1}\\right|}}",
        "\\ket": "{\\mathinner{\\left|{#1}\\right\\rangle}}",
        "\\braket": "{\\mathinner{\\left\\langle{#1}\\middle|#2\\right\\rangle}}"
    }
}