この記事は,TeX & LaTeX Advent Calendar 2019の18日目の記事になります。17日目は t_kemmochi さんによるLaTeXの数式を映えさせるでした。 Texas State Library and Archives. If this page has been helpful, you can support us! Select any options that you want. Click OK. %\setlength\@lnumwidth{4zw}% 元1.5em [2003-03-02], %3 expands the \csname inside \end, 部誌は各自が記事を持ち寄る形式である。よって,記事ごとに子ファイルを作成し,これを読み込むが,このときにのみ目次に書き込まれるようにしたい, you can read useful information later efficiently. \l@section{\numberline{(セクション番号)} セクション}{(ページ番号)}と展開されます。\l@sectionはjsarticle.clsにて以下のように定義されています。, ここで実際に目次の出力が実行されています。ちなみに,jsarticle.clsには他にも\l@part,\l@subsection,\l@subsubsectionなど色々定義されています。, 今度は\subsectionの定義ですが,\sectionと大差ありません。\subsectionは,jsarticle.clsで以下のように定義されています。こちらの場合も\if@twocolumnがtrueの場合について言及しています。, ここから分かるとおり,\subsectionも同様に\@startsectionに展開されます。その後は同じような処理が行われます。ただ,subsectionなので,目次に書き出されるときに最終的に実行されるのは\l@sectionではなく\l@subsectionになります。, まずは\endの定義を探します。こちらもそれらしきものがlatex.ltxにありました。, よって,\enddocumentの定義を探します。latex.ltxを参照しました。, 長々とお付き合いくださりありがとうございました。では,ここまでの議論を踏まえて,最初にお示ししたファイルを実行したときにどういう挙動になるかを順に追ってみます。(なお,TL2019のuplatex+dvipdfmxを使用しています。), はじめに,\begin{document}で\jobname.auxが存在しないですから,これを作り\relaxを書き込みます。その後,\tableofcontentsで\jobname.tocが存在しないですから,これを作ります。(目次部分は空のまま)次に,\section{セクション}でauxファイルに対して,\@writefile{toc}{\contentsline {section}{\numberline {1} セクション}{1}\protected@file@percent }と書き出します。次に,\subsection{サブセクション}でauxファイルに対して,\@writefile{toc}{\contentsline {subsection}{\protect\numberline {1.1} サブセクション}{1}\protected@file@percent }と書き出します。(カウンタ類は実際に実行した際の数値を入れています), 最後に\end{document}を実行します。こちらは\jobname.auxを読み込んでいます。つまり,上で示したコードが実行されます。なお,\@writefileは以下のように定義されています。, 2度目も同様に実行されます。ただし,すでにauxとtocファイルが存在しているので,そこは挙動が異なります。, はじめに,\begin{document}で\jobname.auxが存在しますから,これを実行した後に空にして\relaxを書き込みます。その後,\tableofcontentsで\jobname.tocを読み込み,目次を組み立てます。以下は同様なので省略します。, ここまで,解析を行ってきましたが,カスタマイズをする上では以下のようにしたいと考えました。ちなみに,カスタマイズは大学のサークルの部誌を作るために行いました。, まず,1点目が難しいハードルでした。例えば,先ほど述べたことから,記事を\addcontentsline{toc}{kiji}{ほげ}などとしたうえで,\l@kijiを定義すればその部分の出力は問題なく出来るでしょう。しかし,その場合は\sectionを使用した際の目次への出力の抑制が出来ません。(使用しなければ良いと言われればそれはそうなのですが・・最終的には結局使わないようにしました。), また,3点目の引数の不足も,現状の提供されている仕組みでは不可能だという結論に至りました。というわけで,以下のようなオリジナルの命令を定義しました。(部誌で使用したのとは少しコードを書き換えています), このように,contentslineを書き換え,引数が正しく(望まれた物が)与えられている場合のみ目次が出力される機構を考えました。, 細かい引数の情報などは省略しますが,このようにして引数の数を拡張しました。ちなみに,\@記事見出しは見出しを出力するために定義したコマンドになります。, 実際にLaTeXで使われているコマンドを解析することでここまでカスタマイズできるのか,と思うとわくわくします。来年こそはもっと面白い記事を出したいです・・・最後までお付き合いくださりありがとうございました。. LibreOffice was based on OpenOffice.org. Rerun to get cross-references right. Choose Insert - Table of Contents and Index - Table of Contents, Index or Bibliography, and then click the Type tab. Choose Insert - Table of Contents and Index - Table of Contents, Index or Bibliography, and then click the Type tab. Their respective logos and icons are also subject to international copyright laws. 1. LaTeX で作成した文章の目次を出力するには \tableofcontents コマンドを使用します.. Box 12927 Austin, TX 78711. Information and statistics on maternal mortality and morbidity in Texas can be found on the DSHS Maternal and Child Health section website: DSHS Maternal and Child Health でタイプセットしましょう。 そうすることで,目次に索引のページ番号が表示されます。 拡張子を省略していますが,そのほうが楽でしょう。 具体的には. LaTeX内部での情報の参照に利用されるファイルです.おもに 目次 や参考文献 などをつけたり する場合に情報の連絡役となります. 1. Annual Reports for Other Years . platex hoge. This page is: /text/swriter/guide/indices_toc.xhp, Insert - Table of Contents and Index - Table of Contents, Index or Bibliography, Statutes (non-binding English translation). While the information on this site is about legal issues, it is not legal advice. A Table of Contents will only include items that are in the body of the document. Select "Table of Contents" in the Type box. TeXやLaTeXについての覚え書きをまとめてみました。 用紙のサイズを自動設定したい ... (6) 横組みの場合、本文領域の高さ(縦幅)です。 \marginparwidth (7) 横組みの場合、傍注領域の横幅です。 \marginparsep (8) 本文領域と傍注領域との空きです。 \footskip (9) 本文領域下端とフッター下端までの … Use thereof is explained in our trademark policy. Table of contents for 2009 Texas Vital Statistics Annual Report Note: Javascript is disabled or is not supported by your browser. 6. Publication # E-35-10559. Note: Each table and narrative will be added to the annual report when they are available. TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Center for Health Statistics . 6. Defining Index or Table of Contents Entries, Updating, Editing and Deleting Indexes and Tables of Contents, Formatting an Index or a Table of Contents, Editing or Deleting Index and Table Entries. LaTeX Warning: Label(s) may have changed. 4 AUXファイル. By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. Anybody can ask a question Anybody can answer The best answers are voted up and rise to the top Home Questions Tags Users Unanswered Jobs; formatting of the table of contents. If you want to use a different paragraph style as a table of contents entry, select the Additional Styles check box in the Create from area, and then click the Assign styles button next to the check box. TeX の実行は色々面倒なことが多い。どういうところが面倒か、どういうアルゴリズムを組めば自動化できるかをまとめてみた。, デフォルトでは、 TeX の実行時にエラーが起こると TeX が実行を中断してユーザーの指示を仰ぐようになっている。しかし、利用者の 99.9% は「そのまま TeX の実行を終了してエディターでエラーを修正する」以外の行動は取らないだろう。なので、ユーザーの指示を仰がずにそそまま終了して欲しい。, この話については以前にこのブログに記事を書いた。要約すると -halt-on-error -interaction=nonstopmode を指定すれば良い。, エラーの表示に関していうと、 -file-line-error も指定して損はないだろう。, latex -halt-on-error -interaction=nonstopmode -file-line-error, という風に、3つのオプションはつけるようにしたい。SyncTeX 対応のビューワーを使う場合は、 -synctex=1 オプションも欲しいかもしれない。, 標準出力が改行文字によって折り返されるだけならまだ良いのだが、実はログファイル(この場合は texput.log)に書き出される内容も改行による折り返し (hard wrapping) の対象となっている。TeX の周辺ツールでログファイルを解析する際、この余計な改行は邪魔でしかない。, 折り返しの文字数である「79」という数字は、 texmf.cnf というファイルに記述されている(texmf.cnf について詳しくはこの辺を参照)。現在の値を取得するには, この値を変えるには、自分で texmf.cnf を編集しても良いのだが、環境変数 max_print_line によって設定することもできる。TeX 周辺ツールを作る際は環境変数で設定する方が現実的だろう。, これは TeX Live での話で、 MiKTeX ではまた微妙に話が違うらしい(対応するコマンドラインオプションがあるようだ)。, 参考:compiling – Avoid linebreaks in LaTeX console / log output – TeX – LaTeX Stack Exchange, 関連する変数に error_line と half_error_line というのもあって、これは、エラー時にエラー箇所の前後を何文字表示するかを制御する。, 一般的な利用者は TeX 文書を処理した最終的な出力として、(DVI プレビューや PostScript 出力ではなく) PDF ファイルを得たいという人が多いだろう。, pdfTeX, LuaTeX や XeTeX は直接 PDF を出力できるので特に何もする必要がない。, 一方、 pTeX 等の、直接 PDF を出力しない処理系を使う場合は、出力された DVI ファイルに対して dvipdfmx を実行する必要がある。2つのコマンドを実行するのは面倒くさい。, この手順を簡略化するため、 pTeX と dvipdfmx を一括で実行してくれるスクリプトがある:, ptex2pdf は、元々は DVI 経由の処理を想定していない TeXworks 向けに作られたようだが、普通にターミナルから実行することもできる。, LaTeX で相互参照を使ったことがある人なら、正しい出力を得るためには「2回実行する必要がある」ことをご存知だろう。これは、LaTeX の相互参照の仕組みが, 複数回の実行が必要なのは相互参照に限らず、 \tableofcontents を使う場合や、 hyperref で PDF のしおりを生成する場合も、複数回の実行が必要になる。, さて、手動で複数回実行するのは面倒なので、複数回の実行が必要な場合に必要な回数だけ実行してくれるツールが欲しい、という話になる。, 有名な紹介記事: latexmk で楽々 TeX タイプセットの薦め(& biblatex+biberで先進的な参考文献処理) – konn-san.com, ところで、「複数回の実行が必要な場合に必要な回数だけ実行する」場合、TeX の実行回数は必ず有限回で済むだろうか?, 答えは否だ。ファイルの内容によっては、実行するたびに補助ファイルの内容が変化して、毎回「再実行が必要」という判断になる可能性がある。例:, コンパイルするたびにページ数が増えてauxが収束しないLaTeX文書の例: https://t.co/PqjVH9glxU, — Yusuke Terada (@doraTeX) November 21, 2014, 個人的に思っていた「コンパイルのおわらない」例 http://t.co/pEIbHZLt3L, 極端な例を挙げるなら、 pdfLaTeX でシェルエスケープを有効にして \label{\pdfcreationdate} \write18{sleep 1} と書けば、 .aux ファイルに時刻(秒単位)の情報が含まれる&実行に1秒以上かかるので、毎回 .aux ファイルの中身が変化する。, というわけで、latexmk 等の「複数回の実行が必要な場合に必要な回数だけ実行する」ツールには必ず「上限回数」が設定されていて、その回数だけ実行しても終わらなかった場合は実行を打ち切るようになっている。, テキストエディターで TeX ファイルを保存したタイミングで自動で再処理が行われて PDF が生成されて欲しい。(統合環境を使っている人はボタン一発で処理できるのでこの手の機能は必要ないだろうが), 先述した latexmk には -pvc というオプションがあり、ファイルが更新された際に自動で TeX を実行してプレビューを更新することができる。, ところで、この -pvc は -p -v -c という3つのオプションの集合体ではなく、 -pvc で1つのオプションである。キモい, 近年は、バックアップ目的、あるいは複数人での共同作業の目的で、 TeX 文書を Dropbox の中に置いて作業する人も多いだろう。しかし、 Dropbox の中で作業すると、 .log や .aux などのログファイル、補助ファイルまで同期されてしまって鬱陶しい。, latexmk のようなツールはこれらの「要らない」ファイルを削除してくれることもあるが、それでも「一瞬だけファイルができて、すぐに削除される」というのはあまり嬉しくない(履歴に残る)。どうせ削除するなら、そもそも作らないでくれ!, 補助ファイルをカレントディレクトリに作らないようにするには、TeX のコマンドラインオプションとして -output-directory を渡し、出力された DVI ファイルなり PDF ファイルなりだけをカレントディレクトリにコピーすれば良い。それだけの簡単なことなのだが、筆者が知る限り、この種の処理を行ってくれる補助ツールというのはほとんど(知られてい)ない。, MiKTeX という Windows 向けの TeX ディストリビューションには -aux-directory というオプションが実装されているようだが、 TeX Live の TeX コマンドにはそういうオプションは実装されていない。(筆者は MiKTeX をインストールしていないので、実際に試してみたわけではない), では、TeX Live で使えるそういう補助ツールが全くないかというとそうでもなくて、 GNU Texinfo に付属する texi2dvi/texi2pdf コマンドに --tidy オプションや --build-dir オプションを渡せば、補助ファイルの出力先を変えることができる。(texi2dvi/texi2pdf コマンドは Texinfo ファイルだけではなくて通常の LaTeX ファイルも処理できるのだ), CTAN の Topic compilation を覗くと、いろいろなスクリプトが見つかる。いくつか紹介:, 既存の補助ツールに満足できないので、新しく自分で作ってしまおう!という人のためのメモを書いておく。, まず、相互参照に関しては、再実行が必要な場合(=.aux ファイルの内容が変化した場合)に LaTeX 自身がメッセージを出力するようになっている。LaTeX の出力の中にある.