Errore amsmath

  • Creatore
    Topic
  • #120930
    Up
    0
    Down
    ::


    Ciao a tutti.
    Come da oggetto riscontro un errore che proprio non so gestire, mentre compilo un semplicissimo file. Il mio problema iniziale era scrivere una formula su più righe perché i termini da sommare sono parecchi.
    L’errore è il seguente:
    Command \iint already defined. …d{\iint}{\DOTSI\protect\MultiIntegral{2}}
    Command \iiint already defined. …{\iiint}{\DOTSI\protect\MultiIntegral{3}}
    Command \iiiint already defined. …\iiiint}{\DOTSI\protect\MultiIntegral{4}}
    Command \idotsint already defined. …dotsint}{\DOTSI\protect\MultiIntegral{0}}
    Command \openbox already defined. \vrule\hfil}}

    Aprendo il file amsmath.sty mi vengono evidenziate le righe seguenti:
    `\ams@newcommand{\iint}{\DOTSI\protect\MultiIntegral{2}}
    \ams@newcommand{\iiint}{\DOTSI\protect\MultiIntegral{3}}
    \ams@newcommand{\iiiint}{\DOTSI\protect\MultiIntegral{4}}
    \newcommand{\idotsint}{\DOTSI\protect\MultiIntegral{0}}`

    L’estratto del mio file è questo:
    `\documentclass[a4paper,twoside,12pt,italian,notitlepage]{report}
    \usepackage[UTF8]{inputenc}
    \usepackage[italian]{babel}
    \usepackage[T1]{fontenc}
    \usepackage{txfonts}
    \usepackage{booktabs}
    \usepackage{tabularx}
    \usepackage{subfig}
    \usepackage{siunitx}
    \usepackage{amsmath}
    \usepackage{amsthm}
    %\usepackage{wasysym}
    \usepackage{graphicx}
    \usepackage{pgfplots}
    \graphicspath{{./immagini/}}
    \usepackage{emptypage}
    \usepackage{booktabs}
    \usepackage{marvosym}
    \usepackage{textcomp}

    \begin{document}
    \section{Paragrafo con formula}
    \[formula=termineA-\Sigma(A + B + C +\\
    D + D + D)\] %l'errore è qui

    \end{document}
    `

    Ora, quello che non capisco è come mai l’errore viene rilevato nel file amsmath.sty che io non ho toccato perché non sono assolutamente in grado di farlo.

    La mia esperienza non è eccelsa, lo ammetto, ma non mi è mai capitato di trovare un errore sul file di un pacchetto.
    Ho provato ad aggiornare i pacchetti e a cambiare un pochino la sintassi della formula così:
    `

    \begin{equation}
    Risultato=A-(B+C+D\\
    +E+F)
    \end{equation}
    `

    Ma la sostanza non cambia, ho gli stessi errori.
    Se invece non carico il pacchetto amsmath, l’errore sparisce ma la formula esce dal foglio.
    Usando il pacchetto wasysym, come ho trovato in un forum, la formula continua ad uscire dal foglio.
    Ho fatto la prova su 2 altri pc, su cui non avevo messo mano precedentemente e trovo lo stesso errore.
    Grazie in anticipo per l’aiuto

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #120931
      mcl1962
      Partecipante
        Up
        0
        Down
        ::


        Così

        `
        \documentclass[a4paper,twoside,12pt,italian,notitlepage]{report}
        \usepackage[utf8]{inputenc}
        \usepackage[italian]{babel}
        \usepackage[T1]{fontenc}
        \usepackage{amsmath}
        \usepackage{amsthm}
        \usepackage{txfonts}
        \usepackage{booktabs}
        \usepackage{tabularx}
        \usepackage{subfig}
        \usepackage{siunitx}
        %\usepackage{wasysym}
        \usepackage{graphicx}
        \usepackage{pgfplots}
        \usepackage{emptypage}
        \usepackage{booktabs}
        \usepackage{marvosym}
        \usepackage{textcomp}

        \begin{document}
        \section{Paragrafo con formula}
        \[formula=termineA-\Sigma(A + B + C +\\
        D + D + D)\] %l'errore è qui

        \end{document}
        `

        a me funziona (ho caricato prima i pacchetti AMS).

        Ciao.

        Claudio

      • #120932
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Integro la risposta di @mcl1962 con il listato seguente, dove ho commentato i vari errori o inesattezze che hai commesso nel tuo file; tra le altre cose spiego perché amsmath ti segnala quegli errori sulla definizione degli integrali multipli.

          Un errore strano è la tua scelta di specificare UTF8 come codifica d’entrata; lascia perdere il fatto che con una installazione del sistema TeX completa ed aggiornata, la codifica utf8 da alcuni anni è la codifica di default dei file .tex e di tutti gli altri file che formano i pacchetti standard del sistema TeX. Non è detto che is a la codifica standard di vecchi pacchetti, ma siccome è sempre una buona idea di controllare la data dell’ultima revisione di ogni pacchetto che si invoca, io lascerei perdere tutti i pacchetti più vecchi di 5 anni; o meglio, li userei lo stesso, se non ne posso fare a meno, ma starei sulla difensiva in caso di errori dal messaggio “oscuro”, difficile da contestualizzare. Eccoti la mia versione del tuo esempio con i commenti: leggili con attenzione e se c’è qualcosa che non capisci, chiedi e ti sarà risposto (ricordi? “Bussa e ti sarà aperto” 🙂 🙂 🙂 )`\documentclass[a4paper,twoside,12pt,
          %italian,già chiamato da babel: o qui o lì, non due volte!
          notitlepage]{report}
          \usepackage[utf8]{inputenc}% UTF* non è una codifica riconosciuta;
          % la scrittura esatta sarebbe utf8; da alcuni anni la codifica utf8 è
          % quella predefinita, quindi non c'è nessun bisogno di caricar inputenc
          % con questa opzione
          \usepackage[italian]{babel}
          \usepackage[T1]{fontenc}
          \usepackage{amsmath,amsthm}% da caricare pria di txfonts
          \usepackage{txfonts}% devi leggere la documentazione del pacchetto txfonts,
          % perché scopriresti che quegli integrali multipli sono già definiti da
          % quel pacchetto; potresti considerare la possibilità di usare newtxtext
          % e newtxmath, più recenti e congegnati meglio; ovviamente newtxmath
          % gestisce i font matematici che si accoppiano bene con quelli testuali
          % ed estendono la collezione di simboli matematici precedentemente definiti
          % da txfonts.
          \usepackage{booktabs}% <--- ricaricato dopo \usepackage{tabularx} \usepackage{subfig} \usepackage{siunitx} %\usepackage{amsmath}% Vedi sopra %\usepackage{amsthm}% vedi sopra \usepackage{wasysym}% wasysym e marvosym possono avere delle sovrapposizion ci comansi simili,ma non uguali % leggi con texdoc symbols-a l'elenco dei simboli disponibili col sistema TeX per vedere quali simboli sono in comune fra i due pacchetti \usepackage{graphicx} \usepackage{pgfplots} \graphicspath{{./immagini/}} \usepackage{emptypage} %\usepackage{booktabs}% già caricato prima \usepackage{marvosym}% vedi sopra nella riga di wasysym \usepackage{textcomp}% da alcuni anni caricare textcomp non è più necessario % i suoi comandi fanno tutti parte del nucleo di LaTeX. \begin{document} \section{Paragrafo con formula} \[ formula=termineA-\Sigma(A + B + C +\\ non si va a capo con \\ con una formula di una soloa riga non numerate i display; % se proprio devi andare a capo devi usare gli ambienti di incolonnamento di amsmath; leggi la documentazione con texdoc amsmath D + D + D) \] %l'errore era qui; ora non c'è più! \end{document}`

        • #120933
          Up
          0
          Down
          ::


          Ciao a tutti.
          Grazie 1000 per le risposte.
          Purtroppo in questo momento non ho modo di testare i vostri suggerimenti perchè ho il documento sul pc dell’ufficio dove rientrerò solo martedì.

          Vi tengo aggiornari, grazie ancora e buona domenica.

        • #120934
          Up
          0
          Down
          ::


          Provato e non mi da errore!
          Però non va a capo la formula
          Nel pomeriggio mi studio il suggerimento di Oldclaudio

        • #120935
          Up
          0
          Down
          ::

          OldClaudio” post=121450Integro la risposta di @mcl1962 con il listato seguente, dove ho commentato i vari errori o inesattezze che hai commesso nel tuo file; tra le altre cose spiego perché amsmath ti segnala quegli errori sulla definizione degli integrali multipli.

          Un errore strano è la tua scelta di specificare UTF8 come codifica d’entrata; lascia perdere il fatto che con una installazione del sistema TeX completa ed aggiornata, la codifica utf8 da alcuni anni è la codifica di default dei file .tex e di tutti gli altri file che formano i pacchetti standard del sistema TeX. Non è detto che is a la codifica standard di vecchi pacchetti, ma siccome è sempre una buona idea di controllare la data dell’ultima revisione di ogni pacchetto che si invoca, io lascerei perdere tutti i pacchetti più vecchi di 5 anni; o meglio, li userei lo stesso, se non ne posso fare a meno, ma starei sulla difensiva in caso di errori dal messaggio “oscuro”, difficile da contestualizzare. Eccoti la mia versione del tuo esempio con i commenti: leggili con attenzione e se c’è qualcosa che non capisci, chiedi e ti sarà risposto (ricordi? “Bussa e ti sarà aperto” 🙂 🙂 🙂 )`\documentclass[a4paper,twoside,12pt,
          %italian,già chiamato da babel: o qui o lì, non due volte!
          notitlepage]{report}
          \usepackage[utf8]{inputenc}% UTF* non è una codifica riconosciuta;
          % la scrittura esatta sarebbe utf8; da alcuni anni la codifica utf8 è
          % quella predefinita, quindi non c'è nessun bisogno di caricar inputenc
          % con questa opzione
          \usepackage[italian]{babel}
          \usepackage[T1]{fontenc}
          \usepackage{amsmath,amsthm}% da caricare pria di txfonts
          \usepackage{txfonts}% devi leggere la documentazione del pacchetto txfonts,
          % perché scopriresti che quegli integrali multipli sono già definiti da
          % quel pacchetto; potresti considerare la possibilità di usare newtxtext
          % e newtxmath, più recenti e congegnati meglio; ovviamente newtxmath
          % gestisce i font matematici che si accoppiano bene con quelli testuali
          % ed estendono la collezione di simboli matematici precedentemente definiti
          % da txfonts.
          \usepackage{booktabs}% <--- ricaricato dopo \usepackage{tabularx} \usepackage{subfig} \usepackage{siunitx} %\usepackage{amsmath}% Vedi sopra %\usepackage{amsthm}% vedi sopra \usepackage{wasysym}% wasysym e marvosym possono avere delle sovrapposizion ci comansi simili,ma non uguali % leggi con texdoc symbols-a l'elenco dei simboli disponibili col sistema TeX per vedere quali simboli sono in comune fra i due pacchetti \usepackage{graphicx} \usepackage{pgfplots} \graphicspath{{./immagini/}} \usepackage{emptypage} %\usepackage{booktabs}% già caricato prima \usepackage{marvosym}% vedi sopra nella riga di wasysym \usepackage{textcomp}% da alcuni anni caricare textcomp non è più necessario % i suoi comandi fanno tutti parte del nucleo di LaTeX. \begin{document} \section{Paragrafo con formula} \[ formula=termineA-\Sigma(A + B + C +\\ non si va a capo con \\ con una formula di una soloa riga non numerate i display; % se proprio devi andare a capo devi usare gli ambienti di incolonnamento di amsmath; leggi la documentazione con texdoc amsmath D + D + D) \] %l'errore era qui; ora non c'è più! \end{document}`

          Innanzi tutto grazie 1000 per le spiegazioni puntuali.
          Riporto di seguito come sono arrivato alla configurazione che ho scritto.

          Spostando l’inserimento dei pacchetti amsmat e amsthm in alto l’errore non mi compare più, poi leggendo punto per punto:

          • scopro solo ora che UTF8 non è corretto, non ricordo esattamente come sono arrivato ad inserirlo, ma se non ricordo male era per problemi con le parole accentate, ho provato a commentare la riga e in effetti non ho visto differenze nel file pdf di output;
          • txfonts: l’avevo inserito perché avevo il problema della colorazione dei caratteri. Il pdf risultante aveva i colori di un grigio piuttosto chiaro invece che nero nitido. Naturalmente avevo trovato questa soluzione su internet, non è opera mia;
          • newtxtext e newtxmath: li ho provati al posti di txfonts. A me non sembra di vedere differenze sostanziali rispetto a txfonts, ma sicuramente è colpa del mio occhio inesperto. Se questi sono pacchetti più recenti rispetto a txfonts, e non avendo notato differenze macroscopiche proverò questi due pacchetti;
          • textcomp: proprio non ricordo il perché l’avessi aggiunto. Ho un file di appunti (in word …) dove riporto i problemi e le soluzioni avute con LaTeX (e non solo), ma non ho trovato nulla in merito.

          Grazie ancora per l’aiuto e per le spiegazioni!

        • #120936
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Ricordati che TeX è nato nel 1978 e LaTeX nel 1984; nonostante questa “vecchiaia”, tutto il sistema TeX è in fermento e in evoluzione, Per stare al corrente di queste evoluzioni si possono leggere le newsletter che vengono pubblicare regolarmente ad ogni aggiornamento del sistema; non so come si leggano su MiKTeX, ma su TeX Live basta dare il comando, per esempio, texdoc ltnews35 per leggere l’ultima lettera pubblicata. E, per esempio, in una delle lettere recenti, c’è scritto che textcomp non è più necessario, perché tutte le macro che definiva per accedere a simboli integrativi dei 256 contenuti nei file dei font che pdfLaTeX può gestire, sono ora parte integrante del kernel; Una volta erano molto importanti per accedere, per esempio, ai simboli delle monte usate nei vari paesi; da quando c’è l’euro rimangono solo il segno $ e £ (sterlina,non lira), oltre, ovviamente il simbolo €. Per l’euro, inoltre ci sono altri pacchetti che disegnano il simbolo in modo più conforme alle specifiche della UE.

          • #120937
            Up
            0
            Down
            ::

            oierpa” post=121447Ciao a tutti.
            Come da oggetto riscontro un errore che proprio non so gestire, mentre compilo un semplicissimo file. Il mio problema iniziale era scrivere una formula su più righe perché i termini da sommare sono parecchi.
            L’errore è il seguente:
            Command \iint already defined. …d{\iint}{\DOTSI\protect\MultiIntegral{2}}
            Command \iiint already defined. …{\iiint}{\DOTSI\protect\MultiIntegral{3}}
            Command \iiiint already defined. …\iiiint}{\DOTSI\protect\MultiIntegral{4}}
            Command \idotsint already defined. …dotsint}{\DOTSI\protect\MultiIntegral{0}}
            Command \openbox already defined. \vrule\hfil}}

            Aprendo il file amsmath.sty mi vengono evidenziate le righe seguenti:
            `\ams@newcommand{\iint}{\DOTSI\protect\MultiIntegral{2}}
            \ams@newcommand{\iiint}{\DOTSI\protect\MultiIntegral{3}}
            \ams@newcommand{\iiiint}{\DOTSI\protect\MultiIntegral{4}}
            \newcommand{\idotsint}{\DOTSI\protect\MultiIntegral{0}}`

            L’estratto del mio file è questo:
            `\documentclass[a4paper,twoside,12pt,italian,notitlepage]{report}
            \usepackage[UTF8]{inputenc}
            \usepackage[italian]{babel}
            \usepackage[T1]{fontenc}
            \usepackage{txfonts}
            \usepackage{booktabs}
            \usepackage{tabularx}
            \usepackage{subfig}
            \usepackage{siunitx}
            \usepackage{amsmath}
            \usepackage{amsthm}
            %\usepackage{wasysym}
            \usepackage{graphicx}
            \usepackage{pgfplots}
            \graphicspath{{./immagini/}}
            \usepackage{emptypage}
            \usepackage{booktabs}
            \usepackage{marvosym}
            \usepackage{textcomp}

            \begin{document}
            \section{Paragrafo con formula}
            \[formula=termineA-\Sigma(A + B + C +\\
            D + D + D)\] %l'errore è qui

            \end{document}
            `

            Ora, quello che non capisco è come mai l’errore viene rilevato nel file amsmath.sty che io non ho toccato perché non sono assolutamente in grado di farlo.

            La mia esperienza non è eccelsa, lo ammetto, ma non mi è mai capitato di trovare un errore sul file di un pacchetto.
            Ho provato ad aggiornare i pacchetti e a cambiare un pochino la sintassi della formula così:
            `

            \begin{equation}
            Risultato=A-(B+C+D\\
            +E+F)
            \end{equation}
            `

            Ma la sostanza non cambia, ho gli stessi errori.
            Se invece non carico il pacchetto amsmath, l’errore sparisce ma la formula esce dal foglio.
            Usando il pacchetto wasysym, come ho trovato in un forum, la formula continua ad uscire dal foglio.
            Ho fatto la prova su 2 altri pc, su cui non avevo messo mano precedentemente e trovo lo stesso errore.
            Grazie in anticipo per l’aiuto

            Cominciamo dall’inizio.

            [tt]\usepackage[UTF8]{inputenc}[/tt] è sbagliato. L’opzione sarebbe [tt]utf8[/tt], ma si può omettere il tutto. Da alcuni anni, la codifica UTF-8 è assunta implicitamente.

            [tt]\usepackage{txfonts}[/tt] va sostituito con [tt]\usepackage{newtxtext,newtxmath}[/tt]. Si hanno font migliori e non si ha l’errore di ridefinizione dei comandi.

            Un [tt]\\[/tt] in una formula con
            `
            \[…\]
            `
            NON FUNZIONA né ha MAI funzionato. Con [tt]amsmath[/tt] o senza, non importa.

            [tt]wasysym[/tt] e [tt]marvosym[/tt] vanno caricati se davvero servono, ma non hanno alcuna influenza su come le formule sono composte.

            Per spezzare una formula su due righe si adopera [tt]split[/tt] oppure un altro degli ambienti di allineamento di [tt]amsmath[/tt].

            Ciao
            Enrico

        Visualizzazione 6 filoni di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top