[[Microsoft Windows]] > 基礎知識

*TeX を使う前に:基礎知識の補充 [#headline]

// 迷った挙句,単独の項目をつくることにしました…
// TeX とは直接関係ないのですが,Forum の質問が基礎知識の欠落で手に負えない場合を
// 最近何度も経験したので,今後に備えて書かせてください.
// 美文書にも最低限の解説はありますが,Forum に来る「教えてくん」への事前対処です.
// macOS (Mac) や Linux などの Unix 系 OS ならまだしも,Windows ユーザに明らかに
// この手の問題が多いような気がしています.
// 「環境変数」と「拡張子」は TeX 周辺でトラブルの原因になりやすいので,ここでまとめて
// 基礎知識として定着を図ろうと思います. -- アセトアミノフェン (2015-07-06)

しばしば TeX Forum などで「質問者が回答者の言っていることの意味がわからない」ということが起きますが,それは概して ''TeX 以前の問題で Windows の基礎知識が欠落している''ことが原因です.

Windows は GUI による直感的な操作でワープロやメール,インターネット閲覧などができるのですが,その技術だけを身につけた方に多いのが「Windows のパソコンならもう何でもできます」のような思い込みです.
TeX に関しても現在では簡単なインストーラや統合環境・エディタが整っていますが,それらがうまくいかない場合のトラブルシューティングでは TeX の知識ではなく''「コンピューターの基礎知識」あるいは「Windows の基礎知識」が不可欠''です.

以下で,TeX Forum で何度も観測された事項に絞って説明します.

// 従来の [[Microsoft Windows]] や [[W32TeX]] のインストール解説に書かれていた
// ものを持ってきました.


----
#contents
----

**コマンドライン [#f34084ea]

Windows で動くプログラムには,画面上にウィンドウを表示して動作するもの (GUI) の他に,
「青い画面」や「黒い画面」にコマンドを入力することで動作するもの (CUI) があります.
このコマンドを入力する画面のことをコマンドラインといいます.

実は TeX もこのコマンドラインで動作するプログラムです.
TeXworks などの統合環境を使っているとこのことがわかりづらいですが,
統合環境は TeX の本体ではなく,タイプセットするときに裏でコマンドラインの TeX のプログラムを呼び出しています.
このことをご存知なかった方は,一度実際にコマンドラインからの TeX の実行を試してみるとよいでしょう.
[[LaTeX入門/最初の例]]を参照して下さい.

Windows のコマンドラインインタプリタには,Windows PowerShell とコマンド プロンプト (cmd.exe) があります.
Windows PowerShell は新しく,Windows 7 以降で搭載されており,Windows 10 Creators Update からは標準のコマンドラインインタプリタとなりました.
コマンド プロンプトは古くからあるもので,最低限の機能は備わっているものの,Windows PowerShell には機能的に劣ります.


**拡張子の表示 [#extension]

拡張子とはファイルの末尾に付いている「.(ピリオド)+英数字」のことで,ファイルの種類を示します.
たとえば LaTeX のソースファイルであれば .tex(稀に .ltx),Microsoft Word ファイルであれば .docx(2007 以降)または .doc(2003 以前),PDF ファイルであれば .pdf といった拡張子が定められています.

TeX を使い始める前に(あるいはインストールする前に),拡張子や隠しファイル,隠しフォルダーを表示するように変更しておくと便利かもしれません.
''拡張子の表示は,LaTeX 処理の周辺での思いがけない勘違いを予防することに役立ちます''し,そのほかにも .jpg や .png といった画像ファイルの違いを普段から意識する助けにもなります((Windows が標準で「何らかのプログラムに関連づけられたファイル」の拡張子を表示していないのは,「よく知らないユーザーがファイル名を変えようとして拡張子ごと変更してしまい,関連づけられたプログラムで開けなくなってしまう」というトラブルを防ぐためです.しかし,LaTeX を使う際にはこの拡張子が目に見えたほうがトラブルは少なくなりますし,単にファイル名変更時に気をつけさえすればいいのです.)).

拡張子を常に表示するための設定は,以下のようにして行います:

+「フォルダー オプション」あるいは「エクスプローラーのオプション」を表示します.
--エクスプローラーのメニューバーの「ファイル」から「フォルダーと検索のオプションの変更」をクリックすれば表示されます.
--コマンドラインから
 control folders
と入力することでも表示できます.
+[表示]タブをクリックします.
+「登録されている拡張子は表示しない」のチェックをはずします.

***拡張子を表示しなかった場合のトラブル例 [#extension-trouble]

-メモ帳で LaTeX ソースなどを編集して保存した場合に,いわゆる「メモ帳のおせっかい」で余分な拡張子が付いてしまう
--ex1.tex を保存したつもりなのに,ex1.tex.txt というファイル名に変わってしまう([[LaTeX 入門/最初の例>LaTeX入門/最初の例#ka2ad20a]]を試すときなど)
--texmf.cnf を編集したら texmf.cnf.txt になってしまう([[extractbb の自動実行>古い情報#rf074b4b]]の設定など)
-拡張子を表示していないことによる画像挿入の失敗例
--[[abc.pdf だと思っていたものが abc.pdf.pdf となっていた>forum:1578#p9089]]

***参考(拡張子の表示) [#extension-ref]

-拡張子の表示については,アドビシステムズ社にも説明があります:[[隠しファイルおよび隠しフォルダーを表示する方法(Windows 10/8.1/8/7/Vista/XP):https://helpx.adobe.com/jp/x-productkb/global/cpsid_87117.html]]
-同じ画面で「隠しファイル,隠しフォルダーおよび隠しドライブを表示する」を選択すれば,一時フォルダー(ユーザー環境変数 TEMP や TMP で参照されるフォルダー)も可視化され,便利なこともあります.


**環境変数の設定(「パスを通す」など) [#environment-variables]

環境変数の設定は,以下のようにして行います.

1. システムのプロパティを起動します.

--設定を開きます。「設定の検索」と書かれた入力欄に「環境変数」と入力し,「環境変数を編集」あるいは「システム環境変数の編集」を選びます.
--コマンドラインから
 SystemPropertiesAdvanced.exe
と打ち込んでも OK です.

>
&ref(environment-variables01.png);
//[図:システムのプロパティ]
<

2. システムのプロパティの[詳細設定]タブの「環境変数」をクリックします(設定から「環境変数を編集」で開いた場合はこの画面は開かれず,直接環境変数の設定画面が開かれます).

>
&ref(environment-variables02.png);
//[図:環境変数]
<

3. 編集したい環境変数を選択して「編集」をクリックすると,編集画面に移ります.
必要な値を追加するなどしたのち,[OK] で画面を閉じます.

--ユーザー環境変数は現在ログインしているユーザーだけに影響します.
--システム環境変数はそのコンピューターのユーザー全員に対して影響します.
--Windows10等の最近のOSでは、一行に全Path情報を記載するのではなく、複数行に記入していくUIになっているものがあります。この場合、面倒くさがって1行に ; 区切りで書いてしまうと思ったように反映されません。OS側では "C:\w32tex\bin64;C:\win32tex\bin" のようにダブルクオーテーションで囲まれた値として認識されてしまいます。

>
&ref(environment-variables03.png);
//[図:環境変数の編集]
<

4. 変更したら,Windows PowerShell やコマンド プロンプト,TeX 関連のソフトウェアを起動している場合は,いったん閉じてもう一度開きます.
こうすることで,環境変数の変更が反映されます((再起動の必要はありませんが,全てのソフトウェアが終了しているか不安な場合は再起動をすれば確実でしょう.)).