マクロツイーター

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

イマドキのWindowsでcomicsansパッケージする方法

前回の記事の続きで、LaTeXのcomicsansパッケージ(あるいは「Comic Sans MS」フォント)をイマドキのWindowsで使うための話。

イマドキのComic Sans MSだとcomicsansできない話

周知のとおり、Comic Sans MSはWindows(95から)に標準で搭載されているフォントである。comicsansパッケージのマニュアルの説明に従うと、comicsansは「Windowsに搭載されているComic Sans MS」もサポートしているはずである。

ところが、実際に現役のWindows(8.1以降)でマニュアル通りの手順(前回説明した手順からフォントファイルのダウンロードを省いたもの)に従ってインストールした上でcomicsansを利用しようとすると、コンパイルは通ってPDFが生成されるが、肝心のComic Sans MSの文字が全て化けてしまうという無残な結果になる。

f:id:zrbabbler:20200812005848p:plain

この原因は、要するに、「comicsansは古いパッケージ(最終更新は2013年)であり、Windows 8以降の新しいComic Sans MSフォントに対応できていない」からである。

イマドキのComic Sans MSでcomicsansする話

そこで、「comicsansを新しいフォントファイルに対応させるためのパッケージ」を作ってみた

comicsansの内容に変更を加えるのは避けたいので、「comicsansを内部で読み込む新たなパッケージ」という形で提供する。

tccomicsansのインストール方法

Windows 8以降が必要である1

  • comicsansパッケージをパッケージのファイルだけインストールする。すなわち、CTANからcomicsans.tds.zipをダウンロードして、$TEXMFLOCALの下でそのZIPファイルを展開する。
    ※既にcomicsansが完全にインストールされているならそれでもOK。
  • tccomissansのReleaseページから最新の“tccomicsans.tds.zip”(この名前のリンクがある)をダウンロードして$TEXMFLOCALの下でそのZIPファイルを展開する。
  • mktexlsrを実行する。(必要なら管理者権限で)

tccomicsansのキホン的な使い方

comicsansと同じ用法で使いたいのであれば、tccomicsansをmainオプションを付けて読み込む。

\usepackage[main]{tccomicsans}

注意として、tccomicsansはドライバ依存をもつ。従って、dvipdfmxと併用する場合はクラスオプション2dvipdfmxを指定する必要がある。

例えば、前回の記事のテスト用の文書と同等のものは、以下のソースファイルから得られる。

\documentclass{article} % pdfLaTeXの場合
%\documentclass[dvipdfmx]{article} % dvipdfmxの場合
\usepackage[main]{tccomicsans}
\begin{document}
\section{A Simple Test}
Hello, comic {\TeX} world!
\[ \lim_{x\to0}\frac{\sin x}{x} = 1 \]
\end{document}

f:id:zrbabbler:20200810094421p:plain

なお、新しいComic Sans MSフォントは以前のものとは異なり「イタリック」「太字イタリック」のフォントファイルが含まれている。tccomicsansパッケージのフォントマップはイタリックシェープに対して(合成斜体ではなく)これらのフォントファイルを割り当てているため、pdfLaTeXでもイタリックシェープが使用可能である。もちろん、キリル文字にも対応している。

% 文字コードはUTF-8
\documentclass{article} % pdfLaTeX
%\documentclass[dvipdfmx]{article} % dvipdfmx
%↓ロシア語したい
\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage[russian,main=english]{babel}
\babeltags{RUS=russian}
%↑
\usepackage[main]{tccomicsans}
\begin{document}
\section{A \emph{Very} Simple Test}
\begin{itemize}
\item In \emph{America}, you run {\TeX}.
\item \textRUS{В \emph{Советской-России}, {\TeX} выполняет вас!}
\end{itemize}
\end{document}

f:id:zrbabbler:20200812025222p:plain

tccomicsansをホンキで使う

comicsansのオプション、例えばulemphlargesymbolsなどはtccomicsansでも有効である。(内部でcomicsansを読み込む際にこれらのオプションをそのまま渡している。)

\documentclass{article} % pdfLaTeX
%\documentclass[dvipdfmx]{article} % dvipdfmx
% 大型演算子をアレにする
\usepackage[main,largesymbols]{tccomicsans}
\begin{document}
\[ e = \lim_{t\to\infty} \left(
       1 + \frac{1}{t} \right)^t
     = \sum_{n=0}^{\infty} \frac{1}{n!}
\]
\end{document}

f:id:zrbabbler:20200812025203p:plain

tccomicsansパッケージのmainオプションは「comicsansパッケージを内部で読み込んで本文のメインのフォントをComic Sans MSに変更する」という設定を行うためのものである。従って、tccomicsansをmainを付けずに読み込んだ場合はメインのフォントの設定は変更されない。この場合に「comicというフォントファミリを利用すれば文書の一部だけComic Sans MSを適用できる」ということは前回の記事で述べたが、さらにtccomicsansパッケージでは次のユーザ命令が利用できる。

  • \comic: 以降のテキストをComic Sans MSで出力する。(普通はグルーピング内で使う。)
  • \textcomic{テキスト}: 引数のテキストをComic Sans MSで出力する。

mainが有効な場合もこれらの命令は提供される。
mainが無効な場合はcomicsansパッケージは読み込まれない。従って、comicsans用のオプション指定は無効になる。
※tccomicsansパッケージの仕様では、Comic Sans MSで実際に出力する場合には必ずパッケージを読み込む必要がある。(フォントマップを有効にするため。)

\documentclass{article} % pdfLaTeX
%\documentclass[dvipdfmx]{article} % dvipdfmx
\usepackage[nomain]{tccomicsans}
\begin{document}
% 一部だけComic Sans MSにする.
Hello, \textcomic{comic} {\TeX} world!
\end{document}

f:id:zrbabbler:20200810094451p:plain

LuaLaTeXとかXeLaTeXとか

fontspecパッケージの機能を利用してWindows付属のComic Sans MSを指定する場合は以下のようにする。

Windows上のTeX LiveではOSにインストールされたフォントはfontspecにおいて必ずフォント名で指定できる。ファミリ名だけ書けば済むのでフォント名指定のほうが便利であろう。

% LuaLaTeX/XeLaTeX
\documentclass{article}
\usepackage{fontspec}
% フォント名で指定する場合
\setmainfont{Comic Sans MS}
% ファイル名で指定する場合
%\setmainfont{comic}[Extension=.ttf,ItalicFont=*i,
%    BoldFont=*bd,BoldItalicFont=*z]
\begin{document}
Hello, comic {\TeX} world!
\end{document}

f:id:zrbabbler:20200810124233p:plain

前回の記事の最後に挙げた「Comic Sans MSの指定を、テキストはfontspec、数式はcomicsansで行う」例をtccomicsansを使って書き直すと以下のようになる。

% LuaLaTeX/XeLaTeX; UTF-8
\documentclass{article}
\usepackage[main]{tccomicsans}
\usepackage[no-math]{fontspec}
\setmainfont{Comic Sans MS}
\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:20200812035350p:plain

まとめ

イマドキのWindowsのComic Sans MSは用法・用量を守って(ry


  1. 実際には「Windows 8以降に搭載のものと同等なComic Sans MS」があればtccomicsansは使えるはずである。この場合、そのフォントファイルを「TeXから見える場所」に配置すればよい。

  2. ドライバオプションをtccomicsansのオプションとして指定することも可能であるが、イマドキのLaTeXを使っているのであれば、ドライバオプションはクラスオプション(グローバルオプション)に指定すべきである。