見出し画像

数学記号を入力できるiOSキーボード

主要な数学記号を入力できるキーボードを制作しました。azooKeyというキーボードをカスタマイズできるアプリから読み込むことができます。

azooKeyでは誰もがアプリ内でオリジナルキーボード(=カスタムタブ)を制作できますが,より高度なカスタムタブを作れるCustardKitが公開されていて今回はこれを用いました。

このキーボードは大きく分けて次の6種類から構成されています:

latin_roman_lower/upper
latin_italic_lower/upper
greek_roman_lower/upper
greek_italic_lower/upper
latin_script_lower/upper
numbers_for_math, math_symbols

デフォルトのiOSキーボードのようにキーを長押しするとバリエーションが表示されるので,実際にはラベルの数倍の種類の文字を入力することができます。ぜひ実際に試してみてください。


実際の作業にはPythonを用いています。カスタムタブのファイルはJSON形式ですが,PythonやSwiftでJSONファイルを出力できるツールが用意されているので,その恩恵にあずかりました。例えばlatin_roman_upperは以下のような感じです。

#関数・変数の定義は省略
latin_roman_upper_keys = [
    enter_key_data,
    left_parenthesis_key_data,
    right_parenthesis_key_data,
    delete_key_data,
    user_japanese_key_data,
    space_key_data,
    superscript_key_data,
    subscript_key_data,
    plus_key_data,
    minus_key_data,
    comma_key_data,
    period_key_data,
    upper_to_capslock_key_data("latin_roman_capslock"),
    move_tab_key_data(8,3,"Ψ","greek_roman_upper"),
    move_tab_key_data(9,3,"𝒦","latin_script_upper"),
    move_tab_key_data(0,1,"A𝐴","latin_italic_upper"),
    move_tab_key_data(0,3,"123","numbers_for_math"),
    input_upper_key_data(x=1,y=0,tab="latin_roman_lower",label="Q",variation_glyphs=["ℚ","𝖰","𝗤"]),
    input_upper_key_data(x=2,y=0,tab="latin_roman_lower",label="W",variation_glyphs=["𝕎","𝖶","𝗪"]),
    input_upper_key_data(x=3,y=0,tab="latin_roman_lower",label="E",variation_glyphs=["𝔼","𝖤","𝗘"]),
    #省略
    input_upper_key_data(x=6,y=2,tab="latin_roman_lower",label="B",variation_glyphs=["𝔹","𝖡","𝗕"]),
    input_upper_key_data(x=7,y=2,tab="latin_roman_lower",label="N",variation_glyphs=["ℕ","𝖭","𝗡"]),
    input_upper_key_data(x=8,y=2,tab="latin_roman_lower",label="M",variation_glyphs=["𝕄","𝖬","𝗠"])
]
latin_roman_upper_custard = custard("latin_roman_upper","Latin-Roman-Upper",latin_roman_upper_keys,Language.none,12,4)

コード全体は記事の最後に置いておきます。


留意事項を列挙します。

  • TeXなどとの互換性は全くないので,科学系の文書を作成するには向いていません(ただしTeX入力キーボードを作ることはできると思います)。

  • デフォルトのキーボードにある「なぞり入力」「ピリオドの簡易入力」「自動大文字入力」などには対応していません。

  • 変換候補は表示されません(それでもOKなら英語キーボードの代替として使えるかもしれません)。

  • 確認はしていますが,入力文字に誤りがある可能性があります。お気づきのことがあればお知らせいただけると幸いです。

続いて細かな機能を紹介します。

  • アルファベット(roman/italic)・数字などを入力した後に▴ᵃ / ▾ₐを押下すると,上付き文字/下付き文字に変換できます。

  • スペースキーの長押しでカーソルバーを表示できます。

  • 「/」キーの長押しから「⁄」を入力でき,これと上付き文字/下付文字を組み合わせることで「⁶⁄₇」「 ¹²³⁄₄₅₆」などを作ることができます。

おすすめのカスタマイズ🧋

azooKeyは自由にカスタマイズすることができます。

  • タブバーに「クリップボード履歴」を追加すると便利。

  • 「新しいカーソルバー」が見やすい。

  • iOS標準のキーボードに寄せた着せ替えはこんな感じ。(ライトモード/ダークモード)(Display P3 16進数カラー値)

    • 背景の色:#D1D3D8/#353637

    • 変換候補の文字の色:#000000/#FFFFFF

    • 変換候補の背景色:#D6D7DC/#353637

    • キーの文字の色:#000000/#FFFFFF

    • 通常キーの背景色:#FFFFFE/#717272

    • 特殊キーの背景色:#AAAFBB/#4E4E4F

    • 枠線:太さ0

  • ちなみにazooKeyはライブ変換に対応しているので,このように素早く入力できます。(日本語限定です。今回のキーボードは対応していません)

ダウンロード

  • azooKey:https://apps.apple.com/jp/app/azookey/id1542709230

  • キーボード(zipファイルを展開すると,17 のJSONファイルが表示されます。これらの個別インストールが必要です💦 ただ,一部のインストールでも使用できます。なお「タブバーに追加」はオフにして良いと思います)

  • Pythonコード

(いずれもazooKeyに準拠します)

更新情報:
 2024/03/26 for_math_01およびfor_math_01.pyをアップロード


この記事が気に入ったらサポートをしてみませんか?