%\usepackage[T1]{fontenc} %\usepackage[latin9]{inputenc} \usepackage{mathpazo} %\usepackage{xcolor} \usepackage{verbatim} \newlength\sidebar \newlength\envrule \newlength\envborder \setlength\sidebar{1.5mm} \setlength\envrule{0.4pt} \setlength\envborder{2.5mm} \definecolor{exampleborder}{rgb}{0,0,.7} \definecolor{examplebg}{rgb}{.9,.9,1} \newsavebox\envbox \newcounter{example} \newcounter{defi} \newenvironment{example}[1][EXAMPLE]{% \refstepcounter{example}% \SpecialEnv{Example \theexample ~ #1}{exampleborder}{examplebg}{}{}% }{% \endSpecialEnv } \definecolor{grammarruleborder}{rgb}{.9,0,0} \definecolor{grammarrulebg}{rgb}{1,.9,.9} \newenvironment{grammarrule}[1][]{% Default grammarrule has no title \par \SpecialEnv{#1}{grammarruleborder}{grammarrulebg}{grammarruleborder}{}% }{% \endSpecialEnv } \definecolor{defiborder}{rgb}{.5,0.5,0.9} \definecolor{defibg}{rgb}{1,.9,0} \newenvironment{defi}[1][Definition]{ \par \refstepcounter{defi}% \SpecialEnv{Definition \thedefi: #1}{defiborder}{defibg}{defiborder}{}% }{% \endSpecialEnv } \def\Empty{} % #1 title (if any) % #2 sidebar (and title bg) color % #3 background color % #4 border color (or null for no border) % #5 Counter, if any. \newenvironment{SpecialEnv}[5]{% \par \def\EnvSideC{#2}% To use later (in end) \def\EnvBackgroundC{#3}% \def\EnvFrameC{#4}% \flushleft \setlength\leftskip{-\sidebar}% \addtolength\leftskip{-\envborder}% \noindent \nobreak % Check if title is null: \ifx\delimiter#1\delimiter\else % If a title is specified, then typeset it in reverse color \colorbox{\EnvSideC}{% \hspace{-\leftskip}% usually positive \hspace{-\fboxsep}% \footnotesize\sffamily\bfseries\textcolor{white}{#1}% \hspace{\envborder}}% \par\nobreak \setlength\parskip{-0.2pt}% Tiny overlap to counter pixel round-off errors \nointerlineskip \fi % Make side-bar \textcolor{\EnvSideC}{\vrule width\sidebar}% % collect body in \envbox: \begin{lrbox}\envbox \begin{minipage}{\hsize}% % insert counter, if any: \ifx\delimiter#5\delimiter\else#5.\enspace\fi \ignorespaces }{\par \end{minipage}\end{lrbox}% % body is collected. Add background color \setlength\fboxsep\envborder \ifx\EnvFrameC\Empty % no frame \colorbox{\EnvBackgroundC}{\usebox\envbox}% \else % frame \setlength\fboxrule\envrule \addtolength\fboxsep{-\envrule}% \fcolorbox{\EnvFrameC}{\EnvBackgroundC}{\usebox\envbox}% \fi \nobreak \hspace{-2\envborder}\null \endflushleft }