2013年8月17日土曜日

Windows 8にTeX環境を構築(1)

追記:2015/01/19 この記事は古いため現在は同じ手順で環境を作ることはできません。特にMinGWのインストールはディレクトリ構成が変わっているようなのでご注意ください。

先日東芝のdynabook v713というデタッチャブル ウルトラブックを購入しました.電磁誘導式のデジタイザ付きで,onenoteで手書きノートを作成する目的で利用しています.

手書きノートを整理してTeX文書化するために,VMWare Playerをインストールして仮想Ubuntu 13.04環境を作り,そこでTeXLive2013をインストールすることでTeX環境を作っていました.

v713は直販以外ではSSDの容量が128GBしかなく,Ubuntu 13.04の仮想ディスクが10GB以上の容量を占めているのがどうももったいない気がしたのと,持ち歩く際に仮想環境ではバッテリーの持ちも悪くなるのではないかという懸念からWindowsネイティブなTeX環境を作ることを模索してみました.

以前にCygwin+TeXLiveの環境を作ってみたのですが,実行速度が遅すぎて使いものにならない印象でした.このTeXLiveはCygwinのリポジトリからインストールしたものだったので,TeXLiveのDVDから直接インストールし,コマンドプロンプトから実行すれば速度が改善されるのではないかと思い試してみることにしました.

結果としてやったことは
  • TeXLive2013のインストール
  • MinGWのインストール
  • NTEmacs23.4のインストール
  • AutoHotkeyをインストールしてEmacs上でドル記号の直接入力設定
です.以下でそれぞれについて述べていきます.LinuxやMac OSX上でTeX環境を作っているものの,Windowsマシンでは同様の環境が作りづらいと感じている人の参考になればと思います.

TeXLive2013のインストール

TeXLiveについては,isoファイルのダウンロードページからtexlive2013-20130530.isoをダウンロードし,仮想ディスク作成ソフト Daemon Tools Liteを使って仮想ディスクにマウントします.
マウント時にinstall-tl.batを起動するかを尋ねられますが,そのままインストールしようとしたところ,Perl関係のエラーが発生してインストールができませんでした.
そこでTeXLive on Windowsのページの下部にある注意を参考に,コマンドプロンプトから

(texliveのisoをマウントしたドライブのパス)¥install-tl -v

を実行したところ,今度はエラー無くインストールを行うことが出来ました.インストール先はデフォルト通りのC:\texliveとしました.

Windowsのファイルシステムが影響しているのか,LinuxやMacに比べてインストールにかなり時間がかかります.

インストール後,「コントロールパネル」→「システムとセキュリティ」→「システム」と進み,さらに左側にある「システムの詳細設定」を選択し,現れた「システムのプロパティ」ウィンドウ下部の「環境変数」をクリック,ユーザの環境変数の部分にPathが設定されていると思います.値はC:\texlive\2013\bin\win32でした.

他にも,C:\texlive\2013\texmf-dist\web2c\texmf.cnfのshell-escapeコマンドの編集を行うなど,TeXLiveをインストールした際にいつも行う作業をしました.

TeXLiveの更新をしようとしましたが,guiのものしか見つかりませんでした.
ターミナルから実行するにはどうするのでしょうか?


次はMinGWをインストールです.さすがにWindowsのコマンドプロンプトは使い慣れていないので,Cygwinよりも実行速度が速いらしいMinGWを試すことにしました.


MinGWのインストール

まずはMinGWの公式ページからインストーラ mingw-get-inst-20120426.exeをインストールし,実行します.mingwはフルインストールしました.容量は500MBくらいなので,Cygwinのフルインストールに比べればだいぶ軽量です.

環境変数は自動で設定してくれるのか失念してしまいましたが,ホームディレクトリはC:\cygwin64\home\(ユーザ名)に作成されており,ユーザ環境変数HOMEもこのディレクトリに設定されています.

インストール後,コマンドプロンプトからmklink /D コマンドを使ってドロップボックス内に保存しているTeXスタイルファイルフォルダから,MinGWのホームディレクトリにシンボリックリンクを作成します.

mklink /D C:\cygwin64\home\(ユーザ名)\texmf  (Dropboxの対象ディレクトリ)

Linuxのシンボリック作成コマンド ln -s とリンク作成元と作成先の順序が違うので要注意です.

MinGWを使ってTeXのタイプセットを試してみたのですが,TeXLiveの環境変数TEXMFHOMEが機能していないようです.そこでユーザ環境変数TEXMFHOMEを作成し,値を%HOME%\texmfとしました.


MinGWではminttyというターミナルが半透明化可能でカッコ良いという話なので,MinGW shellを起動して,

$ mingw-get update
$ mingw-get install msys-mintty

を実行してminttyをインストールしました.
MinGW shellからminttyを実行して,タスクバーに現れるアイコンを右クリックし,「タスクバーにピン止めする」を選択してタスクバーから実行させようとすると,そのままでは設定ファイル諸々を読み込んでくれないので,Cygwin/minttyからscreenを起動する方法を参考にタスクバーからminttyを実行できるようにしました.

minttyではbashを起動するように設定したのですが,bashの設定ファイル.bashrcをMinGWのホームディレクトリにおいても読み込んでくれないようです.そこで.bash_profileという名前のファイルを作成し,中身に

if [ -f ~/.bashrc ]; then
. ~/.bashrc

fi

を書き込みます..bashrcのほうは

# some more ls aliases
alias l='ls -CF'
alias rm='rm -i'
alias cp='cp -i'
alias ls='ls --color=auto'
alias ll='ls -la --color=auto'
alias la='ls -a --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

# reftex environment variable
export BIBINPUTS=.:$HOME/texmf/pbibtex/bib//
export INDEXSTYLE=.:$HOME/texmf/makeindex//

という設定をしました.


NTEmacsのインストール

NTEmacsはsourceforgeのgnupackプロジェクトのダウンロードページからemacs-23.4-20120527.exeをダウンロードしました.現時点で最新版は24.2なのですが,emacs24では自分が愛用しているwiden-window.elがうまくはたらかないのでemacs23系列を利用しています.こちらは解凍したディレクトリがそのままインストールディレクトリになるので,私はCドライブ直下に配置し,環境変数のPathにbinディレクトリへのパスを通しました.

gnupackのemacsはIMEパッチ施しているので,MSIMEを使ったインライン入力が可能です.私はGoogle日本語入力を導入していますが,Google日本語入力でははじめからインライン入力が可能なようです.

以下にEmacsの設定ファイル(~/.emacs.d/init.el)を晒しておきます.

;;;; 初期設定ファイルの指定
(setq user-init-file "~/.emacs.d/init.el")

;;; マクロサーチパスの追加
(setq load-path (cons "~/lib/emacs" load-path))


;;; 言語環境の指定
(set-language-environment "Japanese")


;;;エンコーディング設定
(set-default-coding-systems 'utf-8)
(set-buffer-file-coding-system 'utf-8-unix)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(setq file-name-coding-system 'utf-8)

;;; emacsclient サーバを起動
(server-start)


;;; 起動直後のカレントディレクトリ(find-fileのパス)を~/にする
(cd "~/")

;;複数のバージョンをバックアップとして保存
(setq version-control nil)

;; 最近使ったファイルを記憶させる
;;   使い方は M-x recentf-open-files
;;(recentf-mode 1)
(require 'recentf)
(when (require 'recentf nil t)
  (setq recentf-max-saved-items 100)
  (setq recentf-exclude '(".recentf"))
  (setq recentf-auto-cleanup 20)
  (setq recentf-auto-save-timer
        (run-with-idle-timer 30 t 'recentf-save-list))
  (recentf-mode 1))

(global-set-key "\C-xf" 'recentf-open-files) ;;履歴一覧を開く。


;;; IME の設定 
(setq default-input-method "W32-IME")
(w32-ime-initialize)
(setq-default w32-ime-mode-line-state-indicator "[Aa]") 
(setq w32-ime-mode-line-state-indicator-list '("[Aa]" "[あ]" "[Aa]")) 


;;; IME ON/OFF 時にカーソル色を変える。
(add-hook 'w32-ime-on-hook
          (lambda () (set-cursor-color "red")))
(add-hook 'w32-ime-off-hook
          (lambda () (set-cursor-color "white")))





;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Emacs のフォント/カラー設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq default-frame-alist 
      (append
       '((width . 80) (height . 29) 
  (top . 0) (left . 300);; ウィンドウサイズ
  )
       default-frame-alist)) 

(set-face-background 'default "#333366") ;; 標準の背景色
(set-face-foreground 'default "white")   ;; 標準の文字色

(setq load-path (cons "~/lib/emacs/color-theme-6.6.0" load-path))
(require 'color-theme) ;; color-theme.elを使う
(color-theme-initialize)
(color-theme-taylor)
;; デフォルトの透明度を設定する (85%)
(add-to-list 'default-frame-alist '(alpha . 80))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ウィンドウ関係
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; widen-window フォーカスのある window のサイズが自動的に大きくなる
(require 'widen-window)
(global-widen-window-mode 1)
(setq ww-ratio 0.7)
 ;window widening が機能してほしいタイミングを追加
(setq ww-advised-functions
      (append ww-advised-functions
       '(;recenter
  windmove-up
  windmove-down
  windmove-right
  windmove-left)))


 ;;; メニューバーを消す
 (menu-bar-mode nil)
 ;;; ツールバーを消す
 (tool-bar-mode -1)

 ;; 起動時の画面はいらない
 (setq inhibit-startup-message t)

 ;;;対応する括弧をハイライトする
 (show-paren-mode t)

  ;;片方の括弧が画面外にあるときのための設定
 (setq show-paren-style 'mixed)
 (set-face-background 'show-paren-match-face "gray10")
 (set-face-foreground 'show-paren-match-face "SkyBlue")


 ;;;対応する括弧へ飛ぶ (Ctrl-x %)
(progn
  (defvar com-point nil
    "Remember com point as a marker. \(buffer specific\)")
  (set-default 'com-point (make-marker))
  (defun getcom (arg)
    "Get com part of prefix-argument ARG."
    (cond ((null arg) nil)
          ((consp arg) (cdr arg))
          (t nil)))
  (defun paren-match (arg)
    "Go to the matching parenthesis."
    (interactive "P")
    (let ((com (getcom arg)))
      (if (numberp arg)
          (if (or (> arg 99) (< arg 1))
              (error "Prefix must be between 1 and 99.")
            (goto-char
             (if (> (point-max) 80000)
                 (* (/ (point-max) 100) arg)
               (/ (* (point-max) arg) 100)))
            (back-to-indentation))
        (cond ((looking-at "[\(\[{]")
               (if com (move-marker com-point (point)))
               (forward-sexp 1)
               (if com
                   (paren-match nil com)
                 (backward-char)))
              ((looking-at "[])]}")
               (forward-char)
               (if com (move-marker com-point (point)))
               (backward-sexp 1)
               (if com (paren-match nil com)))
              (t (error ""))))))
  (define-key ctl-x-map "%" 'paren-match))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; タブ、全角スペースを表示する
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defface my-face-r-1 '((t (:background "gray15"))) nil)
(defface my-face-b-1 '((t (:background "gray"))) nil)
(defface my-face-b-2 '((t (:background "gray26"))) nil)
(defface my-face-u-1 '((t (:foreground "red" :underline t))) nil)
(defvar my-face-r-1 'my-face-r-1)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)
(defadvice font-lock-mode (before my-font-lock-mode())
  (font-lock-add-keywords
   major-mode
   '(
     ("\t" 0 my-face-b-2 append)
     (" " 0 my-face-b-2 append)
     ("[ \t]+$" 0 my-face-u-1 append)
     (" [\r]*\n" 0 my-face-r-1 append)
     )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 編集行を目立たせる(現在行をハイライト表示する)
;;;;;;;;;p;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defface hlline-face
  '((((class color)
      (background dark))
     (:background "dark slate gray"))
    (((class color)
      (background light))
;     (:background "ForestGreen"))
     (:background "Skyblue"))
    (t
     ()))
  "*Face used by hl-line.")
(setq hl-line-face 'hlline-face)
;; (setq hl-line-face 'underline) ; 下線
(global-hl-line-mode)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;バッファ移動を直感的にShift + ↓ or → or ← or ↑で行う
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq windmove-wrap-around t)
(windmove-default-keybindings)
;;Control + Shift + ↓ or → or ← or ↑でバッファ間移動
;; (global-set-key [?\C-\S-f] 'windmove-left)
;; (global-set-key [?\C-\S-b] 'windmove-right)
;; (global-set-key [?\C-\S-p] 'windmove-up)
;; (global-set-key [?\C-\S-n] 'windmove-down)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;; TeX-master は安全な局所変数として扱う
;;; from AUCTeX tex.el 
(put 'TeX-master 'safe-local-variable
     (lambda (x)
       (or (stringp x)
    (member x (quote (t nil shared dwim))))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; YaTeX 1.77
;;   [La]TeX 入力モード
;;   M-x yatex とするか、.tex で終わるファイルを読み込むと起動します
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq load-path (cons "~/lib/emacs/yatex1.77" load-path))

(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)

;; ローカル辞書(あるディレクトリのみで有効なコマンドを保存する)を使わない
(setq YaTeX-nervous nil)

;; *YaTeX-typesetting* のバッファーが文字化けしないようにする
(setq YaTeX-latex-message-code 'utf-8)

;;タイプセットの自動rerunを無効化
(setq YaTeX-typeset-auto-rerun nil)

;;コマンドの引数をミニバッファで入力しない
(setq YaTeX-skip-default-reader t)

;;usepackageの挿入提案を出さないようにする
(defun YaTeX-package-auto-usepackage (macro type) nil)

;; YaTeX-mode
(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(setq 
       dvi2-command "rundll32 shell32,ShellExec_RunDLL SumatraPDF -reuse-instance"
      tex-command "platex -kanji=utf8 -shell-restricted -synctex=1"
      dvipdf-command "dvipdfmx"
      bibtex-command "pbibtex -kanji=utf8"
      makeindex-command "mendex -U"
      YaTeX-kanji-code 4) ;kanji-code 3: euc-jp, 4: utf-8


;; AMSTeXを使う
(setq YaTeX-use-AMS-LaTeX t)


;;YaTeX カスタマイズ
(setq yatex-mode-load-hook
      '(lambda()
  (YaTeX-define-begend-key "bP" "proof")
  (YaTeX-define-begend-key "ba" "align")
  (YaTeX-define-begend-key "bg" "gather")
  (YaTeX-define-begend-key "bf" "figure")
  ))


;;数式記号の個人設定
(setq
 YaTeX-math-sign-alist-private
 '(
   ("sc"        "mathscr"       "\\mathscr{}")
   ("Q"         "mathbb{Q}"     "|Q")
   ("C"         "mathbb{C}"     "|C")
   ("H"         "mathbb{H}"     "|H")
   ("Z"         "mathbb{Z}"     "ZZ")
   ("N"         "mathbb{N}"     "|N")
   ("R"         "mathbb{R}"     "|R")
   ("K"         "mathbb{K}"     "|K")
   ("lan"       "langle"        "<")
   ("ran"       "rangle"        ">")
   ("ds"        "displaystyle"  "displaystyle")
   ("tx"        "textstyle"  "textstyle")
   ("q"         "quad"          "__")
   ("qq"        "qquad"         "____")
   ("ls"        "varlimsup"     "___\nlim")
   ("li"        "varliminf"     "lim\n---")
   ("il"        "varinjlim"     "lim\n-->")
   ("st"        "text{ s.~t. }" "s.t.")
   ("bigop"     "bigoplus"      "_\n(+)~")
   ("bigot"     "bigotimes"     "_\n(x)\n ~")
   ("pl"        "varprojlim"    "lim\n<-- 1="" 40="" 41="" 91="" 93="" add-hook="" alt="" atex-font-lock-recenter="" atex-visit-main="" atex="" buffer-file-name="" buffer-name="" c="" concat="" cond="" control="" count-lines="" define-key="" defun="" efine="" eftex-mode="" enable-local-variables="" expand-file-name="" f="" file-name-sans-extension="" following-char="" forward-search="" forward="" fwdsumatrapdf-forward-search="" fwdsumatrapdf="" hellexec_rundll="" interactive="" j="" kbd="" key="" lambda="" local-set-key="" mytex-jump-to-next="" n="" nil="" number-to-string="" or="" pdf="" point-min="" point="" process-kill-without-query="" progn="" reftex-insert-label-flags="" reftex-mode-map="" reftex-mode="" reftex="" reuse-instance="" rundll32="" s="" save-excursion="" save-restriction="" search="" setq-default="" setq="" sfte="" shell32="" skip-chars-forward="" start-process="" sumatra="" sumatrapdf-forward-search="" sumatrapdf="" synctex="" t="" table="" tex-master="" tex-parse-self="" turn-on-reftex="" umatrapdf="" widen="" yatex-mode-hook="" yatex-mode-map="" yatex-mode="" yatex-parent-file="" yatex-prefix="" yatex.el="" yatex="" ytex-jump-to-next="">") 'YaTeX-comment-region) ;指定領域のコメントアウト "C-c >"
       (define-key reftex-mode-map
  (concat YaTeX-prefix "<") 'YaTeX-uncomment-region) ;コメントアウト解除 "C-c <"
       (define-key reftex-mode-map
  (concat YaTeX-prefix ")") 'YaTeX-insert-parens-region) ;領域を括弧で括る "C-c )"
       ))

;; 上でYaTeXに譲り渡したRefTeXのコマンドを定義し直す
;;;;; labelの参照のコマンドを"C-c )"から"C-h )"に変更(暫定的)
(add-hook 'reftex-mode-hook
    '(lambda ()
      (define-key reftex-mode-map "\C-h)" 'reftex-reference)
      (define-key reftex-mode-map "\C-h=" 'reftex-toc)
      (define-key reftex-mode-map "\C-h(" 'reftex-label)
      (define-key reftex-mode-map "\C-h[" 'reftex-citation)
      (define-key reftex-mode-map "\C-h<" 'reftex-index)
      (define-key reftex-mode-map "\C-h>" 'reftex-display-index)
      (define-key reftex-mode-map "\C-h/" 'reftex-index-selection-or-word)
      (define-key reftex-mode-map "\C-h\\" 'reftex-index-phrase-selection-or-word)
      (define-key reftex-mode-map "\C-h|" 'reftex-index-visit-phrases-buffer)
      (define-key reftex-mode-map "\C-h&" 'reftex-view-crossref)
        ))

;;;

;;; C-h&でhyperlink, hypertarget間の相互ジャンプを可能にする

(setq reftex-view-crossref-extra
      '(("\hyperlink" "\hypertarget{\\(%s\\)}" 1)
 ("\hypertarget" "\hyperlink{\\(%s\\)}" 1)))


;;; 新たなlabel環境の定義

;; \eqrefを使う
 (setq reftex-label-alist 
       '(
  (nil ?e nil "\\eqref{%s}" nil nil)
  ("theo"  ?h "theo:"  "\\ref{%s}" t ("定理"))
  ("axiom"  ?a "axiom:"  "\\ref{%s}" t ("公理"))
  ("prop"  ?p "prop:"  "\\ref{%s}" nil ("命題"))
  ("lem"   ?l "lem:"   "\\ref{%s}" nil ("補題"))
  ("defi"  ?d "defi:"   "\\ref{%s}" nil ("定義"))
  ("coro"  ?c "coro:"   "\\ref{%s}" nil ("系"))
  ("exercise"  ?x "exercise:"   "\\ref{%s}" nil ("問"))
  ))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Asymptote モード
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq load-path (cons "~/lib/emacs/asymptote" load-path))
(autoload 'asy-mode "asy-mode.el" "Asymptote major mode." t)
(autoload 'lasy-mode "asy-mode.el" "hybrid Asymptote/Latex major mode." t)
(autoload 'asy-insinuate-latex "asy-mode.el" "Asymptote insinuate LaTeX." t)
(add-to-list 'auto-mode-alist '("\\.asy$" . asy-mode))
(add-hook 'asy-mode-hook (lambda () (local-set-key [f5] 'asy-compile)))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; その他の設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; 一行が 80 字以上になった時には自動改行する
(setq fill-column 80)
(setq text-mode-hook 'turn-on-auto-fill)
(setq default-major-mode 'text-mode)

;;; ステータスラインに時間を表示する
(setq dayname-j-alist
      '(("Sun" . "日") ("Mon" . "月") ("Tue" . "火") ("Wed" . "水")
 ("Thu" . "木") ("Fri" . "金") ("Sat" . "土")))
(setq display-time-string-forms
      '(
;(format "%s年%s月%s日(%s) %s:%s %s"
;                     year month day
 (format "%s/%s(%s) %s:%s %s"
  month day
  (cdr (assoc dayname dayname-j-alist))
  24-hours minutes
  load)))
(display-time)

;;; visible-bell
(setq visible-bell t)

;;; 行番号を表示する
(line-number-mode t)

;;; バッファの最後でnewlineで新規行を追加するのを禁止する
(setq next-line-add-newlines nil)


;;; mark 領域に色付け
(setq transient-mark-mode t)

;;; 最終更新日の自動挿入
;;;   ファイルの先頭から 8 行以内に Time-stamp: <> または
;;;   Time-stamp: " " と書いてあれば、セーブ時に自動的に日付が挿入されます
(if (not (memq 'time-stamp write-file-hooks))
    (setq write-file-hooks
          (cons 'time-stamp write-file-hooks)))


Emacsの設定では,フルスクリーンの設定が未だにうまくいっていません.
フルスクリーンというよりも全画面表示的なものであったり,タスクバーの背後に画面が隠れてしまうなどするので,まだ決定的な設定が見つけられていません.

これでほぼUbuntuやMacと同じ環境を整えることが出来ました.
これまでWindowでTeX環境を作らなかった理由の1つとして,EmacsでYaTeXを用いている際に,日本語入力の状態でもドル記号を入力すると自動で数式入力モードに切り替わる機能が使えるように設定できないことがありました.

それについても記載したいと思いますが,大分長いエントリになってしまったのでそれは別のエントリに分けたいと思います.