差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| emacs [2023/12/13 18:36] – skk | emacs [2025/11/05 22:36] (現在) – skk | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | = [[emacs]] / LM: [2023-12-13 18:36:27] | + | = [[emacs]] / LM: [2025-11-05 22:36:11] |
| ~~NOCACHE~~ | ~~NOCACHE~~ | ||
| 行 193: | 行 193: | ||
| That is, remove duplicates, non-kept, and excluded files. | That is, remove duplicates, non-kept, and excluded files. | ||
| </ | </ | ||
| + | |||
| + | [2023-12-13] | ||
| + | |||
| + | recentf が増えてくると,検索したくなる.そのような時は,'' | ||
| 参考: | 参考: | ||
| 行 837: | 行 841: | ||
| " | " | ||
| </ | </ | ||
| - | |||
| - | === - latex export === | ||
| - | org-mode で書いた文章を,LaTeX に export して,PDF にできる.頑張る人は論文まで書いている模様.MarkDown よりも org-mode の方が記述力が高い為,共同作業などをしない場合は,org-mode で記述する方が LaTeX コマンドを直接記述する割合を減らせる. | ||
| - | |||
| - | <TBD> | ||
| 行 1014: | 行 1013: | ||
| 画像の表示/ | 画像の表示/ | ||
| + | |||
| + | 上のセクションに書いてあるように,'' | ||
| 表示される画像の最大サイズを指定したい場合は,以下のようにする.ただし,imagemagick オプション付きでコンパイルされていないと,縮小は動作しない.Ubuntu の場合はソースからコンパイルしたら良さそう.FreeBSD の場合は,ports でインストールする際のオプションで指定しておくと良さそう. | 表示される画像の最大サイズを指定したい場合は,以下のようにする.ただし,imagemagick オプション付きでコンパイルされていないと,縮小は動作しない.Ubuntu の場合はソースからコンパイルしたら良さそう.FreeBSD の場合は,ports でインストールする際のオプションで指定しておくと良さそう. | ||
| 行 1201: | 行 1202: | ||
| ==== - PDF 生成 ==== | ==== - PDF 生成 ==== | ||
| + | |||
| + | org-mode で書いた文章は,HTML や MarkDown, LaTeX などに Export できる. | ||
| + | 多少の文章を作るのに,Word や Google Spreadsheet で作成しても良いのだが,テキストベースで残っている方が保存の観点からは安心なので,共同作業が求められない場合,僕は emacs で文章を書き,LaTeX に export した上で PDF にする機能をちょいちょい使っている.org-mode は MarkDown よりも記述力が高いので,そこそこ複雑な文章でも作成しやすいような気がする.世の中的には MarkDown の方が流行っているけれども. | ||
| + | |||
| + | === - 基本設定 === | ||
| + | |||
| + | org-latex-pdf-process で,呼び出す latex コマンドを指定する.もし,参照を使いたい人は,bibtex などもここで指定する必要がある.また,latexmk などを使って呼び出す内容をまとめておくのもよいかもしれない.僕はコマンドラインから呼び出すことはほぼないので,latexmk まで整備する必要はない. | ||
| + | |||
| + | org-latex-default-class は,org-latex-classes で指定された複数の class のうち,文章内で # | ||
| + | |||
| + | org-latex-classes には,複数のクラスを記述して追加しておく.以下の例で言えば,''" | ||
| + | |||
| + | <code lisp> | ||
| + | (use-package org | ||
| + | :ensure t ;; 多分イラナイ | ||
| + | :after action-lock | ||
| + | :init | ||
| + | (setq org-latex-default-class " | ||
| + | (setq org-latex-pdf-process | ||
| + | ' | ||
| + | " | ||
| + | " | ||
| + | (setq org-export-with-toc nil) ; \tableofcontents を出さない | ||
| + | (setq org-export-latex-date-format " | ||
| + | :hook | ||
| + | (org-mode . turn-off-auto-fill) | ||
| + | (org-mode . action-lock-mode) | ||
| + | :config | ||
| + | (add-hook ' | ||
| + | (add-hook ' | ||
| + | ) | ||
| + | |||
| + | (add-to-list ' | ||
| + | ' | ||
| + | " | ||
| + | \\setlength{\\topmargin}{15mm} | ||
| + | \\addtolength{\\topmargin}{-1in} | ||
| + | \\setlength{\\oddsidemargin}{20mm} | ||
| + | \\addtolength{\\oddsidemargin}{-1in} | ||
| + | \\setlength{\\evensidemargin}{15mm} | ||
| + | \\addtolength{\\evensidemargin}{-1in} | ||
| + | \\setlength{\\textwidth}{170mm} | ||
| + | \\setlength{\\textheight}{254mm} | ||
| + | \\setlength{\\headsep}{0mm} | ||
| + | \\setlength{\\headheight}{0mm} | ||
| + | \\setlength{\\topskip}{0mm} | ||
| + | \\usepackage{otf} | ||
| + | \\usepackage{fancyhdr} | ||
| + | \\usepackage[dvipdfmx]{graphicx, | ||
| + | \\usepackage{xytree} | ||
| + | \\usepackage{indentfirst} | ||
| + | \\usepackage{minijs} | ||
| + | \\usepackage[T1]{fontenc} | ||
| + | \\usepackage{lmodern} | ||
| + | \\pagestyle{plain} | ||
| + | \\makeatletter | ||
| + | \\西暦" | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | ) | ||
| + | |||
| + | ) | ||
| + | |||
| + | </ | ||
| + | |||
| + | org の文章をエクスポートするには,'' | ||
| + | |||
| + | Windows の emacs で作業する際,PDF をオープンするために,毎回,howm で保存されてるフォルダにまでエクスプローラでたどり着くのがめんどくさいので,'' | ||
| + | |||
| + | <code lisp> | ||
| + | (global-set-key " | ||
| + | (defun open-current-file-dir-with-explore () | ||
| + | (interactive) | ||
| + | (my-action-lock-explorer-open (unix-path-to-windows (file-name-directory buffer-file-truename))) | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | 実際に文章を書く際は,文章毎にいくつかオプションをつけることになる.次の項目に僕が使う代表的なものをいくつか載せておくが,クラスを選ぶには,''# | ||
| + | |||
| + | |||
| + | === - 文章毎のオプション === | ||
| + | |||
| + | < | ||
| + | #+TITLE: 文章のタイトル | ||
| + | #+AUTHOR: skk | ||
| + | # | ||
| + | * セクション | ||
| + | 内容内容. | ||
| + | </ | ||
| + | |||
| + | のように書く.オプションは以下のようなものがある. | ||
| + | |||
| + | ^ コマンド | ||
| + | | #+TITLE: タイトル文字 | ||
| + | | #+AUTHOR: 著者 | ||
| + | | #+DATE: \today | ||
| + | | #+OPTIONS: H:2 toc:nil num:t | | | ||
| + | | #+LANGUAGE: ja | ||
| + | | # | ||
| <TBD> | <TBD> | ||
| - | 1. article としての生成 | ||
| - | 2. beamer を利用して,プレゼン用資料の生成 | ||
| - | コマンドメモ: | + | === - latex engine |
| - | * C-e C-p:変換先の候補を出す | + | |
| - | * l p:PDF を出力する | + | |
| + | 僕は 2000 年代頭くらいの状態のまま LaTeX を使っていたので,platex を使っていたのだが,ここ最近は,lualatex,uplatex, | ||
| + | これと同じように,documentclass で指定するクラスも,jarticle ではなく,jsarticle や bxjsarticle などを使うのが主流になってきている模様. | ||
| + | |||
| + | 年賀状で原の味フォントを使うのなんかも,platex のままで動作してたので,問題ないのかもしれないが,せっかくちょっとずついじるなら, jsarticle などを使っていってみたいと思う. | ||
| + | |||
| + | ただ,その際,jarticle ベースで設定していたフォーマットと,jsarticle でこれから育てていくフォーマットを共存させたくなってくるので,latex class に応じて呼び出されるコマンドを変更したいと考えた. | ||
| + | |||
| + | [[https:// | ||
| + | [[https:// | ||
| + | ここのコードを拝借して,以下のように書いてみたら,切替がうまく言ったような気がする. | ||
| + | |||
| + | <code lisp> | ||
| + | |||
| + | (use-package org | ||
| + | ... | ||
| + | :hook | ||
| + | (add-hook ' | ||
| + | ) | ||
| + | |||
| + | (defun skk/ | ||
| + | (message " | ||
| + | ;; [2025-01-12] | ||
| + | ;; https:// | ||
| + | (setq current-latex-class | ||
| + | (cdr (assoc " | ||
| + | (org-element-map (org-element-parse-buffer ' | ||
| + | (lambda (keyword) (cons (org-element-property :key keyword) | ||
| + | (org-element-property :value keyword))))))) | ||
| + | (if (eq current-latex-class nil) | ||
| + | (setq current-latex-class org-latex-default-class)) | ||
| + | |||
| + | (cond ((string-match current-latex-class " | ||
| + | (setq org-latex-pdf-process | ||
| + | ' | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | | ||
| + | | ||
| + | ((string-match current-latex-class " | ||
| + | (setq org-latex-pdf-process | ||
| + | ' | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | | ||
| + | | ||
| + | ((string-match current-latex-class " | ||
| + | (setq org-latex-pdf-process | ||
| + | ' | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | | ||
| + | | ||
| + | ) | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | 備考:[[https:// | ||
| + | |||
| + | === - beamer === | ||
| + | LaTeX の beamer クラスは,スライドを LaTeX で作成するためのクラス.org で箇条書したものを beamer で export すると,スライドにしやすい.ox-beamer というパッケージを使いつつ export できる. | ||
| + | |||
| + | beamer の LaTeX 的な記法は,[[latex]] に記載予定. | ||
| + | |||
| + | <TBD> | ||
| ==== - tbl 関係 | ==== - tbl 関係 | ||
| 行 1759: | 行 1929: | ||
| もし Linux でインストールする場合は,configure を利用すると良い気がする.僕は少なくとも,WSL emacs での tamago は allbsd の tamago を利用している. | もし Linux でインストールする場合は,configure を利用すると良い気がする.僕は少なくとも,WSL emacs での tamago は allbsd の tamago を利用している. | ||
| + | |||
| + | === - emacs 30.x 対応 [2025-10-22] === | ||
| + | emacs 30.x では,https:// | ||
| + | |||
| + | <code lisp> | ||
| + | Wrong type argument: obarrayp, [nil nil nil nil nil nil nil nil nil nil ...] | ||
| + | </ | ||
| + | |||
| + | というエラーが出る. | ||
| + | |||
| + | 記事執筆時点では,本体にマージされてないので,手動で https:// | ||
| === - 句読点切替え [2023-09-13] === | === - 句読点切替え [2023-09-13] === | ||
| 行 2179: | 行 2360: | ||
| * emacs 28 から登場した native compilation は,elisp の動作が 100 倍レベルで速くなるそうなので,もし利用している OS のパッケージが 28 になっていなかったら,自分でコンパイルして入れても良いかもしれない. | * emacs 28 から登場した native compilation は,elisp の動作が 100 倍レベルで速くなるそうなので,もし利用している OS のパッケージが 28 になっていなかったら,自分でコンパイルして入れても良いかもしれない. | ||
| - | 参考: | + | 参考:[2025-11-05] |
| <code bash> | <code bash> | ||
| - | % sudo apt-get install libwebkit2gtk-4.0-dev libgccjit-8-dev | + | sudo echo "deb http:// |
| - | % CPPFLAGS=' | + | % sudo apt-get install libwebkit2gtk-4.0-dev libgccjit-14-dev libmagickwand-dev libxpm-dev libgif-dev libgnutls28-dev libtinfo-dev libncurses-dev |
| + | % CPPFLAGS=' | ||
| + | % make -j16 | ||
| + | % make install | ||
| </ | </ | ||
| + | |||
| + | 注意:[2025-11-05] libwebkit2gtk-4.1-dev だと通らない.4.0 だと通る.4.0 を apt で入れるために,/ | ||
| + | |||
| + | 注意2:[2025-11-05]make -j16 の数字は,CPU のコア数に応じて変更して下さい. | ||
| ==== - X の設定 ==== | ==== - X の設定 ==== | ||