秋田の平凡な日々

http://www.geocities.co.jp/SiliconValley-Bay/6202/

全体表示

[ リスト ]

5 EmacsでLaTeX

5.1 LaTeXのインストール

今まで使ってきたEmacs24のLaTeX環境ではW32TeXを使っているので,Emacs26ではtexliveを使うことにする。
ネットワークインストーラでインストールすることにし,
Installing TeX Live over the Internet(https://www.tug.org/texlive/acquire-netinstall.html)からinstall-tl-windows.exeをダウンロードして実行する。

2時間位かかったが,何もしなくても終了した。
TeXworksが入っているので,これを使うならLaTeX環境完成だが・・・。

参考
https://texwiki.texjp.org/?Microsoft%20Windows
https://texwiki.texjp.org/?TeX%20Live%2FWindows

5.2 PDF ファイルビューアのインストール

今まで使ってきたEmacs24のLaTeX環境ではDIVファイルを作成し,ビューアとしてDVIOUTを使っていたが,近頃はPDFファイルを作成するのが主流のようなので,PDFファイルを作成し,ビューアとしてSumatraPDFを使うことにする。

5.2.1 SumatraPDFのインストール
Download Sumatra PDF - a free reader(https://www.sumatrapdfreader.org/download-free-pdf-viewer.html) から Installer をダウンロードする。
64-bit Windows なので 64-bit builds の Installer(SumatraPDF-3.1.2-64-install.exe) をダウンロードして実行する。

5.2.2 SumatraPDFの設定(inverse searchの設定)
inverse search(PDFファイルをダブルクリックするとEmacsで開いている対応するTeX文書の箇所にジャンプする機能)を設定する。

SumatraPDF の [☰]-[設定(S)]-[オプション(O)...] の逆順検索コマンドラインの設定でおこなう。
逆順検索コマンドラインの設定が表示されていない場合は [☰] -[ 設定(S)]-[詳細設定(A)] で テキストファイル SumatraPDF-settings.txt を開いて
EnableTeXEnhancements = false
と記述されている部分を
EnableTeXEnhancements = true
に変更して保存する。

逆順検索コマンドラインの設定に
   
Emacsのインストール場所\bin\emacsclientw.exe --no-wait +%l "%f"
を記述する。今回は
C:\Program_maru\emacs-26.1\bin\emacsclientw.exe --no-wait +%l "%f"
とした。


参考
https://mytexpert.osdn.jp/index.php?SumatraPDF


5.2.3 Emac設定ファイルinit.elの設定
init.el に以下を記述する。
;; ------------------------------------------------------------------------
;;@ SumatraPDFとの連携 inverse searchの設定
(require 'server)
(server-force-delete)
(server-start)
;; ------------------------------------------------------------------------

(require 'server)が必要かどうかは不明。
参考
https://texwiki.texjp.org/?Emacs#haedf247

"使い方
inverse search : SumatraPDFで表示しているPDFファイルをダブルクリック
"forward search :Emacsで表示しているTeXファイルでC-c C-g  (うまく動いてくれない)

5.3 YaTeXの導入

yatexパッケージをインストールする。
M-x package-install<RET>
yatex

設定ファイルinit.elに以下を記述する。
;; ------------------------------------------------------------------------
;;@ YaTeX
;;
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq auto-mode-alist
(append '(("\\.tex$" . yatex-mode)
("\\.ltx$" . yatex-mode)
("\\.cls$" . yatex-mode)
("\\.sty$" . yatex-mode)
("\\.clo$" . yatex-mode)
("\\.bbl$" . yatex-mode)) auto-mode-alist))
(setq YaTeX-inhibit-prefix-letter t)
(setq YaTeX-kanji-code nil)
(setq YaTeX-latex-message-code 'utf-8)
(setq YaTeX-use-LaTeX2e t)
(setq YaTeX-use-AMS-LaTeX t)
(setq YaTeX-dvi2-command-ext-alist
'(("TeXworks\\|texworks\\|texstudio\\|mupdf\\|SumatraPDF\\|Preview\\|Skim\\|TeXShop\\|evince\\|atril\\|xreader\\|okular\\|zathura\\|qpdfview\\|Firefox\\|firefox\\|chrome\\|chromium\\|MicrosoftEdge\\|microsoft-edge\\|Adobe\\|Acrobat\\|AcroRd32\\|acroread\\|pdfopen\\|xdg-open\\|open\\|start" . ".pdf")))
(setq tex-command "ptex2pdf -u -l -ot \"-kanji=utf8 -no-guess-input-enc -synctex=1\"")
;(setq tex-command "lualatex -synctex=1")
;(setq tex-command "latexmk")
;(setq tex-command "latexmk -e \"$latex=q/uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 %S/\" -e \"$bibtex=q/upbibtex %O %B/\" -e \"$biber=q/biber %O --bblencoding=utf8 -u -U --output_safechars %B/\" -e \"$makeindex=q/upmendex %O -o %D %S/\" -e \"$dvipdf=q/dvipdfmx %O -o %D %S/\" -norc -gg -pdfdvi")
;(setq tex-command "latexmk -e \"$lualatex=q/lualatex %O -synctex=1 %S/\" -e \"$bibtex=q/upbibtex %O %B/\" -e \"$biber=q/biber %O --bblencoding=utf8 -u -U --output_safechars %B/\" -e \"$makeindex=q/upmendex %O -o %D %S/\" -norc -gg -pdflua")
(setq bibtex-command "latexmk -e \"$latex=q/uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 %S/\" -e \"$bibtex=q/upbibtex %O %B/\" -e \"$biber=q/biber %O --bblencoding=utf8 -u -U --output_safechars %B/\" -e \"$makeindex=q/upmendex %O -o %D %S/\" -e \"$dvipdf=q/dvipdfmx %O -o %D %S/\" -norc -gg -pdfdvi")
(setq makeindex-command "latexmk -e \"$latex=q/uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 %S/\" -e \"$bibtex=q/upbibtex %O %B/\" -e \"$biber=q/biber %O --bblencoding=utf8 -u -U --output_safechars %B/\" -e \"$makeindex=q/upmendex %O -o %D %S/\" -e \"$dvipdf=q/dvipdfmx %O -o %D %S/\" -norc -gg -pdfdvi")
(setq dvi2-command "rundll32 shell32,ShellExec_RunDLL SumatraPDF -reuse-instance")
;(setq dvi2-command "texworks")
;(setq dvi2-command "texstudio --pdf-viewer-only")
(setq tex-pdfview-command "rundll32 shell32,ShellExec_RunDLL SumatraPDF -reuse-instance")
;(setq tex-pdfview-command "texworks")
;(setq tex-pdfview-command "texstudio --pdf-viewer-only")
(setq dviprint-command-format "powershell -Command \"& {$r = Write-Output %s;$p = [System.String]::Concat('\"\"\"',[System.IO.Path]::GetFileNameWithoutExtension($r),'.pdf','\"\"\"');Start-Process AcroRd32 -ArgumentList ($p)}\"")

(defun fwdsumatrapdf-forward-search ()
(interactive)
(progn
(process-kill-without-query
(start-process
"fwdsumatrapdf"
nil
"fwdsumatrapdf"
(expand-file-name
(concat (file-name-sans-extension (or YaTeX-parent-file
(save-excursion
(YaTeX-visit-main t)
buffer-file-name)))
".pdf"))
(buffer-name)
(number-to-string (save-restriction
(widen)
(count-lines (point-min) (point))))))))

(add-hook 'yatex-mode-hook
'(lambda ()
(define-key YaTeX-mode-map (kbd "C-c f") 'fwdsumatrapdf-forward-search)))

(add-hook 'yatex-mode-hook
'(lambda ()
(auto-fill-mode -1)))

;;
;; RefTeX with YaTeX
;;
;(add-hook 'yatex-mode-hook 'turn-on-reftex)
(add-hook 'yatex-mode-hook
'(lambda ()
(reftex-mode 1)
(define-key reftex-mode-map (concat YaTeX-prefix ">") 'YaTeX-comment-region)
(define-key reftex-mode-map (concat YaTeX-prefix "<") 'YaTeX-uncomment-region)))

;; ------------------------------------------------------------------------

参考
https://texwiki.texjp.org/?YaTeX

5.4 TeXファイルを書く上での注意事項

5.4.1 jarticleの代わりにujarticle
init.elのYaTeXの設定に
ptex2pdf -u -l -ot \"-kanji=utf8 -no-guess-input-enc -synctex=1\""
という記述がある。
-u はuse uptex class of programs(uplatex, euptex, uptex を使用する場合に指定)というオプション。
uplatexはplatexの上位互換でuplatexではjarticleの代わりにujarticleを使うらしい。

jarticleを使ったファイル
\documentclass{jarticle}
\begin{document}
Hello World! こんにちは
\end{document}
をC-c C-t j(LaTeXでコンパイルする)とするとjarticleの部分でエラー
! LaTeX Error: Encoding scheme `JY1' unknown.

が出る。

5.4.2 文字コードはUTF-8
シフトJISは理解してくれないようなので,文字コードをUTF-8に変更する。
文字コードの変更はC-x(Ctrとxを同時に押す) RET(Enterキー) f。
C-x RET f utf-8
と入力したらhelmが16種類のUTF-8を表示してくれた。
utf-8とutf-8-emacsは試したら動いた。

文字コードがシフトJISのファイルをC-c C-t j(LaTeXでコンパイルする)とするとエラーが出た。
イメージ 1




・Emacs26.1を入れてみる(その14)https://blogs.yahoo.co.jp/t_terui/66966126.html へ戻る


閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

開く トラックバック(0)


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事