- Questo topic ha 6 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 12 anni, 11 mesi fa da .
-
Topic
-
Salve a tutti , ho riscontrato un problema con il pacchetto [tt]chemfig[/tt]. In soldoni, il pacchetto fornisce due comandi per creare reazioni [tt]\schemestart[/tt] e [tt]\schemestop[/tt], da utilzzare similmente ai classici [tt]\begin{…}[/tt] e [tt]\end{…}[/tt]. Per comodità volevo crearmi un ambiente che centrasse le reazioni e ho prodotto il codice
`
\newenvironment{scheme}
{\begin{center}\scriptsize\schemestart}
{\schemestop\end{center}}
`
ma la compilazione mi si arresta, dandomi [tt]Emergency stop[/tt]. La cosa mi sembra strana e non riesco a capire questo strano comportamento.Per curiosità ho aperto il pacchetto in discussione (senza modificarlo, s’intende) e ho notato che l’autore utilizza sempre una macro per definire tutto [tt]\CF@def[/tt], definita all’inizio del pacchetto con la stringa
`
\def\CF@def#1{%
\ifdefined#1%
\errmessage{Package chemfig Error: the macro \string#1\space is already defined. Please, email the author.}%
\fi
\def#1%
}
`
Può essere questo? Si capisce che la stringa serve per verificare se il comando è già stato definito e mi restituisce a schermo (e nel log) la scritta opportuna se già presente, ma mi è sorto il dubbio: è affidabile questa macro? Non è meglio utilizzare [tt]\newcommand[/tt]? Probabilmente i miei dubbi non centrano niente con il problema, ma ve li pongo lo stesso :D. Grazie in anticipo per la vostra pazienza.EDIT Facendo delle prove ho scoperto che il comando
`
\newcommand{\scheme}[#1]{\begin{center}\scriptsize\startscheme #1\endscheme\end{center}}
`
funziona. Il problema è che non mi piace inserire le reazioni usando il comando che ho definito. Penso sia più corretto l’impiego di un ambiente per questo lavoro, ma l’altro codice continua a non funzionare.
- Devi essere connesso per rispondere a questo topic.