TeX


eps形式画像の作成
任意のlabel
大きい0
いろいろな囲み
DistillerでPDFファイルを作るときの注意点
文字間隔を調整する
見出しを変更する
ページ番号の書式を変更する
カラムの天地中央に文字を配置する
表の罫線を太くする
wmf2epsの旧バージョンをWin2Kで使う方法
「問題」と「解答」
任意の数式番号
証明の終わり


eps形式画像の作成

eps形式で出力できる描画ソフトはほとんどないので,他の形式に一旦出力し,eps形式に 変換するのがよいようである. wmf形式で出力できればwmf2epsを 使ってeps形式に変換できる. 詳しい情報がここにある. ここにもEPSファイルの 作成方法が書かれている.

最新バージョンはWindows9X,NTおよび2000のPSドライバが 同梱されているようである.


任意のlabel

通常の\labelは図表,数式および節や章番号にしか使えない. 例えば,例1-1,例1-2,... というように例を列挙し,あとの部分でこれらの例の番号を参照する場合, 次のようなマクロをプリアンブルに書く.

\makeatletter
\def\exlabel#1{\@bsphack
  \protected@write\@auxout{}%
         {\string\newlabel{#1}{{\arabic{section}--\arabic{example}}{\thepage}}}%
  \@esphack}
\makeatother

exmapleは例の番号を数えるカウンタで,どこかで\newcounterを使って定義しておく. "@" を使うので,\makeatletterと\makeatotherで囲む必要がある. この\exlabelマクロを使うとAUXファイルに例番号を示す文字列が書き込まれる.

ある例の中で

\exlabel{ex_1次独立と1次従属}

のように書いておき,これを参照する場合は,

先の例\ref{ex_1次独立と1次従属}で示したように...

とすればよい.


大きい0

単位行列の表記などに使う大きい0(ゼロ)は次のようなマクロで実現できる.

\newfont{\bg}{cmr9 scaled\magstep4}
\newcommand{\bigzerol}{\smash{\lower1.0ex\hbox{\bg 0}}}
\newcommand{\bigzerou}{%
   \smash{\hbox{\bg 0}}}

これを使う場合は以下のようにする.

\[ %
 A = \left[ \begin{array}{ccc}
                   1           &         & \bigzerol   \\
                               &  \ddots &             \\
                   \bigzerou   &         & 1          
            \end{array}
     \right] \]

出力は次のようになる.


いろいろな囲み

ascmac.styにはいろいろと面白い囲みが用意されている. ここに説明がある.

プリアンブルに,

\usepackage{ascmac}

と書いておけば,ascmac.styのマクロが使えるようになる.

その他にのようなキートップを出力するkeytopマクロがある. 使い方は

\keytop{A}\keytop{S}\keytop{D}\keytop{F}

である.


DistillerでPDFファイルを作るときの注意点

AdobeのAcrobat Distillerを使ってPSファイルをPDF形式に変換するとき,デフォルトの設定のままでは 出力が用紙の上方にずれてしまう. そこで,[設定]−[ジョブオプション]の詳細設定を選択し,デフォルトのページサイズを A4用紙のサイズ(幅21.0cm,高さ29.6cm)に設定する. [名前を付けて保存]でこの設定を"XXXX-A4"(XXXXは最初の設定名)などとして保存する. PDFに変換する際にこの設定を選択すれば,正しい位置に出力される.


文字間隔を調整する

TeXではフォントの大きさと行の長さを指定すると文字間隔を自動的に調整するようになっている. しかし,論文の投稿規程によっては,1行の文字数と左右のマージンを両方指定している場合があり, この場合は,\kanjiskipおよび\xkanjiskipの二つのパラメータを調整し,規定の 文字数になるようにすればよい. 前者は全角文字の間隔を指定し,後者は全角文字と半角文字の間隔を指定する. 例えば,

\documentclass[fleqn,a4j,12pt]{jarticle}

\begin{document}
\kanjiskip=.3zw plus 3pt minus 3pt
\xkanjiskip=.3zw plus 3pt minus 3pt

コンピュータは基本的に{\bf 機械語}のコードしか解釈することができない.
機械語とは0と1だけですべてを表現する言語である.
コンピュータがこの世に出現した当時,技術者たちはみな機械語で直接プログラム
を書き,コンピュータを動かしていた.
0と1を並べてプログラムを書くというのは大変な作業であるうえ,
機械語の文法は各々のコンピュータの機種で異なっており,ある機種の
機械語で作ったプログラムを,別の機種に移植して動作させることはできない.

\end{document}

のような文書を作成し,タイプセットした結果は,

のようになる. この例では全角文字の間隔および全角文字と半角文字の間隔をいずれも全角文字1文字分の0.3倍に設定している. plus 3pt minus 3ptは行端をそろえるための余裕らしい.


見出しを変更する

\sectionや\subsectionの書式はjarticle.clsなどで定義されている. 好みの書式に変更するには,プリアンブルでこれらの定義を\renewcommandで再定義すればよい.

\documentclass[11pt]{jarticle}

\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{\z@}%
   {1.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
   {.5\Cvs \@plus.3\Cdp}%
   {\reset@font\centering\LARGE\bfseries}}       %センタリングし,フォントを\LARGEにする.
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
   {1.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
   {.5\Cvs \@plus.3\Cdp}%
   {\reset@font\footnotesize\bfseries}}          %フォントを\footnotesizeにする.
\makeatother

\begin{document}

\section{緒言}

\subsection{線形計画法とは}

線形計画法(linear programming,LP)とは,複数の未知数に対して決められた制約条件の中で,
ある関数(目的関数)の最大値や最小値を求める{\bf 最適化手法}の一つである.
設計計画や生産計画に関わる工学の問題は,種々の条件下での最適化を論じていると言える.

線形計画法においては,未知数はすべて非負であり,
制約条件を規定する式(制約式)および目的関数はいずれも1次線形で与えられる.
簡単な例を使って概念を説明しよう.

\end{document}

\renewcommandの中では@を使うので,\makeatletterと\makeatotherで囲む必要がある. この文をタイプセットすると,以下の出力が得られる.


ページ番号の書式を変更する

このような出力を得るには,付録の最初に以下のように書く.

\appendix
\chapter{C言語の文法}
\setcounter{page}{1}
\renewcommand{\thepage}{\thechapter\arabic{page}}

付録のページ出力は以下のようになる.


カラムの天地中央に文字を配置する

表組みの際,複数の行にまたがったカラムの天地中央に(上下の余白が均等になるように) 配置する場合,次のようなマクロを定義する.

\newcommand{\Gcenter}[2]{
  \dimen0=\ht\strutbox%
  \advance\dimen0\dp\strutbox%
  \multiply\dimen0 by#1%
  \divide\dimen0 by2%
  \advance\dimen0 by-.5\normalbaselineskip
  \raisebox{-\dimen0}[0pt][0pt]{#2}}

以下は実際の使用例である.

\begin{tabular}{|c|c|c|c|} \hline
  \Gcenter{2}{水系} & \Gcenter{2}{鉛の形態} & \multicolumn{2}{|c|}{鉛同位体比}              \\ \cline{3-4}
                    &                       & $^{207}$Pb/$^{206}$Pb & $^{208}$Pb/$^{206}$Pb \\ \hline
  \Gcenter{2}{A}    & 溶解性                & 0.868                 & 2.115                 \\ \cline{2-4}
                    & 粒子性                & 0.866                 & 2.117                 \\ \hline
  \Gcenter{2}{B}    & 溶解性                & 0.870                 & 2.116                 \\ \cline{2-4}
                    & 粒子性                & 0.864                 & 2.107                 \\ \hline
  C                 & 溶解性$+$粒子性       & 0.845                 & 2.077                 \\ \hline
\end{tabular}

出力結果は次のようになる.


表の罫線を太くする

表の罫線の一部を太くするには,以下のようなマクロ\Hlineおよび\Vlineを定義する.

\makeatletter
\def\@arrayrule{\@addtopreamble{%
   \vrule \@width \arrayrulewidth}}
\def\Hline{\noalign{\hrule height 1.5pt}}
\def\Vline{\vrule width 1.5pt}
\makeatother

@が使われているので,\makeatletterと\makeatotherで囲む必要がある. 上のマクロでは罫線の幅を1.5ポイントに設定している(通常の罫線の幅は0.4ポイント). 使い方は以下の通り.

\begin{table}[htbp]
\begin{center}
\hangcaption{関係演算子と論理演算子}
\begin{tabular}{@{\Vline\ }c|c|c|l@{\ \Vline}}         \Hline
 区分  &   演算子   &  数学記号  &  意味            \\ \hline
 \Gcenter{6}{関係演算子}
       &   \verb|.LT.|  &  $<$ &  小さい          \\
       &   \verb|.LE.|  &  $\le$ &  小さいか等しい  \\
       &   \verb|.EQ.|  &  $=$   &  等しい          \\
       &   \verb|.NE.|  &  $\ne$ &  等しくない      \\
       &   \verb|.GE.|  &  $\ge$ &  大きいか等しい  \\
       &   \verb|.GT.|  &  $>$ &  大きい          \\ \hline
 \Gcenter{3}{論理演算子}
       &   \verb|.NOT.|  &  $\sim$ & 否定($\cdots$でない)           \\
       &   \verb|.AND.|  &  $\cap$ & 論理積($\cdots$かつ$\cdots$)   \\
       &   \verb|.OR.|   &  $\cup$ & 論理和($\cdots$または$\cdots$) \\ \Hline
\end{tabular}
\end{center}
\end{table}

出力は次のようになる.


wmf2epsの旧バージョンをWin2Kで使う方法

ここにも書いたが,TeXに貼りこむeps形式の画像を作成するには, ドロー系のソフトで描いてwmf形式で出力し,wmf2epsを 使ってeps形式に変換するのが最も簡単である. wmf2epsの旧バージョン(ver.0.X)はフリーソフトだったが,新バージョン(ver.1.X)になって シェアウエアとなってしまった. Win2Kには新バージョンから対応しており, 旧バージョンをWin2Kにインストールしようとしても失敗する.

ただし,以下のようにすれば機能制限のない旧バージョンをWin2Kでも使うことができる.

NT4でwmf2epsを使うときは,アーカイブに付属してくるセットアップ情報nt4print.infを使って PostScriptドライバをインストールする. Win2Kの場合,旧バージョンのプログラム本体は問題なく動くのだが, このセットアップ情報を使ったPostScriptドライバのインストールができないのである. インストールしようとしても「ファイルが見つからない」旨のメッセージが出て先に進めない.

いろいろ調べてみると,Win2KではPostScript関連DLLの名前がNT4から変更されていることがわかった. したがって,nt4print.infの内容を 以下のように書き換えることでPostScriptドライバのインストールができるようになる.

[PSCRIPT]セクション
PSCRIPT.DLL → PSCRIPT5.DLLに変更
PSCRPTUI.DLL → PS5UI.DLLに変更

[PSCRIPT_DATA]セクション
DriveFile=PSCRIPT.DLL → DriveFile=PSCRIPT5.DLLに変更
ConfigFile=PSCRPTUI.DLL → ConfigFile=PS5UI.DLLに変更

書き換えたnt4print.infを使ってPostScriptドライバをインストールする. 出力先のポートはFILEを選択する.

セットアップ情報としてnt4print.infを選択し,Color PS Level 2を指定する. Level 1とLevel 2の違いについてはアスキーデジタル用語辞典などに 記述がある.

PostScriptドライバのインストールが完了したら,Color PS Level 2のプロパティで [全般]→[印刷設定]→[詳細設定]を選択し,「PostScript出力オプション」を「簡易PostScript(EPS)」に変更する. この設定は重要!(と新バージョンのドキュメントに書かれている). 実際,これをやらないと正しいepsが出力されない.

以上で旧バージョンのwmf2epsをWin2Kでも使うことができるようになる.


「問題」と「解答」

ここにあるproblem.styを 使えば以下のような「問題」と「解答」を簡単に書くことができる.

上の出力を得るには,まず,プリアンブルに

\usepackage{problem}

と書いておき,以下のように書けばよい.

\begin{problem}
$xy' = y^2$を解け.
\end{problem}

\begin{answer}
与式を変形すると
\[ \frac{dy}{y^2} = \frac{dx}{x} \]
両辺を積分すれば
\[ -\frac{1}{y} = \ln x + C \quad または \quad y = -\frac{1}{\ln x + C} \]
\end{answer}

\begin{problem}
$y' = \displaystyle{\frac{x^2+y^2}{2xy}}$を解け.
\end{problem}

\begin{answer}
$y = vx$とおけば
\[ \frac{2v}{1-v^2}dv = \frac{dx}{x} \]
両辺積分する.
\[ -\ln (1-v^2) = \ln x + C \]
すなわち
\[ x(1-v^2) = C_1 \quad \left( v = \frac{y}{x}, \; C_1 = e^{-C} \right)
   \quad または \quad x^2-y^2 = C_1 x \]
\end{answer}


任意の数式番号

amsmath.styに定義されている\tagを使えば,任意の式番号を出力することができる. 使い方は以下の通り.

\documentclass[fleqn]{jarticle}

\usepackage{amsmath}

\begin{document}

\begin{gather}
 y = a                    \tag{ア} \\
 y = ax + b               \tag{イ} \\
 y = ax^2 + bx + c        \tag{ウ} \label{eq_cubic} \\
 y = ax^3 + bx^2 + cx + d \tag{エ}
\end{gather}

式(\ref{eq_cubic})において,$y$は$x$の3次関数となっている.
\end{document}

出力は以下のようになる.


証明の終わり

よく証明の終わりに付けられる黒い四角は

\rule{5pt}{10pt}

で出力できる. ただし,日本語文書の場合,底辺の位置を少し下げて

\rule[-2pt]{5pt}{10pt}

とした方がすわりがよいようだ.

例えば次のように用いる.

したがって$\sum_{j=1}^n c_j x_j$は有界である.
この対偶をとれば,$\sum_{j=1}^n c_j x_j$が有界でないとき,すなわち,(P)が無限解を持つときは
(D)が実行可能解を持たないことがわかる.
定理の後半も同様にして証明できる.\rule[-2pt]{5pt}{10pt}

出力は以下のようになる.


お問い合わせはメールにて: akasaka@klc.ac.jp

戻る
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送