2段組の中央の罫線の色と幅の設定

最近、LaTeXを使って2段組にするときに、中央の罫線の色と幅を変更する必要があったのでそのメモです。

幅の変更はわりとよくあることなのですが、色の設定ははじめてでした。考えるより検索したほうが楽ということで調べてみると、ありました。

多段組の定番パッケージ「multicol」を使って、必要なパラメータを設定するだけ。

\setlength{\columnseprule}{0.5mm}
\setlength{\columnsep}{1zw}
\renewcommand{\columnseprulecolor}{\color{red}}
\begin{multicols}{2}
...
\end{multicols}

ついでに、罫線の幅と、罫線の両側の間隔も調整しています。

スクリーンショット 2015-02-10 23.27.34

パッケージ管理使ってEmacsにAUC-TeXをインストール

以前このインストールという記事を書いたのですが、Emacs24のインストールだけの紹介に終わってしまい、AUC-TeXのインストールについてはまったく書いていませんでした(自分は書いたつもりで忘れたのか、表題を付け忘れたのかもはっきりしないんです)。

なんで5か月もたって今ごろ気づいたかというと、.emacs.dの中を整理したときにelpaを自分のディレクトリの下に入れてしまったのが原因でAUC-TeXが無効になっていたのです。それも気づかずC-c ; でTeXのソースをコメントしたら

%% 行

のように%%が2つ入ってしまいました。それでもAUC-TeXがバージョンアップしたくらいに思っていたのですが、補完も効かず、他のコマンドも使えないことに気づいてようやく状況が把握できました。

バージョンも古いし、いったん取り除いて再インストールしてみました。といってもインストールは簡単です。

Emacs24ではパッケージ管理はelpaというところ以外にもパッケージ提供元があるようなのでそれをinit.elに追加します。

(require 'package)
(add-to-list 'package-archives 
             '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives 
             '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

あとは

M-x package-list-packages

とするとdiredのような画面になるので、「i」で選択「x」でインストールが実行されます。

スクリーンショット 2014-11-05 6.35.54

ちなみに、削除するには、「d」で選択「x」で削除が実行されます。

\textheightの値が有効にならないわけは、もっと基本の設定が抜けていた。

LaTeXでクラスの調整をしていたら、なぜか\textheightの値が有効になりません。
きちんと値を設定しているのにもかかわらず、用紙の下端を超えてはみ出してしまっています。

\textwidthは有効のなので、何かがおかしいはずです。

値の設定を最後にもう一度上書きしてもダメなので、クラスファイルのどこかに間違いがあるのでしょう。

あれこれ試行錯誤していたら、なんと

\normalsize
\setbox0\hbox{\char\euc"A1A1}%
\setlength\Cht{\ht0}
\setlength\Cdp{\dp0}
\setlength\Cwd{\wd0}
\setlength\Cvs{\baselineskip}
\setlength\Chs{\wd0}

の部分がスッポリと抜けていました。

この設定は、

\renewcommand{\normalsize}{%

が終わったあとにあるのですが、それが見当たりません。何かのはずみで削除してしまったようです。

ログをよく見ると

Overfull \vbox (315.30627pt too high) has occurred while \output is active

なんていいうメッセージが。

それにしても、なんで削除しちゃったのか不思議です。

gvのキーバインディング

gvは、たぶんとってもマイナーなPSプレビューワでしょう。

このgvのページ移動に関するキーバインディングをまとめてみました。。PSプレビューワといっても、Ghostscriptのフロントエンドです。

Linux専用マシンのときは無意識に使っていた機能なんですが、ViertualBox上のLinuxで操作したり、Mac用gvを使うようになってからいつのまにかキーバインディングを忘れてしまいました。

わたしのGhostscriptのフォント設定は、ほんとうのフォントではなくて、ほとんど代替フォントを表示するようにしているので、gvでの表示はあくまでもはみ出しを見たり、罫線やアミカケの配置の確認用になっています。

そこに必要なのはページ移動くらいなんですが、ページを前後して見たいのにいちいちマウスを使うのは効率が悪い。

そこでgnuのページを参考に、ページ移動のみ調べてみました。

説明されているキーバインディングを実際に使ってみると、Mac用のgvとVirtualBoxのLinuxのgvとは微妙に異なっています。もしかすると自分の環境設定が原因かもしれませんが。

前のページ

複数のバインディングがあります。

Shift + ↑

b

Ctrl + bShift + bも同じ (Mac版のみ)

Space

次のページ

複数のバインディングがあります。

Shift + ↓

f

Ctrl + fShift + f も同じ (Mac版のみ)

Ctrl + Space (Mac版は無効)

5ページ分戻る

Ctrl + ←

5ページ分進む

Ctrl + →

gnuのページには「Home」「End」キーがあって、ファイルの先頭や末尾にジャンプできるようですが、わたしのキーボードにはないので、チェックしませんでした。

TeXの引き数のパターンマッチング

以前にも同じような記事を書いたのですが、今回は目次表示に関係のある\numberlineの引き数の切り分けのためにパターンマッチングを使ってみました。

書籍用のtocファイルに書き込まれる\numberlineの引き数は「\numberline{1.3}…}のように\thechapter.\thesectionの形をしています。

この引き数を
1. \thechapterが1桁か2桁か
2. \thesectionが1桁か2桁か
によって処理を変更する必要があったのです。

「10.4」のような引き数を切り分けるのは以下ように定義すれば、それぞれの数字を別々に取得できます。

\def\XXX#1. #2 {処理の内容}

たとえば「\XXX{71.20}」とすれば{#1=71、#2=20」のように週次を取得することが可能です。

#2の後のスペースは必要です。スペースのない形「\def\XXX#1.#2{処理の内容}」にすると「\XXX{1.23}」の場合#1=1、#2=2となってしまい、望みの#2=23になりません。

というわけで、以下のような形で切り分けることができました。

\def\XXX#1. #2 {処理の内容}
\newcommand*{\l@section}[2]{%
  \def\numberline{この中で
    \XXX##1
    としてピリオドの前後の数字を切り分け
    ...}
    }

updmapを初期化?する

updmapを使っていろいろフォントを設定したけど、なんだか分からなくなった、というか、相手の設定をそれぞれ取り込んだり、調整してきたですが、ちょっとゴチャゴチャしてしまいました。

登録したmapファイルはいったん削除することにしました。
フォントファミリごとにまとめていたのですが、分かりにくいから仕事先ごとにmapファイルを作ろうかと思っています。

とりあえず、今日は、インストール直後の状態にすることにしました。

これには、updmap.cfgを元の状態に戻してupdmap-sysを実行するだけ。

いま使っているのはMac上に奥村先生の本からインストールしたものなので、

/Users/Shared/TeXLive/texmf-config/web2c/updmap.cfg

の中身を

kanjiEmbed hiragino-pron
kanjiVariant

とすれば、インストール直後の状態になるはずです。

というわけで、updmap.cfgをエディタで直接書き換えて

sudo updmap-sys

を実行したところ、余分な情報のないmapファイルが作成されました。

TeXの記憶(126) — 章と節の番号を手動で詰めてしまった

LaTeXの\sectionや\subsection類は中で\@sectを呼び出して、その中で文字の大きさなどを処理しています。

書籍の指定では\section、\subsectionくらいだと、それぞれ明らかに別々のデザインになることが多いので、わたしが作っているクラスファイルでは\@sectの中でそれぞれ条件分岐させて処理しています。

\def\@sect#1#2#3#4#5#6[#7]#8{%
    \ifnum #2=1       % \sectionのときの処理
               処理(1)
    \else\ifnum #2=2  % subsectionのときの処理

ほとんどの場合これで済んでいたのですが、今回はたとえば「2.5」節のような特定の組合せのときだけ「.」の両側を詰めたいという要望がありました。最終段階でもう時間がありません。

考えていてもしょうがないから、個別に詰めることにしました。

処理(1)の中で、

\ifnum\c@chapter=2
    \ifnum\c@section=5
       2\kern-.25em .\kern-.15em 5
    \else
       普通に出力
    \fi
\else
  普通に出力

のようしちゃいました。

実際には別のマクロを呼び出してあれこれしてるんですが、基本的な部分はこんな感じになってしまいました。

TeXの記憶(125) — Mac用Ghostscript(gv付き)を入れてみた

以前にDebianに入れたgvのMac版をインストールした記録です。

gvは使っているウィジェットも古いし、Macで使うにはインターフェースに合わないし、ちょっと時代遅れの感が強いのですが、psファイルをそのまま表示するには便利で長年Linuxで使っているソフトウェアなので入れておきます。

マスクメロンの管理人の方がMac用に作成したバイナリを利用させていただきました。

0617

インストールにはX11が必要

Mountain LionからX11が同梱されなくなったので、代わりにここからダウンロード、インストール、再起動すれば使えるようになります。

Ghostscript.appのインストールは簡単

マスクメロンのサイトより、Ghostscript_Lion-20120212.tar.bz2をダウンロード。もっと新しいバージョンもありましたが、「おすすめ」という表示に従いました。

解凍すると、Ghostscript.appができるのでそれをアプリケーションに移動。これだけです。

Macの「*.app」は実際にはフォルダなので、Ghostscript.appもフォルダになっていて、gvもこの中に入っています。というかGhostscript.appを実行するとgvが表示されます。

PATHの設定

『[改訂第6版]LaTeX2e 美文書作成入門』などでTeXをインストールしていると、すでにgsが入っているので、PATHの設定で、そちらより先に探すように設定しておきます。

配布サイトの補足にあるように、

export PATH=/Applications/Ghostscript.app:/Applications/Ghostscript.app/bin:$PATH

のように設定しました。

cidfmapの設定

表示したいフォントの設定はcidfmapにします。場所は以下のところにあります。

/Applications/Ghostscript.app/share/ghostscript/9.05/Resource/Init/cidfmap

実際には「cidimap –> cidfmap.pub」のシンボリックリンクなので、別に「cidfmap.local」
のファイルを作ってこちらにシンボリックリンクを貼りました(「.local」でなくても何でもいいです).

rm cidfmap
ln -s cidfmap.local cidfmap

cidfmapの設定内容

とりえずモリサワ基本5書体の設定をしました。わたしの場合は代用フォントでかまわないので、元のcidfmap.pubを参考にして適当に設定しました。

ちなみに、「-83pv」とあるのは、Shift-JIS用に設定されたものです。
「Ryumin-Light-83pv-RKSJ-H」のように埋め込まれたPSファイルを扱うことがあるので、設定しました(今はほとんどありませんが)。OTFフォントだと表示されないので、ipaフォントのttfを呼び出すようにしています。

できあがったcidfmap.satoの内容です。

% morisawa basic 5 fonts (cid, otf, cid-sjis)
/Ryumin-Light /HiraMinPro-W3 ;
/RyuminPro-Light /HiraMinPro-W3 ;
/Ryumin-Light-83pv /X-Mincho-83 ;
%
/GothicBBB-Medium /HiraKakuPro-W3 ;
/GothicBBBPro-Medium /HiraKakuPro-W3 ;
/GothicBBB-Medium-83pv /X-Gothic-83 ;
%
/FutoMinA101-Bold /KozMinPro-Bold ;
/FutoMinA101Pro-Bold /KozMinPro-Bold ;
/FutoMinA101-Bold-83pv /X-Mincho-83 ;
%
/FutoGoB101-Bold /HiraKakuPro-W6 ;
/FutoGoB101Pro-Bold /HiraKakuPro-W6 ;
/FutoGoB101-Bold-83pv /X-Gothic-83 ;
%
/Jun101-Light /HiraMaruPro-W4 ;
/Jun101Pro-Light /HiraMaruPro-W4 ;
/Jun101-Light-83pv /X-Gothic-83 ;
%
% SJIS用
/X-Mincho-83 << /FileType /TrueType /Path (/Users/sato/Library/Fonts/IPAfont00303/ipam.ttf) /SubfontID 0 /CSI [(Japan1) 6] >> ;
/X-Gothic-83 << /FileType /TrueType /Path (/Users/sato/Library/Fonts/IPAfont00303/ipag.ttf) /SubfontID 0 /CSI [(Japan1) 6] >> ;

.gvの設定

以前のDebianの場合と同じように最低限以下の設定を入れた「~/.gv」がないとうまく表示されませんでした。

GV.version:  gv 3.7.3
GV.scaleBase:      2
GV.gsSafer:  False

これで、コマンドラインから

gv foo.ps

でPSファイルが表示できるようになりました。

TeXの記憶(124) — Helvetica Blackを追加

TeX用にHelvetica Blackを設定しました。ほんとはArial Blackで代用しています。

Helvetica Blackなんて、Macにもともと入っているのかと思ったら、ありませんでした。

探してみるとLinotypeでは販売しています。でも、私が購入してpfbフォントを作って相手先に渡したら、問題ありでしょうし、いちいち購入したかどうかを確認するのも面倒です。

好都合なことにHelveticaはいろいろ似たフォントが出回っているので、そちらで代用することにしました。Arial Black(Arial Black.ttf)がいちばん無難そうです。

フォント名

TeXでは、フォント名としてcmr、rml、phvなどのようなBerry命名規則に沿った名前を使っています。今回のHelvetica Blackもできれば規則に沿った名前を付けるのが良さそうです。

Helveticaシリーズのような有名フォントは名前がすでに登録されていることが多いので、まず自分のシステムを探してみました。

/Applications/TeXLive/Library/texlive/2013/texmf-dist/fonts/map/fontname
の中の「adobe.map」を探すと

phvc8a Helvetica-Black A 013 hvbl____

の行が見つかったので今回はこの名前を使うことにします。

なので、最終的に必要なファイルは「phvc8r.tfm, phvc8t.tfm, phvc8t.vf, phvc8a.afm, phvc8a.pfb」になります。

珍しいフォントなどは、Berry命名規則を解説してくれているサイトなどを参考に付けるしかないようです。

必要なファイルの作成

afm, pfb

元になるこの2つのファイルを作るためにここを利用しました。
変換された、arialblack.afmとarialblack.pfbは、それぞれphvc8a.afm, phvc8a.pfbにリネームしておきます。

tfm, vf

まず、コマンドラインから以下の1行を入力します。

afm2tfm phvc8a.afm -p 8r.enc -t ec.enc -v phvc8t.vpl phvc8r.tfm
phvc8r Arial-Black “ TeXBase1Encoding ReEncodeFont “ <8r.enc

2行目は、afm2tfmからの表示です。
mapファイルに使うので1行だけのファイル「helvetica-black.map」とか適当に名前を作って保存しました。

helvetica-black.mapの中身

phvc8r Arial-Black “ TeXBase1Encoding ReEncodeFont “ <8r.enc

もう1行コマンドラインから入力して最後のファイルを作ってしまいます。

vptovf phvc8t.vpl
I had to round some heights by 14.5000000 units.
I had to round some depths by 2.5000000 units.

下の2行はワーニングです。無視しました。

最終的に、phvc8r.tfm, phvc8t.tfm, phvc8t.vf, phvc8a.afm, phvc8a.pfb, phvc8t.vpができましたが、phvc8t.vpは使いません。

できたファイルを移動

生成されたファイルは、拡張子に合わせて必要な場所に移動します。
「texmfなんとか」のローカルなフォルダに入れるといいでしょう。手元の環境には
「/Users/Shared/TeXLive/texmf/fonts/」の下に「tfm/local」「vf/local」「type1/local」というフォルダがありました。afmファイル用に「afm/local」を作って、それぞれ移動することにしました。
helvetica-blac.map用にも「map/local」を作って移動します。

phvc8r.tfm, phvc8t.tfm –> tfm/local
phvc8t.vf –> vf/local
phvc8a.afm –> afm/local
phvc8a.pfb –> type1/local
helvetica-black.map –> map/local

mapファイルの登録

mapファイルに登録します。
map/localに移動して以下を実行しました。

updmap-sys --enable Map=helvetica-black.map
mktexlsr

これでhelvetica-black.mapの内容がシステムのmapファイルに登録されました。

使ってみる

設定は簡単です。
\useromanの引数の「{b}」は「{x}」かもしれませんが、個別に指定するぶんには問題ないでしょう。

\documentclass{jarticle}

\DeclareFontFamily{T1}{phvc}{}
\DeclareFontShape{T1}{phvc}{b}{n}{<-> phvc8t}{}
\newcommand{\helvBlack}{\useroman{T1}{phvc}{b}{n}}

\begin{document}
{\helvBlack abc123}
abc123
\end{document}

これで無事フォントが埋め込まれました。

0614a

MacでフォントをAdobeのアプリが認識しない

TeXのType1フォントをインストールするときに起きてしまいました。TeX用じゃなくても、フォントが認識されないときは同じ方法が使えると思います。

フォントを入れたけどIllustratorで認識されない

MacにTeX用のフォントをインストールしました。なんだか久しぶりです。
いちおうcmps-oztex.hqxとcmps-textures.hqxをダウンロードしましたが、同じフォントなのでoztexを使うことにします。
昔のままType1フォントです。

解凍してダブルクリックしてみると、Font Bookは起動するけど何も文字は表示されず???

スクリーンフォントが同じフォルダに入っていないからでした。

「CM screen」フォルダにある「CM/PS screen fonts」と「LaTeX screen fonts」を同じフォルダに入れたら、無事表示されました。

Font Bookから「インストール」すればいいのですが、全部選択するのは面倒くさいのと、まとめて同じフォルダに入れておきたいので、直接フォントフォルダにコピーすることにします。

フォントはユーザーローカルなフォントフォルダ
「~/Library/Fonts/」です。
ここに、2つのスクリーンフォントを含めた「CM PS outlines」フォルダをコピー。

Font bookでも表示されるし、テキストエディットでも選択できるのですが、Illustratorでは、フォントメニューに現れないし、フォントを使っているファイルを開いても認識されませんでした。

キャッシュをクリアたら解決 

調べてみると、いくつか解決法があります。どれもフォントのキャッシュファイルを作り直せばいいようです。

atsutil

システムのキャッシュを削除するようです。

sudo atsutil databases -remove

としました。直後には認識されませんでしたが、システム再起動したら無事Illustratorでも認識されるようになりました。

その他の方法

試してませんが、以下の方法でも解決できるようです。

直接キャッシュリストを削除 

~/Library/Caches/Adobe/TypeSupportの下にある「AdobeFnt*.lst」を削除しました。

Macをセーフブートで起動する

Macを再起動して、起動音がしたらShiftを押し続け、Appleのロゴマークが出たらShiftキーを離す。

Adobeの説明にはその後のことが書いてないけど、セーフブートで起動したら、いったん再起動して通常のブートをすればフォントのキャッシュはクリアされるのでしょう。