マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

TeX Liveでcomicsansパッケージする方法

TeX Live(およびそれに準ずるTeX配布)で「comicsansパッケージ」をインストールする手順を説明してみる。

最初に注意してみる

  • Windowsでは当然Comic Sans MSが付属しているはずであるが、Windows 8以降に付属する新しい版のComic Sans MSについてはcomicsansパッケージはサポートしていないので使えない。ここで説明する手順に従って古い版のComic Sans MSを導入する方法はWindowsでも有効であるが、OSのフォントを古い版で上書きしてしまわないように十分に注意すること。
  • ★印を付けた操作は管理者権限(例えば“sudo”を付けるなど)が必要である。

手順を説明してみる

①comicsansのパッケージをダウンロードする

  • CTANのページを開く。
    CTAN: Package comicsans
  • “comicsans.tds.zip”のリンクから、その名前のファイルをダウンロードする。
    ※“Download”から得られる「comicsans.zip」ではないので注意。
  • “Package Documentation”のリンクをたどって、マニュアルを開く。
    ※あるいは、何らかの方法で、zip内にあるcomicsans.pdfを開く。

②マニュアルの手順に従う

2.1 Acquire and install the TrueType files
  • フォントファイル(comic.ttf、comicbd.ttf)の取得は書いてある通り。
  • ★フォントファイルを次の場所に配置する: $TEXMFLOCAL/fonts/truetype/microsoft/comicsans/
2.2 Generate the italic and/or Cyrillic variants (optional)
  • これは、TeX外のシステム依存の話なので、がんばる。あるいは、optionalなのでがんばらなくてもよい。

※マニュアルの説明の中に「cyrfinst package」なるものが登場するが、要するに、t2a.encがあればよく、TeX Liveのフルインストールなら入っているはずである。(kpsewhich t2a.encで確認できる。)ない場合は、TeX Liveのインストールにcollection-langcyrillicを追加する。(もちろん、キリル文字を使う予定がないなら不要。)

2.3 Install font files and refresh TeX’s database

この節に相当する手順は以下のようになる:

  • ★先ほどダウンロードしたcomicsans.tds.zipを$TEXMFLOCALの下で展開する。
  • ★2.2の手順を行った場合は、生成されたフォントファイル(*.pfb)を以下の場所に配置する:
    $TEXMFLOCAL/fonts/type1/microsoft/comicsans/
  • ★「mktexlsr」を実行する。

※Texdocが利用可能な場合、これ以降は「texdoc comicsans」でインストールしたcomicsans.pdfが開くようになるはず。

2.4 Point the TeX backends to the comicsans files

この節に相当する手順は以下のようになる:

  • ★「updmap-sys --enable Map comicsans.map」を実行する。

③動作確認する

以下のような簡単なテストファイルを用意する。

\documentclass{article}
\usepackage{comicsans}
\begin{document}
\section{A Simple Test}
Hello, comic {\TeX} world!
\[ \lim_{x\to0}\frac{\sin x}{x} = 1 \]
\end{document}

このソースファイルを、以下の各々のワークフローで普通にビルドして、正常にPDFが生成されるかを調べる。

  • pdflatex
  • (p)latex → dvipdfmx

成功の場合、以下の出力が得られるはずである。

f:id:zrbabbler:20200810094421p:plain

さらに蛇足してみる

Type1フォントを作らない方法

dvipdfmxの場合は、わざわざType1フォントに変換しなくても、元のTrueTypeフォントのままでイタリック(擬似斜体)を使うことができる。(pdfTeXでは不可。)その設定に変更する手順を示す。

※管理者権限が必要。

①まず、$TEXMFLOCAL/fonts/map/dvips/comicsans/comicsans.mapを開いて、31~32行目を以下のように書き換える。

(修正前)
rcomico8r ComicSansMS "0.167 SlantFont" <rcomic8r.pfb
rcomicbdo8r ComicSansMS-Bold "0.167 SlantFont" <rcomicbd8r.pfb
rcomiccyro ComicSansMS "0.167 SlantFont" <rcomiccyr.pfb
rcomiccyrbdo ComicSansMS-Bold "0.167 SlantFont" <rcomiccyrbd.pfb
(修正後)
rcomico8r ComicSansMS "0.167 SlantFont TeXBase1Encoding ReEncodeFont" <8r.enc <comic.ttf
rcomicbdo8r ComicSansMS-Bold "0.167 SlantFont TeXBase1Encoding ReEncodeFont" <8r.enc <comicbd.ttf
rcomiccyro ComicSansMS "0.167 SlantFont T2AAdobeEncoding ReEncodeFont" <t2a.enc <comic.ttf
rcomiccyrbdo ComicSansMS-Bold "0.167 SlantFont T2AAdobeEncoding ReEncodeFont" <t2a.enc <comicbd.ttf

②その上で、updmap-sysを(オプションなしで)実行する。

以下にサンプルを示す。

\documentclass{article}
\usepackage{comicsans}
\begin{document}
% \emph が斜体になる.
\section{A \emph{Very} Simple Test}
Hello, \emph{comic} {\TeX} world!
\end{document}

f:id:zrbabbler:20200810095855p:plain

文書の一部だけComic Sans MSにする

comicsansパッケージを読み込む(\usepackage{comicsans})と、文書のメインのフォントがComic Sans MSに変更されてしまうため、「メインのフォントは変えずに、文書の一部だけComic Sans MSを使いたい」という場合には対応できない。実は、comicsansをインストールした時点で、Comic Sans MSが「comic」という(NFSSの)ファミリ名で使えるようになっているので、一部だけ使いたい場合はパッケージを使用せずに直接ファミリを切り替えればよい。

\documentclass{article}
%% \textcomic{テキスト}: Comic Sans MSで出力する.
\newcommand{\textcomic}[1]{%
  {\fontfamily{comic}\selectfont #1}}
\begin{document}
% 一部だけComic Sans MSにする.
Hello, \textcomic{comic} {\TeX} world!
\end{document}

f:id:zrbabbler:20200810094451p:plain

まとめ

Comic Sans MSは用法・用量を守って正しく使いましょう(多分)。


追記:さらにさらに蛇足してみる

LuaLaTeXとかXeLaTeXとかの場合

もちろん、LuaLaTeX・XeLaTeXを使っているのなら、fontspecパッケージの機能を利用してComic Sans MSを利用できる。なので普通はそもそもcomicsansパッケージは不要である。

% LuaLaTeX/XeLaTeX
\documentclass{article}
\usepackage{fontspec}
% ファイル名で指定する場合
\setmainfont{comic.ttf}[BoldFont=comicbd.ttf]
% フォント名で指定する場合(環境依存)
%\setmainfont{Comic Sans MS}
\begin{document}
Hello, comic {\TeX} world!
\end{document}

f:id:zrbabbler:20200810124233p:plain

しかし、数式でComic Sans MSを使いたいのであれば、comicsansパッケージを使うのが妥当であろう1。この場合は、一般的な「fontspecと数式フォントパッケージと組み合わせる」場合のノウハウに従えばよい。つまり:

  • まず数式フォントパッケージ(つまりcomicsans)を読み込む。
  • 次にfontspecをno-mathオプションを付けて読み込む。これでテキスト用フォントはfontspecの初期設定に戻る(数式フォントパッケージの設定は消える)。
  • 改めてテキスト用フォントをfontspecの機能で設定する。
% LuaLaTeX/XeLaTeX
\documentclass{article}
\usepackage{comicsans}
\usepackage[no-math]{fontspec}
\setmainfont{comic.ttf}[BoldFont=comicbd.ttf]
\begin{document}
Hello, comic {\TeX} world and $e^{\pi i} = -1$.
\end{document}

f:id:zrbabbler:20200810124259p:plain

ただし注意がある。この設定では、テキスト用フォントについてはfontspecの機能を使って「TrueTypeフォントを直接指定している」ので、マップファイル(comicsans.map)の設定は使われていない2。なので、イタリックの指定は無効になる。合成斜体によるイタリックを有効にするには、fontspecのFakeSlant指定を利用すればよい3

% ファイル名で指定する場合
\setmainfont{comic}[Extension=.ttf,
    BoldFont=*bd,
    ItalicFont=*,ItalicFeatures={FakeSlant=0.167},
    BoldItalicFont=*bd,BoldItalicFeatures={FakeSlant=0.167}]
% フォント名で指定する場合(環境依存)
%\setmainfont{Comic Sans MS}[
%    ItalicFont=*,ItalicFeatures={FakeSlant=0.167},
%    BoldItalicFont={* Bold},BoldItalicFeatures={FakeSlant=0.167}]

イタリックと数式を含む完全な形のサンプルを挙げておく。

% LuaLaTeX/XeLaTeX; UTF-8
\documentclass{article}
\usepackage{comicsans}
\usepackage[no-math]{fontspec}
\setmainfont{comic}[Extension=.ttf,
    BoldFont=*bd,
    ItalicFont=*,ItalicFeatures={FakeSlant=0.167},
    BoldItalicFont=*bd,BoldItalicFeatures={FakeSlant=0.167}]
\begin{document}
\section{\emph{Comic} Lua{\LaTeX}}
\begin{itemize}
\item \TeX-lingvo estas \emph{danĝera!}
\item \TeX-язык — \emph{опасен!}
\item Η γλώσσα \TeX\ είναι \emph{επικίνδυνη!}
\item $\displaystyle
  \frac{1}{1^2} + \frac{1}{2^2} + \frac{1}{3^2} + \cdots
  = \frac{\pi^2}{6}$.
\end{itemize}
\end{document}

f:id:zrbabbler:20200810125805p:plain


  1. Comic Sans MSは数式用のフォントではないため、unicode-mathパッケージを適用したのでは恐らくロクな結果にならない。comicsansの数式もアレであるが、多分そっちの方がマシだろう。

  2. マップファイルで指定したのは非Unicodeのエンジンのためのフォントの設定であり、それは8ビットのエンコーディングを前提にしているため、Unicodeエンジンでそれを用いることは(可能ではあるが)推奨されない。

  3. (Bold)ItalicFeaturesを効かせるためには(Bold)ItalicFontを明示指定する必要があるようだ。なんか面倒だ……。