LyXで日本語を使うようにする設定(Windows)

LyXというのは,texなど(latex, luatex, and so on)をWYSIWIGスタイルで扱うためのラッパーだと思ってください.Wordの数式エディタのような調子で編集し,しかもtexならではのシュッとしたPDFを生成できるというすぐれものです.

便利なのは良いのですが,数式の入った日本語文書を作ろうとすると,Windows版では「ただ動かす」だけでも多少の自明でない設定が必要となります.諸般の事情によりLyX環境を整備するのが二回目となるのでメモ代わりに記事とします.

前提:
1. texlive などのlatex環境がすでに整っている.
2. バイナリはここから取ってきてインストールが済んでいる.

■latexの設定
[ツール(T)] > [設定(P)…] で「出力」「LaTeX」を次のように設定する:
lyx設定出力LaTeX
設定したら[適用(A)] > [保存(S)] をクリックして設定を反映させる.

■言語の設定
日本語の文書を作成する場合は babel を off にする.
[ツール(T)] > [設定(P)…] で「言語設定」「言語」を選んで次のように設定する:
lyx設定言語設定-言語

■文書-文書クラスの設定
[文書(D)] > [設定(S)…] で「文書クラス」を選んで次のように設定する:
lyx文書の設定-文書クラス

■文書-言語の設定
[文書(D)] > [設定(S)…] で「言語」を選んで次のように設定する:
lyx文書の設定-言語New
設定したら「文書の既定値として保存」して[適用(A)]>[OK]する.

■文書-形式の設定
[文書(D)] > [設定(S)…] で「形式」を選んで次のように設定する:
lyx文書形式

設定したら「文書の既定値として保存」して[適用(A)]>[OK]する.

■変換子の設定
[ツール(T)] > [設定(P)…] で「ファイル処理」「変換子」を次のように設定する:

●LaTeX (luaTeX) -> PDF
lyx設定ファイル処理変換子LaTeX2PDF

設定したら[修正(M)]を押してから[適用(A)] > [保存(S)] をクリックして設定を反映させる.

●DVI -> PDF(dvipdfm)
lyx設定ファイル処理変換子DVI2PDF

設定したら[修正(M)]を押してから[適用(A)] > [保存(S)] をクリックして設定を反映させる.

●LaTeX(pLaTeX) -> DVI
lyx設定ファイル処理変換子Platex2DVI

設定したら[修正(M)]を押してから[適用(A)] > [保存(S)] をクリックして設定を反映させる.

■ファイル形式の設定
ここではビューワとしてtexworksを指定している.
lyx設定ファイル形式
設定したら[適用(A)] > [保存(S)] をクリックして設定を反映させる.

参考にしたサイト
TeX Wiki LyX/設定/Windows

■履歴
2018/10/24 初稿作成
2018/10/30 若干修正
2018/10/31 さらに修正
2018/11/03 さらに修正

広告

MSYS2 上で stack upgrade (Haskell)

使っていたstackのバージョンが1.7.0.1だったのでバージョンを上げようと思った.そこで MSYS2 上で $stack upgrade したがパーミッションの問題でうまくいかない.
「管理者として実行」でMSYS2シェルを立ち上げて$stack upgradeしてもうまくいかない.

$stack upgrade を実行したときの最後のメッセージが

Should I try to perform the file copy using sudo? This may fail
Try using sudo? (y/n) y
Going to run the following commands:

-  sudo cp C:\Users\Username\AppData\Roaming\local\bin\stack.exe C:\stack-1.7.0.1-windows-x86_64\stack.exe.tmp
-  sudo mv D:\stack-1.7.0.1-windows-x86_64\stack.exe.tmp D:\stack-1.7.0.1-windows-x86_64\stack.exe

だったので,「管理者として実行」でMSYS2シェルを立ち上げてから

$ cp "C:\Users\Username\AppData\Roaming\local\bin\stack.exe" "C:\stack-1.7.0.1-windows-x86_64\stack.exe.tmp"
$ mv "D:\stack-1.7.0.1-windows-x86_64\stack.exe.tmp" "D:\stack-1.7.0.1-windows-x86_64\stack.exe"

したらうまくいったようだ:

$ stack --version
Version 1.7.1, Git revision 681c800873816c022739ca7ed14755e85a579565 (5807 commits) x86_64 hpack-0.28.2

export PYTHONIOENCODING=UTF-8

pythonでユニコードを扱いたいときは .bashrc にこう書いておくといいみたい.とりあえず,これで sys.stdout.write にまつわる UnicodeEncodeError が解消してくれた.

msys2 上で ocaml をビルドしようとして失敗した記録

■真新しいmsys2上でomakeを使いたくなったが、周知の通り現在はWindows用のバイナリが配布されていない。
msys2上のocamlでomakeをビルドしようとしたが上手く行かない。そこで、msys2上でocamlをビルドしてみればいいのではないかというアホなことを考えて失敗した記録。

■準備。本当に必要かどうかはわからない。

$ pacman -S gamin #fam みたいなもの
$ pacman -S bison #yacc みたいなもの
$ pacman -S gcc git patch

■ocamlをビルドする

#ocaml を msys2 上でビルドする。
$ git clone https://github.com/ocaml/ocaml
$ cd ocaml
$ ./configure -host x86_64-w64-windows -cc "gcc -Wno-error=implicit-function-declaration -Wno-error=int-conversion -Wl,--stack,16777216"
$ make clean
$ make world
$ make install

ln: シンボリックリンク 'ocamlyacc' の作成に失敗しました: No such file or directory
make: *** [Makefile:606: install] エラー 1

■msys2でsymlinkを使う方法:msys2_shell.cmd をテキストエディタで編集し

rem To activate windows native symlinks uncomment next line
rem set MSYS=winsymlinks:nativestrict

となっているところを

rem To activate windows native symlinks uncomment next line
set MSYS=winsymlinks:nativestrict

に変更して保存する。そして、msys2_shell.cmd を右クリックして「管理者として実行」してmsys2のシェルを立ち上げる。

■手持ちの別のマシンでやったところ ocamlyacc のエラーは出なかったが omake のビルドで

$ ocaml configure.ml
Cannot load required shared library dllcamlstr.
Reason: dllcamlstr.so: dynamic loading not supported on this platform.
Cannot load required shared library dllunix.
Reason: dllunix.so: dynamic loading not supported on this platform.
File "./configure.ml", line 1:
Error: Reference to undefined global `Str'

となって止まってしまった。