No Such Blog or Diary

«Prev || 1 | 2 | 3 | 4 | 5 | 6 | 7 || Next»

TeXで参考文献を分割して出力

TeX で(bibtex を使わずに)参考文献を出力するには thebibliography 環境を使う.そうすると「参考文献」のセクションタイトルのあとに参考文献リストが連番を振られて並ぶ(alphaとかは別).で,とある理由で参考文献のリストを分割して表示したいと思って thebibliography を複数個所に書いたら,各々のリストに対して1から連番が振られてしまい参考文献がバッティングしてしまった.で,分割しても連番で出したいのでどうしたものかと考え,よい方法が見つからないのでクラスファイルをハック.どうやら enumiv なるカウンタを環境の頭で作っているようなので,それの初期値を指定してやることにした.

\begin{bibliography}
\setcounter{enumiv}{7}
\bibitem ...
\end{bibliography}

みたいな感じで(これは7番から連番になる).まあ,こんなことせずにグローバルなカウンタ作って \begin{thebibliography} とかを再定義すればいいんだけど.とりあえず今回はこれで良いや.

pLaTeX で EUC

cvs に上げられた TeX ファイルをコンパイルしようと思ったら EUC コードだった.普段使っている pTeX のデフォルトは SJIS なので当然のことながらこける.

で,せっかくなのでEUCをコンパイルするオプションを学んでみた.

platex --kanji=euc --fmt=platex-euc paper

これだけでコンパイルできるのでそれなりに簡単なのだが,platex -e ぐらいに単純だともっといいなぁと思う今日この頃.

ちなみに,オプションつけるより

platex-euc paper

としたほうが短い.

Ghostscript と Prosper のインストール

ノートPCの再インストールの一過程を記録.

ちょっとバージョンは古いが,日本語をうまく扱う GNU Ghostscript 7.07 Windows 版をインストールする.

とりあえず以下のファイルをダウンロードする.

そしたらまず,gs707w32full.zip を適当なところに解凍して,展開された setupgs.exe を実行してインストールを行う.もしインストールディレクトリが C:\gs でないときは, gs_res.ps を編集する必要がある.例えばインストール先が c:\ptex\gs ならば,C:\ptex\gs\gs7.07\lib\gs_res.ps の 252行目あたりで

  /FontResourceDir (c:/ptex/gs/gs7.07/Resource/Font/) readonly .forcedef % pssys
  /GenericResourceDir (c:/ptex/gs/gs7.07/Resource/) readonly .forcedef % pssys'p

と変更する.そして,c:\ptex\gs\gs7.07\lib;c:\ptex\gs\gs7.07\bin; を path に追加しておく.

次に,フォント回りの設定をするため,以下のディレクトリを作成する.

c:\ptex\gs\gs7.07\Resource\
c:\ptex\gs\gs7.07\Resource\Font
c:\ptex\gs\gs7.07\Resource\CMap
c:\ptex\gs\gs7.07\Resource\CIDFont

そして,適当なディレクトリでダウンロードした acro5-cmaps-2001.zip と adobe-cmaps-200204.zip を解凍し, それぞれの CMap というディレクトリを c:\ptex\gs\gs7.07\Resource\ に順にコピーする.最終的に CMap ディレクトリに 217個のファイルが入っていればよい.ここまででとりあえずの設定は終了で,c:\ptex\gs\gs7.07\examples\cjk に移って,

gswin32c gscjk_aj.ps

と実行して正しく日本語が表示されていればよい.

さらに, PDF 作成時にフォントを埋め込まないようにするために,c:\ptex\gs\gs7.07\lib\ps2pdfxx.bat の26行目あたりを

echo -c .setpdfwrite -f %1 >>_.at2

から

echo -c .setpdfwrite ^<^</NeverEmbed [/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats /Ryumin-Light /GothicBBB-Medium]^>^> setdistillerparams -f %1 >>_.at2

に変変更する.(長いけど一行で).確認として c:\ptex\gs\gs7.07\examples\cjk に移って,

ps2pdf14 gscjk_aj.ps gscjk_aj.pdf

でうまく PDF が作成されれば良い.

以上で Ghostscript のインストールは終了したので,次に Prosper のインストールをする.とりあえず http://prosper.sourceforge.net/ から, prosper-1.00.4.tar.gz をダウンロードする.そして,latex のスタイルファイルの置いてあるディレクトリ,例えば C:\usr\local\share\texmf\tex\latex\misc に prosper-1.00.4.tar.gz を展開する.追加のテーマを使うならば,contrib-prosper-1.0.0.tar.gz もダウンロードして prosper/contrib ディレクトリに展開する.

これで Prosper を使うことができるのだが,dvi -> ps -> pdf という変換の際に用紙サイズの指定をきちんとやらないと端が切れることがある.また,しおりが文字化けする可能性もある.そのため,変換は以下のようなコマンドで行う必要がある.

dvipsk -t a4 -Ppdf -z -f test.dvi | bkmk2uni > test.ps
ps2pdf test.ps test.pdf

(ひょっとしたら ps2pdf でもサイズ指定がいるのかも...)

LaTeX の無理やり Tips - フォント指定(2)

前に書いたようなフォントの直接指定をやると,たとえば本文ではフォントが指定したとおりだが,theorem 環境(newtheoremで作った環境)ではフォントがデフォルトに戻ってしまう.これは,新しい環境などのはじめにデフォルトフォントへのフォント設定が記述されているからだ.

これらのデフォルトのフォントを指定のためのコマンドは

\encodingdefault  % encode の指定(良くわからない.普通はいじらない)
\familydefault      % family の指定(Times Romanとか)
\seriesdefault     % series の指定(Boldとか)
\shapedefault     % shape の指定(Italicとか)

などがあり,これらを再定義することでデフォルトを変えることができる.

\renewcommand{\familydefault}{ptm} % Adobe Times
\renewcommand{\seriesdefault}{b}    % Bold
\renewcommand{\shapedefault}{sc}   % Small Caps

より詳しくは The LaTeX コンパニオン とかを見ましょう.

LaTeX の無理やり Tips - フォント指定

参考は http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex.html

\fontfamily{ptm}\fontseries{bx}\fontshape{sc}\selectfont

などでフォント指定できるらしい.以下の組み合わせの最後に \selectfont をおくらしい.より詳しくは The LaTeX コンパニオン とかを見ましょう.

Family:
 \fontfamily{cmr} Computer Modern Roman
 \fontfamily{cmtt} Computer Modern Typewriter
 \fontfamily{pcr} Adobe Courier
 \fontfamily{phv} Adobe Helvetia
 \fontfamily{ptm} Adobe Times
 \fontfamily{txr} Times Roman
 \fontfamily{pxr} Palaino
Series:
 \fontseries{bx} Bold(?)
 \fontseries{b} Bold
 \fontseries{m} Medium
Shape:
 \fontshape{it} Italic Shape
 \fontshape{sl} Slanted Shape
 \fontshape{sc} Small Caps Shape

LaTeX の無理やり Tips - セクションタイトルのまわりの空白制御

とりあえず,article.cls を読んてみると,section などの空白は以下の定義の@startsection に渡している数字部分で指定されているとわかる.4つ目の引数がタイトルの上,5つ目がタイトルのしたの空白である.これをいじれば空白を小さくできる.

\renewcommand\section{\@startsection {section}{1}{\z@}%
            {-2.0ex \@plus -1ex \@minus -.2ex}%
            {0.3ex \@plus.2ex}%
            {\fontfamily{ptm}\fontseries{bx}\fontshape{sc}\selectfont\Large}}

@startsection はセクションの本体で latex/base/latex.ltx に定義されている.一つ目の引数が環境名,二つ目がレベルである.star(*)付は @ssect に分岐,普通のは @sect に分岐する.@sect のなかでは \@seccntformat でセクション番号のフォーマットをするらしい.ただし,引数は section とかの環境の名前のみなので注意.レベルが1のときだけピリオドを出力するには, @sect もハックしなければならない.

\def\@seccntformat#1#2{%
\csname the#1\endcsname%
\ifnum #2=1\relax .\fi
\quad}
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth
    \let\@svsec\@empty
  \else
    \refstepcounter{#1}%
    \protected@edef\@svsec{\@seccntformat{#1}{#2}\relax}%
  \fi
...
«Prev || 1 | 2 | 3 | 4 | 5 | 6 | 7 || Next»
Search
Feeds

Page Top