
Я очень близок к достижению 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}
Вывод для обоих примеров: