lunedì 11 ottobre 2010

teoremi e definizioni in un box colorato

Volevo creare un ambiente in cui inserire teoremi, definizioni, leggi, etc... che fosse formato da un box con sfondo colorato.
 Prendendo spunto da questa pagina ho elaborato questo codice:
codice 1
\documentclass[12pt,a4paper]{book}
%-----------------------------------
\usepackage[x11names]{xcolor}
\usepackage{tikz,amsmath,amsthm}
\tikzstyle{stile} = [draw=black, very thick, rectangle, inner ysep=5pt, inner xsep=5pt, fill=LightCyan1]
\theoremstyle{definition}
\newtheorem*{Def}{DEFINIZIONE}
 %---------------------------------
\begin{document}

\begin{tikzpicture}
\node [stile] (box){%
\begin{minipage}{.90\textwidth}
\begin{Def}
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{Def}
\end{minipage}
};
\end{tikzpicture}%

\end{document}

però non mi soddisfava, anche perchè volevo un comando più facile da ricordare e da poter utilizzare spesso.
Dopo parecchi tentativi ho risolto ridefinendo ambienti e comandi:
codice 2
\documentclass[12pt,a4paper]{book}
%---------------------------------
\usepackage[x11names]{xcolor}
\usepackage{tikz,amsmath,amsthm}
\tikzstyle
{stile} = [draw=black, very thick, rectangle, inner ysep=5pt, inner xsep=5pt, fill=LightCyan1]
%---------------------------------
\theoremstyle{definition}
\newtheorem*{Def}{DEFINIZIONE}
\newtheorem{teo}{TEOREMA}[chapter]
%---------------------------------
\newcommand{\sfondo}[1]{\noindent\tikzpicture\node [stile] (box){%
#1};\endtikzpicture%
\\ }
\newenvironment{defin}{\begin{minipage}{.85\textwidth}\Def}{\endDef\end{minipage}}
\newenvironment{teoin}{\begin{minipage}{.85\textwidth}\teo}{\endteo\end{minipage}}

\begin{document}
\chapter{nuovo capitolo}

\sfondo{\begin{defin}
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{defin}}

\vspace{1cm}

\sfondo{\begin{teoin}
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{teoin}}
\end{document}
probabilmente non è la soluzione più elegante, e infatti i parecchi tentativi servivano per costruire un ambiente unico tipo \begin{ambiente}...\end{ambiente} senza dover usare ogni volta il comando \sfondo, ma tant'è!
P.S. ho dovuto aggiungere \noindent al \newcomand per evitare che mi crei un nuovo paragrafo lasciando uno spazio vuoto prima di un ambiente.


Ecco il risultato!

Nessun commento:

Posta un commento

Il tuo commento sarà pubblicato appena il moderatore avrà accertato il suo contenuto

Grazie mille :)