Re: Definire un comando con numerosi parametri

#48858
Up
0
Down
::

Se non spieghi che cosa vuoi fare, che pretendi? 🙂

Va bene… non si riescono a mantenere segreti, in questo forum 🙄

😀

In pratica vorrei avere a disposizione questi 2 comandi:
`
\makecolorbox{colore}[ampiezza][c|l|r|s]{testo}

\framecolorbox{colore_cornice}{colore_sfondo}[ampiezza][c|l|r|s]{testo}
`
Ho scelto una sintassi che sia la più simile possibile a quella degli altri *box esistenti.

Ecco come si può fare con xparse:
`\documentclass[a4paper]{article}
\usepackage{color,xparse}
\DeclareDocumentCommand\makecolorbox{o m O{\width} O{c} m}{%
\IfNoValueTF{#1}{\colorbox{#2}}{\colorbox[#1]{#2}}%
{\makebox[#3][#4]{#5}}}

\DeclareDocumentCommand\framecolorbox{o m m O{\width} O{c} m}{%
\IfNoValueTF{#1}{\fcolorbox{#2}{#3}}{\fcolorbox[#1]{#2}{#3}}%
{\makebox[#4][#5]{#6}}}

\begin{document}
\makecolorbox{green}{Abc}

\makecolorbox{green}[3cm]{Abc}

\makecolorbox{green}[3cm][l]{Abc}

\makecolorbox[rgb]{0,0,1}{Abc}

\makecolorbox[rgb]{0,0,1}[3cm]{Abc}

\makecolorbox[rgb]{0,0,1}[3cm][l]{Abc}

\framecolorbox{green}{red}{Abc}

\framecolorbox{green}{red}[3cm]{Abc}

\framecolorbox{green}{red}[3cm][l]{Abc}

\framecolorbox[rgb]{0,0,1}{1,0,0}{Abc}

\framecolorbox[rgb]{0,0,1}{1,0,0}[3cm]{Abc}

\framecolorbox[rgb]{0,0,1}{1,0,0}[3cm][l]{Abc}

\end{document}`
Davvero potente.

Ciao
Enrico

Go to top