このmdframedのフォントサイズを小さくして、再利用可能な環境にする

このmdframedのフォントサイズを小さくして、再利用可能な環境にする

mdframed希望する設定にかなり近づいています:

\documentclass[a4paper,10pt]{book}

\usepackage[paper=a4paper,twoside=true,lmargin=4cm,
rmargin=4cm,bindingoffset=0cm]{geometry}

\usepackage{mdframed}

\begin{document}

\noindent Surrounding text.

\begin{mdframed}
\begin{tabbing}
 some great \=code\\
            \>next line
\end{tabbing}
\end{mdframed}

\noindent Surrounding text.

\end{document}

2つの質問:

  1. mdframed環境内でフォントサイズを設定するにはどうすればいいですか\small?

  2. 毎回とmdframedの両方の環境を開始および終了する必要がないように、これを再利用可能な環境に変換するにはどうすればよいでしょうか?tabbing

答え1

追加パッケージを使用しない別の方法は、新しい環境を定義することです。次の例では、環境はmyenv必要な処理を実行し、オプションを渡すためのオプションの引数を持ちますmdframed

\documentclass[a4paper,10pt]{book}
\usepackage[framemethod=tikz]{mdframed}

\newenvironment{myenv}[1][]
  {\begin{mdframed}[font=\small,#1]\begin{tabbing}}
  {\end{tabbing}\end{mdframed}}

\begin{document}

\noindent Surrounding text.

\begin{myenv}
 some great \=code\\
            \>next line
\end{myenv}

\noindent Surrounding text.

\begin{myenv}[backgroundcolor=red!20]
 some great \=code\\
            \>next line
\end{myenv}

\end{document}

ここに画像の説明を入力してください

答え2

あらゆる環境に\mdfsetup{font=\small}追加するにはを使用します。で環境を囲むには、\smallmdframedtabbingmdframedxpatchパッケージとその\xapptocmdマクロ\xpretocmd

\documentclass[a4paper,10pt]{book}

\usepackage{mdframed}

\mdfsetup{font=\small}

\usepackage{xpatch}
\xapptocmd{\mdframed}{\begin{tabbing}}{}{}
\xpretocmd{\endmdframed}{\end{tabbing}}{}{}

\begin{document}

\noindent Surrounding text.

\begin{mdframed}
 some great \=code\\
            \>next line
\end{mdframed}

\noindent Surrounding text.

\end{document}

代わりに、プリアンブルでxpatch発行し、ドキュメント本体で環境を使用することもできます。ただし、上記の解決策とは異なり、この方法では個々の環境にオプションの引数を追加できないことに注意してください。\surroundwithmdframed{tabbing}tabbing

\documentclass[a4paper,10pt]{book}

\usepackage{mdframed}

\surroundwithmdframed[font=\small]{tabbing}

\begin{document}

\noindent Surrounding text.

\begin{tabbing}
 some great \=code\\
            \>next line
\end{tabbing}

\noindent Surrounding text.

\end{document}

両方の例の出力:

ここに画像の説明を入力してください

関連情報