Tipsダッシュダッシュ(ダーシ、倍角ダッシュ)――は好きですか?私は大好きです。ところがTeXにおいて倍角ダッシュは、使うフォントによって真ん中に隙間ができてしまいます。IPAもそうなのでデフォルトでの組版結果では隙間が空いています。それで全然気にならない人、あるいは繋がるフォントを使うことにした人には無用の試みなんですが、筆者はどうしても繋げたくてあがいてみました。一口にダッシュと言っても世の中には長い棒に見える記号がいくつもありますので、まずこれ――は何なのかきちんと確認しておきましょう。筆者はキーボードの0の隣、伸ばし棒(長音記号)のキーから長音記号ーを入れて、これを変換して出てくる「全角ダッシュ」を2つ並べたものを辞書登録して使っています。BAR」だと分かりました。ところが2015付近にはそれっぽい記号がたくさんあります。DASHとなっています。これらをコピーして2つ並べてタイプセットすると、結果はこうなりました。どれもガタガタですね。少なくともTeXにおいては和文のダッシュとみなされるのはホリゾンタルバーだけのようなので、ここではこの記号――を使うものとします。青空文庫の定義とも合致しています。(Wikipediaのダッシュの項などを参照すると、変換した時に出る全角のダッシュは本来ホリゾンタルバーではなくエムダッシュであるべきらしいんですが......TeXがそうなっていないのでここでも正しい定義は無視します)これの間を繋げるには、基本的には以下のTeXマクロでコマンドを定義してそれを使います。\def\――{―\kern-.5zw―\kern-.5zw―}こうした上で文中の全てのダッシュの頭にバックスラッシュをつけてやります。\――というコマンドによって、繋がったダッシュを出力してやるという方式です。このマクロでどうして間が繋がるのかというと、これはつまり「―を1つ出力したらその上に半文字分上にずり上げた―を重ねて出力、もうひとつ―を半文字分重ねて出力」という命令だからです。kernというのは「カーニング」という言葉があるように、「字詰め」のことです。図解するとこうなります。これで繋がるようにはなったんですが、いかんせん全部のダッシュを\――としなければなりません。かっこ悪いよ......原稿にぼこすか出てくる上、だいたいは感情が高まって言葉を途切らせたりタメを入れる時に使うので、いちいちバックスラッシュが入っているとなんとなく水を差されたように感じるんです。そんなことをぶつぶつ言いながらじたばたやっていたらZRさんがパッケージを書いて下さいました。契機はいかにダッシュを繋げるかということだったんです。Punctuationカテゴリの扱いをどうするかということ)というわけでzrjapunct1読み込み後は特に何もしなくても大丈夫です!普通に――と書けばそのまま繋がって出力されます!夢のようだ!本当にありがとうございます。上記の方法は和文ダッシュを打つ方法なんですが、TeXには元々欧文のためのダッシュを入れる方法があります。そっちも探ってみましょう。教科書やチートシートを見てみると、-(半角ハイフン)を2つ並べて書くとエヌダッシュ、3つ書くとエムダッシュになるとあります。前者がnの横幅と同じ長さ、後者がmと同じ長さなのでこう呼ぶそうです。試しにこれを縦書きで組んでみましょう。おお、エムダッシュの方がどうやら全角1文字分っぽいですね。ホリゾンタルバーよりも線が細くてシュッとした感じです。倍角ダッシュにしたいので、ハイフンを6つ続けて入れてみます。(もちろん欧文に対しては倍角にせずにそのままエヌダッシュかエムダッシュで使えます)やった!繋がった!けどちょっとバランスが変です。これは前項で説明したベースラインのせいです。半角のカッコやダッシュは欧文のベースラインに合った位置に配置されていて、かつそのベースラインは全角文字の正方形の左辺に合わせてあるのでどうしても左にズレてしまうんでした。最後でちらっと触れたように、これを調節する方法は実はあります。\tbaselineshiftです。1文字通りベースラインのシフト(移動)量を決めるパラメータ(変数)で、値を設定してやることで和文に対する欧文の相対的な位置を決めることができます。パラメータとは何ぞやということは次項でやりますので、とりあえず位置を変えられるんだということだけ覚えておいてください。実際にやってみましょう。バランスを見るために山括弧なども入れて、ベースラインシフトを0にして組んでみます。0pt%\verb|<|あたしの車をtouf-toufだといったね。思いっきり右にずれました。0=移動しないということなので、和文のベースラインである中央に欧文のベースラインであるアルファベットの底が来ています。何も指定していない時のデフォルトが具体的にどういう値になっているのかは分からないんですが、とにかく少し左にズレていたデフォルトと、大幅に右にズレる0ポイントの間で調節を行います。数値を増やすほど左に行きます。こんな感じになりました。うーんどれがいいだろう......実際に使いそうなのは2.5~3ポイントあたりでしょうか。ベースラインをずらしているので、当然ですがすべての欧文文字が一緒についてきます。そんなに半角英数を入れていない場合は目立たないかもしれませんが、十蘭のようにちょいちょいアルファベットが入ってくる文体の人は、和文に対する欧文文字のバランスも見ながら最適な数値を選んでください。この指定は上の例のように本文に書き込むと効力を発揮しますが、同じようにプリアンブルに書き込んでも効き目がありません。プリアンブルには次の形にしたものをコピペしてください。2.75pt}文字通り、\begin{document}のところで第一引数を展開せよというマクロです。これでハイフン6つでダッシュが出力できるようになりました。普段ダッシュを多用しない人などは、もしかしたらキーボード直で打てるこっちの方法が楽かもしれません。欧文扱いしたい字が多く、[prefernoncjk]モードにしている人は、ホリゾンタルバーを欧文扱いにして、原稿中にベタ書きで出力させるこの方法を取ります。出てこない時にしか欧文扱いできません。原稿にこれらの記号が入ったままprefernoncjkで走らせようとするとエラーになります。逆も然りで、記号を直書きしたいならダッシュの直書きは諦めてください。orz(17/11/24追記)ZRさんにご指摘頂きました。基本的にこの方法はイバラの道だと思ってください。Punctuation」全体が欧文扱いになっているせいで起こる不具合がたくさんあります。原稿に入っているとエラーが出ますし、何より三点リーダーが欧文扱いでベースライン上(左端)に組まれてしまうという恐ろしい副作用が起こります。回避する手は一応、本当に一応あります。ELLIPSIS」)に置き換えることです。