2022年4月10日日曜日

Wordle(7)

Wordle(6)からの続き

wiki-5.txtは,WIkipediaデータセットのWikiText-103 word から5文字単語を取り出したものだった。これに対して,n-gramの出現頻度を,1-gram, 2-gram, 3-gramに対して求めるpythonプログラム ngrm.py を作る。1-gramはアルファベット1文字,2-gramは連続するアルファベット2文字,3-gramは連続するアルファベット3文字を表している。

ngrm.pyの出力結果は , を区切り文字として,出現回数とn-gramパターンの組なので,sort で区切り文字を , 数値として解釈した逆順をリダイレクトして適当なファイルに格納すると,1-gramから3-gramまで混ぜた出現頻度順のファイルが出来上がる。
# usage: ngrm.py wiki-5.txt | sort -n -r -t , >! alphabet 
import sys

a=[0 for i in range(26)]
b=[[0 for i in range(26)] for j in range(26)]
c=[[[0 for i in range(26)] for j in range(26)] for k in range(26)]

def n_gram(target, n):
  return [ target[idx:idx + n] for idx in range(len(target) -n + 1) ]

f = open(sys.argv[1], 'r')
datalist = f.readlines()

for data in datalist:
  for l in range(5):
    x = data[l]
    i = ord(x) - 97
    a[i] = a[i] + 1
    if l in range(4):
      y = data[l+1]
      j = ord(y) - 97
      b[i][j] = b[i][j] + 1
      if l in range(3):
        z = data[l+2]
        k = ord(z) -97
        c[i][j][k] = c[i][j][k] + 1

for i in range(26):
  if a[i] > 49:
    print(a[i],",",chr(i + 97))

for l in range(26*26):
  i = l // 26
  j = l % 26
  if b[i][j] > 49:
    print(b[i][j],",",chr(i+97)+chr(j+97))

for l in range(26*26*26):
  i = l // (26*26)
  j = (l // 26) % 26
  k = l % 26
  if c[i][j][k] > 49:
    print(c[i][j][k],",",chr(i+97)+chr(j+97)+chr(k+97))

f.close()
wiki-5.txtにおけるベスト50は次のとおりであった(数字は出現数)。

5730707 , e

4092848 , r

3965317 , a

3759319 , t

3424032 , s

3108801 , o

3068296 , i

2603632 , h

2600893 , l

2398537 , n

1734820 , d

1574948 , c

1501211 , u

1291809 , w

1195832 , m

1086248 , g

1076779 , er

964115 , f

962898 , th

882193 , b

801081 , p

746024 , te

729576 , y

674447 , he

651813 , ou

636278 , st

604734 , ar

563176 , hi

559096 , re

556926 , v

556020 , or

533535 , in

521374 , k

521197 , es

519713 , ch

518219 , ir

514744 , al

514410 , wh

493762 , the

473288 , ea

427832 , le

417701 , ic

412433 , whi

412193 , an

409812 , il

384013 , la

372098 , at

369592 , se

364056 , ed

362684 , ter


2022年4月9日土曜日

Wordle(6)

 Wordle(5)からの続き   

Wordleを解くための支援プログラムを次のようなものとする。「5文字単語のデータベースを用意して,ワイルドカードを含む与えられた候補にマッチする単語を全て選び出して表示する」。perlでプログラムを組みたいところだったが,pythonの練習をすることにした。

5文字単語データベースとしては,前回示した WikiText-103 word Level からwords.shで処理したものを用いる。その後は,久々の python プログラミングなので,よちよち歩きながら試行錯誤する。

(1) コマンドラインの引数は,sysモジュールをimportすれば,sys.argv[n]でアクセスできる。sys.argv[0]はpythonスクリプト名,sys.argv[1] 以下で複数の引数を受け渡す。
(2) ファイルのオープンとクローズの方法は記載の通り。第1引数は先に求めてある5文字単語データファイル名である。
(3) テキストファイルを1行づつ分割して読み込むには,datalist=f.readlines() などとするとその結果のリストが 得られる。
(4) perlのようにdatalistから1行づつ取り出して処理をするのが,for data in datalist: である。
(5) 正規表現によるマッチングには,re モジュールをimportしたうえで,re.search(r'正規表現' , 原データ) という形式による。これが Noneでなければマッチしていることになる。
(6) 第2引数で入力する5文字のワイルドカードをピリオド(. )にしておけばそのまま正規表現として使えてるので便利である。
(7) データファイルは,wc -l で生成しているので,頭に頻度を表した数桁の数字が空白を区切りに付加されているため,'\d* '+arg としている。文字列の結合には,プラス(+)演算子を用いる。
(8) print文で余分の改行を削除するには,end="" をつければよい。
# usage: word.py w.txt a.b.c
import sys
import re

f = open(sys.argv[1], 'r')
datalist = f.readlines()
arg = sys.argv[2]

for data in datalist:
# print(arg, data, re.search(r'\d* '+arg, data))
  if(re.search(r'\d* '+arg, data) != None):
    print(data, end="")

f.close()

2022年4月8日金曜日

Wordle(5)

Wordle(4)からの続き

前回の復習:英文のテキストデータセットと単語の文字数 n が与えられたとする。文字数がnの単語を1行とした一時ファイルを作る。大文字は小文字に変換している。次に,wc -l によって一時ファイルの行数=n文字単語数を出力したものを並べたファイルを作る。また,上記の wc -l の前にsort | uniq フィルターをかけてユニークな n文字単語数についても同様のファイルを作る。これが,前回のwords.shプログラムのアルゴリズムだった。

具体例として,最初は手元にある数冊の英書の数千ページ(80MB)のpdfファイルからユニークにソートされた5文字単語(3万4千語)を抽出したものでテストした。もう少し大きなデータがないかと,オープンコーパスを色々探してみたが,なかなか適当なものがない。

最終的に,Wikipediaの記事を使ったデータセットにたどり着いた。多言語のWIki-40Bが前処理済で良さげだったが,TensorFlowを使えという指示が面倒であり,英語データで340万ページ2GBは大きすぎる。WikiText-103 Word Levelの方は,圧縮後181MBでそのままダウンロードできそうなので,こちらを使うことにした。

WikiText-103 Word Levelの解凍後のテキストデータは539MBあった。これをwords.shにかけると,1-20文字の単語(うちユニークな語)が約8300万語(約21万語),このうち5文字の単語(うちユニークな語)が約960万語(約2万4千語)であった。

WikiText-103 Word Level における,n文字単語(うちユニークな語)の出現頻度を下図に示す(オレンジが総語数の出現頻度,ブルーがユニーク語数の出現頻度)。n文字単語の出現ピークはn=3にあって約20%,ユニークなn文字単語の出現ピークはn=7にあって,約16%となった。5文字単語の場合は,ともに約11%となっている。


図:WikiText-103 Word Levelにおける単語出現頻度(横軸は文字数)

2022年4月7日木曜日

2022年4月6日水曜日

2022年4月5日火曜日

2022年4月4日月曜日

2022年4月3日日曜日

2022年4月2日土曜日

2022年4月1日金曜日

2022年3月31日木曜日

2022年3月30日水曜日

Wordle(4)

Wordle(3)からの続き

Wordleをやっていると,そもそも英語の文章で出てくる単語のうち5文字である確率はどんなものか,また,最もよく出現するのは何文字の単語なのか,などなどが気になるようになった。

これを調べるために,与えられたテキストファイルやpdfファイルから単語を切り出して,その文字数の分布を調べるためのシェルスクリプトを作ってみた。

case \$3 in
"txt")
echo "txt";
;;
"pdf")
echo "pdf";
pdftotext \$2.pdf;
;;
*)
echo "undefined";
;;
esac

for ((i=1 ; i<=\$1 ; i++))
do
perl -nse 'while (/\b[a-z]{\$num}\b/ig) {print "\$&\n";}' -- -num=\$i \$2.txt | tr A-Z a-z > tmp.txt
cat tmp.txt | wc -l >> \$2-\s1.txt;
cat tmp.txt | sort | uniq | wc -l >> \$2-\s2.txt;
rm tmp.txt
done
昨日のスクリプトを少しだけ修正すればよかったが,ポイントは,シェルスクリプト中の反復の記述法である。繰り返し変数は$をつけて,perlのワンライナーに受け渡すことができた。あとはこれを使って実験してみれば良いのだが,それはまた次回のお楽しみ。

2022年3月29日火曜日

Wordle(3)

Wordle(2) からの続き

Wordleは英語の勉強になる。簡単な5文字の英単語でも知らないものがたくさんあって,自分の語彙力はやはり10歳並みだということが確かめられる。そのため,辞書の助けがないと5-6回で答えに辿り着くことは出来ない。

巷には,Wordle Word Finderなどというツールも登場しているが,これでは英語学習の役には立たない。それでも,5文字の英単語のリストを収集したいという目的のために,次のようなツールを作った。与えられたテキストファイルあるいはpdfやhtmlファイルをテキストに変換したものから,perlのワンライナーで n 文字の単語を切り出すものだ。

pandocは汎用の文書型変換ツールだけれど,pdfやhtmlからテキストを取り出すという想定がない。あくまでも整形された文書変換ツールだからだ。そこでテキストファイルの取り出しには,pdftotextやtextutilなどのコマンドに任せることにした。また,シェルスクリプトの引数はperlのワンライナーにそのまま送れないので, -- -perl_var=\$shell_varとして,perlの中で\$perl_varによって引用することになる。
#! /bin/zsh
# usage: word.sh 5 sample pdf (tst, txt, pdf, html)
# output sample-5.txt

case \$3 in
"tst")
pwd;
ls -al \$1.txt;
ls -al \$2.*;
;;
"txt")
echo "txt";
perl -nse 'while (/\b[a-z]{\$num}\b/ig) {print "\$&\n";}' -- -num=\$1 \$2.txt | tr A-Z a-z > \$2-\$1.txt;
;;
"pdf")
echo "pdf";
pdftotext \$2.pdf;
perl -nse 'while (/\b[a-z]{\$num}\b/ig) {print "\$&\n";}' -- -num=\$1 \$2.txt | tr A-Z a-z > \$2-\$1.txt;
;;
"html")
echo "html";
textutil -convert txt \$2.html;
perl -nse 'while (/\b[a-z]{\$num}\b/ig) {print "\$&\n";}' -- -num=\$1 \$2.txt | tr A-Z a-z > \$2-\$1.txt;
;;
*)
echo "undefined"
;;
esac

2022年3月28日月曜日

ロフテッド軌道(3)

 ロフテッド軌道(2)からの続き

初速度を第1宇宙速度$v=\sqrt{\frac{GM}{R}}$に固定した場合,Mathematicaによるプロットを試みる。このとき,$u(\varphi)=A(\theta) \cos \varphi + B(\theta) \sin \varphi +\frac{GM}{h^2}$,$A(\theta)= - \frac{1}{R \tan^2 \theta }$,$B(\theta) = -\frac{1}{R \tan \theta}$,$\frac{GM}{h^2}=\frac{1}{R \sin^2 \theta}$ であり,Mathematicaのコードは以下のとおり。

In[1]:= {G, R, M} = {6.67*10^-11, 6.37*10^6, 5.97*10^24}
Out[1]= {6.67*10^-11, 6.37*10^6, 5.97*10^24}
In[2]:= {g, v} = {G M /R^2, Sqrt[G M/R]}
Out[2]= {9.81344, 7906.43}

In[3]:= A[t_] := 1/R*(1 - 1/Sin[t]^2)
In[4]:= B[t_] := -1/(R*Tan[t])
In[5]:= GM[t_] := 1/(R Sin[t]^2)
In[6]:= r[s_, t_] := 1/(A[t] Cos[s] + B[t] Sin[s] + GM[t])
In[7]:=
Table[f1[i] = Plot[{r[s, i]/R, 1}, {s, 0, Pi},
GridLines -> Automatic, PlotRange -> {0, 2.0}];, {i, 0.1, 1.5, 0.2}];
In[8]:= Show[Table[f1[i], {i, 0.1, 1.5, 0.2}]]
In[9]:=
Table[f2[i] = PolarPlot[{r[s, i]/R, 1}, {s, 0, Pi},
GridLines -> Automatic, PlotRange -> {0, 2.0}];, {i, 0.05, 1.5, 0.2}];
In[10]:= Show[Table[f2[i], {i, 0.05, 1.5, 0.2}]]

In[11]:= f[t_] :=
NIntegrate[ 1/Sqrt[G M R Sin[t]^2] *1/(A[t] Cos[s] + B[t] Sin[s] + GM[t])^2, {s, 0.001, Pi/30}]
In[12]:= Plot[f[t], {t, 0, Pi/8}]



図1:ロフテッド軌道(横軸$\varphi$ラジアン,縦軸$r/R$)


図2:ロフテッド軌道(上記と同じものを極座標表示)

この近似のもとでは,6500kmの高度に達する弾道ミサイルはほぼ地球を半周するところまで到達できるので,北朝鮮から米国本土全体が射程に入ることになる。鉛直上方から60度の角度で射出すれば,地球を1/4周するので1万kmまで到達できる。

実際には,空気抵抗があることや,初速度はロケットエンジンによる一定時間の加速によって獲得されることなどから,もう少し真面目な計算をする必要がある。

[1]ロケットの運動と人工衛星の打ち上げ(冨田信之)

2022年3月27日日曜日

ロフテッド軌道(2)

ロフテッド軌道(1)からの続き

重力場中の質点に対する2次元極座標系$(r(t), \varphi(t))$でのニュートンの運動方程式は次のとおり。

$ \quad \quad m \bigl( \ddot{r} -r \dot{\varphi}^2 \bigr) = F_r = \frac{G M m}{r^2}$

$ \quad \quad  m \frac{d}{dt} \bigl( r^2 \dot{\varphi} \bigr)  = F_\varphi = 0$

第2式は角運動量保存則に対応しており,$r^2 \dot{\varphi} = h$ (一定) が成り立つ。

これを第1式に代入して,$ \dot{\varphi}$ を消去すると,$  \ddot{r} -\frac{h^2}{r^3}  =\frac{G M}{r^2} $となる。そこで,$u(\varphi) =\frac{1}{r(\varphi)}$と置き,$\dot{\varphi} =h u^2$に注意して,運動方程式を,軌道の形を定める$\varphi$に関する微分方程式に書き換える。

$\dot{r} = \frac{d}{d\varphi} \bigl( \frac{1}{u} \bigr ) \dot{\varphi}= -\frac{1}{u^2} \frac{du}{d\varphi} \ h u^2 =  -h \frac{du}{d \varphi}$

$\ddot{r} = \frac{d}{d\varphi} \bigl( -h \frac{du}{d \varphi} \bigr ) \dot{\varphi}= - h \frac{d^2 u}{d\varphi^2}  \ h u^2 =  -h^2 u^2 \frac{d^2 u}{d \varphi ^2}$

$\dot{\varphi}$を消去した運動方程式に代入すると, $-h^2 u^2 \frac{d^2 u}{d \varphi ^2} -h^2 u^3 = -GM u^2$,つまり,$\dfrac{d^2 u}{d \varphi^2} + u = \dfrac{GM}{h^2}$であり,一般解は,$u = A \cos \varphi + B \sin \varphi + \frac{GM}{h^2}$ である。

初期条件から$A,\ B$を定めるには,$\dot{r} = -h \frac{du}{d \varphi}$の表式が必要となる。一般解を右辺に代入すると,$\dot{r} = h (A \sin \varphi - B \cos \varphi )$

半径$R$の地球の中心Oを原点にとった座標系において,$(x,y)=(R,0); (r,\varphi)=(R,0)$から鉛直上方($x$軸正方向)となす角度$\theta$の方向に,初速度$v$で質量$m$の質点を投射する。このとき $r(0)=R$,$\dot{r}(0)=v_r=v \cos \theta$,$h = r(0)^2 \dot{\varphi}(0) = R v_\theta = R v \sin \theta$である。

これらから,$\frac{1}{R} = A+ \frac{g}{(v \sin \theta ) ^2}$,$v \cos \theta = - B R v \sin \theta$であり,$A=\frac{1}{R} - \frac{g}{(v \sin \theta ) ^2}$,$B = -\frac{1}{R \tan \theta}$となる。

なお,到達時間のオーダーは,$\frac{R \Delta \varphi}{v \sin \theta}= 800 \frac{ \Delta \varphi}{\sin \theta} $[s]となる。

図:ロフテッド軌道の例


2022年3月26日土曜日

ロフテッド軌道(1)

北朝鮮の火星17号弾道ミサイル実験でのロフテッド軌道は,高度6250kmで水平飛距離 1090km 飛行時間 67分というものだったと北朝鮮の労働新聞が報じたことをNHKが伝えている。地球の半径が6370kmだから,国際宇宙ステーション軌道の15倍以上の宇宙空間まで達している。

これを初速度 $v$を与えた鉛直投射によって地球半径$R$の高度まで達したと近似する。エネルギー保存則から,$\frac{1}{2}m v^2 - \frac{GMm}{R} = 0 -  \frac{GMm}{2R} $より,$v=\sqrt{\frac{GM}{R}}$ となる(第1宇宙速度 7.9 km/s に一致するのか)。

地球半径のオーダの高度では,投射体に働く万有引力は地表の1/4まで減少するが,これを無視した$g=\frac{GM}{R^2}$の一様重力場とした。空気抵抗も無視して地球を平面と見なす。このとき,初速度が第1宇宙速度$ v $のミサイルを45度で斜方投射すると,最高度までの到達時間が $t=\frac{v}{\sqrt{2}g}$であり,水平到達距離$d$は,$d = 2 \frac{v}{\sqrt{2}} t = \frac{v^2}{g} = \frac{GM}{R} \frac{R^2}{GM} = R$ = 6400 km となる。飛行時間は,$2 t = \frac{\sqrt{2}v}{g} = 10^3\ {\rm s}$ = 17分。

この近似では,平壌からワシントンまでの11000 km には足りないのだった。もう少し真面目な計算をする必要がある。

2022年3月25日金曜日

Jxiv

国立研究開発法人科学技術振興機構(JST)が,3月24日から日本発のプレプリントアーカイブサービス,Jxivの運用を始めた。コーネル大学が運用している arxiv の二番煎じだけれど,何もないよりはマシかもしれない。なお,arxivでも一応日本語の投稿はできるのをみたことがあるし,論文の定義も比較的緩く感じる。

Jxivには,研究者IDである,ORCIDまたはresearchmapのアカウントがあれば登録できる。ただ,researchmapは微妙に面倒なことになっている。そもそもユーザ名が自分では指定できない記号数字の組み合わせだ。所属機関からも登録できるようにするためには仕方ないのかもしれない。

まだ,どの分野の論文も登録されていない。投稿規定やガイドラインを見ると,なんとなく面倒臭そうな雰囲気が満ちているのであった。日本のお役所仕事はどうしてこんなにガードが固くなるのだろうか。そうでなければ利権まみれとかグダグダとかになってしまうのだ。

図:Jxivのトップ画面

2022年3月24日木曜日

pandoc(3)

pandoc(2)からの続き

引き続き,markdown ファイル の活用例として,プレゼンテーション用のスライド作成に取り掛かる。見本(英文)は簡単に見つかって実行できたものの,日本語対応が面倒だと書いてある。あれこれ探してみても,出発点が RStudioの R Markdownというものが多いのだ。結局,日本語Markdownからスライド資料を作成する(Rcmdnk's Blog 2015)とBeamerスライドをMarkdownで簡単に作成(Tomokazu NOMURA's Web Page)を参考にした。

% kpsewhich beamerthemeSingapore.sty

% /usr/local/texlive/2021/texmf-dist/tex/latex/beamer/beamerthemeSingapore.sty

beamerのテーマファイルを上記のkpsewhichコマンド探し,これを編集して末尾に, \usepackage{luatexja} を加えることで日本語対応するということだった。設定ファイルに直接手を入れるのは気が進まないが,元のmarkdownファイルの1ページ目の yaml ヘッダで定義すれば十分であり,styファイルの修正は不要だった。その結果,次のコマンドで memo.md から memo.pdf というbeamerによるプレゼンテーションスライドが生成される。

pandoc -t beamer -o memo.pdf memo.md --pdf-engine=lualatex

memo.mdの1ページ目の yaml ヘッダは次のとおりであり,スライドの改ページは --- である。

---
title: "MarkdownからBeamer"
subtitle: "Pandocで変換"
author: "大阪教育大学 越桐國雄"
date: 2022/03/24
output:
beamer_presentation:
keep_tex: yes
latex_engine: lualatex
header-includes:
- \usepackage{bookmark}
- \usepackage{luatexja}
- \usetheme{Singapore}
---


図:mdファイルから生成したbeamerスライド

2022年3月23日水曜日

pandoc(2)

pandoc(1)からの続き

とりあえず,markdown ファイルから pdf ファイルが生成できるようになった。tex ファイルや html ファイルも生成できるので,その手順をまとめてみる。

(1) tex ファイルの場合

pandoc -s test.md -o test.tex

このtexファイルに対して,ドキュメントクラスを日本語対応に変更する。すなわち,\documentclass[]{article} → \documentclass[]{ltjarticle}として,コマンドラインから,lualatex test.tex とすれば,test.pdf が得られる。

置き換えを perl のワンライナーで実行すれば,シェルスクリプトに落とし込むことができる。

perl -pi -e 's/{article}/{ltjarticle}/' test.tex

(2) htmlファイルの場合

pandoc -s test.md -o test.html --mathml

pandoc -s test.md -o test.html --mathjax

どちらでもよいのだが,数式のまわりのhtmlは,mathjaxの方が少しだけスッキリしているかもしれない。

そこで,これらを zsh のスクリプトとしてまとめたものが次である。md.sh input option とすればよい。optionには{pdf, tex, html}のいずれかが入る。入力ファイルは input.md であり,拡張子より前の部分を引数に取ればよい。以下は md.sh の内容である。

#! /bin/zsh
case \$2 in
  "pdf")
    echo "pdf";
    iconv -f UTF-8-MAC -t UTF-8 \$1.md | pandoc -f markdown -o \$1.pdf -V documentclass=ltjarticle --pdf-engine=lualatex
  ;;
  "tex")
    echo "tex";
    pandoc -s \$1.md -o \$1.tex;
    perl -pi -e 's/{article}/{ltjarticle}/' \$1.tex
  ;;
  "html")
    echo "html";
    pandoc -s \$1.md -o \$1.html --mathjax
  ;;
*)
  echo "undefined"
  ;;
esac

2022年3月22日火曜日

pandoc(1)

マークダウン(2)からの続き

マークダウンの使い方をみていると,コマンドラインベースで各種のドキュメントを相互に変換することができる,pandocとの相性が良いらしい。ということで,pandoc をインストールしようとしたら,すでに homebrew で導入済みだった。念のために,brew reinstall pandocで,pandoc 2.17.1.1が入った。

変換できるファイルの種類のカテゴリーは,次のように多岐に渡る。Lightweight markup (.md),HTML (.html),Ebooks (.epub),Documentation,Roff,TeX (.tex),XML,Outline,Word processor (.docx), Interactive notebook (.ipynb),Page layout,Wiki markup (MediaWiki),Slide show (beamer),Data (.csv),Custom,PDF (.pdf)

厄介なことにマークダウンに関しては微妙に異なった方言が存在するのでなんだか意図した結果が出てこないと思っていたが,記法のミスだった。(1) 見出し,(2) 箇条書き,(3) 番号付き箇条書き,(4) 書体,(5) コード,(6) 数式,(7) 表,(8) 画像,(9) リンク,(10) 脚注 などが概ね機能している。見出しのレベルがまだはっきりわからない。番号付きリストの半角空白は3個にした。

iconv -f UTF-8-MAC -t UTF-8 test.md | pandoc -f markdown -o test.pdf -V documentclass=ltjarticle --pdf-engine=lualatex

上記が,macOS での pandoc の使用例である。入力ファイルは test.md,出力ファイルは test.pdf である。pdf 出力のためには lualatex を通す必要があることと,ファイルは標準の(macOS標準ではなく)UTF-8 形式にしておく必要があるのでiconvで漢字変換したものをpandocに食わせている(pdfファイルで濁点が分離してしまうのを防ぐらしい)。

.zshrcにパスを通して,md2pdf.sh という実行可能なシェルスクリプトを作ったので,引数を1つ指定すると,md2pdf.sh test1 のようにmdファイルからpdfファイルが生成できるようになった。

以下が,マークダウンファイル,test1.md の内容である。

# 見出し1(Title)
ここが段落の文章になる改行しても無視される 
空行があるためこの文章は第二段落となる

## 見出し2(Chapter)
これでは
あれでは

### 見出し3(Section)

#### 見出し4(Subsection)

- リストA
- リストB
  - 子リストB-a
    - 孫リストB-a-a
- リストC

- リストの文章1です。

  行の頭に半角スペースが二つあるので,
  リストの内部要素です。

- リストの文章2です。

行の頭に半角スペースがないので新しい段落です。

1. 番号付きリスト A
   1. 番号付き子リスト A-a
   1. 番号付き子リスト A-b
      1. 番号付き孫リスト A-b-α
      1. 番号付き孫リスト A-b-β
      1. 番号付き孫リスト A-b-γ
   1. 番号付き子リスト A-c
1. 番号付きリスト B

*italic* **bold** ***italic+bold***

\`inline_code\`

\`\`\`
display style code block
function test(a,b) {
return a+b;
}
\`\`\`
\$\int_{-\infty}^\infty e^{-\alpha x^2}dx = \sqrt{\frac{\pi}{\alpha}}\$

\$\$
\int_{-\infty}^\infty e^{-\alpha x^2}dx = \sqrt{\frac{\pi}{\alpha}}
\$\$

|項目1|項目2|項目3|
|---|---|---|
|りんご| 10円| 3個|
|みかん| 50円|10個|
|いちご| |売り切れ|
|バナナ|100円| 2本|

[リンク先 https://pandoc.org/ をクリック](https://pandoc.org/)

画像![ALT これはアイコンです](sample.png)も表示させられます。

Markdown エディタ NowType は Ito によって作られ た。 [^1]

NowTypeにおいては、次のような入力支援を行います。

[^1]: Atsushi M. Ito, プラズマ・核融合学会誌, vol. X, No. Y, 2020.