Reducir el tamaño de fuente en este mdframed y convertirlo en un entorno reutilizable

Reducir el tamaño de fuente en este mdframed y convertirlo en un entorno reutilizable

Estoy muy cerca de conseguir la mdframedconfiguración que quiero:

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

Dos preguntas:

  1. ¿Cómo hago el tamaño de fuente dentro del mdframedentorno \small?

  2. ¿Cómo puedo convertir esto en un entorno reutilizable, de modo que no tenga que comenzar y finalizar ambos mdframedentornos tabbingcada vez?

Respuesta1

Otro enfoque sin paquetes adicionales es definir un nuevo entorno; En el siguiente ejemplo, el entorno myenvhace lo que usted quiere y tiene un argumento opcional para pasarle opciones 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}

ingrese la descripción de la imagen aquí

Respuesta2

Úselo \mdfsetup{font=\small}para agregar \smalla cada mdframedentorno. Para encerrar un tabbingentorno dentro de mdframed, puede utilizar elxpatchpaquete y sus \xapptocmdmacros \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}

Una alternativa que prescinde xpatches emitir \surroundwithmdframed{tabbing}en el preámbulo y utilizar tabbingentornos en el cuerpo del documento. Tenga en cuenta que, al contrario de la solución anterior, esto no permitirá agregar argumentos opcionales a entornos individuales.

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

Salida para ambos ejemplos:

ingrese la descripción de la imagen aquí

información relacionada