qnqn雑記

個人の学習ログの域は超えておりませんので間違っている可能性があり確かな情報を求められる場合は専門書等々に当たってください。体系的な情報については管理者ホームページへ(https://qnqn1927.github.io/)

はてなブログとの戦い(TeX編)

TeXはなるべく共通の書き方が良い

先人の知恵を拝借しながら戦ってました。。

一歩前進したやり方ができたのでメモ

問題視しているものは例えばKaTeXレンダリング前に^2<sup>2</sup>に変換されてしまうことでこれが影響を与えているので、阻止するJavaScriptを追加

「設定→詳細設定→要素にメタデータを追加」で以下を追記して実験可能

※他に影響を与える可能性があるので注意して自己責任で追記ください

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/katex.min.css" integrity="sha384-wcIxkf4k558AjM3Yz3BBFQUbk/zgIYC2R0QpeeYb+TwlBVMrlgLqwRjRtGZiK7ww" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/katex.min.js" integrity="sha384-hIoBPJpTUs74ddyc4bFZSM1TVlQDA60VBbJS0oA934VSz82sBx1X7kSx2ATBDIyd" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous"></script>

<script>
    function replaceInDollars(text) {
        // ここを変更して置き換える内容を調整する
        return text.replace(/\$\$(.*?)\$\$/gs, function(match, p1) {
            // console.log('match:' + match + '; p1:' + p1);
            p1 = p1.replace(/<\/sup>/gs, '');
            p1 = p1.replace(/<sup>/gs, '^');
            p1 = p1.replace(/\\ /gs, '\\\\');
            p1 = p1.replace(/\\\[/gs, '\\\\[');
            return '$$' + p1 + '$$';
        });
    }
    document.addEventListener('DOMContentLoaded', (event) => {
        // レンダリング前に記事内を修正する
        const contentList = document.getElementsByClassName('entry-content');
        for (let element of contentList) {
            element.innerHTML = replaceInDollars(element.innerHTML);
        };

        // KaTeXで数式をレンダリング
        renderMathInElement(document.body, {
            // customised options
            delimiters: [
                {left: '$$', right: '$$', display: true},
                {left: '$', right: '$', display: false},
                {left: '\\(', right: '\\)', display: false},
                {left: '\\[', right: '\\]', display: true}
            ],
            throwOnError: false
        });
    });
</script>

KaTeX部分は執筆当時のバージョンのため、最新情報などは以下公式ページを参照ください ※Installationのページ

katex.org

部分分数分解(Partial fraction decomposition)

こんなやつ

以下の公式がある

$$ \frac{px + q}{(x + a)(x - b)} = \frac{A}{x + a} + \frac{B}{x - b} $$

これを覚えてしまえば楽

計算過程で使う場面は結構出てくる印象

例示

$$ \begin{aligned}\frac{2x + 1}{1 - x2} &= \frac{2x + 1}{(1 + x)(1 - x)}\ &= \frac{A}{1 + x} + \frac{B}{1 - x}\end{aligned} \[1.5em]両辺に(1+x)(1-x)をかける\[1.5em] \begin{aligned}2x + 1 &= A(1 - x) + B(1 + x)\end{aligned} \[1.5em] 片方ずつ0にするイメージで \[1.5em] \begin{aligned}\text{For } x = 1,\ \quad 2B &= 3\ B &= \frac{3}{2}\end{aligned} \[1em] \begin{aligned}\text{For } x = -1,\ \quad 2A &= -1\ A &= -\frac{1}{2}\end{aligned} \[1.5em] \begin{aligned}\therefore \frac{2x + 1}{1 - x2} &= \frac{-\frac{1}{2}}{1 + x} + \frac{\frac{3}{2}}{1 - x}\ &= -\frac{1}{2(1 + x)} + \frac{3}{2(1 - x)}\end{aligned} $$

参考

Partial fraction decomposition

ChatGPTの音声チャットの便利さ

ChatGPTの音声チャット

例えばiPhoneであればアプリに次の画像のようなアイコンが表示されているのでこれを押すと音声チャットが始まります。

実施したイメージは以下ですがものすごく便利です。

何が便利かというと家事をやりながらとかながら作業で捗るんですよね。

料理の準備をしながら、洗濯物を干しながら、片付けながら・・・寝付けない時にも良い感じです。

引き続き音声チャットの使い方を模索していきたいです。

Apple Pencil代替比較

はじめに

  • Apple Pencil代替商品で最近良いものを見つけたのでシェア
  • お財布に優しいかつ使い勝手が良い
  • 少し差分があるので比較表を記載

見つけたもの

観点別比較表

観点 ナカバヤシ 匠彩
シンプルさ -
接続方法 電源ONのみ 電源ONに加えショートカット利用は要Bluetooth接続
ショートカット付き - アプリによって挙動が違うが側面のボタンのクリックで取り消し、ダブルクリックでペンと消しゴムの切り替え
電源切り替えの方法 ペンの頭を押し込んで切り替える ペンの側面のボタンを長押しして切り替える
電池の持ち Good GoodだがBluetoothがあるため少し短いかも?※未検証
磁力の強さ 普通? 比較的しっかりくっつく気がする
お値段 Good Good
書き心地 Good Good
軽さ Good Good

まとめ

  • Apple Pencil高いよ!って人はこの2つの代替商品がおすすめ!
  • 他にも色々販売されているのでもっといいものがあるかも
  • 過去に磁力で電源切り替え、タップ(押し込むのではなく触れる)で電源切り替えの商品を購入したことがあるが微妙なストレスがかかった
    • したがって今回ご紹介させていただいたクリック感がある商品がおすすめ!

VSCodeのMarkdownにおける脚注(footnote)について

わからなかったので調べました。

結論: Markdown Preview Enhanced extension1を使いましょうということです。

Markdown GuideのVS Codeの整理2がわかりやすかったです。

以下のような表現となります。

  • 脚注を挿入するポイント
    • [^1]
  • 最下部の脚注の中身(XXXにURLや補足事項を記載する3
    • [^1]:XXX

例えば脚注に関する文章は当該記事ではこのように記載しております。

結論: Markdown Preview Enhanced extension[^1]を使いましょうということです。

Markdown GuideのVS Codeの整理[^2]がわかりやすかったです。

- 最下部の脚注の中身(XXXにURLや補足事項を記載する[^3])

Kaggleで頼りになるpdb(jupyter notebookのデバッグ手法)

Kaggleで頼りになるpdb(jupyter notebookのデバッグ手法)

import pdb;pdb.set_trace()

はてなブログの数式を正規表現でなんとかする

はてなブログの数式を正規表現でなんとかする

notionなどで数式含めて整理した記事を投稿するときにやっかいなのが独特の数式阻害w

$x = 1$
$$
x = 1
$$

$で囲んだ数式ががうまく表示されないことがあります。

いろいろな対策がありますが・・・ここでは正規表現一発置換を選択しました。

やり方

正規表現の検索パターン

(\${1,2}(\n|.)+?\${1,2})

置き換え

$1

visual studio codeにて動作確認

うまく置き換えができると数式部分のみが以下のようなかたちになると思います。

[]$x = 1$[]
[]$$
x = 1
$$[]

ひとまずこれで9割は正しく表示できる状態になる気がします。

[]で囲むことがなんであったか忘れてしまったのですが 確かはてなキーワードを無効化させる記述方法だったかな・・・