emacs起動時の、 Project … cannot be read

問題 先日、いつものようにEmacsを起動すると、mini bufferに Project <プロジェクト名> at <プロジェクトのパス> cannot be read. と表示され、emacsがただの白い画面を写すソフトウェアになってしまいました。 少し前にこのプロジェクトのパスを変更したので、そのせいかと思い、 projectile-known-projects-file にあるプロジェクトのパスを変更/削除してみましたが、状況は変わりませんでした。 doom sync や doom upgrade なども試しても、解決しませんでした。 解決策 試行錯誤の結果、原因はなんと、treemacs にあることがわかりました。 treemacsは、セッション情報を、 treemacs-persist-file (通常は user-emacs-directory/.cache/treemacs-persist)に保存するのですが、 その名の通り、treemacs_persistがpesistしていたのが原因だったようです。 そのため、 rm ~/.config/emacs/.cache/treemacs-persist # pathは環境によって異なる で解決することができます。 自分はtreemacsを入れておきながら、全然使ってなかったので、treemacsをinitファイルから削除しました。 今回は以上です。 参考 Project .emacs.d at User/x.emacs.d cannot be read. · Issue #586 · Alexander-Miller/treemacs

2月 23, 2025 · 1 分 · Kaoru Babasaki

ox-htmlで\bmなどのlatexマクロを使う方法

問題 \bm{a} 上の数式を書いたorg fileは、latex(pdf)へのexportであれば \usepackage{bm} とセットで斜体太字になるところ、 ox-html で単にHTMLとして exportしただけではlatexマクロとして認識されなかったので、その対処法を解説します。 latexによる数式をHTML上で表示する場合、MathJaxというライブラリを使うことが一般的であり、今回の問題も \bm をMathJaxでマクロとして認識させることで解決できます。 このQiita記事がまさにそれをやっていたので、それを参考にまず以下の方法を試してみました。 最初に試した方法 以下のブロックをorg fileに追加しました。 #+BEGIN_EXPORT html <script> MathJax = { tex: { macros: { bm: ["\\boldsymbol{#1}", 1], }, } }; </script> #+END_EXPORT 結果、 \bm はうまく斜体太字になったが、 \eqref{} など他のlatexマクロが逆にうまく表示されなくなってしまうという問題が発生しました。 解決策 よく調べてみると、 ox-html の変数に、 org-html-mathjax-template というものがあり、そこにMathJaxの設定を書き込むことで、latexマクロをHTML上で認識させることができることがわかりました。 テコちゃんのconfigを参考に、以下の設定config.orgに追加することで解決しました。 (setq org-html-mathjax-template "<script> window.MathJax = { loader: { load: ['[tex]/mathtools'], }, tex: { ams: { multlineWidth: '%MULTLINEWIDTH' }, tags: '%TAGS', tagSide: '%TAGSIDE', tagIndent: '%TAGINDENT', packages: {'[+]': ['mathtools']}, macros: { RR: ['\\\\ifstrempty{#1}{\\\\mathbb{R}}{\\\\mathbb{R}^{#1}}', 1, ''], NN: ['\\\\ifstrempty{#1}{\\\\mathbb{N}}{\\\\mathbb{N}^{#1}}', 1, ''], ZZ: ['\\\\ifstrempty{#1}{\\\\mathbb{Z}}{\\\\mathbb{Z}^{#1}}', 1, ''], QQ: ['\\\\ifstrempty{#1}{\\\\mathbb{Q}}{\\\\mathbb{Q}^{#1}}', 1, ''], CC: ['\\\\ifstrempty{#1}{\\\\mathbb{C}}{\\\\mathbb{C}^{#1}}', 1, ''], bm: ['\\\\boldsymbol{#1}', 1], ;; <- ここに\bmの設定を追加 EE: '\\\\mathbb{E}', Lap: '\\\\operatorname{\\\\mathcal{L}}', Var: '\\\\operatorname{Var}', Cor: '\\\\operatorname{Cor}', E: '\\\\operatorname{E}', }, mathtools: { pairedDelimiters: { abs: ['\\\\lvert', '\\\\rvert'], norm: ['\\\\lVert', '\\\\rVert'], ceil: ['\\\\lceil', '\\\\rceil'], floor: ['\\\\lfloor', '\\\\rfloor'], round: ['\\\\lfloor', '\\\\rceil'], } } }, chtml: { scale: %SCALE, displayAlign: '%ALIGN', displayIndent: '%INDENT' }, svg: { scale: %SCALE, displayAlign: '%ALIGN', displayIndent: '%INDENT' }, output: { font: '%FONT', displayOverflow: '%OVERFLOW' } }; </script> <script id=\"MathJax-script\" async src=\"%PATH\"> </script>") これでどんなlatexマクロもHTML上で認譫させることができますね!...

11月 18, 2024 · 1 分 · Kaoru Babasaki