LaTeX Tips

Contents:

Links

dvipdfmxが死ぬほど遅い

dvipdfmx -I 6 -C 0x20 foo.dvi

"-I 6"はキャッシュを6時間保持する。"-C 0x20"は,predictor filtersを無効化する(このフィルタによって著しく遅くなることがあるらしい)。

ラベルを余白に表示する

\usepackage[<options>]{showlabels}

参考)

数式においてdisplayスタイルでの改ページを許可

{\allowdisplaybreaks
\begin{eqnarray}
 hoge
\end{eqnarray}}

差分をわかりやすく表示する

latexdiff old.tex new.tex > diff.tex

includegraphicsで,デフォルトの画像フォルダを指定する。

\graphicspath{{./figures/}}
\graphicspath{{./fig1/}{./fig2/}{./fig3/}} % 複数フォルダの場合

graphicxとcolorを同時に使うとdvipdfmxでPDFにしたときに図がずれる

対処方法) \documentclassのオプションに指定する

\documentclass[a4paper,dvipdfmx]{jsarticle} % ここで指定
\usepackage{graphicx}                       % dvipdfmx は自動的に有効となる
\usepackage{color}                          % dvipdfmx は自動的に有効となる

参考)
https://qiita.com/zr_tex8r/items/442b75b452b11bee8049

旧対処方法)graphicx,colorの両方にdvipdfmxオプションをつける。

\usepackage[dvipdfmx]{graphicx,color}

この方法だと,下記のエラーが出ることがある。

! LaTeX Error: Option clash for package color.

ラベルをプリント

\labelを指定するところで

\lbael{fig:test_a}
\prtlabel{fig:test_a}

とするとラベル名「fig:test_a」が本文に埋め込まれる。マクロ中で使うことを想定。通常,ラベル名にアンダーバーが含まれ文字列を表示使用とすると,数式モードではないとのエラーが出るが,それを回避するようにしたもの。\meaningを使って展開。showkeys.styを参考にして作ったもの。

% \prtlabel{label_strings}
\def\@defmylabel#1>#2<{\def\@mylabel{#2}}
\def\prtlabel#1{%
\protected@edef\@tempa{#1<}
\expandafter\@defmylabel\meaning\@tempa
{\tt \@mylabel}}

サーチパスの追加

よく使うマクロは d:\home\tex\lib などにおいて,サーチパスを通している。パスの設定は,

c:\w32tex\share\texmf\web2c\texmf.cnf

を書き換える。たとえば,$mypath を定義して,TEXINPUTS.platex209とTEXINPUTS.platexに$mypathを追記する。

mypath=d:/home/tex/lib
TEXINPUTS.platex209 = .;$mypath;$texroot/{platex209,jlatex209,latex209,}//;$srcinp
TEXINPUTS.platex = .;$mypath;$texroot/{platex,latex,ptexgeneric,generic,platex209,latex209,}//;$srcinp

PDFファイルを作りたい

ある文字列分のスペースを確保したい

プリアンブル(\begin{document}の前)で以下を定義

\newlength{\mylength}
\def\myspace#1{%
\settowidth{\mylength}{#1}
\hspace{\mylength}}

本文中で

\myspace{abc}

とすると,文字列"abc"分のスペースが空く。

色を使う (2009-02-18)

\usepackage{color}

として,本文中で

{\color{red} hogehoge}

mktexlsr (2007-12-25)

新しいノートパソコン(Dynabook RX1)では,TeXのコンパイルが非常に遅い(5年前のノートPCに比べても明らかに遅い)。CPUはCore2 Duo U7600。TeX関連のファイルが膨大に増えたために,それを検索する時間がかかることで,遅くなるとの情報を見つけた。この場合,ファイルリストを texmf 以下に作成するコマンド mktexlsr を実行するとよいとのこと。早速試してみたところ,texのコンパイルが劇的に速くなった。近年,CPUやHDDが高速になったので,その必要はない,との意見も多々あったが,自分の環境では,大きな改善がみられた。

ls-R ファイルを作成した場合,そのリストを元に,ファイルを検索するので,新規ファイルを追加するたびごとに mktexlsr を実行する必要があるので,注意する。なお,ls-Rファイルを削除すれば,そのたびごとにファイル検索が行われることになる。

インストール

TeXインストーラ3を使用するのが便利。詳しくは, TeXインストーラ3。 を参照。TeXに必要なソフトウエア一覧を自動的にダウンロードしてインストールできる。

\long\def

マクロコマンドを定義する\defは引数の中で改段落を行うとエラーになる。このような場合は\long\def を使う。

enumerate拡張

\usepackage{enumerate}

として

\begin{enumerate}[A.]
 \item foo.
 \item bar.
 \item buzz.
\end{enumerate}

とする。結果はお試しあれ。ただし,LaTeX2eに限る。

キャプションの定義

texmf\ptex\platex\base\jarticle.cls の該当部分を適宜書き換える

\long\def\@makecaption#1#2{%
 \vskip\abovecaptionskip
 \iftdir\sbox\@tempboxa{#1\hskip1zw#2}%
   \else\sbox\@tempboxa{#1: #2}%
 \fi
 \ifdim \wd\@tempboxa >\hsize
   \iftdir #1\hskip1zw#2\relax\par
     \else #1: #2\relax\par\fi
 \else
   \global \@minipagefalse
   \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
 \fi
 \vskip\belowcaptionskip}

図の配置に関するパラメータ

% 図の占める割合に関するパラメータ
\renewcommand{\topfraction}{0.99}    % 上部出力図
\renewcommand{\bottomfraction}{0.99} % 下部出力図
\renewcommand{\textfraction}{0.01}   % 本文の最小割合
% 出力できる図の数に関するパラメータ
\setcounter{topnumber}{10}
\setcounter{bottomnumber}{10}
\setcounter{totalnumber}{10}
% 図の上下のスペース
\setlength{\floatsep}{10pt}        % 移動体間のスペース
\setlength{\textfloatsep}{10pt}    % 本文と移動体間のスペース
\setlength{\dblfloatsep}{10pt}     % 2段抜きの場合
\setlength{\dbltextfloatsep}{10pt} % 2段抜きの場合

subfigure.styにおける図のスペーシングパラメータ

\renewcommand{\subfigtopskip}{0pt}     % Subfigure上部のスペース
\renewcommand{\subfigcapskip}{10pt}    % subfigureとcaptionの間隔
\renewcommand{\subfigbottomskip}{10pt} % captionの下部スペース
\renewcommand{\subfigcapmargin}{0pt}   % captionのインデント幅(必ず正)

太線

% define bold line for table
\def\hbline{\noalign{\hrule height 1pt}}

丸数字

\newcommand{\MARU}[1]{
{\ooalign{\hfil#1\/\hfil\crcr\raise.167ex\hbox{\mathhexbox20D}}}}

section直後の改行の抑制

C:\usr\local\share\texmf\tex\latex\base\latex.ltx

\def\@afterheading{%
 \@nobreaktrue
 \@nobreakfalse <- ここ
 \everypar{%
   \if@nobreak
     \@nobreakfalse
     \clubpenalty \@M
     \if@afterindent \else
       {\setbox\z@\lastbox}%
     \fi
   \else
     \clubpenalty \@clubpenalty
     \everypar{}%
   \fi}}

PowerPointやWordの図をEPSに変換する

WMF2EPSを使う。 以下などが参考になる。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-04-28 (金) 16:54:28