記号 | latex | 備考 |
---|---|---|
$\in$ | \in | 属する、元である、含まれる |
$\owns$ | \owns | 含む |
$\Longrightarrow$ | \Longrightarrow | ならば |
$\implies$ | \implies | ならば |
$\not \in$ | \not \in | 属すの否定 |
$\not \owns$ | \not \owns | 含むの否定 |
$\phi$ | \phi | 空集合 |
$\emptyset$ | \emptyset | 空集合 |
$\varnothing$ | \varnothing | 空集合 |
$\forall$ | \forall | 全称記号、任意のすべての |
$\exists$ | \exists | 存在記号 |
$\land$ | \land | かつ |
$\lor$ | \lor | または |
$\lnot$ | \lnot | でない |
$\neg$ | \neg | でない |
$\iff$ | \iff | 必要十分条件、同値、等価 |
$\Longleftrightarrow$ | \Longleftrightarrow | 必要十分条件、同値、等価 |
$\Longleftarrow$ | \Longleftarrow | 逆向きのならば |
$\overset{\text{def}}{\iff}$ | \overset{\text{def}}{\iff} | 定義 |
$\subset$ | \subset | 部分集合 |
$\subseteq$ | \subseteq | 部分集合 |
$\supset$ | \supset | 部分集合 |
$\supseteq$ | \supseteq | 部分集合 |
$\subseteq$ | \subsetneq | 真部分集合 |
$\supseteq$ | \supsetneq | 真部分集合 |
$\cup$ | \cup | 和集合 |
$\cap$ | \cap | 積集合 |
$\overline A$ | \overline A | 補集合 |
$A \backslash B$ | a \backslash B | A であって B でないもの |
マークダウンの空白行の入れ方とドルマークのエスケープ方法
最近はてなブログだけでなく、GitHub や Colab でマークダウンで数式入りの文章をたくさん書いているのですが、マークダウンの中で空白行をどうやって入れるか、数式を書くときに使うドルマーク、dollar sign をどうやってエスケープするかについて。
markdown empty lines
how to escape dollar sign in markdonw
とかで検索するといろいろ出てきます。
わたしの今の結論。
まず、空白行については
+スペース2つ
これが一番汎用性がある。 バッククォート+スペース+バッククォート+スペース2つは、はてななどで色がついてしまう。 ドル記号+チルダ記号+ドル記号+スペース2つは、数式対応(MathJax対応)していないサイトでは使えない。<br><br>
はほとんどのところで使えるけど、Colab はマークダウン中の html は建前としては対応していないので、これだけ使うのは気持ち悪い。
$
がいいと思う。 $30.00 とか。なぜなら、数式対応(MathJax対応)しているサイトとしていないサイトでエスケープの必要不必要が違うので、\
でエスケープするとエスケープ記号が見えたり見えなかったりして気持ちがわるい。 その点、$
もしくはこれのコードバージョン 
ならばどこでも使える(はず) と思うがどうか。
正規表現の検索置換だけで長い行を短くする
英語のテキストを処理する際に、長い文字列の段落を処理しやすいように短い文字列に分割したいとします。 ピリオド+スペースをピリオドと改行にするとかだと、長い文字列と短い文字列がまざってしまうので、60文字とかで切りたい。 その際、できれば単語の途中に改行が入らないようにしたい。 という課題を、VSCodeの正規表現の検索置換だけでできないか、と思って試行錯誤してそれなりにできたのでご紹介。
検索文字列は
^(.{60}[\w.,'\)?\]]*)\n*
で、置換文字列は
$1\n
です。
$1で対象としているのは、(.{60}[\w.,'\)?\]]*)
。この両端のカッコで囲まれた部分を $1
としてそのまま置換文字列にもってくる。
冒頭の ^
は行頭という意味。
.{60}
は任意の文字列 60個。
[\w.,'\)?\]]*
は61文字目がなんらかの文字やたまたまピリオドやカンマやカッコ閉じ、とかならばそれも含めたいので指定している。
最後の \n*
は、たまたま改行だったり改行が続いていたら、改行を増やさないための工夫。
これで全文置換をやると、1回目はたとえば 90個が置換、2回目以降はだんだん増えていって、そのうち 300個とかで増えなくなれば終了です。
プログラムで処理した方が簡単かもね!!!!
- 全文読み込む。
- 行単位に分割したリストにする。
- 長い文字列を短い文字列のリストにする。
- リストがネストしているので、フラットにする。
というのはどうでしょうか。 うむ。 また別の記事にします。
追記
Haskell のプログラムですが、ネットにあったのがちゃんと動いたので、紹介しておきます。
-- wordrap.hs wordwrap maxlen = wrap_ 0 . words where wrap_ _ [] = "" wrap_ pos (w:ws) -- at line start: put down the word no matter what | pos == 0 = w ++ wrap_ (pos + lw) ws | pos + lw + 1 > maxlen = '\n' : wrap_ 0 (w : ws) | otherwise = ' ' : w ++ wrap_ (pos + lw + 1) ws where lw = length w main = do x <- getContents putStr $ unlines $ map (wordwrap 60) $ lines x
はてなでSVG画像を入れる
はてなはMarkdownでもHtmlは書いて表示することができる。 SVGはHtmlの規格なのでただ書くだけで結果が表示される。
このソースは
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" viewBox="-10,0,200,200"> <defs></defs> <circle cx="77.474" cy="111.072" r="80" stroke="green" stroke-width="8" fill="yellow"></circle> <rect x="23.046" y="99.727" width="105.375" height="64.141" style="fill-rule: evenodd; paint-order: stroke; stroke-miterlimit: 11; stroke: rgb(218, 85, 85); stroke-width: 6px; fill: rgba(255, 255, 246, 0.9);"></rect> <circle style="" cx="105.895" cy="70.965" r="17.948"></circle> <circle style="" cx="48.244" cy="71.346" r="17.948"></circle> </svg>
です。
オンライン SVG エディターの boxySVG (https://boxy-svg.com/)で手書きで書いて、Elementsボタンで表示されるコードをそのまま貼り付ける。 widthとheightは はてなのmarkdown上で加えました。
板チョコの食べ方(アイデア)
明治の板チョコを食べるのに、一枚 50g 全部食べると 279kcal 糖質 25.9g でちょっと重い。 おやつは 200kcal 以下に収めないと食事を調節しなくてはならなくなって本末転倒になる。
200kcal だけ食べたいので、分包しておくことにした。
50g / 279kcal * 200kcal = 36g
板チョコを何枚か買ってきて、お皿のうえで適当に割る。 計りを用意して、36gずつアルミホイルで分包しておく。 アルミホイルはダイソーで 18m 110円で売ってました。 別にラップやティッシュでもかまわないと思う。
これでいつでもチョコレートが食べられます。
ちなみに 25g ずつにしておくと、チョコレートが余らないので作業効率がいいし、カロリーも1枚の半分、約140kcal で暗算しやすいかもしれない。
板チョコは溝に沿って割ることはできないので、食べた量を管理するには重さを計るしかありません。 今回の方法だと食べる前に計っておくので、管理しやすい。