1 Taukinos

Easytex Bibtex Bibliography

LaTeXは非常に多機能でおそらく最も高機能な組版処理ソフト(ワープロ)だと思う。特に、近年登場してきたTikZやPythonTeXは単なるワープロの限界を超える機能を提供してくれる。しかし、その難解さ・とっつきにくさからそこまで多くは普及していないのが現実だろう。

この記事ではそうしたLaTeXの問題点や、LaTeX初心者が不便に思う点を、2年前の2011年に初めて使い始めたときに感じた私の視点から指摘する。そして、こうしたLaTeXの問題点を緩和し、LaTeXの機能をマウスやキー、メニューから選択することで直感的に実現可能なGUI(Graphical User Interfac)を持ち合わせたLyX(リックやリックス)という文書処理ソフトについて紹介する。

初心者にとってのLaTeXの問題点

私がLaTeXを使い始めたきっかけは学部4回生の卒業論文だ。2011年の9月に先輩から初めてLaTeXについて教えてもらい、それ以降ゼミでの報告資料はLaTeXで書いていた。おそらくこのように卒業論文や修士論文をきっかけにLaTeXに触れる学生は多いのではないだろうか。

インストールは[改訂第4版]美文書作成入門[奥村晴彦2006改訂第4版LaTeX2美文書作成入門]に付属のディスクを使用した。LaTeXの呼び方はラテフとよんでいるが、これは指導教員にそう教わったため。エディターにはWinShellを使い、当時は基本的にコードはベタ打ち!だった。

当時を思い返し、特にLaTeXで辛かった点を以下に列挙する。

  1. 覚えるべき大量のコマンド
  2. 打ち間違いによるストレス
  3. エラーへの対処の困難さ
  4. 打鍵の多さ
  5. 長い数式の視認性が悪さ
  6. 表データの取り込み。
  7. 図の取り込み
  8. ラベルやbibtexキーの検索性

以下では上記の各項目について説明する。

覚えるべき大量のコマンド

1.について、何か新しいソフトを使うに当たって当然「覚えないといけないこと」がある。しかし、他のワープロソフトと比較してLaTeXはその「覚えないといけないこと」が非常に多いと感じている。

例えば、ページの余白を変えようと思うとgeometryパッケージを使わなければ、ページのサイズなどから自分で計算してやといったパラメータを設定して、プレビューして確認しながら調整する必要があり、各種パラメータの知識(存在や役割)が必要で非常に煩雑だ。

特に数式については大量のギリシャ文字の表記法も覚える必要があり,こういった類の無数コマンドに圧倒される。

打ち間違いによるストレス

2.について、1と関係するがパソコンを使ったミスとして打ち間違いはつきものだと思う。とりわけ、LaTeXではそれが非常に大きいのではないかと思う。LaTeXはマークアップ言語であるため、括弧や環境でテキストを囲うことが非常に多い。

括弧、で閉じるを忘れたり、バックスラッシュ\で特殊文字をエスケープするのを忘れることはよく経験することだろう。また、コマンド名が紛らわしいものが多いのもミスを誘発する。単数形()なのか複数形()なのか、なのかなのか なのかなのか。特に、単数形か複数形なのかはコマンドのオプションなどで固有で新しいコマンドを使うときはいまだに覚えきれず遭遇するエラーだ。

エラーへの対処の困難さ

3.について、2で挙げた打ち間違いによるミスはその場ですぐに気付けば些細なものだ。しかし、考えた内容を一気に書き上げて最後にプレビューを確認する際に打ち間違いによるエラーが出た場合はその原因箇所を特定するのが困難である。

また、論文などの長文を書く場合は、複数のパッケージを読み込みや環境やコマンドを入れ子にしたり組み合わせることがあると思う。この場合、パッケージ間の競合や、環境・コマンド同士の組み合わせや配置によっては原因がよくわからないエラーに出くわすことがある。エラーの解決に丸1日かかることもあり、提出間際で時間のない場合に致命的になる。

打鍵の多さ

4.について、LaTeXはマークアップ言語であり,本文に対して括弧やバックスラッシュを使ったコマンドや環境でマークアップすることで文書としての構造を持たせたり、個別の処理を行える。そのため、本来の内容に加えてこれらのコマンドや環境を書く必要があり、WriterやWordをはじめとするワープロと比べて、入力する文字が増える。

打鍵量が増え指も疲れるし、入力文字数が増えることで相対的に打ち間違えの可能性も増えることになる。特に、箇条書きやその入れ子はおそらく多用すると思うが、LaTeXでそれを実現する場合、以下のように階層ごとにitemize環境で囲み、更に行頭にという箇条書きの記号をその都度入力する必要がある。

それに対して、Wordであれば、行頭に中点・を記入してスペースを入れるとオートコレクトにより自動で箇条書きに移行し、階層の上げ下げもTabやShift-Tabなど非常に直感的で素早く実現可能だ。

長い数式の視認性の悪さ

5.TeXはもともとDonald E. Knuthが数式の組版が汚いことに不満を持って開発されたといわれている。そのためか、数式の組版は美しく、また数式を多用する分野の学生や研究者で利用者が多い印象だ。ただ、複雑な数式ではLaTeXコードが数式をうまく表現できているか確認するには非常に視認性が悪い。例えば、以下に量子力学の分野で有名なシュレイディンガー方程式を示す。

これをLaTeXコードで書こうとすると次のようになる。

慣れていなければぱっと見ただけでは実際の数式との対応関係を把握するのが困難だ。分数が入ると括弧が非常に多くなり、視認性が悪くなっている。括弧の綴じ忘れなどで何度もエラー探しをしたことがある。出力結果はきれいだが、式の誘導や展開を行うと数式だらけになりLaTeXコードを見るのはうんざりする。

表データの取り込み

6.について、LaTeXは表の扱いが苦手だ。LaTeXでは基本的に以下のように&で区切って表のセルを表現する。

通常はCalcやExcelといった表計算ソフトで表を用意すると思うが、LaTeXで使えるようにするにはや(でも可)を付け加えて整形しないといけない。行罫線を加えるのは厄介だ。LaTeXに貼り付けた後に列を削除したり入れ替えたりするのは面倒だ。さらに、行や列を連結させるのも一苦労。

連結した行や列の位置を考えてコマンドを入力し、さらに関連するセルの数の対応を把握しておかないといけない。連結した状態で表計算ソフトでLaTeXコードを用意するのは困難だ。表を図として貼り付けるという方法も考えられるが、その場合longtableを使った複数行にまたぐ表は非常に面倒であり、LaTeXで取り込むために図の変換などが必要である。

図の取り込み

7.について、LaTeXを使い始めた時は画像をepsで用意するように教えられ、epsでなければ画像を取り込めないと思い込んでいた時期があった。そのため、Excelなどで作ったグラフをInkscapeに貼り直してepsに保存するという間に面倒な作業が挟まっていた。実際には、epsの他にpdf, png, jpgなども可能(svgやemf, wmfは確か不可)だ。

しかし、pngやjpegを取り込むにはバウンディングボックスをオプションので指定したり、変換が必要でとにかく面倒である。更に、取り込む際には以下のようにパスとファイル名を記述して指定する必要があり、画像名を覚えていなければそれを逐一フォルダを開いて確認する必要があり、これもまた面倒である。

また,LaTeXでは画像を文書中に埋め込むことはできないので,常に.texファイルと画像をセットで扱わないといけない。WordやWriterであれば,画像自体を文書に埋め込むことができるので,パスを意識する必要がなく,扱いやすい場合がある。

ラベルやbibtexキーの検索性

論文を執筆する際には、数式や図表、さらには文献を参照する。その際に必要なのが相互参照である。LaTeXではコマンドの引数にラベル名を書き、後からコマンドでそのラベルを参照することで数式や図表番号を参照することができる。また、文献の場合はコマンドの引数にキーを渡すことで参照できる。

操作自体は簡単だが、論文が長くなるほど式や図表、参考文献とラベルの対応関係を把握できなくなる。の引数に誤ったラベルを書いてしまうと、相互参照の番号の部分がになる。なならまだ間違えたことがわかるからいいが、別の式や図表を参照してしまった場合、文章を読むまで参照が正しいか判断ができない。

一般的な解決方法

以上でLaTeX初心者が出くわすLaTeXの問題点について指摘した。他にもplatexの実行時に生成される大量の中間ファイルが邪魔だとか、プレビューに時間が掛かるなど挙げればきりがないだろう。

IDEの存在

これらのLaTeXの問題を解消する方法として、IDE(Integrated Development Environment:統合開発環境)の利用が挙げられる。IDEとは、一般的に作業を行う上で必要な機能を集約した環境のことである。一般的には以下の機能を持つものが多い。

  • プロジェクト管理
  • プレビュー
  • 入力補完
  • シンタックスハイライト

LaTeXの利用者はおそらくほとんどがIDEを利用するか、VimやEmacsといったテキストエディタにLaTeXで作業するためのプラグインを導入するなどカスタマイズして作業をしていることだろう。

おそらく多くのMacの利用者はTeXshopを使い、Windowsの利用者はWinshellかTeXworks、TeXmaker、EasyTeXといったところを使っているのではないだろうか。他には、秀丸、Emacs、Vim、xyzzyといったところだろうか。

私のPCはWindowsで、美文書作成入門第4版やTeXインストーラ3でインストールしたW32TeXをLaTeX環境のベースとしていたのでWinshellを当初使っていた。WinshellのUIは英語でその機能のほとんどを使いこなせていなかった。その結果、LaTeXコードも補完機能を使わないすべてベタ打ちだった。

IDEの調査

打鍵の多さと打ち間違いの多さから非常にストレスを感じた私は、2011年の学部最後の冬休みと2012年の大学院入学前の春休みにLaTeXのIDEを調べまわった。具体的にはインストールして、実際に操作して吟味するというのを繰り返した。調査対象は以下のリストだ。

  • Easy TeX
  • Yotuba TeX Editor
  • TeXnician
  • xyzzyとKaTeX
  • TeXE
  • WTexEdit
  • TeX asisstant
  • TeXEditor
  • LyX
  • TeXmaker

LaTeX初心者は往々にして、shellの初心者でもある。そのため、VimやEmac、それに類するプログラム向けエディタはそれだけで敷居が非常に高い。まして、当時の私は卒論のまっただ中でそうしたエディタの操作を覚える時間的余裕がなかった(xyzzyやEmacs、Vimが除外)。また、私は初心者であったがいちいちマウスでクリックして入力するのは面倒なので、入力補完とそのカスタマイズに優れているものを選んだ(Easy TeXが除外)。

2011年の冬休みの時点ではTeXEditor(似たような名前のものがいくつかあるので注意)が入力補完が直感的で自分でのカスタマイズも簡単で使いやすかったのでこれで卒業論文を書いた。

ただ、動作が遅くてまだ納得がいかなかったので春休みにも調査し、このときにLyXの存在を知った。その当時はLyXの独特のUIや操作になれるのに時間がかかると思って敬遠して見送った。ただ、そのUIやHPでの説明とそのロゴやマスコットキャラクターが記憶に残った。このときの調査では最終的にTeXmakerにたどり着いた。おそらく、LyX以外でWindowsでLaTeXのIDEを使うならTeXmakerかVim、Emacsあたりを使うことになると思う。それくらい、TeXmakerは完成度が高いように思った。入力補完はもちろんUIも良かった。

LyXを使うきっかけ

しかし、TeXmakerを使っても満足できなかった。大学院の講義のレポートでTeXmakerを使っていたが、コマンドは覚えきれないし、打ち間違いによるエラーはあった。長い数式を書くと括弧やスペルミスでエラーは出るし、わけのわからないエラーで提出直前になって何時間も時間を浪費した。もうLaTeXを使うのをやめてWordにしようかと何回も考えた。ただ、LyXの存在が気がかりだった。

そこで、2012年の前期の大学院の講義が終わった8月初めの時点で、LyXを試してみてそれでダメならWordかWriterで文書を書くことにしようと決めて、LyXを使い始めた。

インストールの時点では日本語がうまく表示できなくて早速躓いた。インストールの方法はTeX Wikiを参考にどうにかうまくできた。ネット上には当時は日本語の情報があまりなくて頼りになるのは付属のHelpの文書だった。Helpの文書とネットの情報を頼りにLyXとLaTeXの知識を身につけたことでLaTeXをやめずに現在まで至っている。

LyXの紹介

ここからはLyXについて説明していく。LyXを使うことで最初に8つ挙げた初心者にとってのLaTeXの問題点をかなり解消できると確信している。導入や使い方というよりはLyXの便利な機能などに重点をおいて説明し、読者に興味を持っていただくことを目標とする。

LyXとはなにか?

LyX(リックやリックスなどと呼ばれる。呼称は定まっていない)のロゴは以下のコマンドで構成されている。

また,TeXのTeX lionのようにLyXにはマスコットキャラクターがいて、The LyXという。哺乳類の動物であるplatypus(カモノハシ)をモチーフしているとのことだ。

LyXは簡単にまとめると、以下の2つの性質をもったワープロソフトだといえる。

  • WordやWriterのようなGUI。
  • LaTeXベースの組版エンジン。

ライセンスはGPL(つまり、フリーソフト)でWindows、Linux、Macのどの環境でも動作する。

LyXのチュートリアルを始めるとわかるが、LyXではWYSIWYMという思想を非常に大事にしている。普通のワープロはWYSISYG(What You See Is What You Get)といい、最終出力は現在入力して「見えている内容と同じ」である。WYSIWYM(What You See Is What You Mean)とは、最終出力は実際に入力してみえている内容とは異なり、入力時に「意図した内容」 が得られる。意図した内容とは、文書構造などのことである。

初めて使う人はその思想や操作体系に戸惑うと思う。特に決定的なのは、基本的には空行や行頭の空白及び連続した空白が許可されないことだろう。また、水平方向のスクロールバーも存在しない(LyXが自動で折り返す)。しかし、LaTeXの機能をGUIに落としこんでおり、LaTeXコードをあまり意識しなくても使えるようになっており、LaTeXのGUI版だと思って問題無い。

本家公式サイト
LyX | LyX – The Document Processor
日本語公式サイト
LyX | LyX – 文書プロセッサ

LyXのよいところ

LyXの素晴らしいところは前述した初心者にとってのLaTeXの問題点を解消・緩和できるところだ。

文書作成時の基本コマンドは、ドロップダウンリストやメニューから選択することで章・節の設定・目次の挿入、図表の挿入、の挿入などLaTeXを使って普段作成するような文章を自分でLaTeXコードを直打ちしなくても簡単に作成することができる。極端な話,LaTeXコードを一切見なくても組版が可能だ。

以下でいくつかのカテゴリに分けて優れている点を列挙する。

ワープロ環境
  • UIやマニュアルのほとんどが日本語化済み。
  • 画面分割・タブウィンドウの対応。自動バックアップ。バージョン管理システムとの連携。
  • アウトラインやメッセージウィンドウ、LaTeX Sourceウィンドウなどの画面配置のカスタマイズ。
文書作成機能
  • 普段の文書に必要な節、各種箇条書き、などをTeXコードを入力しなくてもアイコンやドロップダウンからの選択・短絡キーにより入力可能。
  • 箇条書きはTabやShift Tab、Alt Right、Alt Leftなどで階層の上げ下げを即座に行える。
  • 数式エディタが搭載されており、入力した数式がリアルタイムで表示される。
  • 表エディタが搭載されており、ボタンクリックで行・列の削除・移動・追加・連結などが可能。
  • 図の貼付け時にLyXのエディタ上に画像をプレビュー可能。
  • ダイアログウィンドウからフォルダにアクセスして取り込む図を選択できる。
  • JPGやPNGなどのほとんどの画像をユーザー側での変換などの前処理なしでLyXで自動で変換して取り込んでくれる。
  • 図表・数式番号のラベルやBibTeXキーをダイアログウィンドウから選択したり、検索して参照できる。
玄人向け機能
  • Xy-picのXymatrixコードをLyX内で自動プレビュー
  • 楽譜組版ソフトLilipondも同上。
  • 文書途中でのLaTeXコードの直打ちにも対応。
  • HTMLやXHTMLなど他の文書へのエクスポートに対応。
  • .texファイルのインポートと.lyxから.texへのエクスポートが可能。
  • 「LyX上のほとんどの動作」にユーザー独自の短絡キー(ショートカットキー)の設定が可能。
  • 独自・新規コマンドを挿入する独自の差し込み枠の定義が可能。
  • .lyxファイルはテキストファイルなのでLyXの構文を維持すれば独自に書き込み可能(図の一括貼り付けなど)。

最近のLyX(2.0.6以降)だと標準でeLyXerがついてきており、File⇒Export⇒HTMLで一発で変換可能なので簡単だ。また,標準機能としてXHTMLへの出力機能はサポートされている。数式や箇条書き、表や、目次もちゃんと変換できている。ただ、BiBTeXを使った参考文献は不完全となっている。

外観・操作の様子

ここまで書いてきて、LyXの具体的な機能についてようやく説明しようと思う。ただ、LyXの操作の状況を文章だけで説明するのはかなり難しい。かといって、図を大量に貼り付けるのはかなりしんどい。そこで、実際の操作画面をキャプチャした動画を以下に掲載したのでこれをご覧になって、LyXの操作やGUIがどうなっているのか見ていただきたい。

動画での操作について簡単に説明する。

  1. 最初にまず、タイトルと著者名、日付を記入。
  2. 見出しを書きながら、LyXの画面構成について説明。
    1. 基 本的にはメニューバーやドロップダウンメニューからLaTeXのコマンドや環境に相当するものを選択して挿入していく。ドロップダウンメニューはAlt-p Spaceでフォーカス可能で、メニューバーもキーボードからアクセス可能なので、基本的にはキーボードからすべて操作可能。
    2. 使いやすいようにアウトラインやLaTeXソースを表示するウィンドを表示。
      1. アウトラインは図表なども表示でき、レベルの上げ下げ、移動なども下のボタンで可能になっている。
      2. LaTeXソースにはLyXでの入力が実際のTeXではどう解釈されるかをリアルタイムで表示してくれるので便利。
  3. 続いて箇条書き。ドロップダウンやドロップダウンの下のアイコンから箇条書きがかける。
    1. レベルアップダウンはTab/Shift TabかAlt-Left/Rightで可能。 Alt-Up/Downで上下の移動も可能。組み合わせたネストも簡単。
  4. 数式。
    1. C-m/C-Mか挿入から数式ボックスを挿入する。このボックス内に数式をTeX記法で書いていく。入力すると候補が表示され、Tabで補間も可能。
    2. シュレイディンガー方程式は長くて複雑で覚えていなかったので右辺の入力は断念。
    3. C-EnterでAlign, eqnarrayに移行して多段式も可能。画面下部に式の操作アイコンも登場。
    4. 数式ボックス内で、昨日のdoraTeXさんの「TeXによる化学組版」という記事にも登場したコマンドを初め、Xy-picのxymatrixなどいろいろ使える。
    5. LyX上で文字のTeXの数式を選択してC-mで一発で数式に変換可能。
    6. 併記した数式コードはlstlisting環境で表示。
    1. 挿入⇒表を選択。
    2. 画面下部に表の操作アイコンが登場。
    3. 列・行の連結・削除、追加も簡単。
    4. 右クリックで幅やlongtableの設定も可能。
    5. 表計算ソフトなどからそのまま貼り付けられる。
    1. 挿入⇒図でダイアログが表示され、そこから選べる。
    2. 例として、The LyXとTeX Lionを表示。
    3. 選んだ画像はLyX内でプレビューされる。表示しない設定も可能。
    4. フロートで囲み、キャプションやラベルも付けれる。
    5. 相互参照には全リストから検索可能。
  5. その他。
    1. BibTeXを使った文献引用。最初にbibファイルを選択する。
    2. TeXコードの直打ち。C-lで赤いボックスが登場。この中でTeXが直打ち可能。\barchartという独自コマンドを例で書いている。
    3. hyperrefのurlやhrefコマンド。
    4. なお、\#などのLaTeXの特殊文字は自動的にTeX内部でエスケープして入力される。
  6. 玄人向け
    1. LyXのGUIはユーザーが独自コマンドも定義できる。ここでいう独自コマンドとは、LyXが標準でGUIを用意していないコマンドのこと。
    2. 挿入⇒Custom Insetでボックスを追加できる。ドロップダウンメニューにも独自環境を追加できる。
    3. 例として、tcolorboxとsmartdiagramを表示。
  7. プレビュー
    1. ファイル⇒書き出し⇒PDFか文書⇒表示⇒PDFでPDFの出力かプレビューが可能。
    2. プレビューとしてSumatraPDFで出力結果をプレビュー
    3. SyncTeXにも対応。

歴史

LyXのバージョンヒストリーを以下の表に示した。

リリース年バージョンリリース備考

1999

1.0.0

2003

1.3.0

2006

1.4.0

2007

1.5.0

2008

1.6.0

2011

2.0.0

2011

1.6.10

1.6系統最終

2012

2.0.4

私の最初の使用バージョン

2013

2.0.6

2.0系統最終?

201?

2.1.0

beta版がリリース中

1999年に最初のバージョンがリリースされ更新されてきた。私が初めて使ったのはLyX2.0.4である。最新の安定バージョンは LyX2.0.6となっているが、時期バージョンのLyX2.1.0beta2も公開されており自由にDLできる。LyXのバージョン番号の見方としては以下のように、最初の2桁がメジャーバージョンを示しており、新しい機能の追加などでバージョン間で大きな変更がある。最後の1桁はマイナーバージョンアップを示しており、バクの改善などの小さいな改良が行われている。

x.x.x
メジャーバージョン1.メジャーバージョン2.マイナーバージョン

メジャーバージョンが異なるLyXのファイルはネイティブな動作が担保されない。

なお、もし新しくLyXを使いはじめるとしたらLyX2.1.0beta2をインストールすることをおすすめする。詳細は述べないが、LyX2.0系統に比べて(個人的に大幅に)機能が向上しているためだ。ユーザが独自に定義できる差し込み枠の設定オプションが増え、カスタマイズ性が向上したことと、 BeamerドキュメントクラスのUIが改善したことが個人的には大きな点だ。

LyXの動作の仕組み

LyXがどのようにファイルを処理してLaTeXを使い、最終出力を得ているかについて簡単に説明しておく。

LyXで文章を作成する際には、LyXのファイルメニューから新規作成を選択するなどして、.lyxという拡張子のファイルに文章を書いていく。この.lyxファイルはテキストファイルになっていて、LyXがこれに書かれている内容を解釈してLyXエディタ上で箇条書きやボックスなどを表示している。

LyXを使うには、MikTeXやTeXlive、W32TeXなどのディストリビューションで事前にLaTeXの使える環境が必要となっている。LyXはインストール時にlatexコマンドの存在するフォルダを指定してそこにパスを通すことでlatex関係のコマンドを使用している。当然使用できるパッケージも通常のTeXのパッケージと同じものが使える。LyX,はただGUIなど部分とlatexコマ ンドなどのプログラムの実行などを内部で行ってくれるだけで、latexの中身については関与しない。

LyXがファイルを処理してPDFなどの出力を得る過程は以下の手順になる。。

  1. LyXのメニューからDocument⇒View⇒PDF(dvipdfm)やFile⇒Export⇒PDF (dvipdfm)などを選択
  2. するとplatexの実行が開始。
  3. この時点でLyXの設定(Tools⇒Preference⇒Paths)で指定しているTempフォルダに.lyxファイルと貼り付けている図、リスト、inputしている子文書類がコピーされ、.lyxが.texに変換される。
  4. .texファイルに対してplatexや必要に応じてbibtexやmendex、さらに図の変換コマンド(comvert, metafile2eps, pdftopsなど)が実行される。
  5. そしてpdfのプレビューを表示。
  6. Exportの場合は元々の.lyxファイルと同じ場所にpdfができる。その他の中間ファイル類はTempフォルダのみに存在。
  7. lyxファイルを閉じるとこれらのTempフォルダは自動的に削除される。

上記のように、一旦Tempフォルダに関連ファイルを一式コピーしてそのフォルダ内でlatexコマンドを実行して出力を返してくれる。このようにして、ユーザにバックでlatexが動いていることを実感させないように振る舞ってくれる。余計な中間ファイルができなくてスッキリする。

課題

LyXは自分にとってとても便利でこれなしでは私はLaTeXにはもう触れない。そんなLyXでも幾つか課題があるので以下で解説する。

外部コマンドとの連携

LyX自体が画像の変換やバージョン管理、RのSweveやKniterなどで自動的にいくつかの外部コマンドと連携している。ただ、それでもカバーしきれていないものがある。特に最近登場してきたPythonTeXもそうだし、TUG2013で発表されたmultibibliographyパッケージの用に独自のコマンドやスクリプトを間に挟む場合のLyX側での対応が不十分である。おそらく、スクリプトなどを書いてうまく設定すれば対応できるのではないかと思われるが、詳細は不明。

既存のコマンド

LyXが標準で使っているコマンドでいくつか改良版があるのに古いものを使っているケースがある。代表的な例だと、longtable環境だ。LyXでは表を挿入して右クリックから選択することでtabularをlongtableに変更することができる。ただ、最近だと改ページを伴う表としてはxtabパッケージのxtabular環境の方が表の全幅を指定できたり高機能。こうしたLyXで既定で使用されているコマンドを変える方法がわかっていない。

個人的な不満

箇条書きなどを書いていると、矩形選択して特定の列を切り取ったり削除したくなる。普段使っているテキストエディタVimと同じような機能を使いたい。

たくさんの図を貼り付けるときにLyXからいちいちダイアログを開いて選択するのは面倒。かといって、全部TeXコードで書くとラベルがダイアログに表示されない。LyXコードをLyX中から編集できるようになれば、そこにスクリプトなんかで書きだしたものを貼り付けたりできるので便利だろう。

周りに使っている人がいないので、文書校閲機能などが意味を成さない。

LyXの参考文献

LyXについて記述された日本語書籍として私が知る限りでは以下の3冊がある。

  • ドキュメントプロセッサLYX入門 小浪 吉史 (2002/9)
  • LyX入門 北浦 訓行 (2009/10/16)
  • LATEX2ε論文作法 藤田 眞作 (2010/12)

書籍が少ないことは付属のマニュアルがけっこう充実していることと知名度が低く需要が少ないことが原因だと思われる。[LyX入門]は購入し、 [LATEX2ε論文作法]は後から存在を知り図書を借りて目を通した。LyX version 2.1になりメニューのToolsやDocumentの構成が若干変わったこともあり、有用性は以前より少し下がったかもしれない。[LyX入門]は私がLyXを使い始めた当初に購入した。細かい情報がのっていないので今となっては不要だが、使い始めの半年は役立った。[LATEX2ε論文作法]は本のたしか 1-2章を割いてLyXの使い方について説明していた。こちらの方が詳しい内容が書いてあったが量は少なかったと記憶している。

結局のところLyXの日本語の情報としては付属のマニュアル(メニュー⇒Help)が一番詳しいのでこれをよく読むことが大事だ。

 

Search | Home | Alpha | Brief | Topical | Hierarchical

 


The TeX Catalogue by Graham Williams

Topic Index by Jürgen Fenn

Last modified: 13 November 2017

 


This part of the TeX Catalogue eventually will list all packages available from the "Comprehensive TeX Archive Network", or CTAN, for using plain TeX, LaTeX, ConTeXt, etc. by topic. We also try to give some advice that might help you in getting software and guides not available on CTAN.

New packages on CTAN and package updates are announced on the CTAN Announcements mailing list which is also available from Mail Archive, as well as from Gmane.org (blog and rss feed).

Every systematical order is arbitrary in some way or another. This is why entries may appear in more than one place. The following order generally tries to keep to that of "The LaTeX Companion", 2nd. ed., and to The LaTeX Graphics Companion, 2nd ed., by Mittelbach, Goossens, et al.

Contrary to the other parts of the TeX Catalogue, the Topic Index is not (yet) compiled automatically. This is very much a work in progress, so suggestions are quite welcome. As every complex document, the Topic Index is full of errors, so please do not hesitate to report them to the maintainer.

If you fail to find a package for a particular purpose here, you might like to try searching the web interface to search CTAN and for browsing packages by topic.

Thanks to Uwe Lück, Morten Høgholm, and Andrea Blomenhofer for proofreading and for making lots of suggestions for improving the Topic Index.

Contents

  • References and Manuals
  • Alternative Document Classes
  • Document Structure
  • Formatting
  • Page Layout
  • Using Grids for Managing Layout
  • Page Numbers
  • Manipulating Counters
  • Line and Paragraph Numbers
  • Columns in a Page
  • Tables
  • Floats
  • Creating Indices and Glossaries
  • Bibliography
  • Fonts
  • PostScript Support
  • Creating PDF Documents
  • Combining Documents
  • Bundling all Packages necessary for compiling a Document
  • Managing different versions of your document
  • Managing large Documents
  • Multilingual Support
  • "Office" Applications
  • Databases
  • Science
  • Graphics
  • Adding some Colour and Shading
  • Typesetting Exam Scripts, Quizzes, Flashcards, and Questionnaires
  • Music
  • Poetry and Drama
  • Cooking Recipes
  • Documenting Games
  • Crossword Puzzles
  • Sudoku Puzzles
  • DVD, CD, and MC Covers and Collections
  • Support for the Blind
  • Using different character sets
  • Developing and Documenting LaTeX Packages
  • Handling and Parsing Strings and Numerical Data
  • CWEB
  • Support for Plain TeX
  • Handling DVI files
  • (La)TeX Distributions
  • LaTeX 3
  • ConTeXt
  • Omega
  • Editors
  • LyX
  • MicroIMP
  • Previewers and Plugins
  • Spelling Checker
  • Converters
  • Using Perl with LaTeX
  • Using SGML and XML with LaTeX
  • Some more binaries
  • Miscellanous Packages

 


 References and Manuals

You should refer to "lshort" for the basic rules for writing correct LaTeX2e.
On the other hand, the most common mistakes in using LaTeX2e and how to avoid them are listed in Mark Trettin's guide "l2tabu" available in German, English, French, and Italian.

Below are some TeX resources online mostly outside CTAN that deserve to be mentioned, too:

A comprehensive commented reference of the commands available both in LaTeX and the most popular packages can be found at Michael Wiedmann's tex-refs project.

Herbert Voß has gathered together a rather comprehensive collection of Tips & Tricks on (La)TeX.

There also is Norman Walsh's help for Plain TeX, LaTeX, BibTeX, MakeIndex, and SliTeX.

Tutorials on TeX by TUG India are available online, or as PDF. There also is Peter Flynn's Beginner's Introduction available both online and for download.

For news on the development of LaTeX see the LaTeX3 Project.
The ConTeXt project, too, has a homepage of its own.

 Frequently asked questions:

For practical tips on how to use LaTeX in general as well as hints for using particular packages refer to the "Frequently Asked Questions" lists of local TeX User Groups available on the WWW in Czech / Slovak, Dutch, English, French (old and new version), German, Italian, Polish, Spanish, or on CTAN:

 LaTeX Documentation by the LaTeX3 Project:

  • cfgguide - Documentation of LaTeX configuration options
  • clsguide - Documentation of commands (other than font-handling commands) that are useful when writing a LaTeX class or package
  • cyrguide - Documentation LaTeX Cyrillic-alphabet features
  • encguide - Documentation of LaTeX font encodings
  • fntguide - Documentation of commands for selecting fonts, as well as those for defining the data-structures used by the selection commands
  • modguide - The rules about modifying LaTeX
  • usrguide - Documentation of user commands

 Introduction to LaTeX "lshort":

 Usage Guide "l2tabu":

 Some more guides to (La)TeX:

  • beamer-tut-pt - An introduction to the Beamer class, in Portuguese
  • beginlatex - A comprehensive beginner's guide to LaTeX by Peter Flynn
  • catalogue - The TeX Catalogue of what's available on CTAN. You are just reading it.
  • cursolatex - A LaTeX tutorial in Portuguese
  • french-translations - French translation project for documentation of LaTeX packages
  • gentle - A Gentle Introduction to TeX
  • gentl-gr - Modern Greek translation of the Gentle Introduction to TeX
  • mfwl - Making Friends with LaTeX is a small presentation introducing LaTeX
  • russian-help - LaTeX help in Russian
  • simplified-latex - A Simplified Introduction to LaTeX
  • texbuch - A summary in German of D. E. Knuth's `TeXBook' by Fritz Cremer
  • texmalli - A quick Finnish introduction to using LaTeX

 LuaTeX

  • lualatex-doc - A guide to use of LaTeX with LuaTeX for both new users ans developers

 XeTeX

Michel Goossens has published The XeTeX Companion. TeX meets OpenType and Unicode as a work in progress, giving some additional material not included in the second edition of The LaTeX Graphics Companion.

  • xetexref - Unofficial reference documentation for XeTeX detailing its extended features

 Templates for using LaTeX, and Examples from Books on LaTeX:

  • einfuehrung - Examples from the book "Einführung in LaTeX" by Herbert Voß
  • firststeps-xampl - Examples from "First steps in LaTeX" by George Grätzer, among them are a number of templates for LaTeX documents
  • koma-script-examples - Examples from the KOMA-Script book by Markus Kohm
  • koma-script-examples-3 - Examples from the 3rd edition of the KOMA-Script book by Markus Kohm
  • koma-script-examples-4 - Examples from the 4th edition of the KOMA-Script book by Markus Kohm
  • latex-bib-ex - Examples for the book "Bibliografien mit LaTeX" by Herbert Voß
  • latex-referenz - Examples as source, eps and pdf from the book "LaTeX-Referenz" by Herbert Voß
  • lb2-examples - Examples from the German edition of the TLC2, "Der LaTeX Begleiter", together with necessary supporting files
  • lgc-examples - Examples from The LaTeX Graphics Companion, together with necessary supporting files
  • lgc2-examples - Examples from The LaTeX Graphics Companion, second edition
  • ltt - Example code for "LaTeX Tips und Tricks" book by Ingo Klöckl
  • lwc-examples - Examples from The "LaTeX Web Companion", together with necessary supporting files
  • math-into-latex-4 - Samples for the book `(More) Math into LaTeX' by George Grätzer
  • mathesatz-examples - Examples from Herbert Voss' book "Mathematiksatz mit LaTeX"
  • presentations - Examples from Herbert Voss' book "Präsentationen mit LaTeX"
  • pstricks-examples - Examples from the book "PSTricks -- Grafik für TeX und LaTeX" by Herbert Voß
  • templates-fenn - Templates for LaTeX usage (letters with scrlttr2 and dinbrief, memos with dinbrief, and a simple diabetes diary)
  • templates-sommer - LaTeX templates for student's term papers (Hausarbeit) and for typesetting a psychologist's diploma thesis at Jena University
  • tlc2-examples - The source of the examples printed in "The LaTeX Companion", 2nd edition, together with necessary supporting files
  • tip - Macro examples from "TeX in Practice" by Stephan von Bechtolsheim

 Fonts and Graphics:

  • anleitung - A German introduction by Jens Weissenburger to using True Type Fonts with LaTeX on a MikTeX system with WinEdT
  • comp-fonts-faq - Frequently Asked Questions from the comp.fonts newsgroup
  • chroma - A reference book of LaTeX colors
  • cyrguide - Documentation LaTeX Cyrillic-alphabet features
  • egplot - Encapsulate Gnuplot sources in LaTeX documents
  • epslatex - Guide to using Encapsulated PostScript graphics in LaTeX
  • fepslatex - French translation of the epslatex guide
  • fonteinf - A German translation of a guide by Javier Bezos on how to use fonts in LaTeX
  • fntguide - Documentation of commands for selecting fonts, as well as those for defining the data-structures used by the selection commands
  • fontinstallationguide - How to install new fonts
  • fontname - Karl Berry's scheme for naming fonts in TeX
  • grafik - A guide by Marco Duebendorfer on how to produce EPS graphics files for use with LaTeX on MS Windows platforms
  • grfguide - Guide to using graphics in LaTeX, including documentation on various packages including color and graphicx
  • metafont-beginners - An introductory tutorial for MetaFont
  • metafp - Some Experiences in Running METAFONT and MetaPost
  • MetaPost Examples - Example drawings using metapost
  • mfbook - The source of the MetaFontbook
  • neufont - A guide by Bjoern Lorenz on how to install new fonts (in German)
  • sprite - Macros to typeset simple bitmaps with LaTeX
  • svg-inkscape - How to include an SVG image in LaTeX using Inkscape
  • tipos - Description of fonts for TeX in Spanish
  • xetexfontinfo - A pair of documents to reveal the font features supported by fonts usable in XeTeX

 Mathematics:

 (La)TeX on Windows:

There are two guides for installing LaTeX on Windows in the first place: Joachim Schlosser provides a guide for a complete setup both in German and in English, while Viktor Witting, Maik Scherer, Florian Hibler, Johannes Schubert, Mathias Wasserthal, and Andreas Hirsch also supply a comprehensive guide to installing a complete MiKTeX system.

  • anleitung - A German introduction by Jens Weissenburger to using True Type Fonts with LaTeX on a MikTeX system with WinEdT

 Developing (La)TeX Packages:

  • clsguide - Documentation of commands (other than font-handling commands) that are useful when writing a LaTeX class or package
  • dialogl - Gathers together a bunch of code and examples about how to write macros to carry on a dialogue with the user
  • dtxgallery - A small collection of minimal DTX examples
  • How to Package Your LaTeX Package - Tutorial on writing .dtx and .ins files

 Publishing with TeX:

  • pwt - An outline of publishing with TeX, serving as a user manual for the BLUe format

 (La)TeX on the Web:

  • acrotex - How to generate PDF with TeX
  • webguide - Brief Guide to LaTeX Tools for Web publishing

 How to create PDF forms:

There is another guide on creating PDF forms by Thomas Feuerstack.

 (La)TeX vs. Word Processors:

LyX is an advanced alternative to word processors which is based on LaTeX.

You may also input text using OpenOffice Writer and later convert it to LaTeX, or HTML with Henrik Just's Java-based Writer2LaTeX.

The TUG offers an overview of converters from PC Textprocessors to LaTeX and vice versa. Some of the converters between LaTeX and word processor formats can be found on CTAN.

  • latex4wp - A LaTeX guide specifically designed for word processor users

 The Symbols available in (La)TeX:

See also the section on symbol fonts.

 Typesetting Tables:

  • tabsatz - A tutorial by Axel Reichert on typessetting tables with a some examples (in German)

 Managing Bibliographies:

 TUGboat:

  • tugboat-toc - The complete accumulation of TUGboat tables of contents

 Typography:

  • typografie - A tutorial on typography by Axel Reichert (in German)

 Tips for using fancyhdr:

  • fancyfolien - A guide by Hans Friedrich Steffani on how to use the fancyhdr package (in German)

 Tips for using Floats:

  • gleitobjekte - Tutorial from a DANTE meeting in November 1997 on floats and their placement, captions, inclusion of graphics, lettering of graphics, layout of tables and large amounts of numerical data

 Components of TeX:

  • components - An introduction to the components and files users of TeX get in contact with by Joachim Schrod

 The TeX Directory Structure documentation:

  • tds - The TeX Directory Structure documentation

 Standards for DVI files

  • dvistd - A standard for DVI drivers

 Book Reviews:

 Publicity for (La)TeX:

 Donald E. Knuth's Own Documentation of TeX and Metafont:

  • knuth-base - Knuth's own documentation, including the TeX book and the MetaFont book
  • knuth-errata - Details of problems reported in the Computers and Typesetting series of books

 

 Alternative Document Classes

These class files provide an alternative to the usual LaTeX article, report, or book classes. They are used to change document layout in general and they usually provide some special features, as well. You should check the class file documentation first to make sure whether you can use options or commands that are part of the respective class file before considering the use of one of the packages listed below in alphabetical order.

There are some alternatives to letter.cls, too, for writing letters and faxes.

There are also classes for typesetting theses and papers for scientific journals which also might be of interest to users of TeX in general.

 CJW:

  • cjw - A bundle of packages and classes, including letter and envelope classes, and several packages of a general nature

 KOMA-Script:

  • hc - Provides replacements for the default LaTeX classes, based upon the koma-script bundle and the seminar class
  • koma-moderncvclassic - Makes the style and command of moderncv (style classic) available for koma-classes and thus compatible with biblatex
  • koma-script - A drop-in replacement for the article/report/book/letter classes with emphasis on European rules of typography and paper formats as laid down by Tschichold
  • koma-script-examples - Examples from the KOMA-Script book
  • koma-script-examples-3 - Examples from the 3rd edition of the KOMA-Script book
  • koma-script-examples-4 - Examples from the 4th edition of the KOMA-Script book
  • koma-script-obsolete - Provides copies of old versions of packages in the current koma-script bundle
  • koma-script-sfs - Koma-script letter class option for Finnish
  • scraddr - The package uses adr-files to generate circular letters. The package provides commands to read the adr-files and to use the data of the address entries, not only with scrlttr2 class and not only for circular letters
  • scrartcl - Koma-Script article class
  • scrbase - Provide basic features for KOMA-Script that may also be useful to authors and users of other classes and packages
  • scrbook - Koma-Script book class
  • scrdate - The package provides several operations with calender dates, such as to show the century or the decade of a year, calculate the day of the week of a given calender date, show the current calender date in ISO form
  • scrextend - Makes some features of the KOMA-Script classes available for other classes, e.g., for the standard classes
  • scrindex - Make index package work with Koma-script classes
  • scrjrnl - Typeset diaries or journals, based on scrbook
  • scrjura - koma-script support for lawyers, including environments for typesetting contracts, codes of law, decisions, and other legal documents
  • scrlayer - Manage text layers within Koma-Script, providing control of background and foreground layers for a page style description
  • scrlayer-notecolumn - Control note columns parallel to the main text; provides similar facilities to those of the LaTeX \marginpar command, extending them to more than a single column
  • scrlayer-scrpage - Define and manage page styles
  • scrlfile - Installation control for koma-script packages
  • scrlttr2 - Koma-Script letter class
  • scrpage2 - Control of page headers and footers in LaTeX for koma-script
  • scrreprt - Koma-Script report class
  • scrtime - Provides time information for the current LaTeX run
  • scrwfile - Use LaTeX .aux file in place of \newrite files
  • typearea - Set page margins; part of the koma-script bundle

 Memoir:

  • memoir - Typeset fiction, non-fiction and mathematical books; provides a variety of predefined page, chapter and caption styles and easy means of creating new ones

 NCC-LaTeX:

  • ncclatex - Another extended general-purpose class whose extensions are provided in a package which may be used with the standard classes themselves
  • ncctools - A bundle of packages loaded by the ncclatex document class that may also be used independently with other classes

 NTG Class:

  • ntgclass - Versions of the standard LaTeX article and report classes, rewritten to reflect a more European design

 Octavo:

  • octavo - A modification of the standard LaTeX book class to typeset books following classical layout and design principles, implementing many of the proposals and insights of especially Jan Tschichold and Hugh Williamson

 Refman:

  • refman - A document class for writing technical reference manuals offering a wide left margin for notes to the reader, like some of the manuals distributed by Adobe, available for articles and reports

 

 Document Structure

 Document and Section Titles:

  • alnumsec - Alphanumeric section numbering similar to alphanum, but you may use the standard LaTeX sectioning commands
  • alphanum - Permits alphanumeric section numbering
  • authblk - A LaTeX2e package to redefine the \author command to work as normal or to allow a footnote style of author/affiliation input
  • bsheaders - Implements chapter headers in sans-serif and bounded by lines \textwidth wide, both above and below the header itself.
  • coverpage - Automatic cover page creation for scientific papers with BibTeX data and copyright notice
  • endheads - Running headers of the form "Notes to pp.xx-yy" for endnotes
  • fncychap - Six predefined chapter heading styles
  • nccsect - A re-implementation of sections, captions and tocs
  • sectionbox - create fancy boxed ((sub)sub)sections, primarily for posters
  • sectsty - Control sectional headers
  • titlefoot - Add special material to footer of title page
  • titleref - Cross-reference section (and chapter, etc) titles and captions just like \ref and \pageref
  • titles - Defining macros that typeset the titles of books, journals, etc. and handle following spacing and punctuation intelligently
  • titlesec - Select alternative section titles
  • titletoc - Alternative headings for toc/tof/tol
  • titling - Control over the typesetting of the \maketitle command
  • wordlike - Provides word-like settings for page margins, section headings, and fonts

 Abstract:

  • abstract - Control the typesetting of the abstract environment

 Table of Contents:

  • autotoc - Table of contents in Plain TeX
  • crossreference - The package defines cross-references, which may be listed in a table of cross-references
  • minitoc - Produce a table of contents for each chapter
  • multitoc - Set table of contents in multiple columns
  • shorttoc - Table of contents with different depths
  • titletoc - Alternative headings for toc/tof/tol
  • tocbibind - Add bibliography/index/contents to Table of Contents
  • tocloft - Control table of contents, figures, etc.
  • tocvsec2 - Section numbering and table of contents control

 Changing the Counting of Chapters:

  • alnumsec - Alphanumeric section numbering similar to alphanum, but you may use the standard LaTeX sectioning commands
  • anonchap - Make \chapter s be typeset like sections
  • alphanum - Permits alphanumeric section numbering
  • koma-script - A drop-in replacement for the article/report/book classes with emphasis on European rules of typography and paper formats as laid down by Tschichold
  • tocvsec2 - Section numbering and table of contents control

 Crossreferences:

  • checklab - A patch for the label-checking code
  • cleveref - Format references according to the type of label being referred to and typesetting references to lists of multiple labels
  • crossreference - The package defines cross-references, which may be listed in a table of cross-references
  • cwebhy - Insert hyperlinks for included files
  • dmhgener - Equation, figure (etc.) numbering and referencing
  • drftcite - Print the tags instead of the numbers for \cite and \bibitem
  • labelcas - Testing whether labels exist in a document
  • lastpage - Reference last page for Page N of M type footers
  • prettyref - Additional functionality for the LaTeX2e label--reference mechanism, allowing the "preformat" of all types of labels; compatible with hyperref and other packages
  • modref - Customisation of cross-references in LaTeX
  • nameref - Make reference to section names, etc.
  • pagerange - Flexible and configurable page range typesetting
  • refcheck - Check references (in figures, table, equations, etc)
  • showkeys - Show label, ref, cite and bib keys
  • showlabels - Show label commands in the margin
  • titleref - Cross-reference section (and chapter, etc) titles and captions just like \ref and \pageref
  • totpages - Access last page number and page mark of last page
  • ut-backref - A version of bachref which adds to bibliography entries an entry saying where this particular reference was cited
  • varioref - Intelligent page references
  • xr - References to other LaTeX documents

 Footnotes, Endnotes, and Margin Notes:

There are some packages for working on critical editions for those interested in the Humanities.

  • authblk - A LaTeX2e package to redefine the \author command to work as normal or to allow a footnote style of author/affiliation input
  • bigfoot - Footnotes for critical editions
  • dblfnote - Sets the footnotes of a single-column document in two columns; part of the yafoot package
  • edmargin - Multiple series of endnotes for critical editions
  • endheads - Provides headers for the pages containing endnotes and more features for formatting these
  • endnotes - Accumulates footnotes and places them at the end of the document
  • fixfoot - Multiple use of the same footnote text
  • fn2end - Defines macros which convert footnotes to produce endnotes
  • fnpara - Typeset footnotes in run-on paragraphs, instead of one above another
  • fnpara-pln - Typeset footnotes in run-on paragraphs, instead of one above another
  • fnpos - Controls the positions of footnotes, in circumstances where the footnote would ordinarily attach itself to the bottom of the text (rather than the bottom of the page) as in the bottom option of the footmisc package
  • fnbreak - Detects footnotes that are split over several pages, and writes a warning to the log file
  • fnlineno - Extends the lineno package so that even lines within a \footnote are numbered and may be referred to
  • fnote - Auto-numbered footnotes in Plain TeX
  • fnpct - Moves footnote marks after following punctuation (comma or full stop), and adjusts kerning as appropriate. As a side effect, a change to the handling of multiple footnotes is provided.
  • footbib - A package to put bibliographic references as footnotes
  • footmisc - Captures as package options much (if not all) of the functionality of the various other footnote packages
  • footnote - Provides commands for handling footnotes rather more fluently than LaTeX manages. Also provides footnote and footnotetext environments which you can put verbatim inside.
  • footnotebackref - Provides the means of creating hyperlinks, from a footnote at the bottom of the page, back to the occurence of the footnote in the main text
  • footnoterange - Multiple footnotes inside the environments provided by this package are referenced as a range, not individually
  • footnpag - Allows footnotes on individual pages to be numbered from 1, rather than being numbered sequentially through the document
  • ftn - LaTeX document-style option to make footnotes available in any environment, except inside floats
  • ftnright - Footnotes in two column documents
  • ftnxtra - The package treats footnotes in \caption , the tabular environment, and \chapter and other \section -like commands
  • manyfoot - Add footnote levels to the standard LaTeX's footnote mechanism
  • marginal - Extensions to \marginpar handling
  • marginnote - Typesetting margin notes inside floats, footnotes, or frames made with the framed package
  • nccfoots - Implements commands for generating footnotes marked by hands
  • pagenote - Provides tagged notes on a separate page (also known as "end notes")
  • savefnmark - Save name of the footnote mark for reuse
  • tamefloats - Experimental use \holdinginserts with LaTeX floats
  • titlefoot - Add special material to footer of title page
  • yafoot - Enclose footnote numbers within a page; control the position of footnotes; and make footnotes double-columned

 Appendix:

 

 Formatting

 Enumerating and Listing Items:

  • desclist - Implements a desclist environment, which is similar to the description environment, but offers more flexibility in formatting labels
  • engrec - Enumerate with lower- or uppercase Greek letters
  • enumerate - Adds an optional argument to the enumerate environment which determines the style in which the counter is printed
  • enumitem - Control layout of itemize, enumerate, description
  • eqlist - Provides a list environment which sets a description-like list but with the difference that the indentation corresponds to the longest item of the list
  • etaremune - Implements the etaremune environment which is similar to the enumerate environment, except that labels are decreasing instead of increasing, similar to the revnum package
  • expdlist - Provides additional features to the LaTeX description environment, such as changing the left margin, or breaking a list for a comment without touching any counters
  • mdwtools - A collection of tools that also includes support for list handling
  • multenum - Multi-column enumerated lists
  • paralist - Provides enumerate and itemize environments that can be used within paragraphs to format the items either as running text or as separate paragraphs with a preceding number or symbol
  • revnum - Provides a reverse-enumerate environment where all items are numbered in reverse order
  • shortlst - Provides four environments for typesetting lists of short items which may be laid out horizontally to save space

 Verbatim Input and Quoting:

  • alltt - A verbatim environment other commands, and environments can appear within
  • attrib - A LaTeX package defining \attrib, which attributes block elements, for example when citing a reference after a block quotation
  • balancedquotes - Provides simplified markup for balanced quotes that will appear as balanced double quotes around a text which embeds a text surrounded by balanced single quotes
  • bbfig - A Bourne shell script that prints its input surrounded by its bounding box
  • blkcntrl - Provides pre- and post-hooks in verse, quote, and quotation environments, and in footnotes as well as a command to set block quotations one size smaller than the main text
  • breakurl - Line-breakable \url-like links in hyperref when compiling via dvips/ ps2pdf
  • code - Uses the verbatim package to typeset code
  • csquotes - Provides commands for smart, or "context-sensitive" quoting
  • dirtytalk - Provides a macro to typeset quotations, using the command \say. The quotation mark glyphs are inserted by the macro; nested quotations are detected.
  • epigraph - A package for typesetting epigraphs, i.e. the pithy quotations often found at the start (or end) of a chapter
  • eplain - extended version of the plain format
  • examplep - Provides ophisticated features for typesetting verbatim source code listings, including the display of the source code and its compiled LaTeX or METAPOST output side-by-side
  • extract - Extract parts of a LaTeX document and write to another document
  • fancyvrb - Sophisticated handling of verbatim text
  • list - List ASCII text files
  • footnote - Provides commands for handling footnotes rather more fluently than LaTeX manages. Also provides footnote and footnotetext environments which you can put verbatim inside.
  • listing - Produce formatted program listings
  • listings - Typeset programming code within LaTeX using different styles, e.g., default is bold for keywords, italic for comments and no special style for strings, including support for hyperref
  • llist - List ASCII text files in landscape
  • javadoc - The package is related to the javadoc system for documenting Java source (and source of other programming languages); its output is LaTeX
  • manuscript - Emulate look of a document typed on a typewriter
  • moreverb - Extended verbatim
  • nicetext - Minimal markup for simple text (Wikipedia style) and documentation
  • quotchap - Creating decorative chapter headings with quotations
  • quotes - Translates plain text input into English quotes "..."
  • stdpage - Standard pages with n lines of at most m characters each
  • showexpl - Provides a way to typeset LaTeX source code and the related result in the same document side-by-side
  • upquote - Show "realistic" quotes in verbatim
  • url - Verbatim with URL-sensitive line breaks
  • verbatim - A reimplementation of the LaTeX verbatim environment that also provides a comment environment and a command for typesetting the contents of a file, verbatim
  • verbatim-gen - Generic macros for setting text verbatim
  • verbatimcopy - Enables LaTeX to take a verbatim copy of one text file, and save it under another name
  • vrb - Verbatim macros via plain TeX

 Underlining, Letterspacing, Changing Fontsize, etc.:

  • arcs - Draw arcs over and under text
  • dashundergaps - Underline text with dotted or dashed lines and generate fill-in blocks for student evaluation sheets
  • doublespace - Obsolete package for double space environments superseded by setspace
  • nccstretch - Insert a stretch between each token of a string
  • relsize - Set the font size relative to the current font size
  • setspace - Set space between lines
  • smaller - Allows switching from one LaTeX fontsize to the next smaller, or larger one in LaTeX 2.09, thus superseded by relsize
  • soul - Hyphenation for letterspacing, underlining, and more
  • subscript - Provides the textsubscript command (analogous to textsuperscript in standard LaTeX2e)
  • subsupscripts - Provides some new more flexible commands to typeset subscripts and superscripts in mathematical mode
  • textfit - Package to support fitting of text to a given width or height by scaling the font
  • tracking - Automatically adjust spaces between symbols in words or phrases to fit them into a specified length
  • truncate - Truncate text to a specified width
  • ulem - Package for underlining
  • umoline - Underlines text allowing line breaking
  • underlin - Package for underlining

 Raggedright and Raggedleft Typesetting

  • ragged - Ragged left and ragged right options
  • ragged2e - Defines new commands which set ragged text and are easily configurable to allow hyphenation. raggedr is part of this package.

 Formatting Paragraphs

  • hanging - Facilitates the typesetting of hanging paragraphs
  • shapepar - A macro to typeset paragraphs in specific shapes (heart, diamond, etc.)

 Creating Boxes

  • boites - Defines environments that allow page breaks inside framed boxes and include a few examples (shaded box, box with a wavy line on its side, etc.)
  • boxedminipage - A package that produces a minipage with a frame around it
  • boxhandler - Flexible Captioning and Deferred Box/List Printing
  • boxit - Draw a box around a text, pretty much as in the TeXbook
  • boxit-ltx - An environment for boxing things, including verbatim text
  • eqparbox - Create equal-widthed parboxes
  • fancybox - Provides variants of \fbox for boxing mathematics, floats, center, flushleft, and flushright, lists, and pages
  • framed - Framed or shaded regions that can break across pages
  • shadbox - Shade the background of any box (text, figure, table, etc.)

 

 Page Layout

 Page Margins:

  • a4 - Obsolete support for A4 paper sizes
  • a4wide - Increases width of printed area of an a4 page
  • a5comb - Support for a5 paper sizes superceded by the
  • anysize - A simple package to set up document margins (obsolete)
  • chngpage - Change the page layout in the middle of a document
  • context-typearea - The module provides a command that calculates the page layout as the LaTeX package typearea does
  • fullpage - Sets all 4 margins to be either 1 inch or 1.5 cm, and specifies the page style
  • geometry - Flexible and complete interface to document dimensions
  • hoffset-voffset - Calculate values for hoffset and voffset for centering a page
  • mparhack - Implements a workaround for the LaTeX bug that marginpars will sometimes come out at the wrong margin
  • randbild - Put small pictures into page margin
  • rmpage - Change page layout parameters in LaTeX
  • savetrees - Pack as much text as possible onto each page of a LaTeX document
  • sober - Reduces the amount of white space on the page by reducing the size of various skips
  • stdpage - Standard pages with n lines of at most m characters each
  • textfit - Package to support fitting of text to a given width or height by scaling the font
  • typearea - Set page margins; part of the koma-script bundle
  • vmargin - Set various dimensions
  • wordlike - Provides word-like settings for page margins, section headings, and fonts
  • zwpagelayout - Page layout and crop-marks

 Page Headings:

scrpage2 is another package for manipulating page headings and footers that comes with the koma-script bundle.

  • fancyhdr - Extensive control of page headers and footers in LaTeX2e
  • fancyfolien - A guide by Hans Friedrich Steffani on how to use the fancyhdr package (in German)
  • rplain - A predecessor to fancyhdr, redefining the plain pagestyle
  • scrpage2 - Control of page headers and footers in LaTeX for koma-script

 Landscape Format:

  • lscape - Place selected parts of a document in landscape
  • twoinone - Print two pages on a single page (a4paper landscape)
  • twoup-gen - Macros to print two virtual pages on each physical page
  • twoupltx - Print two virtual pages on each physical page

 Typesetting Posters:

  • a0poster - Provides fonts in sizes of 12pt up to 107pt and also makes sure that in math formulas the symbols appear in the right size
  • flowfram - Create text frames for posters, brochures or magazines
  • poster - Scale PostScript images for larger media or tiling
  • poster-mac - Make posters and banners with TeX
  • sciposter - Make posters of ISO A3 size and larger
  • sectionbox - Create fancy boxed ((sub)sub)sections.
  • textpos - Place boxes at abitrary positions on the LaTeX page

 Cropmarks:

  • crop - Provides corner marks for camera alignment as well as for trimming paper stacks, and additional page information on every page if required
  • cropmark - Crop marks on \shipout
  • cropmarks-pt - Philip Taylor's cropmarks macros
  • cropmark-pu - Cropmark macros for Plain TeX
  • evautofl - Pages with cut lines and punch marks as part of the calendar package
  • zwpagelayout - Page layout and crop-marks

 

 Using Grids for Managing Layout:

See also Packages for drawing graph paper and grids, questionnaires, and for typesetting crossword puzzles and Sudoku grids.

  • eso-pic - Adds one or more user commands to LaTeX's shipout routine, which may be used to place the output at fixed positions. The grid option may be used to find the correct places
  • grid - Helps to enable grid typesetting in double column documents
  • grid-system - provides the means for LaTeX to implement a grid system as known from CSS grid systems, useful for creating box layouts as used in brochures
  • gridset - Helps to get the information needed for grid setting, also known as strict in-register setting. It does not implement auto grid setting, but there is a command \vskipnextgrid, that moves to the next grid position.
  • lpic - Defines a convenient interface to put any LaTeX material on top of included graphics. In a draft mode, the package en­ables you to draw a coordinate grid over the picture for easy adjustment of positions of the annotations.
  • ltxgrid - Provides commands that switch to one- or two-column setting, balancing columns on exit from two-column setting and, other than the multicol package, imposing no restrictions on the insertion of floats
  • overpic - LaTeX commands can be placed on the graphic of an overpic environment at defined positions; a grid for orientation is available.
  • pageframe - Page frames, grids, etc., for LaTeX 2.09
  • pagegrid - Puts a grid on the paper for developers of a class or package who have to put elements on definite locations on a page (e.g. letter class), allowing for a faster optical check, whether the positions are correct
  • pas-tableur - Provides commands for creating a grid of rectangles, and commands for populating locations in the grid using PGF/TikZ
  • placeat - Allows LuaLaTeX users to position arbitrary content on an absolute coordinate system anywhere on a page
  • textpos - Place boxes at arbitrary positions on the LaTeX page, e.g., to help the creation of large-format conference posters
  • typogrid - Draws a grid on every page of the document; the grid di­vides the page into columns, and may be used for fixing measurements of layout
  • vgrid - Overlay a grid on the printed page whose spacing is \baselineskip, which offers guidelines for considering the "rhythm" of the document on the page
  • xyling - Drawing linguistic tree structures positioned relative to a grid.

 

 Page Numbers

  • chappg - Package for page numbering by chapter
  • count1to - Set count1 to count9 for selecting pages with a driver or for accessing certain pages in a document
  • lastpage - Reference last page for "Page N of M" type footers
  • pageno - A package that can re-define the plain page style under the control of options, so you can have page numbers: at the top or bottom of the page; in the inside corner, outside corner, or in the middle
  • pagerange - Flexible and configurable page range typesetting

 

 Manipulating Counters

  • alphalph - Converting numbers to letters, like \number but the expansion consists of lowercase and uppercase letters respectively
  • arabic - Read a lower-case roman number
  • automagic - Automagic numbering in Plain TeX
  • chngcntr - Change the resetting of counters
  • count1to - Set count1 to count9 for selecting pages with a driver or for accessing certain pages in a document
  • dcounter - Support dynamic counters
  • declare - Declare register names locally
  • engord - Converts numbers to English ordinal numbers (1st, 2nd, 3rd, ...)
  • engrec - Enumerate with lower- or uppercase Greek letters
  • romanneg - Roman neg.
  • romannum - Changes LaTeX generated numbers to be printed with roman numerals instead of arabic digits
  • zahl2string - Format numbers as German words

 

 Line and Paragraph Numbers

There are packages for working on critical editions.

  • fnlineno - Extends the lineno package so that even lines within a \footnote are numbered and may be referred to
  • ledpar - An extension of ledmac enabling parallel typesetting in columns or on facing pages and line numbering.
  • lineno - Line numbers on paragraphs
  • numline - Macros for numbering lines
  • vruler - A package for adding a vertical numbering to the general text so that the text can be properly referenced. The vertical ruler can be scaled and moved freely

 

 Columns in a Page

  • balance - Balanced two-column mode
  • balanced - Defines a twocolumns environment that can be used anywhere in a one-column document; columns are always balanced
  • cuted - Mixing onecolumn and twocolumn modes at any place of page
  • dblfloatfix - Fixes for floats in a twocolumn document
  • doublecol - Double-column page macros for Plain TeX
  • fix2col - Fix miscellaneous two column mode features
  • flushend - Columns balancing at last page
  • ftnright - Footnotes in two column documents
  • mhequ - Multicolumn equations, tags, labels, sub-numbering
  • midfloat - Mixing onecolumn and twocolumn modes at any place of page
  • multicol - Intermix single and multiple columns
  • parallel - Typesetting two languages side-by-side
  • parcolumns - Provides an environment for typesetting text in two or more parallel columns (as for example, in a multiply translated text)

 

 Tables

See also packages for floats.
There are guides to typesetting tables.
There is Calc2LaTeX for converting OpenOffice spreadsheets to LaTeX tables.

 Typesetting Long Tables:

  • bigtable - Multi-page tables in Plain TeX
  • bigtabular - Tabulars that can split at page boundaries
  • longtable - Support for tables longer than a page. Generally easier to use, and more flexible than supertabular
  • ltablex - Modifies the tabularx environment to combine the features of the tabularx package (auto-sized columns in a fixed width table) with those of the longtable package (multi-page tables)
  • ltxtable - Longtable and tabularx merge
  • supertabular - A multi-page tables package
  • xtab - An extended version of supertabular to automatically break tables across pages and includes extra functionality

 Formatting Decimal Columns:

  • comma - A flexible package that allows commas (or anything else) to be inserted every three digits in a number, as in 1,234
  • dcolumn - Align on the decimal point of numbers in tabulars
  • decimal - LaTeX package for the traditional English decimal point, instead of the American-style period
  • numprint - Print numbers with a separator every three digits
  • rccol - Provides right-centered numbers; furthermore, rounding to the desired precision is possible
  • warpcol - Defines a tabular column type for formatting numerical columns in LaTeX

 Adding some Colour to Tables:

There are packages for colour and shading in general.

  • colortab - Shade, or colour cells of tables and halign
  • colortbl - Allows rows and columns to be coloured, and even individual cells
  • shadbox - Shade the background of any box (text, figure, table, etc.)

 Misc:

  • array - Arrays and tables with formatted columns
  • Array Maker - A program for making latex and xypic arrays
  • arydshln - Horizontal and vertical dashed lines in arrays and tabulars
  • autotab - Generating tabular setups
  • bigdelim - May be used to place multi-row delimiters inside a tabular or array, in cooperation with the ctable - Easily typeset centered tables multirow package
  • bigstrut - Struts for opening up tabular spacing
  • blkarray - Extended array and tabular
  • booktabs - Nicer layout of tables
  • btable - Bordered tables in plain TeX
  • cellspace - Ensure minimal spacing of table cells
  • cellular - Cellular table construction
  • csvtools - Allows you to repeatedly perform a set of LaTeX commands on data in each row of a comma separated variable (CSV) file
  • delarray - Add delimiters (parentheses etc.) around arrays, including nesting brackets
  • easybmat - Writing block matrices with equal column widths or equal rows heights or both, with various kinds of rules between rows and columns
  • easyeqn - Introduces some equation environments that simplify writing of equations
  • easytable - Tables with equal column widths or equal rows heights or both, with various kinds of rules (lines) between rows and columns
  • eqnarray - Defines an equationarray environment, that allows more than three columns, but otherwise behaves like LaTeX's eqnarray environment
  • Excel-to-LaTeX - Convert Excel spreadsheets to LaTeX tables (works with Excel up to Excel 97)
  • ftcap - Allows \caption at the beginning of a table-environment
  • hhline - Better horizontal lines in tabulars and arrays
  • hvdashln - Definitions of horizontal and vertical dashed lines for the array and tabular environment
  • LaTable - A near-WYSIWYG editor for LaTeX tables
  • multirow - Creates tabular cells spanning multiple rows
  • savefnmark - Save name of the footnote mark for reuse
  • slashbox - Defines commands to produce tabular cells with diagonal lines in them, with text above and below the line to label the column and row that the cell is in
  • tabls - Better vertical spacing in tables and arrays (tabular lineskip)
  • tabularx - Tabulars that widen automatically
  • tap - An easy TeX macro package for typesetting complex tables
  • threeparttable - Tables with captions and notes all the same width

 

 Floats

See also the packages for including graphics and tables.

  • algorithm2e - An environment for writing algorithms, defining an algorithm as a floating object
  • algorithms - Defines a floating algorithm environment
  • boxhandler - Flexible Captioning and Deferred Box/List Printing
  • captcont - Retain float number accross several floats
  • caption - Extends caption capabilities for figures and tables
  • caption2 - Another version of the caption package, now again superseded by caption
  • capt-of - Putting captions to something that's not a float
  • captcont - Retain float number accross several floats
  • captdef - Declare free-standing \caption commands
  • ccaption - Continuation headings and legends for floats
  • dblfloatfix - Fixes for floats in a twocolumn document
  • dmhgener - Equation, figure (etc.) numbering and referencing
  • dpfloat - Support for double-page floats
  • endfloat - Move floats to the end with markers where they belong
  • figcaps - Collect figure captions for later printing
  • float - Improved interface for floating objects (defining your own floats and improving the behaviour of the old ones)
  • floatfig - Allows text to be wrapped around figures
  • floatflt - Float text around figures and tables which do not span the full width of a page, improving upon floatfig
  • floatrow - Extension or addition for float package which offers possibilities to put floats side by side, to put a caption beside a float. All floats of one type appear in one layout.
  • hangcaption - Defines a variant of the caption command to produce captions with hanging indentation
  • ftcap - Allows \caption at the beginning of a table-environment
  • graphfig - Combines the tools of the graphic, subfigure and float packages in a way that makes their use simpler and more robust
  • here - Provides the H option for floats in LaTeX to mean that the float should really be placed here
  • hvfloat - Rotating caption and object of floats in different ways
  • hypcap - Adjusting the anchors of captions with the hyperref package
  • marginnote - Typesetting margin notes inside floats, footnotes, or frames made with the framed package
  • mcaption - Provides a margincap environment to put figure or table captions in the margin
  • nonfloat - Non-floating table and figure captions
  • photo - A float environment for photographs
  • refcheck - Check references (in figures, table, equations, etc)
  • rotfloat - A package for rotating floats
  • sidecap - Typeset captions sideways
  • stfloats - Floating baselineskip, footnotes below the floats, dblfloats at bottom
  • subfigure - Generates sub-figures within one normal figure
  • subfloat - Enables sub-numbering of different floats (figures and tables) similar to the subequations divided into subfigures
  • topcapt - Place captions above figures and tables
  • trivfloat - Provides a quick method for defining new float types in LaTeX
  • wrapfig - Produces figures which text can flow around

 

 Creating Indices and Glossaries

  • abbr - Simple macros supporting abreviations for Plain and LaTeX
  • abbrevs - A LaTeX package defining "abbreviation macros," which expand to defined text and insert following space intelligently, based on context
  • acromake - Defines a command that will expand to an acronym and its definition (on first use) and just the acronym thereafter
  • acronym - Ensures that all acronyms used in the text are spelled out in full at least once; provides an environment to build a list of acronyms
  • addindex - A C/Lex program for adding index entries to LaTeX document
  • appendix - Extra control of appendices
  • authorindex - A package to generate a list of all authors cited in a document along with a list of pages where these citations occur
  • corridx-latex - Correct index entries for chemical compounds
  • corridx-obsolete - A preprocessor for correcting index entries so as to make sorting with makeindex easier, available as Pascal source and Windows binaries
  • esindex - Typset index entries in Spanish documents
  • forindex - Generating and deleting \index entries automatically
  • gloss - Create glossaries using BibTeX
  • glossary - An obsolete package that supports generation of a glossary with makeindex; use glossaries instead
  • glossaries - supports generation of of a glossary; supersedes the now obsolete glossary package
  • glosstex - Atomatic preparation of glossaries; combines the functionality of acronym and nomencl
  • idxlayout - Configurable index layout, responsive to KOMA-Script and memoir
  • index - Extended index for LaTeX including multiple indexes
  • hvindex - Simplifies the indexing of words using the \index command of makeidx
  • juraabbrev - Handle abbreviations for typesetting (German) juridical documents
  • makeglos - Include a glossary into a document
  • makeidx - Standard LaTeX package for creating indexes
  • makeindex - A general purpose hierarchical index generator
  • mwrite - Write information to auxiliary files
  • nomencl - Produce lists of symbols as in nomenclature using the makeidx program
  • repeatindex - Repeat items in an index after a page or column break
  • splitindex - Unlimited number of indices
  • toolbox - A package for (La)TeX which provides some macros which are convenient for writing indices, glossaries, or other macros
  • xeindex - A package based on xesearch that automatically indexes words or phrases in a XeLaTeX documents
  • xesearch - A string finder for XeTeX

 

 Bibliography

For showing \cite and \bibitem crossreferences use the drftcite package.

 BibTeX:

Jean-Olivier Irisson provides a LaTeX Bibliography Styles Database if you are looking for a particular bibliography (BibTeX or amsrefs) style for use with a journal you wish to publish your paper in.

  • amsrefs - A LaTeX-based replacement for BibTeX
  • bibtex - Bibliography management for LaTeX which allows the user to store his citation data in generic form, while printing citations in a document in the form specified by a BibTeX style, to be specified in the document itself
  • bibtex8bit - A fully 8-bit adaptation of bibtex 0.99
  • camel - Comprehensive bibliography manager, especially for anglo-saxon legal texts
  • macbibtex - A port of bibtex which is distributed with OzTeX for the Macintosh OS

 BibLaTeX:

  • biber - A BibTeX replacement for users of biblatex with full UTF-8 support and many more features
  • biblatex - A complete reimplementation of the bibliographic facilities provided by LaTeX in conjunction with bibtex, including multiple and multi-lingual bibliographies
  • biblatex-apa - Biblatex citation and reference style for APA
  • biblatex-authoryear-icomp-tt - Author-year style with compact multiple-reference-citations and ibidem mechanism for biblatex
  • biblatex-bwl

Leave a Comment

(0 Comments)

Your email address will not be published. Required fields are marked *