% Time-stamp: <2022-09-14 15:29:35 ynagata>
% コンパイルの仕方：
% uplatex filename（複数回コンパイル！）
% dvipdfmx filename
%%%%%%%%%%%%%%%%%%%%%%
\documentclass[uplatex,dvipdfmx]{jsarticle}% uplatex,dvipdfmx オプションは必須; titlepage オプションで独立タイトルページ
\usepackage[T1]{fontenc}% 英・独・仏語を本格的に処理する場合は T1 fontenc 指定をする
\usepackage[utf8]{inputenc}% 文字コード＝ユニコード utf8 inputenc 指定
\usepackage{okumacro}% ルビ出力ほか
\usepackage[deluxe]{otf}% 漢字異体字処理，横組・縦組フォント変更
%%% 多言語処理用 Babel パッケージ
\usepackage[english,french,main=ngerman]{babel}% main=基底言語
\usepackage[japanese]{pxbabel}% 基底言語に拘らず，キャプション等の出力を「日本語」にする
\usepackage[prefernoncjk]{pxcjkcat}% ユニコードの欧文アルファベットや約物を（全角ではなく）欧文（半角）で出力; この命令は otf パッケージ指定より「後」に書くこと！
%%% 多言語対応 Context Sensitive な引用符出力パッケージ
\usepackage[autostyle,german=quotes]{csquotes}% german=quotes/guillemets
%%% Times 系フォント使用（あるいは Palatino 系）
% \usepackage{newtxtext,newtxmath}% Times
\usepackage{newpxtext,newpxmath}% Palatino
% \usepackage[sb]{libertine}% Linux Libertine: キリル，ギリシア文字等も扱う場合
% 
%%% ノンブル制御： 何も指定しないと plain と同じ（ページ下部にノンブルのみ）
% \pagestyle{headings}% empty: ノンブルを非表示に； headings: ページ上部にノンブルと柱
\usepackage{graphicx}% 画像処理
%%%
% \usepackage{hyperref}% 相互参照（Cross Reference）自動リンク処理
% \usepackage{pxjahyper}% PDF和文「しおり」処理
%%%%%
%% ここから自作の命令
%%% \booktitle{...} で欧文書籍タイトルをイタリック体出力
\newcommand{\booktitle}[1]{\textit{#1}}
%%% 和文仕様文書中の欧文の行送りを「欧文」仕様とするための「環境」euro_narrow 定義
\newenvironment{euro_narrow}{\narrowbaselines}{\par\normalsize}
%%% quotation, quote 環境内の「文字」サイズを small にする処理
\makeatletter
\renewenvironment{quotation}{%
  \list{}{%
    \listparindent\parindent
    \itemindent\listparindent
    \rightmargin \z@}%
  \item\relax\small}{\endlist}
\renewenvironment{quote}%
  {\list{}{\rightmargin\z@}\item\relax\small}{\endlist}
\def\@begintheorem#1#2{\trivlist\labelsep=1zw
   \item[\hskip \labelsep{\headfont #1\ #2}]}
\def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1zw
      \item[\hskip \labelsep{\headfont #1\ #2（#3）}]}
\makeatother
%
%% 以上を preamble（前口上）と呼ぶ
%
\begin{document}% ここからが「本文」
\title{日本語\TeX{}入門}% タイトルを書き入れる
\author{七隈太郎}% 著者名を書き入れる
\date{\today}% 日付を書き入れる．\today は「今日」（TeX での処理日）を出力する命令
\maketitle% 「タイトル，著者名，日付」を出力する命令
\tableofcontents% 「目次」を出力する命令
\section{論文は「構造化」する}
卒業論文に限らず，論文は「構造化」された体裁を取る。論文の構
造化（構成）は主に論述のまとまりを「区分化（sectioning）」す
ることで行う。\TeX{}では \verb|\section{...}|,
\verb|\subsection{...}| を使うことで，「各見出しに自動連番」
が振られるセクショニングを実現できる。

なお，「\textgt{小節}（subsection）」は上位の
「\textgt{節}（section）」にブラ下がる形で構造化され，セクショ
ニングの自動連番にもこの構造が反映される。
\subsection{マークアップ言語としての\TeX}
日本語\textbf{\TeX{}}入門，初めの一歩。先ずは，\textgt{マーク
  アップ言語}（markup language. 視覚表現や文章構造等をテキス
トで記述するための形式言語。ウェブページを記述するHTML:
Hypertext Markup Languageもマークアップ言語）の流儀に慣れるこ
と。\TeX{}は美文書作成のためのマークアップ言語であり，プログ
ラミング言語でもある。

\TeX{}を使った文書作成は，まず\textgt{入力ファイル}（input
file. 本文に\textgt{命令}（command. \TeX{}ではcontrol
sequenceと呼ぶ）等のマークアップを埋め込んだ\textgt{テキスト
  ファイル}，source fileともいう。ファイルの拡張子は .tex）を
用意し，これを\TeX{}プログラムで\textgt{一括処理}（batch
process）し，\textgt{出力ファイル}（output file. 通常はpdfファ
イル。出力ファイルは\textgt{バイナリファイル}，バイナリはテキ
ストの対語）を得る，という工程を辿る。プログラムで一括処理す
ることを「\textgt{コンパイル}（compile）する」ともいう。コン
パイル作業は「ターミナル」上で行う。
\subsection{入力ファイルの準備}
入力ファイルは，文字入力とテキストファイルでのファイル保存が
可能であればどのようなソフトウェア（たとえばMS-Word/Excel等）
を使っても良いが，通常，テキストを高速編集できる「\textgt{テ
  キストエディタ}（text editor）」を用いて作成する。高機能エ
ディタであれば，命令等が埋め込まれたマー
クアップ箇所を「色分け」等して，人間の目にも分かりやすいよう
に，本文テキストとは区別して表示してくれる。この機能
を\textgt{シンタクスハイライト}（syntax highlight）と呼ぶ。

入力ファイルは大きく「\textgt{プリアンブル}（preamble, 前口上）」
箇所と「本文」箇所に分かれる。前者は，テキストの「\textgt{組
  版}（typeset）」指定に関わる初期命令群をまとめて記しておく
部分である。\verb|%| は\TeX{}における「\textgt{コメン
  ト}（comment）」記
号で，この記号の後の記述はプログラムに無視されるため，ここに
メモ等を好きなように記すことができる。\TeX{}プログラム
は \verb|\end{document}| 以降の記述も全て無視する（のでここに
もメモ等を書いておける）。

なお，このように入力ファイルに空白行を置くと出力ファイルでは
そこが改行され，自動的に段落が作られる。段落冒頭の字下げ
（\textgt{インデント}）も自動でなされる。
\section{和文と欧文の混在}
\subsection{英・独・仏語と和文の混在処理}
king, street, summerといった英語はもちろん，König, Straße,
hôtel, été, français, à, vœuxといったドイツ語やフランス語の単
語も混在させられる。欧文単語と和文（邦文とも）の間にはわざわ
ざ「空白（white space）」を挿入しなくても，自動的に適切な
「空き」が設けられる。
\subsection{デバッグ}
入力ファイルにマークアップ命令等の記述ミスが含まれている
と，\TeX{}はコンパイル時にそこで処理をストップさ
せ，\textgt{エラーメッセージ}を出力する。こうした場合，ターミ
ナル上で x を打ち込み，処理工程から抜けた上で，記述ミスを訂正
（\textgt{デバッグ}，debug）し，入力ファイルを上書き保存した
後，あらためてコンパイルし直す。最終的に望む出力が得られるま
で，この工程を繰り返す。

\TeX{}のコマンドは \textbackslash{}（backslash）で始まり，必
須の「\textgt{引数}（argument）」を \verb|{...}|（中括
弧，braces）に括る。「\textgt{オプション}（option）」
は \verb|[...]|（大括弧，brackets）に入れる。本入力ファイルで
用いられている\TeX{}コマンドを全てチェックし，それぞれ入・出
力を比較してみよ。
\section{箇条書き}
「番号付き箇条書き」と「番号なし箇条書き」を学べ。入・出力ファイルをよく比較すること。
\subsection{番号付き箇条書き}
番号付き箇条書きは
\begin{enumerate}
\item \TeX
\item GNU Emacs
\item HTML
\end{enumerate}
のようになる。「入れ子（nesting）」にもできる。
\begin{enumerate}
\item ドイツ語
  \begin{enumerate}
  \item Sneewittchen
    \begin{enumerate}
    \item Frau Königin
    \item Jäger
    \item Zwerg
    \end{enumerate}
  \item Winter
  \item Spiegel
  \end{enumerate}
\item フランス語
  \begin{enumerate}
  \item Blancheneige
    \begin{enumerate}
    \item Madame la Reine
    \item chasseur
    \item nain
    \end{enumerate}
  \item hiver
  \item miroir
  \end{enumerate}
\end{enumerate}

上例からも分かるように，入れ子（階層を複数にする）にした場合
の「番号（記号）」は自動的に切り替わる。番号の付け方（
第1から4レベル）も自由に変えられるが，そのやり方については参
考書やWebを参照すること。

\subsection{番号なし箇条書き}
番号なし箇条書きは
\begin{itemize}
\item \TeX
\item GNU Emacs
\item HTML
\end{itemize}
のようになる。番号付き箇条書き同様入れ子にもできる。また，番
号付き・なしにかかわらず，この両者を混在させることも可能。
\begin{itemize}
\item ドイツ語
  \begin{enumerate}
  \item Sneewittchen
    \begin{itemize}
    \item Frau Königin
    \item Jäger
    \item Zwerg
    \end{itemize}
  \item Winter
  \item Spiegel
  \end{enumerate}
\item フランス語
  \begin{itemize}
  \item Blancheneige
    \begin{enumerate}
    \item Madame la Reine
    \item chasseur
    \item nain
    \end{enumerate}
  \item hiver
  \item miroir
  \end{itemize}
\end{itemize}
各項目の前に付く記号も自由に変えられるが，そのやり方については参
考書やWebを参照すること。
\end{document}% 「本文」終わり

