図や表のキャプションのフォントをゴシックに

図や表のキャプションのフォントをゴシックに

- さん ま の投稿
返信数: 2
初めまして。
texに触れ始めてまだ日の浅い者です。
わからない点があり、初めてこちらに書き込みをさせていただきます。
texworksを利用してplatex、jarticleにて文書作成をしているのですが、図や表のキャプション部分のフォントに関して変更したく、探してみたところcaption.styを発見して利用してみました。しかし、こちらのパッケージでオプションをbfにしてみてもゴシックになっているのは図番号などを除いた部分のみで、数字は変化していないように見えます。特に1は、ひげがついていて気になります。
そこでひげがつかないようにsfをオプションに設定すると当然ですが他の部分まで変化してしまいます。
色々調べてみたつもりですがあくまでplatexで目的のものをとなると中々見つけられず、困っています。
caption部分、全てをゴシックにする方法を探しています。
詳しい方がいればご教授頂ければ幸いです。
さん ま への返信

Re: 図や表のキャプションのフォントをゴシックに

- TONE Kozaburo の投稿
こんな感じでしょうか?

% pLaTeX
\documentclass[dvipdfmx]{jarticle}
\makeatletter%
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
%  \iftdir\sbox\@tempboxa{#1\hskip1zw#2}%
  \iftdir\sbox\@tempboxa{\gtfamily\sffamily#1\hskip1zw#2}%
%    \else\sbox\@tempboxa{#1: #2}%
    \else\sbox\@tempboxa{\gtfamily\sffamily#1: #2}%
  \fi
  \ifdim \wd\@tempboxa >\hsize
%    \iftdir #1\hskip1zw#2\relax\par
    \iftdir {\gtfamily\sffamily#1\hskip1zw#2}\relax\par
%      \else #1: #2\relax\par\fi
      \else {\gtfamily\sffamily#1: #2}\relax\par\fi
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}
\makeatother%
\pagestyle{empty}
\begin{document}

\begin{table}

\caption{hogeほげ}
\end{table}

\begin{figure}

\caption{fugaふが}
\end{figure}

\end{document}
さん ま への返信

Re: 図や表のキャプションのフォントをゴシックに

- Z. R. の投稿
  • 「太字」と「ゴシック」は別の概念なので区別して考える必要があります。 和文の太字はよくゴシックで代替されますが、これはあくまで「代替」です。 質問の文面から推察すると、求めているのは「ゴシック」の方なのでしょう。
  • 一方で、captionのfontオプションの値bfはLaTeXの\bfseriesに対応するもので、これは「太字」を意味します。なので「ゴシック」がほしいときに使うのは不正解です。
  • では「ゴシック」にするLaTeXの命令は何かというと、これは欧文と和文で別になっていて、欧文は\sffamily、和文は\gtfamilyです。jsarticleなどでは「欧文で\sffamilyを指定すると和文が連動して自動的に\gtfamilyになる」という機能がありますが、jarticleにはないので両方指定する必要があります。
  • 単に\sffamilyだけ指定すればいいのであれば、captionではそのためのオプション値sfが用意されていて、つまりfont=sfを設定すればいいはずです。しかし\gtfamilyを含んだ設定は用意されていないので、captionのカスタマイズ機能を利用して自分で用意する必要があります
  • \sffamily\gtfamilyの両方を指定するfontの設定値gtは以下のようにして定義できます。
    \DeclareCaptionFont{gt}{\sffamily\gtfamily}
    従ってこの定義をした後にfont=gtを設定すればいいわけですが、\DeclareCaptionFontを実行するためにはcaptionが既に読み込まれている必要があるので、caption読込時(\usepackageのオプション)で設定することができません。代わりに\captionsetup命令で設定する必要があります。

以上より、キャプションを「ゴシック」にしたい場合は以下のように書くことになります。

\usepackage{caption}
\DeclareCaptionFont{gt}{\sffamily\gtfamily}
\captionsetup{font={gt}}