2012/12/01 〜 2012/12/25TeX & LaTeX Advent Calendar
残念ながら、18 日目の担当が登録されなかったので、再び私(ZR)が担当します。
* * *
LaTeX で文書を作成している時に、今使っている PC をシャットダウンしたくなった、というのは (La)TeX ユーザの多くが経験していることでしょう。*1しかし、シャットダウンは文書を構成する要素と見做されていないせいか、LaTeX にはマシンをシャットダウンする命令は用意されていません。その上、CTAN を漁ってみても、シャットダウンする機能を提供するパッケージは、未だに誰も作っていないようです。これでは、PC をシャットダウンする LaTeX 文書を作成しようとした時に途方に暮れることになりそうです。
というわけで、作ってみました。
- tcshutwindown パッケージ(GitHub:zr-tex8r)
ただし、シャットダウンの処理は使用する OS に依存するので、このパッケージは Windows 専用*2となっています。処理系は LuaLaTeX(または plain LuaTeX)に限ります。
インストール
例えば W32TeX を C:\usr\local にインストールしている場合、アーカイブに含まれるファイルを次の場所にコピーした後、(ls-R
を使う運用をしている場合は)mktexlsr
を実行してください。*3
- tcshutwindown.sty → C:\usr\local\share\texmf-local\tex\lualatex\tcshutwindown\
- shutwindown.dll → C:\usr\local\bin\lib\lua\
なお、shutwindown.c は上記の shutwindown.dll のソースですが動作には必要ありません。(コンパイルには Visual Studio が必要。*4)
使い方
LuaLaTeX 文書のプレアンブル中に次の記述を行います。
\usepackage[grace=<整数>]{tcshutwindown}
ここで <整数>
にはシャットダウン開始までの猶予時間を秒単位で指定します。(オプションの記述は必須。)
使用例
\documentclass[a4paper]{article} \usepackage[grace=10]{tcshutwindown} \begin{document} Welcome to Lua{\TeX} world! \end{document}
コマンドプロンプトでこの文書を lualatex
でコンパイルすると以下の表示が出て Windows のシャットダウンが開始されます。
C>lualatex test-tcshutwindown.tex This is LuaTeX, Version beta-0.70.2-2012052919 (TeX Live 2012/W32TeX) restricted \write18 enabled. ……(中略)……!!!!!!!!WARNING!!!!!!!! System will be shutdown in 10 seconds... System will be shutdown in 5 seconds... System will be shutdown in 4 seconds... System will be shutdown in 3 seconds... System will be shutdown in 2 seconds... System will be shutdown in 1 second... System will be shutdown right now... FAREWELL! (→シャットダウン開始)
そういう訳で、文書の組版と PC のシャットダウンとで別々の操作を行う必要がなくなりました。世の中が少しだけ便利になった感じがしますね。