とりあえず、自分用メモ。
psnup -2
) で結果のフォントサイズが
9pt の出力を得たい。このようなときは、11pt で B5 に印刷して、それを A4 に変換すると、 そこそこいい感じの出力が得られる。B5 は 257x182[mm], A4 は 297x210[mm] なので、前者の出力は 11[pt] × (297 ÷ 257) = 12.71[pt] 、後者の出力は 11[pt] × (210 ÷ 257) = 8.988[pt] となる。手順は以下。
% head -1 b5.tex # documentclass は次のように指定
\documentclass[11pt,b5j]{jarticle}
% platex b5.tex # タイプセット
% platex b5.tex # タイプセット(\ref の解決)
% xdvi -paper b5 b5.dvi # B5 サイズで preview
% dvips -T 182mm,257mm b5.dvi # サイズ明示して変換
% psresize -pA4 -Pb5 b5.ps > a4.ps # A4 サイズに変換
% psnup -2 a4.ps > a4-2.ps # (2枚割付)
タイプセット後、プリントアウトまで一息にやりたい場合は、 dvips に -f (フィルタとして動作)を指定して、次のようにする。
% dvips -f -T 182mm,257mm b5.dvi | psresize -pa4 -Pb5 | psnup -2 | lpr -Plpn
(TUT 学内限定) F-101 の環境では、dvips の設定
(下記「印刷結果が上にずれる対策 (根本的版)」参照)をした上で、
dvips に追加のオプション -O 0pt,0pt
を渡す必要がある
(こうしないと、変な方向にオフセットがかかる)。
dvips の設定をしていない状態での動作は未確認。
minipage 環境では、変数 \parindent が 0\Cwd
になるために起こる。インデントをつけたい minipage の始まり
(\begin{minipage} の後)に、\setlength{\parindent}{1\Cwd}
(これが通常時の値)と書けばよい。
私の記憶によれば、breakbox 環境内でも同じことが起こったように思う。
breakbox 環境が使えるかもしれない。角が四角いのはご愛敬。
……探したんだけど、ダウンロードできるサイトが見つからなかった。 F-101 でなら、~e001041/(texinputs/?)eclbkbox.sty がスタイルファイルなので、適当にコピーして使うとよい。
YaTeX で C-c t j したら、"Enter your main text:" と言われた。
"\documentclass" の前に何か文字が入ってないか確認すること。 C-c t j したときに間違って "j\documentclass" になってた、 とか。
C-c t j したら、"Spawning child process: no such file or directory" と言われた。
私の場合は、YaTeX が直接の原因じゃなくて、Shell の設定が問題だった。
(setq explicit-shell-file-name "cmdproxy.exe")
(setq shell-file-name "cmdproxy.exe")
Meadow.exe があるディレクトリにパスを切って、上のように Shell の設定をすれば O.K. ということでした。
Runaway argument?
{\contentsli
! File ended while scanning use of \@writefile.
<inserted text>
\par
l.18 \begin{document}
?
もし、上のようなエラーが出ているなら、まず (p)latex を終了し、 .aux ファイルを削除する。タイプセットしようとしたファイルが foo.tex だったら、foo.aux を削除する。その後タイプセットし直す。
\ref
だとか \cite
だとかを使っている場合は、
2 度タイプセットすること。
2 つの平行して動いている LaTeX タイプセッタが、 同じファイルを処理しようとしたときに発生するらしい。 YaTeX を使っていて、C-c t j を 2 連発するとよく発生する。 2 つの shell を使っていて、片方の shell でタイプセットを始めて、 それが終わらないうちにもう片方の shell でタイプセットをしようとしても、 同様のことになると思う。
図表番号が \section
の番号と同じになっているっぽいとか、
figure 環境や table 環境の中の \label
を参照しているなら、
\caption
との位置の兼ね合いをチェック。
\label
は \caption
より後に来てないとアウト。
\begin{figure}
% \label{fig:fobar} % ×: これはダメ
\caption{図表キャプション}
\label{fig:fobar} % ○: ここなら O.K.
:
\end{figure}
\input
されるファイルで \includegraphics
を使う場合、指定する eps ファイルのパスには、親玉の
.tex ファイルからのパスを書くこと。
\input{input/bar.tex}
とあって\includegraphics
したい
以上のような場合、bar.tex には次のように書く。
\includegraphics{../eps/quux.eps} % ×
\includegraphics{eps/quux.eps} % ○
\input
でなくて \include
の場合はどうなのかわからないので要調査。
図表がやたらとたくさんある場合に出る。 プログラムのテスト結果をレポートに載せるときなんかに起こりがち。
エラーが出ている行のちょっと前に \clearpage
命令を入れる。これで未処理の float を flush してくれる。
here.sty を利用 (\usepackage{here}
) して、
[htbp]
が指定できるところに [H]
と書く。
図表の配置が換わるかもしれないから、2 度タイプセットすること。
morefloats.sty というのがあるらしい。使ったことがない。
\usepackage{landscape}
で横置き指定。
\documentclass[a4j]{tarticle}
で縦書き指定。
こいつを xdvi でプレビューするには、以下のようにする。
% xdvi -paper a4r hoge.dvi
「ページの残りの空白に、続く内容を詰めて入れるか?」というときに、 latex は割と入れてくれる方。platex は割と入れてくれない方。微妙な差だけど。
itemize とか enumerate とか description とかでお困りの人に。
\begin{itemize}
\setlength{\itemsep}{-1mm} % この行を追加。1mm 程度がいい感じ
\item ほげほげ
:
\end{itemize}
こんな感じに書く。itemize でも enumerate でも description でも、 \item の間隔は \itemsep。
% これをプリアンブルに書いておく
\renewcommand{\baselinestretch}{0.95}
値は 1 が通常時。0.9 位までは問題ない、と思う。0.85 はキツめ。
% プリアンブルにこれを張り付ける
\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{\z@}%
{1\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
{.5\Cvs \@plus.3\Cdp}%
{\reset@font\Large\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
{.9\Cvs \@plus -1ex \@minus -.2ex}%
{.4\Cvs \@plus .2ex}%
{\normalfont\large\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
{.8\Cvs \@plus -1ex \@minus -.2ex}%
{.3\Cvs \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
\makeatother
私は何も考えずにこれを張り付けているが、 一応(間違っているかもしれない)説明。 各 \renewcommand に続く 2 行目が上、3 行目が下の空白の調整。
行の先頭の 「1\Cvs」みたいなのが基本の空白幅。 defalut では上が 1.5\Cvs 、下が 0.8\Cvs だったはず。
続く「\@plus どうたら \@minus こうたら」というのが、 「±この範囲で調整可能」の意味。 default は忘れた。自分でいじってたかもしれない。
余談だが、TeX では 「0.5」を「.5」と書けるっぽい。
日本語版 Illustrator から吐かれた EPS ファイルは、LaTeX で
% LaTeX なら \documentstyle[a4j,eclepsf]{……}
\usepackage{eclepsf}
:
\epsfile{file=hogehoge.eps,scale=1.0}
(野寺隆志 著「楽々 LaTeX 第2版」に書いてある方法) として埋め込もうとしても、エラーが出てしまう。
% LaTeX なら \documentstyle[a4j,graphicx]{……}
\usepackage{graphicx}
:
\includegraphics[scale=1.00,clip]{3-3a.eps}
を使うと上手くいく。試した限りでは、こっちだと Illustrator で EPS ファイルを吐き出すときのオプションに関わらず、問題なく読んでくれる。
なお、Illustrator から EPS ファイルを出力する際には、 「フォントデータを含む」 にチェックを入れておくか、 全ての文字をアウトライン化しておくこと。そうしないと、 プリントアウトの際、文字が傾いたり、レイアウトが崩れたりする。
CCLUB の森本さんから、Illustrator 8J for Mac から UNIX で読める EPS を作る場合は
\usepackage{recleps}
)、
TeX ファイル中に挿入 とすると良いとの旨のメールを頂きました。ありがとうございます。 文字コードの変換あたりがミソですかね。
%プリアンブルにこれを書いておく
\newlength{\minitwocolumn}
% 実際に使う部分はこう書く
%%% この「0.50\textwidth」が左側の広さ。この場合は本文幅の 50%
\setlength{\minitwocolumn}{0.50\textwidth}
%%% この 0.5\columnsep が段と段の間隔。よう知らんがこのままにしてる
\addtolength{\minitwocolumn}{0.5\columnsep}
\begin{minipage}[t]{\minitwocolumn}
%--------------------------------------%
% ここに左側に入る内容を書く %
%--------------------------------------%
\end{minipage}
\hspace{\columnsep}
%%% この「0.40\textwidth」が右側の広さ。この場合は本文幅の 40%
\setlength{\minitwocolumn}{0.40\textwidth}
\begin{minipage}[t]{\minitwocolumn}
%--------------------------------------%
% ここに右側に入る内容を書く %
%--------------------------------------%
\end{minipage}
ページの途中だけ二段にするとか、図を横並びに並べるとか、 図の周りに文字を回り込まるとかいうときに使う。 ただし、回り込みの調節などは、文字の量を手作業で調節して行わなければならない。
また、左右の内容を中揃えにしたい場合、{minipage}[t]
でなくて {minipage}[c]
とする。そもそも位置指定は取り払って
もいいように思う。
正確に言うと、figure とか table の中に caption と label を書いて、 それを参照したい時に使う。
素直に table や figure を書くとエラーを吐いてくれるので、 \begin{table} なんかは書かずに、 caption と label が必要な所に、以下のように書く。
% プリアンブルにこれを書いておく
\makeatletter
\def\setcaptype#1{\def\@captype{#1}}
\makeatother
% 本文中の、本来なら caption が入るところにこう書く
% table の場合
\setcaptype{table}
\caption{キャプションほげほげ}
\label{tb:caption_hogehoge}
% figure の場合
\setcaptype{figure}
\caption{フィギュアほげほげ}
\label{fig:figure_hogehoge}
label の名前に付けている 「fig:」 とかは、まぁ習慣みたいなもの。 ハンガリアン記法みたいに、こうしておくと名前を見ただけで図か表かがわかる。
here.sty を使えば一発で解決する。プリアンブルで
\usepackage{here}
としておいてから、次のようにすればよい。
\begin{minipage}
\begin{figure}[H]
:
:
\end{figure}
\end{minipage}
% これをプリアンブルに書いておく
\setlength{\topmargin}{-1.5cm}
\setlength{\oddsidemargin}{-1cm}
\setlength{\evensidemargin}{-1cm}
\setlength{\textheight}{25cm}
\setlength{\textwidth}{18cm}
レポートに「空白はどうにかなりませんか」等と書かれたときにどうぞ。
豊橋技科大 F-101 の環境に入っている xdvi でプレビューをして、 さて印刷すると大分上の方にずれている。これは dvips の仕業(Y 田君調べ)。
ad hoc(ad hoc; 場当たり的な、一時しのぎの)対策として、以下のようにする。 ただし、これを何度もやるのは結構手間なので、あまりお薦めしない。
latex なり platex なりでタイプセット(コンパイル)する。 できた dvi ファイルの名前を hoge.dvi とする。
この dvi ファイルを、そのままプリンタへ出力できる形式である ps (PostScript) 形式に変換する。できあがるファイル名を hoge.ps とするなら、 以下のようなコマンドを実行する。
% dvips -O 0pt,-1.5cm -ohoge.ps hoge.dvi
最初のオプションは 「ハイフン ラージ オー」 で、 「左に 0pt、上に -1.5cm(つまり、下に 1.5cm)ずらす」の意味。
2つ目のオプションは、「ハイフン スモール オー」 で、 gcc 等と同じく、「これに続く文字列を出力ファイル名に指定する」の意味。
できあがった hoge.ps が、いい感じになっているか確認する。
% gv hoge.ps &
とすると、PostScript の viewer(表示ソフト)、gv のウィンドウが開く。
上の方に「letter」となっているボタンがある。これは用紙サイズの設定で、 このままではマズい。クリック、ドラッグして「A4」を選択する。
また、「1.000」となっているボタンは倍率設定で、これは「1.414」位がベター。
確認したら、プリンタへ出力する。左の方にそれっぽい(print all pages とかなんとか)ボタンがあるのでクリック。 このとき、出てくるダイアログ(小さいウィンドウ)に入力するのは 「出力コマンド」で、「プリンタ名」ではないので注意。
lpr -Plp2
とか入力しておけばいいだろう。
また前述の通り、この ps ファイルは直接プリンタへ出力が可能なので、 コマンドラインから
lpr -Plp2 hoge.ps
としてもよい。
dvips とか gv の詳しい使い方は、man なり google なりで調べればたぶん OK。 (dvips はともかく、gv は使って慣れろという気もする)
毎度毎度 dvips でオフセット指定して gv でプレビューするのも面倒だし、 根本的な対策をした方が賢いと思うわけです。
なお、手順中で想定している環境は F-101 のそれのみです。 一応、OS は RedHat Linux 6.2 です。
設定ファイルを入れるディレクトリを作る。必要ないかもしれないが、 そういうやり方は試していないので、実際には何とも言えない。
% mkdir ~/texinputs
私は .sty なファイルも一緒のディレクトリに突っ込んでしまえ、 と思ったのでこういう名前(と場所)のディレクトリにしました。 違う名前で作った場合は、以降適宜読み替えて下さい。
~/.cshrc を編集する。まずは emacs で開く。
% emacs .cshrc
開いた .cshrc の最下部の
setenv JSERVER localhost
のところを次のように書き換える(書き加える)。
setenv JSERVER localhost
setenv TEXMF /usr/share/texmf
setenv TEXMFCNF .:/usr/share/texmf/web2c
setenv TEXINPUTS .:$HOME/texinputs:
setenv TEXCONFIG .:$HOME/texinputs:TEXMF/dvips:
bash なら .bashrc になるんだろうけど、shell を bash に切り替えて使ってるような人は書き方も分かるだろうから省略。
config.ps をコピーしてきて編集する。
% cp /usr/share/texmf/dvips/config.ps ~/texinputs/
% emacs ~/texinputs/config.ps
続いて、emacs で開いている config.ps の 4 行目を次のように変更する。
o |lpr → %o |lpr
(頭に % を付けてコメントアウトする)
さらに、24 行目を次のように変更する。
O 0pt,0pt → O 0pt,-1.5cm
(先頭のは「ラージオー」で、「ゼロ」ではない)
うまくいったかどうか試す。
適当な TeX ファイル(仮に foo.tex とする)をタイプセットしてできた DVI ファイルと、それを変換してできた PostScript ファイルが、 ほぼ同じ見た目になっているか確認する。
% platex foo.tex
% xdvi foo.dvi &
% dvips foo.dvi
% gv foo.ps &
gv の方は、用紙サイズ設定をデフォルトの US Letter から A4 に変更すること(でないと根本的に見た目が合わない)。 画面上部にある、用紙サイズ設定のプルダウンで設定する ([Letter] という表示があるのでたぶん分かるかと)。見た目 (特に用紙最下部、ページ番号の出力位置)がほぼ同じなら O.K. です。
これもどんどん増える。多分。