framed パッケージ

knitr における LaTeX のデフォルトスタイル

オリジナルのページ: https://yihui.org/knitr/demo/framed/

オリジナルの更新日: 2012/2/29


このページは knitr 単体の場合を解説しています. R Markdown の場合, framed が関わるのは基本的にコードチャンクの表示スタイルのみです.

デフォルトでは knitr はタイプセットに framed という LaTeX パッケージを使用しています. 代表的な特徴として, 薄灰色の影がつけられます. このページではいくつかのトリックと既知の問題を紹介します.

よくある質問で挙げたように, 影付きボックスからはみ出ることがあるかもしれません. その際は options('width') でより小さい値を設定してください.

要素の概要

テキストのはみ出しはさておき, 図もまた影付きの余白を超えるかもしれません. 図の幅が広すぎる場合, LaTeX は kframe 環境で問題が合った旨を警告します. kframeknitr チャンク出力を包むために使用します. 既知の問題では, issue #154 で PNG を使った場合があります. 確実にページ余白を超えないようにするため, knitr は以下のコマンドを LaTeX プリアンブルで使用します.

%% maxwidth is the original width if it's less than linewidth
%% otherwise use linewidth (to make sure the graphics do not exceed the margin)
\makeatletter
\def\maxwidth{ %
  \ifdim\Gin@nat@width>\linewidth
    \linewidth
  \else
    \Gin@nat@width
  \fi
}
\makeatother

出力が LaTeX の場合, チャンクオプション out.width はデフォルトで '\\maxwidth' 設定されます.

影付きボックスのパディング

もしデフォルトのレイアウト (パディングがまったくない)が倹約しすぎると感じた場合, この LaTeX コマンドでパディングを 5mm に設定します.

\setlength\fboxsep{5mm}

framed パッケージのデフォルトのスタイルが気に入らない場合, listings や自分自身で定義した出力フック に切り替えられます.

framed と互換性のない環境

二段組の文書内での figure* とは相性がよくありません. この状況に対処するアプローチに1つとして, knitr-twocolumn.pdf を参照してください.

Tufte handout/book クラスを使う場合, fullwidth 環境と framed パッケージは併用できません. 可能性のある解決策として, issue #222 の議論を参照してください.

lineno パッケージとも併用できません. Michael’s の投稿を参照してください.