framed

Pakiet definiuje środowiska framed, shaded i leftbar, które umożliwiają: ujęcie tekstu w ramkę, podłożenie kolorowego (lub szarego) tła (pakiet korzysta z pakietu color, ale należy go samemu dołączyć) oraz umieszczenie linii na brzegu (p. też changebar). Opisywane konstrukcje nie zaburzają procesu łamania na strony, ale wewnątrz nie można definiować obiektów ruchomych (rysunki, tabele, noty na marginesie -- sygnalizowany jest błąd, przypisy (footnote) -- pojawia się odsyłacz, ale nie pojawia się treść przypisu, inkrementowany jest numer; nie jest sygnalizowany błąd). Oprócz tego zawartość środowiska nie jest rozciągana w pionie w przypadku użycia poleceń wymuszających przejście do nowej strony.

Opis środowisk

leftbar

Tekst zamknięty w środowisku będzie oznaczony linią pionową z lewej strony (w polu kolumny). Linia ma 3pt grubości i odległość między linią a tekstem wynosi 10pt (wartości te są ,,zaszyte'' w definicji środowiska, ale łatwo zdefiniować własne, inne na jego podstawie
\newenvironment{leftbar}{%
  \def\FrameCommand{\vrule width 3pt \hspace{10pt}}%
  \MakeFramed {\advance\hsize-\width \FrameRestore}}%
 {\endMakeFramed}
np. definicja
\renewenvironment{leftbar}{%
  \def\FrameCommand{{\color{red}\vrule width 6pt} \hspace{10pt}}%
  \MakeFramed {\advance\hsize-\width \FrameRestore}}%
 {\endMakeFramed}
da w efekcie linie o grubości 6pt w kolorze czerwonym (należy dołączyć pakiet color).

framed

Do konstrukcji ramki używane jest standardowo makro fbox, jeśli nie zostało zdefiniowane inaczej to grubość ramki ustala się na wartość fboxrule, a odległość tekstu od ramki na 3 x \fboxsep. Powyższe parametry możemy określić nadając wartości rejestrom \FrameRule oraz \Framesep np. \setlength{\FrameSep}{2pt}

Można łatwo zmienić makro konstrukcyjne z fbox na inne i uzyskać dodatkowe efekty; np: efekt kolorowej ramki i tła; należy użyć makra \fcolorbox z pakietu color zamiast konstrukcji \fbox np:

\def\FrameCommand{\fboxrule=\FrameRule \fboxsep=\FrameSep \fcolorbox{red}{green}}
w tym wypadku określiłem kolor tła na zielony, a kolor ramki na czerwony, możemy również przy okazji zmienić kolor czcionki:
\def\FrameCommand{\fboxrule=\FrameRule \fboxsep=\FrameSep \color{blue}\fcolorbox{red}{green}}
niebieski w tym wypadu.

Przy realizacji tego środowiska używane jest ostatnio zdefiniowane makro \FrameCommand, które w powyższych przykładach było definiowane ,,na zewnątrz''. Można zdefiniować sobie kilka środowisk o różnych cechach (zachowując grubość linii i jej odległość od tekstu) np.:

\newenvironment{myframed}{%
  \def\FrameCommand{\fboxrule=\FrameRule \fboxsep=\FrameSep \color{yellow}\fcolorbox{green}{red}}
  \MakeFramed{\advance\hsize-\width \FrameRestore}}%
  {\endMakeFramed}

shaded

Środowisko służy, w zamyśle, do podłożenia kolorowego tła pod tekst (powyżej efekt ten został osiągnięty dzięki modyfikacjom w definicji środowiska framed). Używanym kolorem tła jest shadecolor; musi on być wcześniej zdefiniowany poleceniem \definecolor (p. color) np:

\definecolor{shadecolor}{rgb}{0.1,0.2,0.8}

MakeFramed

Wspominam o nim jedynie dla porządku -- jest ono używane do definiowania przedstawionych wcześniej środowisk -- wnikliwy TeX-owiec zapewne sam pozna jego tajniki, innym radzę jego użycie, analogicznie jak w podanych przykładach.


Włodzimierz Macewicz
Ostatnie zmiany: 05.05.2014.