ソースコードだけ別フォントファミリにしたい

ソースコードだけ別フォントファミリにしたい

- 田所 造治 の投稿
返信数: 4
platexを使っています
jlisting,listingを使ってC言語のソースコードを枠の中に載せたいと思っています
また、印刷の都合上、PDFファイルにフォントを埋め込んでしまいたいのですが、
通常の文章にヒラギノ、ソースコードにはRictyというようにフォントファミリを使い分けることは可能なのでしょうか?
dvipdfmxを使って今までヒラギノフォントをPDFに埋め込んできたのですが、特定の部分にだけ異なるフォントを埋め込むやり方がわからず悩んでいます
田所 造治 への返信

Re: ソースコードだけ別フォントファミリにしたい

- 匿 名 の投稿

「ソースコードの部分で和文・欧文ともにフォントを Ricty にしたい」 というのをあきらめて,そもそもソースコード内では和文を使わないことにするのでしたら,話は簡単だと思われます.

例えば,Inconsolata パッケージを使えば,\ttdefault が Inconsolata (zi4) になりますので,listings パッケージの設定で “stringstyle=\ttfamily” とすれば,ソースコード (の欧文フォント) を Inconsolata にできます.

jlistings というパッケージでソースコード内の和文フォントを指定する方法を私は知りませんが,それが分かれば,和文フォントの指定を Ricty にすれば,ソースコードの部分の和文フォントが Ricty になるのかも知れません.

※ Incosolata にせよ,Ricty にせよ,使いたいフォントがお手元の LaTeX で利用可能になっていること (=各種ファイルが適切に配置されていて map も組み込み済みであること) が大前提ではありますが・・・.

田所 造治 への返信

Re: ソースコードだけ別フォントファミリにしたい

- 本田 知亮 の投稿
すでにご指摘があるとおり
二つの問題が混在しています

(1) (j)listingで書体を変えることができるか?
これは,適当なfontにかえることができればいいですね.
例えば,和文をHiraKakuのなにか,
欧文をLaTeXのcmttと同じエンコードの何かに
かえることができるのかです.
たとえば,
\def\listingfont{\def\ttdefault{txtt}\bfseries\ttfamily}
みたいにして
string=\listingfont
とかにすると和文も欧文もかわるんでしょうか
なお,これと似たような細工でverbatim/verbの書体は
変更できます

(2) RictyをLaTeXで使うための各種設定はすんでいるのか?
これは(j)listingとは無関係で
ふつうに使えるようになっているのかです.

本田 知亮 への返信

Re: ソースコードだけ別フォントファミリにしたい

- 本田 知亮 の投稿
すこしやってみました.
Rictyではないですが,
いちおう和文と欧文の比をおおよそ2:1にしています.

listingの中はInconsolataと「ゴシック」です.
TeX Live 2014(つまり,inconsolata.styが入っている環境)で確認しています.
記号類とかがどうなるかはみていません.


\documentclass{jarticle}
\DeclareFontFamily{JY1}{zi4}{}
\DeclareFontShape{JY1}{zi4}{m}{n}{<-> s*[1.0393] jisg}{}%%jisgは適当に別のものへ
\DeclareRobustCommand{\listingfont}{\kanjifamily{zi4}\romanfamily{zi4}\selectfont}
\usepackage{listings,jlisting}
\begin{document}
\begin{lstlisting}[basicstyle={\listingfont}]
aaあい
\end{lstlisting}
\end{document}
田所 造治 への返信

Re: ソースコードだけ別フォントファミリにしたい

- 村上 TomOne の投稿
冬コミで「よくわかるLaTeX小説〜All You Need Is LaTeX〜」出しましたが、
この時は

=====================================
\renewcommand{\ttdefault}{cmtt}
\makeatletter
\DeclareRobustCommand\ttfamily{%
\not@math@alphabet\ttfamily\mathtt
\romanfamily\ttdefault
\kanjifamily\mgdefault
\selectfont}
\makeatother

\usepackage{listings,jlisting}
\lstset{
basicstyle=\ttfamily\footnotesize,
commentstyle={\itshape},
keywordstyle={\rmfamily\bfseries},
stringstyle={\ttfamily}
}
=====================================

みたいな感じで設定してます。
欧文と和文を同時に変更するマクロ作って、それを指定してやります。

listings環境は 「“ の様な「二分空き+開括弧」が「開括弧+二分空き」に
変わってしまう問題に悩んで、結局諦めましたが…