TeXの文章の書き方(発展)

Last Updated on 2021-05-09

今までのTeXの文章の書き方(基本)や、TeXの文章の書き方(応用)で紹介した方法の他に、個人的にあまり使用しない方法や、私が過去に使用したちょっとニッチな方法などを紹介したいと思います。雑に紹介するので、参考程度にどうぞ。

コラム的ななにか


文章中で、章や節とは別にコラム的な欄を設けたい場合がまれによくあると思います。そのような場合、定義用の設定を悪用して、コラムを設けることができます。プリアンブルで\usepackage{amsthm}を入力し、その後に以下のテンプレートを入力します。下線が必要なければ、\underline{}を取り除いてください。

\newtheoremstyle{dotless}{}{}{}{}{\bfseries}{}{ }{}
\theoremstyle{dotless}
\newtheorem*{cllm}{\underline{コラム的ななにか}\\}

その後、本文中に以下のように記入します。

\begin{cllm}
コラム的ななにかが挿入されます。
\end{cllm}

複数のコラムを挿入したい場合は、テンプレートの3行目と同様のものをプリアンブルに必要な回数記入します。

\documentclass[10pt, a4paper, dvipdfmx]{jsarticle}
\usepackage{amsthm}
\newtheoremstyle{dotless}{}{}{}{}{\bfseries}{}{ }{}
\theoremstyle{dotless}
\newtheorem*{cllm}{\underline{コラム的ななにか}\\}
\newtheorem*{some}{\underline{適当に複数個}\\}
\begin{document}
本文です。\\
(中略)
\begin{cllm}
コラム的ななにかが挿入されます。
\end{cllm}
(中略)\\
\begin{some}
別に書くことないが。
\end{some}
(中略)\\
こんなもん。
\end{document}

任意の長さのスペース


\(TeX\)では、複数個のスペースを入力しても、1つのスペースとして処理されてしまいます。そこで、複数の式を同一の行に記述する際などに任意の長さのスペースを挿入したい場合は、\hspace{}を用います。{}には任意の長さをptemmm等で指定します。

1emは、そのフォントでの大文字の”M”の横幅と同じ長さを示します。

また、スペースは設けたいが自動改行されると問題が生じる場合は、~を用いることで改行させない事ができます。

その他、単位等の前に挿入する小さな空白は\,、1文字分のスペースは\ (バックスラッシュとスペース)で実現できます。

入力 説明
\hspace{} 任意の長さのスペース
~ 改行なしスペース
\ (バックスラッシュとスペース) 1文字分のスペース
\, 小さい空白

複数行にまたがる数式


数式が長くなってしまって改行が必要になったり、見やすくするために数式を改行してイコールの位置を揃えたいことがまれによくあると思います。そのような場合、\begin{equation} \end{equation}ではなく、\begin{eqnarray} \end{eqnarray}を用い、改行には\\を、=の前後に&を付けます。また、改行ごとに式番号を入れたくない場合は、入れたくない場所に\nonumberと入力してから改行するか、\begin{eqnarray*} \end{eqnarray*}を用います。

このサイトでは出力サンプルで数式番号を出力できるように設定していないため、入力内容に関わらず出力サンプルには数式番号は表示されていません。是非新しいファイルを生成して、タイプセットしてみてください。

\documentclass[dvipdfmx]{jsarticle}
\begin{document}
\begin{eqnarray}
\frac{\pi}{2} &=& \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2\\
&=& \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1}\\
&=& \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 - 1}
\end{eqnarray}
\end{document}

出力サンプル

\begin{eqnarray} \frac{\pi}{2} &=& \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2\\ &=& \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1}\\ &=& \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 – 1} \end{eqnarray}
\documentclass[dvipdfmx]{jsarticle}
\begin{document}
\begin{eqnarray}
f_(x) &=& \sin x\\
f^{{\prime}}_{(x)} &=& \cos x\\
f^{{\prime}{\prime}}_{(x)} &=& -\sin x\\
f^{{\prime}{\prime}{\prime}}_{(x)} &=& -\cos x\\
\end{eqnarray}
\end{document}

出力サンプル

\begin{eqnarray} f_{(x)} &=& \sin x\\ f^{{\prime}}_{(x)} &=& \cos x\\ f^{{\prime}{\prime}}_{(x)} &=& -\sin x\\ f^{{\prime}{\prime}{\prime}}_{(x)} &=& -\cos x\\ \end{eqnarray}

=の前後の空白が気になる場合は、\begin{eqnarray}の前に\setlength\arraycolsep{2pt}を入力し、式全体を以下のように{}で囲むことで調整できます。

\documentclass[dvipdfmx]{jsarticle}
\begin{document}
{\setlength\arraycolsep{2pt}
\begin{eqnarray*}
\frac{\pi}{2} &=& \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2\\
&=& \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1}\\
&=& \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 - 1}
\end{eqnarray*}}
\end{document}

また、=以外の箇所で式を改行する場合は、改行前と後に{}を入力し、揃えたい位置に& &を挿入します。

\documentclass[dvipdfmx]{jsarticle}
\begin{document}
\begin{eqnarray}
\frac{\pi}{4} &=& 1 - frac{1}{3} + frac{1}{5} - {}\nonumber \\
& & {} - \frac{1}{7} + \frac{1}{9} - \cdots
\end{eqnarray}
\end{document}

出力サンプル

\begin{eqnarray} \frac{\pi}{4} &=& 1 – \frac{1}{3} + \frac{1}{5} – {}\nonumber \\ & & {} – \frac{1}{7} + \frac{1}{9} – \cdots \end{eqnarray}

この方法で整えることが難しいような複雑な数式は、amsmathパッケージなどを用いることで見栄えが良くなります。

度数法の記号


弧度法(ラジアン)ではなく、度数法で角度を示したい場合がまれにあると思います。そのような場合、プリアンブル部に\usepackage{mathcomp}を入力し、数式内で\tcdegreeと入力することできれいに出力できます。

\documentclass[dvipdfmx]{jsarticle}
\usepackage{mathcomp}
\begin{document}
角度が$45\tcdegree$のとき、ラジアンで示すと、
\begin{equation}
45\tcdegree = \frac{\pi}{180} = \frac{\pi}{4}
\end{equation}
より、$\frac{\pi}{4}$である。
\end{document}

ソースコードの挿入


作成したプログラムのソースコードなどを挿入したい場合、そのままコピペするとエスケープが大変だったり、シンタックスハイライトがされなかったりと何かと不便です。そこで、以下のようなコード(C言語の例)をプリアンブル部に入力し、挿入したい箇所に\includeCode[]{}{}を入力します。[]には言語名を、1つ目の{}にはファイルの場所を、2つ目の{}にはキャプションを入力します。

\usepackage{listings,jlisting}
\definecolor{myComment}{rgb}{0.0, 0.6, 0.0} %
\definecolor{myKeyWord}{cmyk}{1.0, 0.0, 0.0, 0.3} %
\definecolor{myString}{cmyk}{0.0, 1.0, 0.0, 0.0} %
\lstdefinestyle{customText}{
backgroundcolor = {\color{white}},%
basicstyle = {\footnotesize},%
breaklines = {true},%
commentstyle = {\itshape  \color{myComment}},%
frame = {shadowbox},%
framesep = {4pt},%
keywordstyle = {\bfseries \color{myKeyWord}},%
lineskip = {-0.5ex},%
numbers = {left},%
numberstyle = {\footnotesize},%
numbersep = {1zw},%
showstringspaces = {false},%
sensitive = {true},%
stepnumber = {1},%
stringstyle = {\ttfamily \color{myString}},%
tabsize = {2},%
xleftmargin = {0.75cm},%
xrightmargin = {0.25cm}%
}
\lstdefinestyle{customC}{
language = {C},
style = {customText},
morecomment = [l]{//},%
morecomment = [s]{/*}{*/},%
morecomment = [n]{/*}{*/},%
morestring = [b]{"}
}
\lstset{escapechar = , style = {customText}}
\newcommand{\includeCode}[3][C]{\lstinputlisting{#2}}

他の言語のカスタマイズや、詳しい説明はこちらの記事が大変参考になります。

その他(紹介のみ)


個人的に使ったり見かけたりした方法のメモみたいなものです。説明はしません。

  • amsmathパッケージ: 整った数式表現
  • array環境: 行列表現
^