
我非常接近獲得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}
兩個問題:
如何在
mdframed
環境中調整字體大小\small
?我怎麼能把它變成一個可重複使用的環境,這樣我就不必每次都開始和結束
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}
兩個範例的輸出: