- Questo topic ha 1 risposta, 2 partecipanti ed è stato aggiornato l'ultima volta 8 anni, 1 mese fa da .
-
Topic
-
Ciao a tutti, sto provando ad utilizzare il pacchetto environ che permette di definire ambienti con la sintassi
`\NewEnviron{}{ }`
in particolare perché questo mi permette di utilizzare il comando `\BODY` per inserirlo in un “copia e incolla” definito con:
`\makeatletter
\def\set#1#2{\global\@namedef{namespacekey@#1}{#2}}
\def\get#1{%
\@ifundefined{namespacekey@#1}
{%CASO INDEFINITO
~}
{\@nameuse{namespacekey@#1}}%
}
\makeatother
% \set{#1}{#2} \get{#1}: stampa #2`
ma purtroppo non risco ad utilizzare fuori dall’ambiente stesso il comando che ho “inizializzato” all’interno, e io avrei bisogno invece di poterlo fare. Codice minimo di esempio (non funzionante, se si commenta l’ultima riga funziona):
`\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}\usepackage{environ}
\makeatletter
\def\set#1#2{\global\@namedef{namespacekey@#1}{#2}}
\def\get#1{%
\@ifundefined{namespacekey@#1}
{%CASO INDEFINITO
~}
{\@nameuse{namespacekey@#1}}%
}
\makeatother
% \set{#1}{#2} \get{#1}: stampa #2\NewEnviron{prova}{
Testo a caso:~\BODY
\set{random}{\BODY}
\par Il set è inizializzato su: \get{random}
}\begin{document}
\begin{prova}
ciao
\end{prova}
\par
\set{hi}{hallo}
\get{hi}
%commentando o decommentando il file compilerà o meno
\par Il set è inizializzato su: \get{random}\end{document}`
Qualcuno ha qualche suggerimento? Grazie!
- Devi essere connesso per rispondere a questo topic.