mdframed で文字色を変更できない

mdframed で文字色を変更できない

- Hiroyuki Matsuo の投稿
返信数: 4
お世話になります。

LaTeX でターミナルの出力風の枠を作りたいと思い,「美文書作成入門」で紹介されていた mdframed パッケージを使ってみています。

texdoc mdframed コマンドで読める pdf ファイルなども参考にしながら,背景色やマージンを設定することはできるようになったのですが,文字色の設定が上手くいきません。文字色は fontcolor オプションで設定できるはずなのですが,反映されません。

tex ファイルの内容と,出力結果を以下に記載させていただきます。
文字色を正しく白色に設定する方法を教えていただけますと幸いです。

宜しくお願いします。


--------------------------------------------------
 test.tex
--------------------------------------------------
¥documentclass[a4j]{jarticle}

¥usepackage[dvipdfmx,hiresbb]{graphicx,xcolor}
¥usepackage{tikz}
¥usepackage[framemethod=tikz]{mdframed}

% mdframed 環境のオリジナルスタイルを定義
¥definecolor{DarkGray}{rgb}{.345,.345,.353}
¥mdfdefinestyle{prompt}{
    roundcorner       = 0.25zw,
    linecolor         = DarkGray,
    backgroundcolor   = DarkGray,
    fontcolor         = white, % ここの設定が反映されません
    innertopmargin    = 1zw,
    innerrightmargin  = 1zw,
    innerbottommargin = 1zw,
    innerleftmargin   = 1zw,
    skipabove         = 1.5zw,
}

¥begin{document}

¥section{PDFに変換}

TeX Live 2013ではplatexdvipdfmxを順に起動するptex2pdf -lというコマンドもあります.

¥begin{mdframed}[style=prompt]
¥begin{verbatim}
ptex2pdf -l ex1
¥end{verbatim}
¥end{mdframed}

こうしでできたPDFは,Adobe Readderでもプレビューできます.

¥end{document}


--------------------------------------------------
 test.pdf
--------------------------------------------------

light.dotup.org215361.png

ptex2pdf -l ex1」の文字色を白色にしたいのですが,設定が反映されていません。
Hiroyuki Matsuo への返信

Re: mdframed で文字色を変更できない

- Akira Kakuto の投稿
ドライバ pgfsys-dvipdfmx.def の問題です。
pgfsys-dvipdfmx.def はしばしば問題を起こすようです。
XeTeX も pgfsys-dvipdfmx.def を使うので,困ること
が多いようです。 今の場合は,代わりに pgfsys-dvipdfm.def
を使うことで解決しますが,pgfsys-dvipdfm.def は小さい obsolete
なものなので,何時でも OK ではありません。

以下のようにすると,文字が白くなるでしょう.
(最新の l3kernel ではエラーになるので,古い l3kernel に
戻して確認しました)

\documentclass[a4j]{jarticle}
\def\pgfsysdriver{pgfsys-dvipdfm.def}
\usepackage[dvipdfmx,hiresbb]{graphicx,xcolor}
\usepackage{tikz}
\usepackage[framemethod=tikz]{mdframed}
... ...
Hiroyuki Matsuo への返信

Re: mdframed で文字色を変更できない

- 浮亭 夢介 の投稿
ご提示のソースでは失敗しましたので,修正の上 lualatex で実行してみました.
修正したところは

-----------------------------------
\documentclass[a4paper]{ltjsarticle}
\usepackage{graphicx,xcolor}

長さ単位 zw → \zw (0.25zw → 0.25\zw のように)

¥begin{verbatim}と¥end{verbatim}をコメントアウト
-----------------------------------

結果はつぎの通りです.

添付 xxx.png
Hiroyuki Matsuo への返信

Re: mdframed で文字色を変更できない

- Hiroyuki Matsuo の投稿
Akira Kakuto さん,浮亭 夢介 さん,ご回答ありがとうございました。

確かに,ドライバとして pgfsys-dvipdfm.def を設定すると,文字色が白くなりました。


なお,その後も色々と調べていたのですが,tcolorbox という,もっと良さそうなパッケージを見つけました。

同様にターミナル風の出力を得られる環境が作れたので,こちらを使っていこうと思います。


¥documentclass[a4j]{jarticle}

¥usepackage[dvipdfmx,hiresbb]{graphicx,xcolor}
¥usepackage{tcolorbox}

% prompt環境を定義
¥definecolor{DarkGray}{rgb}{.345,.345,.353}
¥newtcolorbox{prompt}{colframe=black, colback=DarkGray, coltext=white, fontupper=¥setlength{¥baselineskip}{1.2zw}, top=0.5zw, right=0.5zw, bottom=0.5zw, left=0.5zw, enlarge top by=0.5zw}

¥begin{document}

¥section{ターミナルで使えるコマンド集(Mac)}

¥texttt{pwd}コマンドは,カレントディレクトリのパスを表示するコマンドです.
例えば,ターミナルを立ち上げた直後にコマンドを実行してみると,

¥begin{prompt}
¥begin{verbatim}
MacBook-Pro:~ hiroyuki$ pwd
/Users/hiroyuki
MacBook-Pro:~ hiroyuki$
¥end{verbatim}
¥end{prompt}

このように,ホームディレクトリのパスが表示されます.

¥end{document}

light.dotup.org215593.png

ありがとうございました。