論理記号一覧

記号 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 は建前としては対応していないので、これだけ使うのは気持ち悪い。

 
 
 
 

ドルマーク、$マーク、ドルサインのエスケープは

&dollar;

がいいと思う。 $30.00 とか。なぜなら、数式対応(MathJax対応)しているサイトとしていないサイトでエスケープの必要不必要が違うので、\エスケープするとエスケープ記号が見えたり見えなかったりして気持ちがわるい。 その点、&dollar; もしくはこれのコードバージョン &#0024; ならばどこでも使える(はず) と思うがどうか。

正規表現の検索置換だけで長い行を短くする

英語のテキストを処理する際に、長い文字列の段落を処理しやすいように短い文字列に分割したいとします。 ピリオド+スペースをピリオドと改行にするとかだと、長い文字列と短い文字列がまざってしまうので、60文字とかで切りたい。 その際、できれば単語の途中に改行が入らないようにしたい。 という課題を、VSCode正規表現の検索置換だけでできないか、と思って試行錯誤してそれなりにできたのでご紹介。

検索文字列は

^(.{60}[\w.,'\)?\]]*)\n*

で、置換文字列は

$1\n

です。

$1で対象としているのは、(.{60}[\w.,'\)?\]]*) 。この両端のカッコで囲まれた部分を $1 としてそのまま置換文字列にもってくる。

冒頭の ^ は行頭という意味。

.{60} は任意の文字列 60個。

[\w.,'\)?\]]* は61文字目がなんらかの文字やたまたまピリオドやカンマやカッコ閉じ、とかならばそれも含めたいので指定している。

最後の \n* は、たまたま改行だったり改行が続いていたら、改行を増やさないための工夫。

これで全文置換をやると、1回目はたとえば 90個が置換、2回目以降はだんだん増えていって、そのうち 300個とかで増えなくなれば終了です。

プログラムで処理した方が簡単かもね!!!!

  1. 全文読み込む。
  2. 行単位に分割したリストにする。
  3. 長い文字列を短い文字列のリストにする。
  4. リストがネストしているので、フラットにする。

というのはどうでしょうか。 うむ。 また別の記事にします。

追記
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

Ubuntu on WSL から Windows の ブラウザーを開く

私の場合

alias chrome="/mnt/c/Program\ Files\ (x86)/Google/Chrome/Application/chrome.exe"

で開けるようになりました。

~/.bashrc に入れておけば、適当に書いた html ファイルを

chrome temp.html

として見ることができるようになります。

アラビア語のフォントを大きく

アラビア語のフォントを大きくしたい。

مقديشو

こんな感じか。300% です。300% にしてやっとバランスが取れているよね。

モガディシオ

発音は モくディーシュー moqdishu で く q のおとはのどの奥の k の音なのでひらかな表示。

الصومال

アッすーマール

ソマリア。 アル が音便変化でアッになって、すは深い方のすでひらがな表示、マールのルはエルのルなのでカタカナ表示

 
 
 
 

書き方:

<span style="font-size: 300%; color:red;"> مقديشو </span>

はてなで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 で暗算しやすいかもしれない。

板チョコは溝に沿って割ることはできないので、食べた量を管理するには重さを計るしかありません。 今回の方法だと食べる前に計っておくので、管理しやすい。