使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}

兩個問題:

  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}新增\small到每個mdframed環境。要tabbing在其中封閉一個環境mdframed,​​您可以使用xpatch包及其\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}

兩個範例的輸出:

在此輸入影像描述

相關內容