Newsgroup: it.comp.software.tex
Titolo: verbatim in minipage... non va!

Buondě!
Sto cercando di definire un comando che mi crei un float contenente
del testo verbatim racchiuso da un box, con le relative label e
caption.
Ho provato in questo modo:
\newcommand{\boxedFloat}[3]  {
\begin{figure}
\begin{center}
  \fbox{
    \begin{minipage}{200pt}
    \begin{verbatim}
    #1
    \end{verbatim}
    \end{minipage}
  }
  \caption{#2}
 \label{#3}
\end{center}
\end{figure}
}
ma senza esito, ottenendo:
Argument of \@xverbatim has an extra }
e una sfilza di altri errori!
Voi direte: usa il pachetto float... ma io vorrei farmi il comandino a
mano! :)
Grazie a tutti,
--
Fabio Fidanza

mano! :)
Più che un comando, direi che conviene un ambiente. Appoggiandomi al
pacchetto verbatim e cannibalando l'ambiente boxedverbatim dal pacchetto
moreverb, ho ottenuto l'orrore che segue, di cui mi scuso in anticipo (chi
ha lo stomaco debole conviene si fermi qui):
\usepackage{verbatim}
\makeatletter
\def\boxedverbatim[#1][#2]{%
  \def\boxedcaption {#1}%
  \def\boxedlabel {#2}%
  \def\verbatim@processline{%
    {\setbox0=\hbox{\the\verbatim@line}%
    \hsize=\wd0 \the\verbatim@line\par}}%
  \@minipagetrue%%%DPC%%%
  \@tempswatrue%%%DPC%%%
  \setbox0=\vbox\bgroup \verbatim
}
\def\endboxedverbatim{%
  \endverbatim
  \unskip\setbox0=\lastbox %%%DPC%%%
  \egroup
  \bgroup \figure
  \bgroup \center
  \fbox{\box0}%
  \endcenter
  \egroup
  \caption{\boxedcaption}
  \label{\boxedlabel}
  \endfigure
  \egroup
}
\makeatother
Limitatamente a qualche approssimativa ed affrettata prova, pare che
funzioni. Non chiedetemi però di chiarire, perché non ho capito bene
neanch'io che fa.
Ciao.

> Più che un comando, direi che conviene un ambiente.
Sono d'accordo.
Il problema è che non riesco mai ad usare il verbatim dentro un nuovo
comando/ambiente, forse ha a che fare con i comandi fragili o simili,
ma dato che sono ancora un novellino non sono riuscito a capire il
reale motivo.
Ti ringrazio per il tuo esempio, ma non ci capisco quasi niente
purtroppo!!!
(Quasi quasi lo faccio in ConTeXt sto lavoretto...)
Se hai (avete) altre dritte, sono tutto orecchi!
--
Fabio


 Buondì!

Il problema non è il nuovo float, il problema è il verbatim. Per sua 
natura, verbatim non può andare all'interno di un altro comando. 
Package fancyvrb.
-- 
Giuseppe "Oblomov" Bilotta
"Da grande lotterò per la pace"
"A me me la compra il mio babbo"
(Altan)
("When I grow up, I will fight for peace"
 "My daddy will buy it for me")

purtroppo!!!
In dettaglio, come detto, non te lo so spiegare. Piů in generale, crea un
nuovo ambiente float di nome boxedverbatim, da usare come segue:
   \begin{boxedverbatim}[titolo][label]
   testo verbatim
   testo verbatim
   \end{boxedverbatim}
Non viene utilizzato il comando \newenvironment, ma vengono definiti
separatamente \boxedverbatim e \endverbatim; anche gli ambienti interni
vengono aperti e chiusi con chiamate a basso livello (\figure ...
\endfigure, ecc). Il testo verbatim viene memorizzato nella scatola \box0,
che viene incorniciata ed emessa alla chiusura dell'ambiente (\fbox{\box0}).
Inoltre viene utilizzato un diverso \verbatim (quello definito nell'omonimo
pacchetto verbatim).
Ciao.