目次
4.2 記号
第 4 章
言語 何 , 何 実現
, LATEX 実現 基本的 部 分 紹介 .
4.1 言語 ?
今 昔,文書 対 入 子型 論理構造 与 事 汎用性 持 ,人 間 機械 理解 簡単 文書 記述 関 研究 *1.
中 記述 言語 HTML: Hyper Text Markup Language
出現 . Tim Berners-Lee氏 開発 ,今 W3C 管
理 記述言語 *2.現在 XHTML: Extended Hyper Text Markup
Language 進化 ,統一化 図 .LATEX HTML XHTML 同
方式 採用 記述言語 .
型 言語 利点 . 章 少
考 思 . 考 LATEX (命令・環境・宣言 含 )
観察 事 糸口 見 思 , 関 話 中心
進 .
「 辺 太字 ?」
対応 事 .皆無 ,基本的
命令 何 性格 . 原稿 呼 特別 記号
綴 使 , 記号 特別 意味 持 使用 . LATEX
記号 意味 役割 知 .
H 4.2.1 記号 分類
TEX/LATEX 記号 分類 考 ,普段使用 日本語 英語
記号 言語 考 .私 理解 難 言語 使
.特 日本語 理解 . 私
人間 文脈 道筋 , 意味 読 取 .
今日 1,000円 持 ,佐藤 商店 塩 買 行 .
1文 考 ,人間 「1,000円」 ‘,’ 「 金 3桁目 入 区切 」,最後 句点「.」 「文 終 」 理解 .私 複 雑 日常文 理解 理由 ,文 中 必 文法 存在 事 挙
.
人間 程度曖昧 表現 見 柔軟 理解 ,
‘1’ ‘0’ 分 融通 利 機械 ,人間 日常的 用 自然言語 正確 文法 持 , 理解 形式言語 記
述 必要性 .TEX/LATEX 生成文法 基礎 形式言語
理解 , 入力 記号 全 明確 意味 持 必要
.現在 TEX/LATEX 曖昧 意味 持 文章 執筆
事 .
LATEX 出力 意味 理解 全 記号 LATEX 意 味 割 当 .人間 ‘<’ 記号 入力 数学 比較 演算子 理解 .‘$<$’ 「 数式 ,‘<’
比較演算子 使 」 意味 理解 . LATEX 入力 与
LATEX 文法 覚 必要 .詳 覚 必要
\ { } $ & # ^ _ ~ %
4 10個 記号 特別 意味 事 覚 . 記号 使 方 時々 説明 ,今 10個 記号 特別 意味 持 ,英文 字 漢字, 平仮名 片仮名 普通 単語 作 文字 認識
解釈 頂 構 .
TEX/LATEX 標準的 JIS X 0208(JIS第1水準・第2水準) 文字集合 扱 事 ,機種依存文字 半角 文字 出力 . 拡張 試 .近年 齋藤修三郎氏 Adobe-Japan-1-6
文字集合 扱 OTF 等 .機種依存 文字 知
,例 検索 良 .
H 4.2.2
入力 ‘<’ 入力 ‘ ¡’ .
一体 事 .考 ‘<’ 入力 ‘<’ 記号 出力
命令 別 命令,‘ ¡’ 出力 命令 割 当 考
. \% (円) 次 記号 来
存在 . LATEX 「 文字列」 形式
事 分 .正確 「 記号 綴 」
呼 ,特殊記号1文字 呼 .LATEX 大 分 三 分類 .
‘\’(‘Y=’) 記号 綴 .制御綴 訳
事 . 本書 狭義 表現 .
英字 綴 .例 ‘\section’ . 英文字以外 綴 .例 ‘\3’
‘\#’ .
一 綴 .‘\␣’ 事.
特殊記号 特別 意味 持 記号.予約文字 呼 事 .例 ‘{’,
‘$’ .
英数字 付 普通 文字列.
現段階 大 分
• 文字列 綴 .
• 特殊 記号.
• 普通 文字列.
三 事 理解 .本書 制御綴 ( )
事 呼 命令,宣言,環境 三 分類 .
命令 特定 処理 実行 .他 参考書 命令 事 呼 事 多 .引数 取 事 , 引数 事 要素
呼 , 呼 .例 \maketitle \section
.
宣言 特定 処理 以降継続 行 .処理 適用 範囲 限
定 ( )事 .引数 事 稀. 宣言 事
命令 宣言方命令 宣言型 呼 .例 \ttfamily等
.宣言型 命令 比 少 ,本書 断 書 宣言型 呼 事 多 .
環境 \begin{h何々i} \end{h何々i} 要素 囲 , 囲 領域 事.引数 取 事 .例 document環境
.
H 4.2.3 定義
LATEX 原稿 新 命令 定義 事 .
\newcommand{h命令i}[h整数i][h標準値i]{h定義i}
\renewcommand{h命令i}[h整数i][h標準値i]{h定義i}
\newcommand , 命令 , 定義 h命令i
新規 定義 事 .
\newcommand{\example}{ 例 .}
本文中 ‘\example’ 記述 ‘ 例 .’ 出力 .
\newcommand{\example}[2]{#1 #2 .}
続 上記 記述 基 本文中 ‘\example{ }{背 高 }’ 記述 ,
‘ 背 高 .’ 出力 . \example命令 任意引
4
数 良 事 宣言 次 ,任意引数 引数 総和
勘定 .
\newcommand{\example}[2][未来]{%
私 #1#2 .}
\example{大学} \example{出版}\par
\example[]{大学} \example[函館]{出 版}
私 未来大学 . 私 未来出版
.
私 大学 . 私 函館出版 .
任意引数 必須引数 定義 ,\newcommand命令 使 事 実 現 .定義 中 引数 ‘#’hni 扱 ,1 9 整数 使 .
定義 数式 記述 威力 発揮 .
\newcommand{\seq}[2][n]{%
\{#2_{0},#2_{1},\ldots,#2_{#1}\}}
数式 集合 使 $\seq{a}$
$\seq[k]{x}$ .
数 式 集 合 使
{a0, a1, . . . , an} {x0, x1, . . . , xk}
.
\newcommand 任意引数 一 設 ,引数 合計9個
使 事 .\renewcommand 一度定義 命令 再度定義 事
.
通常LATEX 見 環境型 定義 関 以下 四 命令 使 .
\newenvironment{h環境名i}[h引数 個数i][h標準値i]{h始 i}{h終 i}
\renewenvironment{h環境名i}[h引数 個数i][h標準値i]{h始 i}{h終 i}
\newenvironment 環 境 始 部 分 終 部 分 定 義 ,新
環境型 命令 作成 .引数 関 扱 \newcommand 同 .
\renewenvironment 一度定義 環境型 再度定義 機能
.
\newcommand/\newenvironment以外 便利 .
\providecommand{h命令i}[h整数i][h標準値i]{h定義i}
\DeclareRobustCommand{h命令i}[h数値i][h標準i]{h設定i}
\providecommand 命 令 定 義 済 何 , 定
義 指 定 内 容 通 命 令 定 義 事 .
\DeclareRobustCommand 使 場合 頑丈 命令 作成 .
x問題4.1 次 付 定義 付与 場合
違 考察 .
\newcommand\testargs[1]{[#1]}
\newcommand*\testArgs[1]{[#1]}
\testArgs{1行目 入力\par 2行目 入力}.
\testargs{1行目 段落\par 2行目 段落}.
実際 表示 . 付 定義
場合 複数行 段落 引数 受 考 .
.例題4.2 中央揃 行 文章 強調 cemph 環境 次 定義
.
\newenvironment{cemph}%
{\begin{center}\begin{em}}%
{\end{em}\end{center}}
文章 通常通 出力 ,
\begin{cemph}
中 文章 中央揃 強調表示
\end{cemph}
?
文章 通常通 出力 , 中 文章 中央揃 強調表示
?
x問題4.3 \DeclareRobustCommand 使 例 示 .次
, 結果 吟味 .
\documentclass{jarticle}
\DeclareRobustCommand{\joubuyen}{{\ooalign{Y\crcr\hss=\hss}}}
\newcommand{\moroiyen}{{\ooalign{Y\crcr\hss=\hss}}}
\begin{document}
\tableofcontents
\section{ {\moroiyen} 壊 }
。
\section{丈夫 {\joubuyen} 壊 } 大丈夫 ?
\end{document}
例 1回目 表示 .
! Illegal parameter number in definition of \reserved@a.
<to be read again> \crcr
l.6 \section{ {\moroiyen} 壊 }
?
4
2回目 目次 hfilei.toc 作成 , 読 込
.hfilei.toc hfilei.aux 何 記述 吟味 .hfilei.aux 次 出力 ,凄 事
.
\relax
\@writefile{toc}{\contentsline{section}{\numberline{1}
{{\lineskiplimit -\maxdimen \unhbox \voidb@x \vtop {\baselineskip
\z@skip \lineskip .25ex\everycr{}\tabskip \z@skip \halign {##\crcr Y\crcr \hss =\hss \crcr }}}} 壊 }{1}}
\@writefile{toc}{\contentsline{section}{\numberline{2}丈夫 {\joubuyen} 壊 }{1}}
hfilei.toc 次 出力 .
\contentsline{section}{\numberline{1} {{\lineskiplimit -\maxdimen \unhbox\voidb@x \vtop {\baselineskip \z@skip
\lineskip .25ex\everycr{}\tabskip \z@skip \halign {####\crcr Y\crcr \hss =\hss \crcr}}}} 壊 }{1}
\contentsline{section}{\numberline{2}丈夫 {\joubuyen}
壊 }{1}
\DeclareRobustCommand \moroiyen命令 定義 結果
.LATEX 命令 何 別 書 出 場合 丈夫 命令 定義
方 無難 . ,次 \protect命令 使 場合 行
事 確認 .
\section{ {\protect\moroiyen} 壊 }
\protect 使 \moroiyen 壊 hfilei.toc hfilei.aux 出力
事 確認 .
H 4.2.4 文字 区切
私 人間 文 節 区切 判断 .一 文
文 単語 単語 挿入 空白 .空白 文字列 区切
示 , 空白 意味 区切 . 節 .例 日本語
「公園 中 」
名詞 ,
「公園」「 」「中」「 」「 」「 」「 」
分 文 解釈 ,名詞 助動詞 品詞 分 事 .
一 例 場合 考 見 .
上 手紙 取 住所 分
表現 ,人間 分 表記 .仮
name@server.co.jp
.
‘name’ ‘@’ ‘server’ ‘.’ ‘co’ ‘.’ ‘jp’
分 .
name 使 人 「名前」.
@ ‘@’ ‘at’ 意味 , 以降 文字 「住所」 表 事 示 . jp 人 「国」 表 .
co 人 「地域(組織)」 所属 表 .
server 地域 中 住所.
. 住所 区切 使 .
意味合 持 .住所 区切 空白 仕方
事 . 世界 文字列 空白 含 処理
行 . , 区切 見 .
例 ‘@’ ‘.’ 文字 区切 住所 判定 .LATEX
同 事 .
文字列 LATEX 解釈 考
. 引数 取 命令 考 . 次 入力 出力 予想
.
\newcommand{\OneArg}[1]{ ,#1 }
\OneArg .
結果 「 , .」 . 結果 LATEX 引数 何 指定
1文字 受 取 事 分 .
続 次 .
\newcommand{\OneArg}[1]{ ,#1 }
4
\OneArg { }, .
結果 「 , , .」 . 引数 波括弧‘{ }’
囲 一 文字 塊 受 取 .
次 二 引数 取 命令 定義 .
\newcommand{\twoArgs}[2]{ ,#1 , #2}
\twoArgs { } .
場合 結果 「 , , .」 . 分 .
LATEX 引数 複数 文字列 渡 括弧 良 . 今度 (TEX 世界 通常 )文字 ‘@’ 含 命令 定義
.
\newcommand{\two@args}[2]{ ,#1 , #2}
\two@args { } .
Enter 4回 押 表
示 .
! Missing number, treated as zero.
<to be read again>
g
l.7 \newcommand{\two@args}[2]{ ,#1 , #2}
?
! You already have nine parameters.
\reserved@a ...def \expandafter \h \reserved@b #10 g{
l.7 \newcommand{\two@args}[2]{ ,#1 , #2}
?
! You can’t use ‘macro parameter character #’ in horizontal mode.
<argument> ,##
1 , ##2
l.7 \newcommand{\two@args}[2]{ ,#1 , #2}
?
! You can’t use ‘macro parameter character #’ in horizontal mode.
<argument> ,##1 , ##
2
l.7 \newcommand{\two@args}[2]{ ,#1 , #2}
?
一体 事 . 例 思 出 ,
LATEX ‘@’ 区切 解釈 .
\newcommand{\h}[2]{ ,#1 , #2}
\two@args { } .
引数 受 取 方 考 場合 結果 「 ,@ , ge .」
事 .
事 LATEX 命令 定義 英字 事 求
. 英字以外 文字列 , 区切 英字以外 文字列 引 数 受 取 事 .
文字 分類 利用 LATEX 中 特別 処理 .
容易 変更 困 簡単 変更
. 方法 一 中 ‘@’ 英字 同
分類 扱 .‘@’ 英字 同 分類 , 区切
次 \two@args 定義 .
\newcommand{\two@args}[2]{ ,#1 , #2}
\two@args 定義 中 可能 , \twoArgs命
令 実態 隠 事 .
\newcommand{\two@args}[2]{ ,#1 , #2}
\newcommand{\twoArgs}{\two@args}
開発者 使用者 分離 行 仕方 ,逆 使用者 自分
思 通 命令 等,様々 不満 .
実際 自分流 命令 ‘@’
含 変更 , 事態 陥 . 行 事,‘@’
英字 同 分類 定義
\makeatletter(‘@’ 英字 同 分類 .)
\makeatother(‘@’ 違 分類 .)
‘@’ 含 関 上記 二 命令 使 . 命令 中身 見
実 次 .
\def\makeatletter{\catcode‘\@11\relax}
\def\makeatother{\catcode‘\@12\relax}
‘@’ 11 英字 同 ,12
違 分類 . 記号 分類 呼
(表4.1参照).
4
表4.1 一覧
意味 標準 割 当
0 文字 \(Y=)
1 開始 {
2 終 }
3 数式 制御 $
4 配列 要素 区切 &
5 行末文字 h改行i(0x0D)
6 文字 #
7 上付 文字 ^
8 下付 文字 _
9 無視 文字 ∗1
10 空白 ␣
11 英文字 A· · ·Z a· · ·z
12 文字 ( ! ? 1 2 @
13 文字 ~
14 文字 %
15 無効文字 h i(0x7E)
以下三 日本語TEX 16 第1・第2水準 漢字 亜,丼
17 ,全角 , ,a,A
18 他 全角記号 ┼,【
∗1標準 割 当
何 中 自分 変更 加 ‘@’ 含 箇所
\makeatletter \makeatother 囲 .
\documentclass{jsarticle}
\makeatletter
\newcommand{\two@args}[2]{ ,#1 , #2}
\newcommand{\twoArgs}{\two@args}
\makeatother
\begin{document}
\twoArgs{ }{ }.
\end{document}
.例題4.4 \@ifstar ‘@’ 含 命令 ,引数 始 (星)‘*’
判定 .次 例 実行結果 吟味 .
\newcommand\checkstar{\@ifstar{星付 }{星 }}
\checkstar, \checkstar*, \checkstar!.
上記 例 実行 次 表示 .
! You can’t use ‘\spacefactor’ in vertical mode.
‘@’ 含 命令 用 \makeatletter \makeatother 囲 必要
.以下 修正 , 実行結果 吟味 .
\makeatletter
\newcommand\checkstar{\@ifstar{星付 }{星 }}
\checkstar, \checkstar*, \checkstar!.
\makeatother
H 4.2.5 引数
引数 取 対 文字列 渡 場合 挙動 予想 思 .
対 渡 場合 .
\newcommand{\twoarg}[2]{#1! #2? }
\twoarg a b \twoarg{ } {未来} , \twoarg{\LaTeX}
{\LaTeXe}
a! b? ! 未来? ,
LATEX! LATEX 2ε?
引数 取 対 引数 与 良 .
次 場合 .
\newcommand{\twoarg}[2]{#1! #2? }
\twoarg\LaTeX\LaTeXe
\twoarg\LaTeX2\LaTeX3
LATEX! LATEX 2ε? LATEX! 2? LATEX3
4.2.4節 行 内容 含 .‘LATEX’ ‘2’ 語 区切
解釈 二 目 引数 ‘2’ 渡 .
4.3 ・入 子構造
TEX/LATEX 変数 (有効範囲) 当 前 機
能 持 . 事 人 馴染 薄
詳 説明 .
4 変数 「限 範囲 有効」 局所変数 「全 範囲 」有効 大 域変数 2通 .LATEX 重要 話 , 有効範囲(
) 決 波括弧 .
方言 地方 言葉 違 事 ,LATEX 地方
(範囲) 分 言葉(定義) 使 分 .以下 例題 自分 試
.
\newcount\test% 新規 変数 調達
\the\test% 変数 値 表示
{% 1 開始
\test=3 \the\test% \test 3 代入 値 表示
{% 2 開始
\test=5 \the\test% \test 5 代入 値 表示
}% 2 終了
\the\test% 2 test 5 代入 ?
}% 終了
\the\test% 値 ?
\test=6 \the\test% \test 値 ?
\newcount 新規 ( ) 用意 ,\the 値 表
示 命令 . ,以上 入力 「035306」 値 得 事
. 事 考 「内側 括弧 代入 値 外側 括弧 領域 影響 .」
事 ,「外側 値 変更 内側 括弧 値 変更 」
事 . 「 」 作 中 好 勝手 .
次 書体変更 宣言 書体 変更 見 .今回
変 \ttfamily 変 \itshape, 普通 書体 戻
\normalfont 三 宣言 使 .
roman {\ttfamily tt {\itshape it}
tt \normalfont it} roman romantt it tt it roman
気 \ttfamily 宣言 二 括弧 中
影響 点 .先 変数 代入
. 書体 宣言 , 宣言 場所 内側 括弧 有効範囲
. 現在 LATEX 仕様 .宣言 命令 結果
同 .
roman \texttt{ tt \textit{it}
tt \normalfont it} roman roman tt it tt it roman
\normalfont 命令 使 体 有効範囲 通常
書体 戻 . 考 影響 与 括弧 内側 領域
\normalfont 使 良 事 .
roman {\ttfamily tt {\normalfont
\itshape it} tt} roman\par roman \texttt{tt {\normalfont
\textit{it}} tt} roman
romantt it ttroman romantt it ttroman
命令 宣言型 括弧 内側 影響 , 属性
受 工夫 必要 .
H 4.3.1 大域化
書体 属性 変更 宣言型 変更 特殊
. 最初 大域変数 局所変数 二 一度見直 .
括弧 内側 定義 内容 外側 有効 良 .
括弧 外側 定義 内側 有効 方法 不便 .「用紙
」 簡単 変 変数 括弧 内側 有効
. 括弧 内側 有効 事 大域化( 化) 言
.TEX/LATEX 大域化 \global 命令 用意 .
\newcount\test \the\test
{% 1
\global\test=3 \the\test% 大域 代入
{% 2
\the\test
\test=5 \the\test }
\the\test }
\the\test
\test=6 \the\test
場合 ‘0 3 35 3 36’ .3行目 大域的 ‘3’ 代入
内側 括弧 有効 , 2 出 後 数値 ‘3’ .
1 抜 後 ‘3’ 代入 .以上 \global 使
内側 外側 全 処理 影響 (LATEX , 数 値 操作 命令 、 大域化 定義 ).
4