Cambio dim. carattere genera errore Incomplete \iffalse

  • Creatore
    Topic
  • #54770
    Liverpool
    Partecipante
      Up
      0
      Down
      ::


      Per esigenze di pubblicazione, ho deciso di modificare da 12 pt a 10 pt la dimensione del carattere di un documento precedentemente compilato senza problemi e di eliminare eventualmente l’uso del pacchetto setspace. Quando provo a modificare una delle due opzioni alla volta ottengo in ogni caso il seguente errore (cambia solo la riga che lo genera):
      `(D:\Luigi\Documents\Libro\Simulazioni\MATLAB\simr.m [144
      ! Incomplete \iffalse; all text was ignored after line 10.

      \fi
      l.10 %
      VFB [V] Þ la tensione di banda piatta (def: VFB=0)`
      Il file simr è un listato MATLAB che viene inserito mediante il pacchetto listings.
      Avete una vaga idea di dove cercare il problema? So che è molto poco, ma mi è difficile essere più completo visto che il documento e il relativo preambolo sono molto lunghi.
      Grazie

    Visualizzazione 11 filoni di risposte
    • Autore
      Risposte
      • #54771
        Up
        0
        Down
        ::

        Per esigenze di pubblicazione, ho deciso di modificare da 12 pt a 10 pt la dimensione del carattere di un documento precedentemente compilato senza problemi e di eliminare eventualmente l’uso del pacchetto setspace. Quando provo a modificare una delle due opzioni alla volta ottengo in ogni caso il seguente errore (cambia solo la riga che lo genera):
        `(D:\Luigi\Documents\Libro\Simulazioni\MATLAB\simr.m [144
        ! Incomplete \iffalse; all text was ignored after line 10.

        \fi
        l.10 %
        VFB [V] Þ la tensione di banda piatta (def: VFB=0)`
        Il file simr è un listato MATLAB che viene inserito mediante il pacchetto listings.
        Avete una vaga idea di dove cercare il problema? So che è molto poco, ma mi è difficile essere più completo visto che il documento e il relativo preambolo sono molto lunghi.
        Grazie

        Impossibile capirci qualcosa. Cerca di produrre una versione dimagrita del documento che manifesti lo stesso errore.

        Ciao
        Enrico

      • #54772
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          In ogni caso le unità di misura non si indicano fra parentesi quadre 🙂

        • #54773
          Liverpool
          Partecipante
            Up
            0
            Down
            ::


            Se commento le righe che puntano ai listati il problema sparisce. Abilitandole una alla volta, ho notato che:
            1) i listati brevi (che entrano in una facciata) non generano l’errore;
            2) se accorcio un listato lungo, il relativo errore non si genera più;
            3) se commento il testo che precede i codici, l’errore si sposta “verso il fondo” del listato.

            Questa è l’impostazione che ho utilizzato con il pacchetto listings:
            `\lstset{language=Matlab,numbers=left,numberstyle=\color{grigio},%
            keywordstyle=\color{black},basicstyle=\ttfamily\scriptsize,%
            showstringspaces=false,morestring=[m][\color{magenta}]{'},%
            morecomment=[l][\ttfamily\color{verdone}]{\%},%
            emph={function,if,end,for},emphstyle=\color{blue}}`

            Nel frattempo, cercherò di realizzare un documento minimo che generi l’errore.
            Grazie

          • #54774
            Liverpool
            Partecipante
              Up
              0
              Down
              ::

              In ogni caso le unità di misura non si indicano fra parentesi quadre 🙂

              Tu come scriveresti, avendo a disposizione solo caratteri dritti e senza pedici (è un listato)? VFB/V non mi sembra una buona soluzione in questo caso, perché le due V hanno lo stesso formato. Anche le parentesi tonde non è che facciano la differenza…
              Se mi trovi una valida alternativa, sono pronto ad usarla (tanto quella convenzione l’ho usata solo nei listati).
              Grazie per la segnalazione.

            • #54775
              Up
              0
              Down
              ::


              Per caso stai chiedendo al pacchetto listings di raccogliere voci per l’indice analitico? Noto infatti un “[144” che dovrebbe essere il numero di pagina: l’assenza della parentesi quadra “]” di chiusura indica che l’errore avviene durante uno \shipout, e ciò porta naturalmente a incriminare un \write il cui argomento contiene l’errore.

              Gustavo

            • #54776
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Se i tuoi font non consentono di scrivere VFB/V, in prima istanza potresti scegliere un altro font che te lo cosenta.
                Se non puoi, allora scrivi le unità di misura nell’intestazione della colonna .

                Se nella colonna ci sono elencate grandezze con diverse unità di misura, scrivi le unità di misura dopo il loro valore nella colonna con il valore; il pacchetto siuntsx dovrebbe consentirti di farlo nel modo corretto. Co sono stati diversi thread su questo argomento dove io facevo la parte di colui che preferisce cha sa come scrivere le unità di misura senza usare pacchetti esterni. Mi rendo conto che il mio sia un approccio un po’ troppo rigido, specialmente quando incontro esigenze come le tue, dove dove sei vincolato a certi font e non sai o non poi metterli in modo matematico.

              • #54777
                Liverpool
                Partecipante
                  Up
                  0
                  Down
                  ::

                  Impossibile capirci qualcosa. Cerca di produrre una versione dimagrita del documento che manifesti lo stesso errore.

                  Nella redazione del documento minimo da postare ho notato che il preambolo che genera l’errore è il seguente:
                  `\documentclass[a4paper,10pt,fleqn]{book}
                  \usepackage{listings}
                  \lstset{language=Matlab}
                  \usepackage[english,french,italian]{babel}
                  \usepackage[onehalfspacing]{setspace}`
                  Considerazioni:
                  1) L’errore sparisce se si elimina l’opzione french in babel
                  2) L’errore sparisce se si riordina: babel / setspace / listings
                  Applicando il punto 2 al documento originale l’errore è scomparso.
                  Mi potete spiegare qual era la causa?
                  Grazie

                • #54778
                  Liverpool
                  Partecipante
                    Up
                    0
                    Down
                    ::

                    Se non puoi, allora scrivi le unità di misura nell’intestazione della colonna .

                    Non ho capito a quali colonne fai riferimento. Intendi di una tabella? In tal caso mi sono espresso male: il testo incriminato è il codice di un linguaggio di programmazione che usa un carattere a dimensione fissa tipo il Courier. E’ scritto proprio come il codice LaTeX, ma preferibilmente con la larghezza del testo più contenuta. Cambiare il font renderebbe poco leggibile il listato. Tabelle non ce ne sono.
                    Grazie

                  • #54779
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Ahh, be’, se è un listato di MATHLAB.

                      Ciò non toglie che anche famosi programmi come MATHLAB contribuiscano a diffondere l’errore di scrivere le unità di misura fra parentesi quadre. D’altra parte se quella è la sintassi di MATLAB, che non ho mai avuto il pacere di usare, non metto lingua.

                      Con un altro famoso programma, PSpice, ero risuscito a correggerne il codice macchina, in modo che non scrivesse K (kelvin) al posto di k (kilo); ora sono passati più di 15 anni e non ricordo come ho fatto. Però è una strada che non consiglierei per modificare MATHLAB.

                    • #54780
                      Liverpool
                      Partecipante
                        Up
                        0
                        Down
                        ::

                        Ahh, be’, se è un listato di MATHLAB.

                        Mi sono espresso male di nuovo. Quella riga è un commento, quindi potrei scrivere quello che voglio dopo il simbolo % e non verrebbe interpretato. La questione è che “io” non trovo una valida alternativa che non generi confusione in chi legge (dovendo usare quel carattere), ma potrebbe esserci.

                      • #54781
                        Up
                        0
                        Down
                        ::

                        Impossibile capirci qualcosa. Cerca di produrre una versione dimagrita del documento che manifesti lo stesso errore.

                        Nella redazione del documento minimo da postare ho notato che il preambolo che genera l’errore è il seguente:
                        `\documentclass[a4paper,10pt,fleqn]{book}
                        \usepackage{listings}
                        \lstset{language=Matlab}
                        \usepackage[english,french,italian]{babel}
                        \usepackage[onehalfspacing]{setspace}`
                        Considerazioni:
                        1) L’errore sparisce se si elimina l’opzione french in babel
                        2) L’errore sparisce se si riordina: babel / setspace / listings
                        Applicando il punto 2 al documento originale l’errore è scomparso.
                        Mi potete spiegare qual era la causa?
                        Grazie

                        Meglio usare un ordine migliore del caricamento dei pacchetti; nel tuo caso
                        `\usepackage[T1]{fontenc}
                        \usepackage[latin1]{inputenc} % controlla la codifica
                        \usepackage[english,french,italian]{babel}
                        \usepackage{listings}
                        \lstset{language=Matlab}
                        \usepackage[onehalfspacing]{setspace}`
                        Se poi puoi evitare setspace è anche meglio. Non trascurerei inputenc e fontenc.

                        Il problema del francese è presto detto: per via delle (orride) convenzioni tipografiche francesi, quando babel carica questa lingua rende “attivo” il carattere “due punti” e altri. Il modo di funzionamento di listings è influenzato dai caratteri attivi al momento del caricamento: perciò metterlo prima di babel è fonte sicura di grattacapi.

                        Ciao
                        Enrico

                      • #54782
                        Liverpool
                        Partecipante
                          Up
                          0
                          Down
                          ::

                          Il problema del francese è presto detto

                          Ho capito. Fontenc e inputenc ci sono (non li ho scritti perché non concorrono nell’errore). Setspace era già mia intenzione toglierlo.
                          Grazie

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

                      Go to top