読者です 読者をやめる 読者になる 読者になる

TeX Alchemist Online

TeX を使って化学のお仕事をしています。

previewパッケージと \mag

TeX

前記事に引き続き,\mag の話です。

前記事で述べたように,開発版 jsclasses に搭載されている nomag または nomag* オプションによって \mag を使用しない版面設計を行えば,\mag に対応しないパッケージを正しく使用することができるようになります。

一方,パッケージの中身に手を入れる,開発元に意見するなどして,パッケージを \mag に対応させる,という方向性の解決策もあり得ます。最近では,graphicx パッケージの改修によって \mag 使用時にページサイズ設定がおかしくなる事案が発生しました。graphicx パッケージのバージョンアップに伴うdvips.defdvipdfmx.def の修正によって,デフォルトで用紙サイズ設定の special が発行されるようになったのですが,それが \mag の使用を想定していないがために,jsclasses で 10pt 以外を使用すると用紙サイズ設定がおかしくなるという問題でした。この問題は,現在の最新版 graphicx パッケージでは修正されています。

(u)pLaTeX + preview パッケージ + dvipdfmx での \mag 使用

以前の記事で,図版サイズギリギリにPDFページサイズを切り詰める preview パッケージを紹介しました。

doratex.hatenablog.jp

この記事で紹介したように,preview パッケージはそのままでは dvipdfmx に対応していないものの,ZRさん作のドライバファイル prdvipdfmx.def を手に入れれば, (u)pLaTeX + dvipdfmx のワークフローで preview パッケージが使えるようになります。

ただし,preview パッケージ自体は \mag に対応しているものの,この prdvipdfmx.def は \mag に対応していないようです。そこで,\mag を使用している際にも正しく機能するよう修正を試みました。

続きを読む

jsclasses 開発版における \mag の扱い

TeX

jsclasses では,ドキュメントクラスオプションで 10pt 以外の値が指定された場合,10pt で組版したものを \mag で拡大縮小することで版面を設計しています。 ただし,このように \mag を版面設計に積極的に使用するケースは世界的には珍しく,実際 TeX Live 2016 の LuaTeX では PDF出力モードでの \mag が廃止されてしまいました。

また,\mag の使用があまり一般的でないため,世の中には「\mag の使用を想定していないため \mag を指定すると誤動作する」というパッケージが時々存在します。

そうしたこともあって,開発版の jsclasses では,\mag を使用しない nomag というオプションが増設されました。 デフォルトはこれまで通り \mag を使う usemag というオプションが有効ですが,nomag を指定すると,\mag を使わずに実際のフォントサイズで組版されるようになります。

これにより,\hspace{1cm}\hspace{1truecm} が一致するようになります。

\mag を使わないことによる副作用とその対処

ただし,nomag を指定すると,Computer Modern (Latin Modern) のオプティカルサイズによる字形変化が起こり,組版結果の見た目の雰囲気が大きく変わってしまいます。

そこで,\mag を使わない場合も,10pt 以外の Computer Modern として,cmr8 や cmr12 などではなく cmr10 を拡大縮小したものを用いるよう NFSS にパッチを当てて用いるのが nomag* オプションです。

開発版 jsclasses を用いた実験

続きを読む

鉄緑会 東大問題集シリーズ 最新刊発売!

TikZ TeX PDF

先週,鉄緑会 東大問題集シリーズの最新刊が発売となりました。昨年は,11月にこのシリーズに新規科目として物理が加わりました。今年は,物理も含めて4科目が7月に一斉発売の運びとなりました。

2017年度用 鉄緑会東大数学問題集 資料・問題篇/解答篇 2007‐2016

2017年度用 鉄緑会東大数学問題集 資料・問題篇/解答篇 2007‐2016

2017年度用 鉄緑会東大古典問題集 資料・問題篇/解答篇 2007‐2016

2017年度用 鉄緑会東大古典問題集 資料・問題篇/解答篇 2007‐2016

2017年度用 鉄緑会東大化学問題集 資料・問題篇/解答篇 2007‐2016

2017年度用 鉄緑会東大化学問題集 資料・問題篇/解答篇 2007‐2016

2017年度用 鉄緑会東大物理問題集 資料・問題篇/解答篇 2007‐2016

2017年度用 鉄緑会東大物理問題集 資料・問題篇/解答篇 2007‐2016

さて,今年のTeX組版的な注目点としては,物理の章扉を TikZ で全面的に作り直した点が挙げられます。

ページサンプル

f:id:doraTeX:20160712120342p:plain

このページは,Illustrator などのグラフィックソフトは一切使わずに,LaTeX + TikZ のみで作成しています。

続きを読む

和文ゴーストによる \ruby の改良

TeX

[改訂第6版]LaTeX2e 美文書作成入門の付録Bには,「パス」の説明があります。

f:id:doraTeX:20160613011823p:plain

よく見ると,さりげなくすごい人名が登場しています。

f:id:doraTeX:20160613011836p:plain

というわけで,()() さんに敬意を表して,今日は pTeX によるルビの話です。

続きを読む

【改訂版】pdfTeX による見開きPDFの結合・分割

PDF TeX

一昨日の記事「pdfTeX による見開きPDFの結合・分割」を執筆した後,あべのりさん (id:abenori) のご指摘により,より改良できることに気づきました。

そこで,このアイデアをもとに改訂版を作成しました。この方法ならば /Rotate による回転情報が付いているPDFにも問題なく対応できますし,TeX ソースもスッキリして読みやすくてよいですね。

前回のソースも,pdfTeX を用いたPDFのバウンディングボックス読み取り処理のサンプルコードとしての価値はあるかもしれないので,前回の記事は残したまま,改訂版を新記事としてアップしておきます。(また,記事末尾の /Rotate 除去法のリンク集も,PDF芸人には存在価値があるかもしれません。)

目次

続きを読む

和文ゴーストとしての全角スペース

TeX TikZ

f:id:doraTeX:20160611003733p:plain

全角スペースは,プログラマやDTPerの間ではしばしば嫌われがちな存在です。TeX文書においても例外ではありません。TeXソース中に全角スペースが入り込んでいると思わぬ害をもたらすことが多く,基本的には避けた方がよい存在です。

ですが,TeXにおいて,珍しく全角スペースが大活躍する場面があります。それは(\kern-1zw と組み合わせることによる)和文ゴーストとしての用途です。例えば,ZRさんの BXglyphwiki パッケージ にその用例が見られます。

BXglyphwiki パッケージ を使うと,GlyphWiki に登録されているグリフの字形データをダウンロードして,その画像を1文字の和文文字であるかのように整形して出力してくれます。

このように,「和文1文字として使用するために画像や図形を出力したい」という状況においては,単に「ボックスの幅・高さ・ベースラインを他の和文文字と同じに揃えて出力する」というだけでは不十分です。なぜなら,TeXエンジンによって文字間に自動挿入されるべきグルーの問題があるからです。

(u)pTeX の場合,和文文字と和文文字が隣接した場合には \kanjiskip が,和文文字と欧文文字が隣接した場合には \xkanjiskip が自動挿入されます。しかし,自分で作成したボックスの場合,そのようなグルー挿入がなされないため,「和文1文字としての使用」という意図に反した組版結果が生まれてしまいます。

例えば, を四角で囲んだ ★⃞ という合成文字を作成し,これを和文1文字として出力したい状況を考えましょう。そのために,次のような命令 \squarestar を定義したとします。

【定義】

\def\squarestar{\begingroup
  \fboxsep=0pt
  \fboxrule=.5pt
  \framebox[1zw][c]{}%
  \endgroup}
続きを読む

pdfTeX による見開きPDFの結合・分割

PDF TeX

先日の記事「既存PDFの最初数ページをローマ数字,残りをアラビア数字で,ページ番号を付け直す方法」で,「PDFを見開き 2in1 で並べたり,逆に裁断したりするために pdfTeX を使うこともできる」と述べました。

これについて,反響がありましたので,追加で解説しておくことにしましょう。

PDF加工ツールとしての pdfTeX の実力をとくとご覧ください。

【追記】後日,より良い方法を見つけましたので,改訂版記事を執筆しました。そちらの改良された方法をご利用ください。(本記事も,PDFのバウンディングボックス読み取り処理のサンプルコードおよび /Rotate 除去法のリンク集として残しておきます。)

目次

続きを読む

TeX Live 2016 で変わったところ

TeX PDF

f:id:doraTeX:20160608131726j:plain

(Norbert Preining さんの記事 TeX Live 2016 released より)

TeX Live 2016 がリリースされて数日経ち,そろそろ世界各地のCTANミラーサイトにも波及してきたようです。

TeX Live 2016 における変更点は数多く,ここで挙げきることは困難(自分もとても全ては把握しきれていません)ですが,自分にとって身近な変更点を挙げておきます。

目次

続きを読む

MacTeX 2016 のインストール&日本語環境構築法 (El Capitan 以前/以後両対応)

TeX

f:id:doraTeX:20030806235338j:plain

(MacTeX 付属の mactex.jpg より)

数日前,とうとう TeX Live 2016 がリリースされました。TeX Live 2016 では,

  • LuaTeX で El Capitan 付属の新ヒラギノフォント(OTC形式)が使えるようになった
  • (x)dvipdfmx で \includegraphicspagebox= オプションが使えるようになった

など,一般ユーザにとってもメリットのある様々な改良がなされていますので,早速導入してみようと思っている人も多いことでしょう。

また,シーズン的に,大学に入学して心機一転,TeX を始めてみようという大学生の方も多いのではないでしょうか。

Mac 用の代表的な TeX Live ディストリビューションである MacTeX についても,新バージョン MacTeX 2016 がリリースされています。

個人的には MacTeX は使っていないのですが,日本にも MacTeX のユーザは多いようですので,MacTeX のインストール&日本語環境構築手順を解説しておきます。*1

El Capitan の新ヒラギノ環境,Yosemite 以前の旧ヒラギノ環境の両方に対応しています。初心者でも分かるよう,かなり丁寧に手順を解説しておきますね。

目次

*1:ここに書いてある手順は MacTeX 2016 付属の README-ja.pdf に書いたものと同一です。ネット検索でも簡単に手順が発見できるよう,このブログにも書いておきます。

続きを読む

既存PDFの最初数ページをローマ数字,残りをアラビア数字で,ページ番号を付け直す方法 (pdfLaTeX + pdfpages + hyperref)

PDF TeX

結城浩さん ( id:hyuki ) のお題「既存PDFの最初数ページをローマ数字,残りをアラビア数字で,ページ番号を付け直す」を,pdfLaTeX + pdfpages パッケージ + hyperref パッケージ で実現してみました。

snap.textfile.org

続きを読む