Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

LaTeXとLyXの活用テクニック集 ─ 文書作成を美しく、快適にする11のヒント

今日は、文書の書き方、スタイリング、書式設定、そして仕上げまでを扱った、超マニアックなチュートリアルをお届けします。オフィススイートでワープロに文章を書き連ねたくなるかもしれませんが、お願いですから、それはやめておきましょう。一歩勇気を出して「オタクの深淵」に飛び込めば、そこには遥かに優れた世界が広がっているのです。

とはいえ、オフィススイート派の人たちはこう言うでしょう。「LaTeXは難しすぎるし、科学論文くらいにしか使えない」と。あーあ、まあ半分は本当です。LaTeXでやりたいことの多くは、やり方がひと目ではわかりません。そこでこの記事では、WordユーザーがLaTeXに移行した際につまずきやすい代表的な課題と、その素早く痛みのない回避策を紹介します。

まずはLaTeX環境を手に入れよう

LaTeXこそが文書作成の「唯一正しい道」です。コマンドラインから直接使うこともできますが、ほとんどの方にはフロントエンド経由の利用をおすすめします。定番の選択肢としては、LyXKileなどが挙げられます。LyXはクロスプラットフォームで、WindowsでもLinuxでも動作します。この記事では、オフィススイート感覚で使えるLyXをテキストプロセッサとして採用します。

注意: 紹介するすべての例は筆者の好みに基づいています。テクニックを応用する前に、必ず仕組み(原理)を理解しておいてください。それでは、本題に入りましょう。

基本のキ

LyX文書にLaTeXコードを挿入するには、ショートカット Ctrl + L を使います。文書全体に影響する恒久的な設定は、「プリアンブル(Preamble)」と呼ばれる領域に記述します。プリアンブルとは、ヘッダー、フッター、しおり、配色などの主要な設定を宣言しておく、いわばテンプレート的なセクションのことです。

それでは、よく使われるテクニック──あるいは「困りごと」と呼んでもいいもの──を見ていきます。普通の人がLaTeXを使おうとしたときに遭遇しがちな問題を、順不同で取り上げます。

テクニック1:箇条書き・番号付きリストを左マージンに揃える

デフォルトでは、リストの各項目は1タブぶんインデントされます。これが気になる人は多いはず。心配無用、解決策はとてもシンプルです。文書内で最初の itemize / enumerate リストが出てくる前に、短いコードを追加します。あるいはプリアンブルに記述しても構いません。それぞれ箇条書き(bullets)と番号付き(numbers)用です。

\setitemize[0]{leftmargin=XXpt,itemindent=XXpt,labelwidth=XXpt}
\setenumerate[0]{leftmargin=XXpt,itemindent=XXpt,labelwidth=XXpt}

具体的なマージン値は、用途やスタイル、フォントによって変わります。いろいろな値を試して、仕上がりを確認してみてください。筆者の場合は、次のような設定になっています。

\setitemize[0]{leftmargin=15pt,itemindent=0pt,labelwidth=10pt}

さらに、enumitem パッケージが必要です。プリアンブルで次のように宣言します。

\usepackage{enumitem}

パッケージが未インストールの場合は、先に導入しておきましょう。LaTeX環境に自動インストールを任せるか、不足パッケージを手動でダウンロードして所定のパスに展開する方法もあります。個人的には「面倒なことはソフトに任せる」のがおすすめです。たとえばWindowsなら、MiKTeXが自動的に処理してくれます。

テクニック2:見栄えの良い脚注

脚注をきれいに整列させたいなら、次のコードを使います。例に含まれている値は、筆者が「これがベスト」と思うものです。自分の美的センスに合わせて適宜調整してください。

\usepackage[hang,splitrule]{footmisc}
\addtolength{\footskip}{0.5cm}
\setlength{\footnotemargin}{0.3cm}
\setlength{\footnotesep}{0.4cm}

テクニック3:長い見出しを分割する

セクションやサブセクションのタイトルが延々と続くと、目次がごちゃごちゃして読みにくくなります。解決策は驚くほど簡単で、タイトル行の中の好きな位置に改行記号を差し込むだけです。

そうすると、目次上できれいに2行に折り返され、ぐっと読みやすくなります。

テクニック4:画像の幅を統一する

複数の画像を文書に挿入するとき、すべて同じ大きさに見えるようスケールを揃えたくなりますよね。ところが、画像によって幅・高さ・アスペクト比がバラバラだと、厄介な計算が必要になりそうです。幸い、LyXでは画像の幅を「列幅」や「ページ幅に対する割合(%)」で指定できるため、作業が格段に楽になります。

たとえば「列幅の100%」に設定した場合のコードは次のとおりです。

\begin{figure}[H]
\caption{image title}
\includegraphics[width=1\columnwidth]{image-file-path}
\end{figure}

もちろん、キャプション(image title の部分)は省略しても構いません。

テクニック5:表のセル余白(パディング)を調整する

「LaTeXのデフォルトのセル余白は殺風景で不格好だ」と感じたら――その通りです。解決策は、表全体を縦方向に引き伸ばして、セルの周囲にゆとりを持たせること。そうすることで窮屈さが減り、格段に読みやすくなります。たとえばセル間隔を2倍にするには:

\renewcommand{\arraystretch}{2}

数字を変えれば、伸縮率は自由自在です。

テクニック6:非標準のページを作る

「このページだけ、デフォルトのスタイルを適用したくない」「特別な書式、余分なインデント、別の色を使いたい」という場面はありませんか? そんなときは thispagestyle コマンドの出番です。たとえば、そのページに一切のスタイルを適用しない場合は:

\thispagestyle{empty}

これは、ヘッダーやフッター、ページ番号を付けたくない表紙ページなどで特に便利です。逆に、次のコマンドはプリアンブルでの定義に従って、そのページに見出し(headings)を明示的に配置します。

\thispagestyle{headings}

テクニック7:おしゃれなキャプション

キャプションも、太字のラベルときれいな折り返しで装飾したくありませんか? 脚注のときと同じノリで。デフォルトの図floatキャプションは少しつまらないのですが、ほんの少しのコードで簡単にグレードアップできます。

\usepackage{caption}
\captionsetup{labelfont=bf,format=plain,indention=0cm,
justification=raggedright,singlelinecheck=false}

この記述はプリアンブルに置きます。これらの設定を使うには、caption パッケージが必要です。

テクニック8:シンタックスハイライト付きでコードを掲載する

ここからは本格派ですが、きっと気に入るはずです。プログラミングコード風のテキストブロックを手作業で作る代わりに、listings パッケージを使えば、優れた結果を即座に得られます。

listings は、幅広い言語に対応したシンタックスハイライト、長い行の折り返し、行番号表示など、便利な機能を多数備えています。細部すべてを説明することはできませんが、実際の使用例を紹介しましょう。

\lstset{tabsize=2,breaklines=true,numbers=left,basicstyle=
footnotesize,xleftmargin=30pt}
\lstinputlisting[language=C]{null-pointer.c}

この例では、null-pointer.c というファイルを読み込み、C言語として認識させています。タブ幅は2スペース、長いコード行は自動で折り返し、行番号は左側に、ページマージンから30ポイントの位置に、脚注サイズのフォントで表示されます。シンプルでしょう?

テクニック9:透かし(ウォーターマーク)

透明なロゴ画像や凝ったウォーターマークはいかがでしょう? これも簡単に、しかもスマートに実現できます。まず watermark パッケージを使い、プリアンブルで宣言します。

\usepackage{watermark}

次に、ウォーターマークを配置したい場所を指定します。\put コマンドを使えば、画像の正確な座標も制御できます。視覚効果を高めるには、低コントラストの透明画像が最適です。たとえば:

\thiswatermark{\centering \put(0,-660){\includegraphics[width=
\textwidth]{tux.png}} }

このコマンドは「tux.png をウォーターマークとして、単一ページ上に、垂直オフセット660pt、テキスト幅にセンタリングして配置せよ」という意味になります。垂直・水平位置やスケーリングは自由自在に調整できますし、同じウォーターマークを全ページに適用することも可能です。

また、DVI・PS出力には draftcopy パッケージ、PDF出力には pdfdraftcopy パッケージを使うと、ページ全体に斜めの「DRAFT」印を押すこともできます。例:

\usepackage{draftcopy}

テクニック10:水平・垂直スペースの手動調整

本来なら、ページのレイアウトに手を加えるべきではありません。LaTeXは段落や画像を賢くページに振り分け、行間を微調整したり、テキストブロックをずらしたりしながら、最良のフィットと可読性を両立しようとしてくれるからです。

それでも「どうしても」調整が必要な場合は、\vspace{} と \hspace{} コマンドでテキストフローに意図的な隙間を作れます。もちろん、最終出力で見た目が期待どおりか必ず確認してください。例:

\vspace{1cm}

垂直スペースは、複数カラム構成で各カラムの下端を揃えたい(ragged bottom にしたい)場合に特に有用です。\raggedbottom や改ページと組み合わせれば、vspaceによって要素を最大限コンパクトに整列できます。画像や表がレイアウトの流れを崩しているときに威力を発揮します。

テクニック11:複数カラムの記事を作る

複数カラムといえば、2段・3段それ以上の組版も驚くほど簡単です。multicol パッケージを使うだけ。プリアンブルで宣言し、本文の任意の場所でシングルカラムとマルチカラムを切り替えられます。

\begin{multicols}{<number>}
content goes here as usual ...
\end{multicols}

シングルカラムとマルチカラムを交互に使うこともできます。たとえば「画像や表はページ幅いっぱいに広げ、テキストは2段組にする」といったレイアウトも自由自在です。ただし注意点として、テキストはそのブロック内で左から右へ流れるだけで、後続の別のマルチカラム区画にはまたがらない、という点は覚えておきましょう。

究極のヒント:ソースを覗いてみよう

LyXのコードは、結局のところただのテキストです。いくつかの特殊タグが付いたLaTeXにすぎません。だから、GUIで行った設定がどんな宣言として書かれているのか、いつでもテキストエディタでファイルを開いて確認できます。float要素や表、その他の凝った書式の裏側が気になったら、遠慮なくソースを覗いてみましょう。HTMLファイルの中身を調べるのに近い感覚です。

参考リソース

LaetCodeのヒント集として、こちらも有用です:
LaTeX | Rob Oakes

まとめ

以上です。この記事は熱核兵器級にマニアックな内容かもしれませんが、きっと役立つはずです。筆者の個人的な経験が直接あなたの役に立たなかったとしても――特にまだLaTeXを試したことがない方なら――この記事が興味のきっかけになり、「一度触ってみよう」と思ってもらえたら嬉しく思います。

今日学んだ重要な教訓をまとめましょう。第一に、LaTeXはどんなスタイルにも仕立て替え可能で、時に典型的なオフィススイートよりも高い自由度と優雅さを発揮します。第二に、LaTeXは広大で豊かな世界であり、ほぼあらゆる目的に対応するパッケージが存在します。正しいパッケージを選べば、コアラの赤ちゃんのクローンだって作れるかもしれません。テキスト組版におけるLaTeXとは、Linuxにおけるリポジトリのような存在です。そして最後に、LaTeXとの格闘中によく起こる問題への、シンプルで手早い解答を手に入れたはずです。

他に取り上げる価値がありそうな事例や、まだ答えの見つからない疑問がある方は、ぜひメールでお知らせください。この記事の続編が生まれるかもしれません。

それでは、また。

  1. Notepad++を使いこなす!知っておきたい5つの便利テクニック

    Notepad++は、Windows向けの最高のテキストエディタと言っても過言ではありません。その機能は非常に豊富で、すべてを紹介するには何本もの記事が必要なほどです。そこで本記事では、この多機能かつ洗練されたテキストエディタの驚異的なパワーを順番にご紹介していきます。もうテキストファイルやスクリプト、HTMLファイルの編集にメモ帳やワードパッドを使う必要はありません。それでは、Notepad++を最大限に活用するための最初の5つのテクニックを見ていきましょう。1. コードに合わせて言語を設定するNotepad++の強力な機能のひとつが、コードの色分け(シンタックスハイライト)です。C言語、M

  2. VMware ESXi活用ガイド:パフォーマンス最適化からSSH有効化までの実践テクニック

    当ブログでは、これまでESXについてあまり深く取り上げてきませんでした。今回はその埋め合わせとして、ESXiに関する実用的なノウハウをたっぷりとご紹介します。ESXiで仮想マシンをクローンする方法に関するチュートリアルに続き、今度はVMwareの魅力をさらに掘り下げていきましょう。ESXiは無償で提供されているベアメタル型ハイパーバイザーであり、最も高価かつ高機能な仮想化ソリューション「ESX」へとつながる最初のステップです。念のため整理しておくと、VMwareにはホームユーザー向けの「VMware Player」や「Workstation」があります。また、ESXの機能を小規模でお手軽に体験