LaTeXのtableを
&
で揃える技があります。C-x C-f
を使うよりもC-x d
でdiredを経由の方が好きです。latexmk
というコマンドを使います。
;; load environment variables ------------------------------- (let ((envs '("PATH" "C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" "TEXINPUTS" "BSTINPUTS" "BIBINPUTS"))) (exec-path-from-shell-copy-envs envs))これで.zshrcの方だけで管理しておくことができます。
newline-and-indent
、C-mにnewline
、C-oにopen-line
が割り当てられてて、結構頻繁に使うコマンドだと思います。open-line
がカーソル以降の文章を改行した後にそれらをインデントしてくれないのがずっと納得できなくて悩んでいました。(defun open-line-next-indent () "Open a line and indent the next line." (interactive) (save-excursion (newline) (indent-for-tab-command)) ) (global-set-key "\C-o" 'open-line-next-indent)めっちゃ簡単な関数ですけどこれが僕にとって理想のC-oの挙動だと思いました。
newline-and-indent
せずに、newline
してからindent-for-tab-command
でインデントするのがミソだと思ってます。newline-and-indent
にしたら変な挙動になるので試したらいいと思います。M-x org-versionで調べられます。 最近のEmacsでは
package-list-package
から最新版が入れられるはずです。
(require 'org-install) (setq org-startup-truncated nil) (setq org-return-follows-link t) (add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) ;; (org-remember-insinuate) (setq org-directory "~/Dropbox/memo/") (setq org-default-notes-file (concat org-directory "agenda.org")) (setq org-capture-templates '(("t" "Todo" entry (file+headline nil "Inbox") "** TODO %?\n %i\n %a\n %t") ("b" "Bug" entry (file+headline nil "Inbox") "** TODO %? :bug:\n %i\n %a\n %t") ("i" "Idea" entry (file+headline nil "New Ideas") "** %?\n %i\n %a\n %t"))) (setq org-agenda-files (list org-directory)) ;agendaを使うため ;; ショートカットキー (global-set-key "\C-cl" 'org-store-link) (global-set-key "\C-co" 'org-capture) (global-set-key "\C-ca" 'org-agenda) (global-set-key "\C-cb" 'org-iswitchb) (add-hook 'org-mode-hook 'turn-on-font-lock)この設定しておくと、どんな作業中でもC-c oで
org-capture
起動した後にtでTODO、iでアイデアとかをメモできます。org-directory
で設定したフォルダのorg-default-notes-file
のファイルに全部保存されていきます。org-capture
の作業バッファになります。
この状態でC-c C-c押すと保存され、C-c C-kでキャンセルになります。org-capture
のバッファは、org-modeというメジャーモードになってて、上の設定やると.org
の拡張子のファイルは全てorg-modeで起動されます。 (setq org-latex-classes '(("IEEEdouble" "\\documentclass[11pt,twocolumn,twoside]{IEEEtran} \\usepackage{newenum} \\usepackage{times,amsmath,amssymb} \\usepackage{amsthm} \\usepackage{cite,subfigure,bm} \\usepackage{multicol,multirow} \\usepackage{array} \\usepackage[dvipdfmx,hiresbb]{graphicx} \\usepackage[dvipdfmx]{color}" ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}") ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) ("IEEEsingle" "\\documentclass[11pt,draftcls,onecolumn]{IEEEtran} \\usepackage{newenum} \\usepackage{times,amsmath,amssymb} \\usepackage{amsthm} \\usepackage{cite,subfigure,bm} \\usepackage{multicol,multirow} \\usepackage{array} \\usepackage[dvipdfmx,hiresbb]{graphicx} \\usepackage[dvipdfmx]{color}" ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}") ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) ("thesis" " \\documentclass{jsarticle} \\usepackage[dvipdfmx]{graphicx} \\usepackage[utf8]{inputenc} \\usepackage[T1]{fontenc} " ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}") ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) )) (setq org-latex-default-class "IEEEdouble") ;;; LaTeX 形式のファイル PDF に変換するためのコマンド (setq org-latex-pdf-process '("platex %f" "bibtex %b" "platex %f" "platex %f" "dvipdfmx %b.dvi"))長いですけど大半はLaTeXのヘッダ部分の設定で、ここでは
org-latex-classes
に3つのパターンを追加しています(インデントぐちゃってますが気にしない)。#+TITLE: Title #+AUTHOR: Author #+LATEX_CLASS: IEEEsingle #+OPTIONS: toc:nil timestamp:nilTITLEがタイトル、AUTHORが著者、LATEX_CLASSがさっきの3つのパターンのどれかが入ります。
\begin{...}\end{...}
などの普通のLaTeXコマンドも使えます。 C-c C-n, C-c C-p, C-c C-f, C-c C-b | 節間の移動。各々の挙動はめんどくさいから各自確かめて。 |
M-<ENTER> | 同じランクを追加。 |
<TAB> | 文章の折り畳み。 |
M-[→], M-[←] | ランク変え。 |
C-c C-t | TODO項目の状態変化。 |
C-c C-e l o | pdfに変換して開く。C-c C-e押した時点でその他のガイドがあるので色々試してみると良い。 |
(require 'historyf) (global-set-key (kbd "M-[") 'historyf-back);;shortcut key (global-set-key (kbd "M-]") 'historyf-forward);;上に同じ
M-x package-install buffer-move
(global-set-key (kbd "M-") 'buf-move-right) (global-set-key (kbd "M- ") 'buf-move-left) (global-set-key (kbd "M- ") 'buf-move-down) (global-set-key (kbd "M- ") 'buf-move-up)
(global-set-key (kbd "C-c") 'windmove-left) (global-set-key (kbd "C-c ") 'windmove-down) (global-set-key (kbd "C-c ") 'windmove-up) (global-set-key (kbd "C-c ") 'windmove-right)
(defvar e2wm:def-plugin-clock-url "http://www.avtokei.jp/images/clocks/%H/%H%M.jpg\?1277461066" "URL pattern.") (defvar e2wm:def-plugin-clock-referer "http://www.avtokei.jp/index.html" "referer URL")元々のバイトコンパイル済みのe2wm.elcが存在しているとそっちが読み込まれるのであらかじめ削除するかもしくはコンパイルし直してください.
(provide 'setup-flymake)そしたらinit.el(もしくは.emacs.el)に以下を書きます.
(require 'setup-flymake)これだけです.
(load "setup-flymake")この場合の"setup-flymake"はファイル名を意味しています.
(eval-after-load 'cc-mode '(require 'setup-cc-mode))tex-modeとかのメジャーモードごとに設定すればいいと思います.
;; 自作のpurgeする関数 (defun purge () (interactive) (message "purging...") (shell-command (format "purge")) (message "Finished.")) (global-set-key "\C-c\C-p" 'purge)C-c C-pでパージ出来ます。
(global-set-key "\M-n" (lambda () (interactive) (scroll-up 1))) (global-set-key "\M-p" (lambda () (interactive) (scroll-down 1)))