<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Emacs on かおるのブログ</title>
    <link>https://blog.kaorubb.org/ja/tags/emacs/</link>
    <description>Recent content in Emacs on かおるのブログ</description>
    <generator>Hugo -- 0.147.8</generator>
    <language>ja</language>
    <lastBuildDate>Wed, 02 Jul 2025 11:16:00 +0900</lastBuildDate>
    <atom:link href="https://blog.kaorubb.org/ja/tags/emacs/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>gpt.el &amp; mcp.el で整う emacs llm環境</title>
      <link>https://blog.kaorubb.org/ja/posts/gpt-mcp-setup/</link>
      <pubDate>Wed, 02 Jul 2025 11:16:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/gpt-mcp-setup/</guid>
      <description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;Emacs内での大規模言語モデル（LLM）との連携は、ここ数年で劇的な進化を遂げてきました。&lt;/p&gt;
&lt;p&gt;私の最初のEmacs 内LLMとの出会いは2022年11月、&lt;a href=&#34;https://github.com/copilot-emacs/copilot.el&#34;&gt;copilot.el&lt;/a&gt; によるAI 自動補完でした。このときの感動は鮮明に覚えています。&lt;/p&gt;
&lt;p&gt;その後間もなくChatGPT が登場し、&lt;a href=&#34;https://github.com/joshcho/ChatGPT.el&#34;&gt;ChatGPT.el&lt;/a&gt; 等でEmacs内でのAIとの対話ができるようになりましたが、当時は機能も少なく、EmacsでLLMを使うメリットはあまり感じられませんでした。&lt;/p&gt;
&lt;p&gt;自分的ブレークスルーは、東京Emacs勉強会 サマーフェスティバル2024 のTomoya さんの発表で &lt;a href=&#34;https://github.com/s-kostyaev/ellama&#34;&gt;ellama&lt;/a&gt; を知ったことでした。
ellamaでは従来の対話形式だけでなく、様々な関数を通じてLLMを利用でき、Emacs が何倍も強力な開発環境へと変貌しました。&lt;/p&gt;
&lt;p&gt;そして最近では &lt;a href=&#34;https://github.com/karthink/gptel&#34;&gt;gptel&lt;/a&gt; が &lt;a href=&#34;https://github.com/doomemacs/doomemacs/commit/6898a9c267fd97d9934c00ea9a2d55ad30a2263f&#34;&gt;llm module として doom emacs に正式に組み込まれ&lt;/a&gt;、ツール連携やプロンプト/コンテクストエンジニアリング&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;が非常にスムーズになりました。&lt;/p&gt;
&lt;p&gt;これと&lt;a href=&#34;https://github.com/lizqwerscott/mcp.el&#34;&gt;mcp.el&lt;/a&gt; と組み合わせることで、LLM in emacs がある種のplateau に達したのではと感じている今、これを知らないEmacser (同胞) がもしいたら非常に勿体ないと思うので、この記事を書くことにしました。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gptel&lt;/code&gt;, &lt;code&gt;mcp.el&lt;/code&gt; の設定方法や使う理由、ユースケースなどを紹介します。&lt;/p&gt;
&lt;style&gt;
.mermaid {
    text-align: center;
}
&lt;/style&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  gantt
    title 私のEmacs 内LLM 遍歴
    todayMarker off
    dateFormat YYYY-MM
    axisFormat %Y-%m
    section 自動補完
        copilot.el :2022-11, 32M
    section 黎明期
        ChatGPT.el :2023-03, 17M
        org-ai :2023-12, 8M
    section 革命
        ellama/llm              :2024-08, 9M
    section 開拓期
        ai-org-chat :2024-11, 2M
        ob-llm :2025-01, 2M
        elisa :2025-03, 1M
        copilot-chat.el     :2025-03, 2M
    section 成熟期
        gptel+mcp.el              :2025-05, 2M
        claude-code.el              :2025-06, 1M
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/copilot-emacs/copilot.el&#34;&gt;copilot-emacs/copilot.el: An unofficial Copilot plugin for Emacs.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/joshcho/ChatGPT.el&#34;&gt;joshcho/ChatGPT.el: ChatGPT in Emacs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/rksm/org-ai&#34;&gt;rksm/org-ai: Emacs as your personal AI assistant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/s-kostyaev/ellama&#34;&gt;s-kostyaev/ellama: Ellama is a tool for interacting with large language models from Emacs.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ahyatt/llm&#34;&gt;ahyatt/llm: A package abstracting llm capabilities for emacs.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ultronozm/ai-org-chat.el&#34;&gt;ultronozm/ai-org-chat.el&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/jiyans/ob-llm&#34;&gt;jiyans/ob-llm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/s-kostyaev/elisa&#34;&gt;s-kostyaev/elisa: ELISA (Emacs Lisp Information System Assistant) is a system designed to provide informative answers to user queries by leveraging a Retrieval Augmented Generation (RAG) approach.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/chep/copilot-chat.el&#34;&gt;chep/copilot-chat.el: Chat with Github copilot in Emacs !&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/karthink/gptel&#34;&gt;karthink/gptel: A simple LLM client for Emacs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/lizqwerscott/mcp.el&#34;&gt;lizqwerscott/mcp.el: An Mcp client inside Emacs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/stevemolitor/claude-code.el&#34;&gt;stevemolitor/claude-code.el: Claude Code Emacs integration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;gptel-とは&#34;&gt;&lt;code&gt;gptel&lt;/code&gt; とは&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/karthink/gptel&#34;&gt;gptel&lt;/a&gt;は、Emacsのためのシンプルかつ強力な大規模言語モデル（LLM）クライアントです。
Emacs内のあらゆる場所から自由な形式でLLMと対話できる環境を提供します。
&lt;a href=&#34;https://github.com/karthink/gptel?tab=readme-ov-file#model-context-protocol-mcp-integration&#34;&gt;このデモ&lt;/a&gt;を見ると使用イメージが分かりやすいです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>NixOSのエラー: Could not start dynamically linked executable の対処法についてのメモ</title>
      <link>https://blog.kaorubb.org/ja/posts/nixos-fix-could-not-start-dynamically-linked-executable/</link>
      <pubDate>Wed, 02 Jul 2025 11:16:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/nixos-fix-could-not-start-dynamically-linked-executable/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.kaorubb.org/ja/posts/gpt-mcp-setup/&#34;&gt;別記事 &lt;code&gt;gpt.el&lt;/code&gt; &amp;amp; &lt;code&gt;mcp.el&lt;/code&gt; で整う emacs llm環境 -&amp;gt; &lt;code&gt;mcp.el&lt;/code&gt; の設定例&lt;/a&gt; にあるようにmcp.el で使ういくつかの mcp server の起動で &lt;code&gt;uvx&lt;/code&gt; を使用しているのですが、nixOS で最初に起動したときにエラーが出てしまいました。
解決方法と原因を Gemini に調べさせたので、メモしておきます。&lt;/p&gt;
&lt;h2 id=&#34;症状とエラーメッセージ&#34;&gt;症状とエラーメッセージ&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;*Mcp-Hub*&lt;/code&gt; buffer で &lt;code&gt;mcp-hub-view-log&lt;/code&gt; を確認すると、以下のエラーが出ていました:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;stderr&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  Could not start dynamically linked executable: /home/bk/.cache/uv/archive-v0/unI5q9QapqXHm9fPXna4G/bin/python
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;stderr&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  NixOS cannot run dynamically linked executables intended &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; generic
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;stderr&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  linux environments out of the box. For more information, see:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;stderr&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  https://nix.dev/permalink/stub-ld
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;jsonrpc&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; D&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;14:56:49.461&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; Connection state change: &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;exited abnormally with code &lt;span style=&#34;color:#ae81ff&#34;&gt;127&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;解決策-nix-ld-を有効にする&#34;&gt;解決策：nix-ld を有効にする&lt;/h2&gt;
&lt;p&gt;nix conifguration で、以下を足したら直りました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ox-hugo で mermaid.js を使う方法</title>
      <link>https://blog.kaorubb.org/ja/posts/ox-hugo_mermaid/</link>
      <pubDate>Sat, 21 Jun 2025 22:07:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/ox-hugo_mermaid/</guid>
      <description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;style&gt;
.mermaid {
    text-align: center;
}
&lt;/style&gt;
&lt;p&gt;このブログは、以下のワークフローで運用されています。&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  graph LR
  org-mode -- &amp;lt;a href=&amp;#34;https://ox-hugo.scripter.co/&amp;#34;&amp;gt;ox-hugo&amp;lt;/a&amp;gt; --&amp;gt; markdown -- &amp;lt;a href=&amp;#34;https://gohugo.io/&amp;#34;&amp;gt;Hugo&amp;lt;/a&amp;gt; --&amp;gt; HTML
&lt;/pre&gt;

&lt;p&gt;上のようなフローチャートなどのダイアグラムを載せようとすると、どのような方法が思い浮かぶでしょうか？&lt;/p&gt;
&lt;p&gt;まさか、パワポ等で作ったダイアグラムを画像としてエクスポートして…なんて方法は考えていませんよね？&lt;/p&gt;
&lt;div style=&#34;text-align: center;&#34;&gt;
&lt;p&gt;&lt;strong&gt;それ、Dティアです&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a id=&#34;figure--joefit&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/joefit.webp&#34;
         alt=&#34;図1: パワポはまじでDティア&#34;/&gt; &lt;figcaption&gt;
            &lt;p&gt;&lt;span class=&#34;figure-number&#34;&gt;図1: &lt;/span&gt;パワポはまじでDティア&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;それはさておき、私はダイアグラムを作る方法について詳しくなかったので、ox-hugo を使うという前提で Gemini 2.5 Pro に、Deep research してもらいました。
結果、以下のようなTier Listができました。&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;style&gt;
 .tier-list-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 auto;
    max-width: 900px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  }
 .tier-row {
    display: flex;
    border-bottom: 1px solid #555;
  }
 .tier-label {
    flex: 0 0 100px; /* Fixed width for the label */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1em;
    font-weight: bold;
    color: #333;
    border-right: 1px solid #555;
  }
 .tier-content {
    color: #333;
    flex-grow: 1;
    padding: 10px;
    display: flex;
    font-size: 0.8em;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    background-color: #444;
  }
 .tier-item {
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 10px 15px;
    text-align: center;
    font-weight: 500;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    min-width: 150px;
  }
  /* Tier Colors (修正箇所) */
 .s-tier .tier-label {
    background-color: #ff7f7f;
  }
 .a-tier .tier-label {
    background-color: #ffbf7f;
  }
 .b-tier .tier-label {
    background-color: #ffff7f;
  }
 .c-tier .tier-label {
    background-color: #7fff7f;
  }
 .d-tier .tier-label {
    background-color: #7fbfff;
  }
&lt;/style&gt;
&lt;div class=&#34;table-caption&#34;&gt;
  &lt;span class=&#34;table-number&#34;&gt;&amp;#34920; 1:&lt;/span&gt;
  ox-hugo でのダイアグラム作成方法のTier List by Gemini 2.5 Pro &amp; me
&lt;/div&gt;
&lt;div class=&#34;tier-list-table&#34;&gt;
  &lt;div class=&#34;tier-row s-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;S&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;&lt;b&gt;HugoレンダーフックによるMermaid.js&lt;/b&gt;&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;tier-row a-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;A&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;Org Babel + Hugo Kroki&lt;/div&gt;
      &lt;div class=&#34;tier-item&#34;&gt;純粋なOrg Babel実行 (PlantUML/Ditaa)&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;tier-row b-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;B&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;GUIツール (Excalidraw等) で作成し、SVG/PNG画像として挿入&lt;/div&gt;
      &lt;div class=&#34;tier-item&#34;&gt;レガシーなHugoショートコード&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;tier-row c-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;C&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;iFrame埋め込み&lt;/div&gt;
      &lt;div class=&#34;tier-item&#34;&gt;アスキーアート (ditaa, GoAT)&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;tier-row d-tier&#34;&gt;
    &lt;div class=&#34;tier-label&#34;&gt;D&lt;/div&gt;
    &lt;div class=&#34;tier-content&#34;&gt;
      &lt;div class=&#34;tier-item&#34;&gt;🤮 M社製品 (PowerPoint, Visio)で作成+バイナリ挿入 🤮&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;表で示しているように、個人的にはmermaid.js を使うのがベストです。
しかし、方法がそれほどシンプルではなく、 少し面倒だったので、書き残しておきます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Doom Emacs &amp; Mac へのSKK導入ガイド</title>
      <link>https://blog.kaorubb.org/ja/posts/skk_guide/</link>
      <pubDate>Sat, 12 Apr 2025 13:52:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/skk_guide/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/skk_engineer.jpeg&#34;/&gt; 
&lt;/figure&gt;

&lt;h2 id=&#34;この記事で分かること&#34;&gt;この記事で分かること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SKKとは何か&lt;/li&gt;
&lt;li&gt;AquaSKKのインストールと設定方法&lt;/li&gt;
&lt;li&gt;Doom EmacsでのSKK（ddskk）の導入方法&lt;/li&gt;
&lt;li&gt;SKK導入における障壁とその解決方法&lt;/li&gt;
&lt;li&gt;SKKを長期間使用した感想と評価&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skkとは&#34;&gt;SKKとは&lt;/h2&gt;
&lt;p&gt;SKK（Simple Kana to Kanji conversion program）は、日本語入力システムの一種です。
一般的なIMEとは異なり、入力モードの切り替えが明示的で、変換候補を選ぶ際にも独特の操作方法を持っています。
特徴として：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;変換時に送り仮名を明示的に指定する&lt;/li&gt;
&lt;li&gt;辞書が自己学習し、使うほど自分専用の辞書になっていく&lt;/li&gt;
&lt;li&gt;キーボードから手を離さずに日本語入力ができる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;が挙げられます。&lt;/p&gt;
&lt;h2 id=&#34;skkとわたし&#34;&gt;SKKとわたし&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;昨年8月に参加した&lt;a href=&#34;https://tokyo-emacs.connpass.com/event/321255/&#34;&gt;東京Emacs勉強会 サマーフェスティバル2024&lt;/a&gt; でSKKの存在を知り、そこでSKKをちょっと使ってみるも、何が良いのかわからず、いつのまにか存在を忘れる&lt;/li&gt;
&lt;li&gt;約2ヶ月後の&lt;a href=&#34;https://tokyo-emacs.connpass.com/event/330572/&#34;&gt;東京Emacs勉強会 オクトーバーフェスティバル2024&lt;/a&gt; で再度SKKの話題になる。
参加者の過半数がSKKを使用しており、その空間ではSKKを使っていない方がマイノリティであることを知り、すぐにSKKを導入。全然思うように使えず、生産性が爆下がりする&lt;/li&gt;
&lt;li&gt;しかし、日本のEmacser多くの方々が使っているからには、何かしら良いところがあるはずだと考え、キーボード自体の設定を変えたりしながら、徐々にSKKに適応していく&lt;/li&gt;
&lt;li&gt;使い始めてから5ヶ月ほど経ち、SKK関連の設定も安定。試行錯誤の結果の設定を共有したいと思いこの記事を書くに至る&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;aquaskkの導入&#34;&gt;AquaSKKの導入&lt;/h2&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;インストール&lt;/p&gt;
&lt;p&gt;Homebrewを使って簡単にインストールできます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;brew install --cask aquaskk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;です。&lt;/p&gt;
&lt;p&gt;nix&amp;amp;flake&amp;amp;home-managerを使っている方は、以下を適切にimportするとインストールできます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-nix&#34; data-lang=&#34;nix&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;homebrew&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;casks &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;aquaskk&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;基本設定&lt;/p&gt;
&lt;p&gt;こういうのは基本的にデフォルトのままで使いたい派の自分ですが、日本語入力の切り替えキーだけは変えました。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AquaSKK/keymap.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff&#34; data-lang=&#34;diff&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;- SKK_JMODE		ctrl::j
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;+ SKK_JMODE		ctrl::shift::j
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;（理由は後述します）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;設定の同期&lt;/p&gt;
&lt;p&gt;複数のデバイス間で辞書やキーマップの設定を同期させるために、AquaSKKのディレクトリをDropboxに配置し、 &lt;code&gt;~/Library/Application Support/&lt;/code&gt; 内にシンボリックリンクを作成しました：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ln -s ~/Dropbox/AquaSKK ~/Library/Application&lt;span style=&#34;color:#ae81ff&#34;&gt;\ &lt;/span&gt;Support/AquaSKK
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Macのデフォルト入力切替キー無効化&lt;/p&gt;</description>
    </item>
    <item>
      <title>最強のAnki用単語学習Cardを作った</title>
      <link>https://blog.kaorubb.org/ja/posts/anki_super_vocab/</link>
      <pubDate>Mon, 17 Mar 2025 10:30:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/anki_super_vocab/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/superVocabDemo.gif&#34;/&gt; 
&lt;/figure&gt;

&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;皆さん、Ankiは使っていますか？
Ankiは、間隔反復学習システム(SRS)を採用した、非常に強力な暗記ツールです。
私も長年Ankiを愛用しており、特に語学学習には欠かせない存在となっています。&lt;/p&gt;
&lt;p&gt;今回、私がAnkiで英語の語彙学習をするにあたり、「こんな機能があったら最高なのに&amp;hellip;」と思う理想のカードタイプを形にし、 &lt;a href=&#34;https://github.com/KaoruBB/anki-super-vocab&#34;&gt;GitHub&lt;/a&gt;で公開しました。
この記事では、そのカードタイプ「Super Vocab」の紹介と、開発の経緯、そしてAnki/Emacsユー ザーには嬉しい、 &lt;code&gt;anki-editor&lt;/code&gt; を使ったカード作成方法について解説します。&lt;/p&gt;
&lt;h2 id=&#34;理想の単語カードに求める機能&#34;&gt;理想の単語カードに求める機能&lt;/h2&gt;
&lt;p&gt;私が単語学習用のフラッシュカードに求める機能は、以下の5点です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;双方向学習:&lt;/strong&gt;
単語を見て意味を答えるだけでなく、意味を見て単語を答える、両方向の学習ができること。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;意味→単語カードでの例文表示:&lt;/strong&gt;
意味から単語を答えるカードでは、定義だけでなく、例文や用例も表示すること。
&lt;ul&gt;
&lt;li&gt;理由：
&lt;ul&gt;
&lt;li&gt;単語は例文や構文とセットで覚えることで、記憶に定着しやすくなる。&lt;/li&gt;
&lt;li&gt;同義語の微妙なニュアンスの違いを理解し、区別して覚えられる。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ただし、例文中のターゲット単語は隠したい (ここがポイント！)
&lt;ul&gt;
&lt;li&gt;理由： 答えが見えてしまうとフラッシュカードの意味がないからカードの意味がないから。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;単語→意味はシンプルに:&lt;/strong&gt;
単語から意味を答えるカードでは、単語以外の情報は極力表示しないこと。
&lt;ul&gt;
&lt;li&gt;理由: 例文などがあると、単語の意味を推測できてしまい、フラッシュカード本来の目的（想起訓練）が損なわれるため。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;簡単に単語を追加でき、経験と結びつけられる:&lt;/strong&gt;
読書などで出会った単語を、その文脈（例文）ごと簡単にカードに追加できること。
&lt;ul&gt;
&lt;li&gt;理由: 自分の経験と単語を結びつけることで、より深く記憶に刻み込むため。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;柔軟な情報追加:&lt;/strong&gt;
発音記号、品詞、関連語、語源、メモ、ヒント画像など、単語に関するあらゆる情報を簡単に追加できること。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;既存のカードとの比較-そしてsuper-vocab誕生へ&#34;&gt;既存のカードとの比較、そしてSuper Vocab誕生へ&lt;/h2&gt;
&lt;p&gt;AnkiWebを探しても、上記の機能を全て満たすカードタイプは見つかりませんでした。
特に、2番目と3番目の要件（文脈付きの意味→単語カードで、ターゲット単語を自動的に隠す）を満たすものは皆無でした。&lt;/p&gt;
&lt;p&gt;Ankiの標準機能であるクローズ削除（穴埋め問題）を使えば、この要件に近いものは作れます。
しかし、例文が増えるほど手作業でのクローズ削除は大変です。&lt;/p&gt;
&lt;p&gt;「JavaScriptなどを使って、自動的に単語を隠せないか？」&lt;/p&gt;
&lt;p&gt;そう考えていた時、&lt;a href=&#34;https://ankiweb.net/shared/info/1678116644&#34;&gt;English vocab (note type)&lt;/a&gt; という素晴らしいカードタイプに出会いました。
このカードタイプは、まさに私が求めていた自動クローズ削除機能を備えていました！
しかし、惜しいことに、上記の要件を全て満たしているわけではありません。&lt;/p&gt;
&lt;p&gt;そこで、私はこの「English vocab (note type)」をベースに、自分の理想とする機能を全て盛り込んだ、究極の単語カード「Super Vocab」を作ることにしました。&lt;/p&gt;
&lt;h2 id=&#34;anki-editorとemacs-立ちはだかる壁-そしてpull-requestへ&#34;&gt;anki-editorとEmacs、立ちはだかる壁、そしてPull Requestへ&lt;/h2&gt;
&lt;p&gt;私は普段、Ankiのカード作成に&lt;a href=&#34;https://github.com/anki-editor/anki-editor&#34;&gt;anki-editor&lt;/a&gt;というEmacs packageを使っています。
org-modeで構造化されたノートをAnkiに簡単に取り込める、非常に便利なツールです。&lt;/p&gt;
&lt;p&gt;Super Vocabのカードタイプも、anki-editorを使ってEmacsからAnkiに送信しようとしました。
しかし、ここで問題が発生しました。&lt;/p&gt;
&lt;p&gt;通常、anki-editorはorg-modeのノートをHTMLに変換してAnkiに送信します。
しかし、HTMLに変換してしまうと、Super VocabのJavaScriptによる自動クローズ削除機能が動作しなくなってしまうのです。&lt;/p&gt;
&lt;p&gt;anki-editorには &lt;code&gt;:ANKI_FORMAT: nil&lt;/code&gt; というオプションがあり、これを使うとHTML変換を無効にできます。
しかし、このオプションは全てのフィールドに適用されてしまい、カードの見た目（HTML/CSSによる装飾）も失われてしまいます。&lt;/p&gt;
&lt;p&gt;「特定のフィールドだけ、HTML変換せずに生のテキストとしてAnkiに送りたい&amp;hellip;」&lt;/p&gt;
&lt;p&gt;しかし、anki-editorにはそのような機能はありませんでした。&lt;/p&gt;</description>
    </item>
    <item>
      <title>emacs起動時の、 Project … cannot be read</title>
      <link>https://blog.kaorubb.org/ja/posts/emacs_startup_problem/</link>
      <pubDate>Sun, 23 Feb 2025 18:41:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/emacs_startup_problem/</guid>
      <description>&lt;h2 id=&#34;問題&#34;&gt;問題&lt;/h2&gt;
&lt;p&gt;先日、いつものようにEmacsを起動すると、mini bufferに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Project &amp;lt;プロジェクト名&amp;gt; at &amp;lt;プロジェクトのパス&amp;gt; cannot be read.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と表示され、emacsがただの白い画面を写すソフトウェアになってしまいました。&lt;/p&gt;
&lt;p&gt;少し前にこのプロジェクトのパスを変更したので、そのせいかと思い、
&lt;code&gt;projectile-known-projects-file&lt;/code&gt; にあるプロジェクトのパスを変更/削除してみましたが、状況は変わりませんでした。
&lt;code&gt;doom sync&lt;/code&gt; や &lt;code&gt;doom upgrade&lt;/code&gt; なども試しても、解決しませんでした。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;試行錯誤の結果、原因はなんと、&lt;a href=&#34;https://github.com/Alexander-Miller/treemacs&#34;&gt;treemacs&lt;/a&gt; にあることがわかりました。&lt;/p&gt;
&lt;p&gt;treemacsは、セッション情報を、 &lt;code&gt;treemacs-persist-file&lt;/code&gt; (通常は &lt;code&gt;user-emacs-directory/.cache/treemacs-persist&lt;/code&gt;)に保存するのですが、
その名の通り、treemacs_persistがpesistしていたのが原因だったようです。&lt;/p&gt;
&lt;p&gt;そのため、&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm ~/.config/emacs/.cache/treemacs-persist &lt;span style=&#34;color:#75715e&#34;&gt;# pathは環境によって異なる&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;で解決することができます。&lt;/p&gt;
&lt;p&gt;自分はtreemacsを入れておきながら、全然使ってなかったので、treemacsをinitファイルから削除しました。&lt;/p&gt;
&lt;p&gt;今回は以上です。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/Alexander-Miller/treemacs/issues/586&#34;&gt;Project .emacs.d at &lt;em&gt;User/x&lt;/em&gt;.emacs.d cannot be read. · Issue #586 · Alexander-Miller/treemacs&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Server julia-ls starting exited (check corresponding stderr buffer for details). Do you want to restart it? (y or n) の解決策</title>
      <link>https://blog.kaorubb.org/ja/posts/lsp-julia_problem/</link>
      <pubDate>Wed, 29 Jan 2025 16:00:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/lsp-julia_problem/</guid>
      <description>&lt;h2 id=&#34;問題&#34;&gt;問題&lt;/h2&gt;
&lt;p&gt;先日久々にemacsでjuliaを使おうとしたら、&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Server julia-ls:50759/starting exited (check corresponding stderr buffer for details). Do you want to restart it? (y or n)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のようなmessageが(&lt;code&gt;y&lt;/code&gt; を押しても繰り返し)出てきて、lspが起動しませんでした。&lt;/p&gt;
&lt;p&gt;これを直すのにそこそこ時間がかかったので、emacsでjuliaを使っている方 (果たして日本に何人いるのか&amp;hellip;) のために解決策をメモしておきます。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;lsp-julia&lt;/code&gt; のビルド済みファイルが格納されているディレクトリの中にある &lt;code&gt;Project.toml&lt;/code&gt;
(自分の環境では
&lt;code&gt;~/.config/emacs/.local/straight/build-29.4/lsp-julia/languageserver/Project.toml&lt;/code&gt;
)
が実体のあるファイルではなく、シンボリックリンクであることが原因でした。(理由はよくわからない)&lt;/p&gt;
&lt;p&gt;そのため、シンボリックリンク先のファイル(自分の場合は &lt;code&gt;/.config/emacs/.local/straight/repos/lsp-julia/languageserver/Project.toml&lt;/code&gt;)をコピーして、直接のファイルを同じ場所に作成することで解決しました。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/gdkrmr/lsp-julia/issues/66#issuecomment-2024890705&#34;&gt;language server crashes · Issue #66 · gdkrmr/lsp-julia&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>『Pythonではじめる時系列分析入門』のorg version repoを作ったよ</title>
      <link>https://blog.kaorubb.org/ja/posts/python_tsa_intro_org/</link>
      <pubDate>Sun, 22 Dec 2024 08:37:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/python_tsa_intro_org/</guid>
      <description>&lt;p&gt;最近、 &lt;a href=&#34;https://amzn.asia/d/30VVCmk&#34;&gt;馬場 真哉 (著) 『Pythonではじめる時系列分析入門』&lt;/a&gt;という本を読みました。&lt;/p&gt;
&lt;p&gt;この本はpythonのコードを手で動かしながら時系列分析の基礎を学ぶことができる本で、とてもためになりました。&lt;/p&gt;
&lt;p&gt;特に&lt;a href=&#34;https://www.sktime.net/en/stable/&#34;&gt;sktime&lt;/a&gt;という、トレンド・季節性の除去などの前処理や予測モデルをsklearnのように簡単にpipeline化できるライブラリを知ることができた点がよかったです。&lt;/p&gt;
&lt;p&gt;馬場先生はこの本の&lt;a href=&#34;https://github.com/logics-of-blue/book-python-tsa-intro&#34;&gt;公式リポジトリ&lt;/a&gt;を公開されているのですが、pythonコードがjupyter notebook形式で書かれているため、heavy emacserの私としてはどうしてもorg-modeを使いたくなってしまいました。&lt;/p&gt;
&lt;p&gt;そこで、この本のコードをorg-mode形式に変換したリポジトリを作成しました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/KaoruBB/book-python-tsa-intro&#34;&gt;リポジトリのリンク&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このリポジトリを使って、emacsユーザーの方々がこの本を読む際に、jupyter notebookを使わずにorg-modeでコードを実行できるようになればと思います。&lt;/p&gt;
&lt;p&gt;特にないと思いますが、このリポジトリを使って何か問題が発生した場合は、pull requestやissueを送っていただけると助かります。&lt;/p&gt;
&lt;p&gt;時系列分析勉強中のemacsユーザーは私に感謝したうえで今年のクリスマスは家族と過ごしてください。&lt;/p&gt;
&lt;p&gt;読んでいただきありがとうございました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>emacsをupgradeしたらankiの数式が汚くなったので直した</title>
      <link>https://blog.kaorubb.org/ja/posts/anki_editor_latex_problem/</link>
      <pubDate>Sun, 24 Nov 2024 15:41:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/anki_editor_latex_problem/</guid>
      <description>&lt;h2 id=&#34;導入&#34;&gt;導入&lt;/h2&gt;
&lt;p&gt;こんにちは。
私は日頃から&lt;a href=&#34;https://github.com/anki-editor/anki-editor&#34;&gt;anki-editor&lt;/a&gt; を使ってAnkiのカードを作成しているのですが、
Emacsをupgradeすると、数式が汚く表示されるようになってしまいました。&lt;/p&gt;
&lt;p&gt;症状としては、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;デスクトップ版のAnkiのBrowserで各Fieldのプレビューで数式が数式として表示されない (plain latex codeとして表示される)&lt;/li&gt;
&lt;li&gt;数式がpng画像として表示される
(もともとはMathJax inlineで表示されていた)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;というものでした。&lt;/p&gt;
&lt;p&gt;デスクトップ版のAnkiでcardを編集することはほぼないので、1の症状についてはまだ許容範囲でしたが、
2のほうについては、数式の解像度だけ低くなったり、他の文字とのサイズが合わなくなったりして、かなり気になりました。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;以下を &lt;code&gt;config.org&lt;/code&gt; に追加することで解決しました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(use-package! anki-editor
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  :after org
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  :init
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (setq-default anki-editor-latex-style &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;mathjax&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;この解決策に至った背景&#34;&gt;この解決策に至った背景&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/anki-editor/anki-editor&#34;&gt;anki-editor&lt;/a&gt; でpushされたカードは、HTMLに変換された状態でカードとして保存されます。
うまく数式が表示されるカードのHTMLを見ると、数式は以下のように &lt;code&gt;anki-mathjax&lt;/code&gt; というタグで囲まれていました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;anki-mathjax&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;block&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&amp;gt;1 + 1 = 3&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;anki-mathjax&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;一方、今回の問題が発生したカードのHTMLを見ると、数式は以下のように &lt;code&gt;p&lt;/code&gt; タグと &lt;code&gt;[$$]&lt;/code&gt; で囲まれていました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;p&lt;/span&gt;&amp;gt;[$$] 1 + 1 = 3 [/$$]&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;p&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;したがって、anki-editorがorgテキストをHTMLに変換する部分で、問題が発生していることがわかりました。
&lt;code&gt;anki-editor.el&lt;/code&gt; の中を見てみると、以下のように &lt;code&gt;anki-editor-latex-style&lt;/code&gt; という変数によって、latexのスタイルを変更できるようになっており、今回の解決策に至りました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun anki-editor--translate-latex-env (latex-code)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (setq latex-code (replace-regexp-in-string &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;br&amp;gt;&amp;#34;&lt;/span&gt; (org-html-encode-plain-text latex-code)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (cl-ecase anki-editor-latex-style
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (builtin (&lt;span style=&#34;color:#a6e22e&#34;&gt;concat&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[latex]&amp;lt;br&amp;gt;&amp;#34;&lt;/span&gt; latex-code &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[/latex]&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (mathjax (&lt;span style=&#34;color:#a6e22e&#34;&gt;concat&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\[&amp;lt;br&amp;gt;&amp;#34;&lt;/span&gt; latex-code &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\]&amp;#34;&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;読んでいただきありがとうございました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ox-htmlで\bmなどのlatexマクロを使う方法</title>
      <link>https://blog.kaorubb.org/ja/posts/ox-html_latex_macro/</link>
      <pubDate>Mon, 18 Nov 2024 16:35:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/ox-html_latex_macro/</guid>
      <description>&lt;h2 id=&#34;問題&#34;&gt;問題&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;\bm{a}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上の数式を書いたorg fileは、latex(pdf)へのexportであれば &lt;code&gt;\usepackage{bm}&lt;/code&gt; とセットで斜体太字になるところ、
&lt;code&gt;ox-html&lt;/code&gt; で単にHTMLとして exportしただけではlatexマクロとして認識されなかったので、その対処法を解説します。&lt;/p&gt;
&lt;p&gt;latexによる数式をHTML上で表示する場合、MathJaxというライブラリを使うことが一般的であり、今回の問題も &lt;code&gt;\bm&lt;/code&gt; をMathJaxでマクロとして認識させることで解決できます。
&lt;a href=&#34;https://qiita.com/mory22k/items/de02e01029a8adbcc1e0&#34;&gt;このQiita記事&lt;/a&gt;がまさにそれをやっていたので、それを参考にまず以下の方法を試してみました。&lt;/p&gt;
&lt;h2 id=&#34;最初に試した方法&#34;&gt;最初に試した方法&lt;/h2&gt;
&lt;p&gt;以下のブロックをorg fileに追加しました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#+BEGIN_EXPORT &lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;html&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;MathJax&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;tex&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;macros&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;bm&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\boldsymbol{#1}&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    };
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#+END_EXPORT&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;結果、 &lt;code&gt;\bm&lt;/code&gt; はうまく斜体太字になったが、 &lt;code&gt;\eqref{}&lt;/code&gt; など他のlatexマクロが逆にうまく表示されなくなってしまうという問題が発生しました。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;よく調べてみると、 &lt;code&gt;ox-html&lt;/code&gt; の変数に、 &lt;code&gt;org-html-mathjax-template&lt;/code&gt; というものがあり、そこにMathJaxの設定を書き込むことで、latexマクロをHTML上で認識させることができることがわかりました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/tecosaur/emacs-config&#34;&gt;テコちゃんのconfig&lt;/a&gt;を参考に、以下の設定config.orgに追加することで解決しました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(setq org-html-mathjax-template
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  window.MathJax = {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    loader: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      load: [&amp;#39;[tex]/mathtools&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    tex: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      ams: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        multlineWidth: &amp;#39;%MULTLINEWIDTH&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      tags: &amp;#39;%TAGS&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      tagSide: &amp;#39;%TAGSIDE&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      tagIndent: &amp;#39;%TAGINDENT&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      packages: {&amp;#39;[+]&amp;#39;: [&amp;#39;mathtools&amp;#39;]},
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      macros: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        RR: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{R}}{\\\\mathbb{R}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        NN: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{N}}{\\\\mathbb{N}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        ZZ: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{Z}}{\\\\mathbb{Z}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        QQ: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{Q}}{\\\\mathbb{Q}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        CC: [&amp;#39;\\\\ifstrempty{#1}{\\\\mathbb{C}}{\\\\mathbb{C}^{#1}}&amp;#39;, 1, &amp;#39;&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        bm: [&amp;#39;\\\\boldsymbol{#1}&amp;#39;, 1], ;; &amp;lt;- ここに\bmの設定を追加
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        EE: &amp;#39;\\\\mathbb{E}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        Lap: &amp;#39;\\\\operatorname{\\\\mathcal{L}}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        Var: &amp;#39;\\\\operatorname{Var}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        Cor: &amp;#39;\\\\operatorname{Cor}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        E: &amp;#39;\\\\operatorname{E}&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      mathtools: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        pairedDelimiters: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          abs: [&amp;#39;\\\\lvert&amp;#39;, &amp;#39;\\\\rvert&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          norm: [&amp;#39;\\\\lVert&amp;#39;, &amp;#39;\\\\rVert&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          ceil: [&amp;#39;\\\\lceil&amp;#39;, &amp;#39;\\\\rceil&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          floor: [&amp;#39;\\\\lfloor&amp;#39;, &amp;#39;\\\\rfloor&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          round: [&amp;#39;\\\\lfloor&amp;#39;, &amp;#39;\\\\rceil&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    chtml: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      scale: %SCALE,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayAlign: &amp;#39;%ALIGN&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayIndent: &amp;#39;%INDENT&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    svg: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      scale: %SCALE,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayAlign: &amp;#39;%ALIGN&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayIndent: &amp;#39;%INDENT&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    output: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      font: &amp;#39;%FONT&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      displayOverflow: &amp;#39;%OVERFLOW&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  };
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;/script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;script
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  id=\&amp;#34;MathJax-script\&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  async
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  src=\&amp;#34;%PATH\&amp;#34;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;/script&amp;gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでどんなlatexマクロもHTML上で認譫させることができますね!&lt;/p&gt;</description>
    </item>
    <item>
      <title>ox-hugoのreferenceがうまく表示されない問題</title>
      <link>https://blog.kaorubb.org/ja/posts/ox-hugo_reference_problem/</link>
      <pubDate>Tue, 12 Nov 2024 14:40:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/ox-hugo_reference_problem/</guid>
      <description>&lt;h2 id=&#34;問題&#34;&gt;問題&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://ox-hugo.scripter.co/doc/org-cite-citations/&#34;&gt;Org Cite Citations&lt;/a&gt;を使って&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#+print_bibliography&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;でreferenceを表示しようとしたが、&amp;ldquo;References&amp;quot;というヘッダのみが表示され、referenceのリストが表示されなかった。
&lt;code&gt;content/&lt;/code&gt; の中のmdファイルを見ると、htmlとして、referenceのリストが書き出されていたが、
&lt;code&gt;public/&lt;/code&gt; の中のhtmlファイルを見ると、referenceのリストが表示されていなかった。
よって、
org -&amp;gt; md -&amp;gt; html という変換の md -&amp;gt; html の部分で問題があると考え、調べてみると、&lt;a href=&#34;https://github.com/kaushalmodi/ox-hugo/issues/454&#34;&gt;同じ問題についてのissue&lt;/a&gt;が立っており、以下の解決策にたどり着いた。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;config.tomlに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;markup&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;goldmark&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;renderer&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;unsafe&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を追加することで解決できる&lt;/p&gt;
&lt;p&gt;自分の場合はymlを使っていたので、以下のように設定した。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;markup&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;goldmark&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;renderer&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;unsafe&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;解説&#34;&gt;解説&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://ox-hugo.scripter.co/doc/goldmark/#enable-unsafe-html&#34;&gt;Goldmark — ox-hugo - Org to Hugo exporter&lt;/a&gt;
で書かれているように、
Hugo v0.60.0以降、デフォルトのMarkdownパーサーは&lt;a href=&#34;https://commonmark.org/&#34;&gt;CommonMark&lt;/a&gt;準拠の&lt;a href=&#34;https://github.com/yuin/goldmark&#34;&gt;Goldmark&lt;/a&gt;に変更された。
以前のデフォルトパーサーである&lt;a href=&#34;https://github.com/russross/blackfriday&#34;&gt;Blackfriday&lt;/a&gt;は、仕様に準拠しておらず、多くのバグを抱えていたらしく、ox-hugoを使い続ける場合は、特別な理由がない限り、Goldmarkに移行することが推奨されている。&lt;/p&gt;
&lt;p&gt;ただし、Goldmark/Hugoには、Blackfridayと比較してMarkdownのパース方法にいくつかの問題があり、
その一つが、今回の問題である、インラインHTMLがうまく表示されないというものっぽい。&lt;/p&gt;
&lt;p&gt;この解決策によって、Markdown内でインラインHTML を使用できるようになるということらしい。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
