[RISOLTO] È apparsa la tilde!

  • Creatore
    Topic
  • #111914
    Up
    0
    Down
    ::


    Ciao a tutti, sto impazzendo con un piccolo problema.
    Da qualche giorno la tilde, che uso come spazio indivisibile per fare citazioni e riferimenti, mi appare nel testo compilato!

    `Capitolo~\ref{miaetichetta}`

    [attachment=1978]cap4.PNG[/attachment]

    A qualcuno è mai capitato? Qualche idea su dove potere andare a ricercare la causa?

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 14 filoni di risposte
  • Autore
    Risposte
    • #111915
      Massimiliano
      Partecipante
        Up
        0
        Down
        ::


        Ciao ASP,

        io ho provato con questo codice:
        `
        \documentclass{book}
        \usepackage{lipsum}

        \begin{document}

        \chapter{non saprei \label{miaetichetta}}
        \lipsum

        \chapter{non so}
        Capitolo~\ref{miaetichetta}

        \end{document}
        `
        e non mi da problemi.
        Riusciresti a postare un esempio minimo compilabile che riproduca l’errore?

      • #111916
        Up
        0
        Down
        ::


        Ciao Marluxia, grazie per il tentativo!
        Il il file latex in questione è piuttosto grande e suddiviso in diversi capitoli, non so bene come potere riprodurre l’errore in modo semplice.

        Ho provato a fare un file vuoto, con tutti gli stessi pacchetti che ho caricato in quello dove ho il problema con la tilde, ed il problema non si presenta. Quindi sospetto che l’apparizione della tilde sia causata da qualcosa che mi è sfuggito nel testo

      • #111917
        Up
        0
        Down
        ::


        Ho fatto ulteriori indagini, ho copiato il mio file main, dove carico tutti i pacchetti, in un nuovo file ed ho copiato-incollato un solo capitolo all’interno dello stesso (senza farlo pescare all’esterno tramite il comando \input{capitolo1.tex}).
        Facendo così le tilde funzionano correttamente (vedo solo lo spazio).

        Se invece vado nel mio file originale e faccio compilare solo il capitolo che ho copiato-incollato per fare la prova sopra (commentando gli altri capitoli), le tilde ricompaiono!
        😕 😕

      • #111918
        Massimiliano
        Partecipante
          Up
          0
          Down
          ::


          Il problema è un po’ strano, l’unica cosa che posso consigliarti è eliminare i file ausiliari e ricompilare e vedere cosa succede

        • #111919
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            C’è sicuramente un pacchetto che cambia codice di categoria ala tilde e non lo ripristina alla fine; considera il seguente comando:`\showthe\catcode`\~` e mettilo dapprima solo dopo [tt]\begin{document}[/tt]; se ti indica un numero diverso da 13 (codice di categoria dei caratteri attivi; per LaTeX standard solo la tilde è un carattere attivo) il problema risiede prima, cioè nel preambolo; se ti indica 13, allore in problema è dopo in uno dei file inclusi. Da quello che dici sembrerebbe in uno dei file inclusi prima di quello il cui riferimento viene citato con \ref preceduto dalla tilde.

            A quel puno sposta quel comando magico che ti ho indicato sopra prima di quella citazione; provando e riprovando a spostarlo all’indietro fino a quando la tilde torna ad avere il codice di categoria 13; ci sei quasi: il problema si trova fra la penultima e l’ultima posizione di quel comando; nell’ultima ti da il codice 13, mentre nella penultima ti dava il codice 12 o 11.

            Restringi la ricerca fino a quando le due ultime posizioni di quel comando ti racchoudono un intervallo breve di codice nel quale avviene il fattaccio.

            Due cautele:
            1) compila le varie prove o dando a mano dal terminale il comando di compilazione, oppure impostando il tuo shell editor in modo che lavori nella modalità errorstop mode. in questo modo la compilazione si ferma quando esegue il fatidico comando \showthe, dandoti la possibilità di leggere il codice; premendo la compilazione riparte e prosegue fino alla fine o fino al primo errore grave.

            2) Via via che sposti il comando \showthe avanti e indietro lungo il tuo file, non cancellarlo, ma commentalo, cosicché tiene traccia di tutte le posizioni in cui l’hai messo.

            Quando hai ridotto il file dove capita il cambio di categoria, ci sono due possibilità:
            1) l’inghippo è chiaro e sei in grado di aggiustarlo da solo; oppure
            2) crea un esempio minimo compilabile con tutto il tuo preambolo e un ambiente document che contiene solo i due ultimi \showthe con il codice che racchiudono; allega queso esempio minimo compilabile e vedremo se fra tutti riusciamo a scoprire l’inghippo e la cura. Fai bene attenzione che questo file che crei deve replicare l’errore, altrimenti non serve a niente.

            Spero di averti dato una buona metodologia; lunga e laboriosa, ma l’unica che riesce sempre a ridurre il codice errato a poche righe o a poche decine di righe.

            Nel prossimo ArsTeXnica di aprile 2018 ci sarà un articolo su come scovare gli errori sia facili, sia difficili, come pare che sia questo strano comportamento che succede a te. Il metodo che ti ho descritto comparirà anche in quell’articolo; io lo uso per em stesso da una quindicina d’anni e sono sempre riuscito a scoprire la causa. Col tu esempio minimo compilabile dovrei essere capace di fare lo stesso… Lo spero; comunque se non ci riesco io ci riuscirà qualcun altro.

          • #111920
            Up
            0
            Down
            ::


            Grazie mille OldClaudio per la risposta molto dettagliata. Ho fatto progressi!
            Grazie al tuo [tt]\showthe\catcode`\~[/tt], posso dirvi che l’errore risiede nel preambolo: appena metto il codice subito dopo [tt]\begin{document}[/tt], il numero che mi viene indicato è 12 .

            Detto ciò, non riesco a replicare l’errore, se copio tutto il preambolo in un documento vergine (se nessun alfro file incluso) e lo compilo, mi esce correttamente 13.
            Mi butto sul filosofico, può essere questo comportamento, esso stesso un indizio utile?

          • #111921
            Up
            0
            Down
            ::

            ASP” post=112231[…]
            Grazie al tuo [tt]\showthe\catcode`\~[/tt], posso dirvi che l’errore risiede nel preambolo: appena metto il codice subito dopo [tt]\begin{document}[/tt], il numero che mi viene indicato è 12 .
            […]

            OK, e allora continuiamo: spingiamoci fin dentro il preambolo. Sposta la linea`\showthe\catcode`\~[/tt]`sopra [tt]\begin{document}[/tt]: continua a rispondere con 12, o passa a dare la risposta attesa, cioè 13?

            Se continua a rispondere 12, tu risali un po’ alla volta il preambolo, fino ad arrivare persino sopra la dichiarazione [tt]\documentclass[/tt]. Ti conviene fare una ricerca binaria: mettendo la riga diagnostica sopra [tt]\documentclass[/tt] (cioè, proprio all’inizio del file), la risposta deve essere 13. Poi prova mettendola subito sopra [tt]\begin{document}[/tt]. Poi prova subito sotto [tt]\documentclass[/tt]. Poi prova a metà circa del preambolo. Poi a un quarto oppure a tre quarti del preambolo, a seconda della risposta avuta al passo precedente. E così via. In questo modo dovresti riuscire a identificare il pacchetto che causa il problema, o a concludere che il problema è causato addirittura dalla classe di documento (o da uno dei pacchetti che essa richiede).

            Prima di fare ciò, tuttavia, prova a cancellare tutti i file ausiliari, come ti ha già suggerito @Marluxia, e a effettuare una compilazione “vergine” lasciando la linea diagnostica sotto [tt]\begin{document}[/tt]: la risposta è 12 o 13?

            Ciao.


            Gustavo

          • #111922
            Up
            0
            Down
            ::


            Grazie per la pazienza letteracdp 🙂

            letteracdp” post=112232
            Prima di fare ciò, tuttavia, prova a cancellare tutti i file ausiliari, come ti ha già suggerito @Marluxia, e a effettuare una compilazione “vergine” lasciando la linea diagnostica sotto [tt]\begin{document}[/tt]: la risposta è 12 o 13?

            Fatto, eliminando tutti gli ausiliari la risposta è 12.
            Ho quindi messo la riga diagnostica subito sopra [tt]\begin{document}[/tt], così:
            `
            \showthe\catcode`\~
            \begin{document}
            `

            la riposta in questo caso è 13. Quindi il fattaccio inizia con [tt]\begin{document}[/tt] 😮

            P.S. non so se è importante, ma sto usando ShareLaTex (e fino ad adesso mi sono trovato tanto bene!)

          • #111923
            Up
            0
            Down
            ::


            Riesci ad affiggere qui l’elenco completo dei pacchetti che usi, nonché la classe di documento?

            Ciao.


            Gustavo

          • #111924
            Up
            0
            Down
            ::


            Eccolo 🙂

            `\documentclass[12pt,a4paper,oneside]{report}
            \usepackage[italian]{babel}
            \usepackage{placeins}
            \usepackage{eurosym}
            \usepackage{subfig}
            \usepackage{url}
            \usepackage{todonotes}
            \usepackage{booktabs}
            \usepackage{tabularx}
            \usepackage{enumitem}
            \usepackage{colortbl}
            \usepackage{xcolor}
            \definecolor{gsk}{RGB}{243,102,51}

            \usepackage{fancyhdr}
            \usepackage[utf8]{inputenc}
            \usepackage{indentfirst}
            \usepackage{graphicx}
            \graphicspath{{Immagini/}}
            \usepackage{float}
            \usepackage{rotating}
            \usepackage{newlfont}
            \usepackage{amssymb}
            \usepackage{amsmath}
            \usepackage{latexsym}
            \usepackage{amsthm}
            \usepackage{listings}
            \usepackage{chngcntr}
            \usepackage[style=numeric,hyperref]{biblatex}
            \usepackage[babel]{csquotes}
            \usepackage{hyperref}
            \bibliography{Bibliografia}
            \oddsidemargin=30pt \evensidemargin=20pt

            \pagestyle{fancy}\addtolength{\headwidth}{20pt}
            \renewcommand{\chaptermark}[1]{\markboth{\thechapter.\ #1}{}}
            \renewcommand{\sectionmark}[1]{\markright{\thesection \ #1}{}}
            \rhead[\fancyplain{}{\bfseries\leftmark}]{\fancyplain{}{\bfseries\thepage}}
            \cfoot{}

            \linespread{1.3} %interlinea

            \textheight 22.5cm
            \topmargin -0.3cm

            \usepackage{xcolor}
            \usepackage{listings}
            \lstset{basicstyle=\ttfamily,
            showstringspaces=false,
            commentstyle=\color{red},
            keywordstyle=\color{blue},
            escapeinside={(*@}{@*)}
            }

            \usepackage{subfig}
            \usepackage{chngpage}
            \newcommand{\virgolette}[1]{“#1''}
            \usepackage{multirow}
            \usepackage{tikz}
            \usepackage{smartdiagram}
            \usepackage[output-decimal-marker={,}]{siunitx}
            \usepackage{textcomp}
            \usepackage{siunitx}
            \usepackage{layouts}
            \usepackage{pgf-pie}
            \usepackage{epigraph}
            \usepackage{lscape}
            \usepackage{rotating}
            \usepackage{pdflscape}
            \usepackage{fancybox}
            \usepackage{courier}
            \usepackage[flushleft]{threeparttable}
            \usepackage{pdfpages}
            \usepackage{attachfile2}

            \usepackage[toc,page]{appendix}
            \renewcommand\appendixtocname{Appendici}
            \renewcommand\appendixname{Appendici}
            \renewcommand\appendixpagename{Appendici}

            \usepackage{afterpage}
            \makeatletter

            \usetikzlibrary{shapes.geometric, arrows, calc, fit}
            \tikzstyle{process} = [rectangle, minimum width=2cm, minimum height=2cm, text centered, draw=black, text width=3cm, fill=orange!30]
            \tikzstyle{process2} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, text width=0.7\textwidth, draw=black, fill=orange!30]
            \tikzstyle{arrow} = [thick,->,>=stealth]

            \newcolumntype{Y}{>{\centering\arraybackslash}X}

            \newenvironment{CenteredBox}{%
            \begin{Sbox}}{% Save the content in a box
            \end{Sbox}\centerline{\parbox{\wd\@Sbox}{\TheSbox}}}% And output it centered
            \makeatother`

          • #111925
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::



              @ASP
              non te la prendere se ti dico quanto segue.
              Il tuo preambolo contiene una quantità di errori che a prima vista non sembrano avere niente a che fare con il problema della tilde.

              Il tuo preambolo è stato copiato da chissà doc=ve o chissà da chi. Contien gli stessi pacchetti caricati due volte; contiene pacchetti del tutto obsoleti come newlfont; questo epr giunta richiama latexsym che tu carichi esplicitamante e né l’uno nè l’altro vanno caricati se si usa il pacchetto amsymb.

              Imposti i marigni con comandi diretti, ma non sono sicuro che tu sappia che cosa \oddsidemargin, \evensidemargin e \topmargin che cosa rappresentino; sono lunghezza da non usare mai e poi mai. Se vui cambiare il layout della paigna usi comandi di alto livello quali forniti dal pacchetto geometry.

              Non specifichi nulla per i font da usare in uscita nè per quel che riguarda la loro codifica nè la loro collezione; ricorda che in qualsiasi guida c’è scritto che per in font da usare bisogna averne con la codifica T1, perchè con la codifica di defautl (OT1), la sillabazione delle parole italiane con accenti non funziona bene.

              Hyperref va caricato dopo tutti gli altri pacchetti, tranne alcuni rarissimi che vanno espressamente inseriti dopo; per sapere quali sono bisogna leggerne la documentazione. In pratica prima di usare un qualsiasi pacchetto devi leggerne la documentazione a meno che tu non lo conosca a memoria.

              Quindi commenta tutte le chiamante ai pacchetti le cui funzionalità non sono davvero usate nel tuo documento.

              Potrei andare avanti; ma vorrei aggiungere qualcosa in merito alla tilde e al tuo recente messaggio che dice che dopo \begin{document} la categoria della tilde è 12, mentre prima è 13.

              Ci sono pacchetti che definiscono alcuni comandi al momento di eseguire \begin{document}. Quali siano bisogna conoscere i singoli pacchetti; siccome ne usi alcuni che io in 30 anni di lavoro con LaTeX non ho mai usato, quello che ti consiglierei, sempre lavorando su una copia del file in una cartella a se stante, ma con lo stesso preambolo e contenente una solo comando \chapter con un \ref che ne richiami l’etichetta., è di commentare via via un pacchetto alla volta finché scopri quello che ritarda quel famoso comando che cambia codifica alla tilde.

            • #111926
              Up
              0
              Down
              ::


              Non me la prendo, anzi grazie per avere speso del tempo a segnalare degli errori anche se non prettamente collegati alla tilde 🙂

              Sì, è un template già fatto, da cui sono dovuto partire (è una tesi ed il template è fornito dalla facoltà; i margini, ad esempio, sono una delle cose che mi sono state “imposte”).
              Ho sempre usato LateTx per fare cose più semplici… mentre mi rendo conto che questo preambolo, con il crescere della tesi, si è riempito a dismisura e mi immagino sia pieno di errori che non comprendo nemmeno.
              Però, fino ad adesso, l’effetto finale diciamo che è sempre stato quello desiderato.

              Proverò a sistemare gli errori più gravi che mi hai segnalato ed a fare il test pacchetto per pacchetto.

              Tuttavia, ti faccio presente che la prima cosa che ho fatto è proprio quella di copiare tutto il preambolo in un nuovo file e lasciare solo un chapter con un label ed un ref che ne richiamasse l’etichetta. Il risultato è stato che non sono riuscito a replicare l’errore. Credo che mi convenga copiare tutta la tesi e fare delle prove sulla copia integrale.

            • #111927
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Caro @ASP, nel “redarguirti” per il preambolo orribile che hai postato, non ce l’avevo con te ovviamente. Ora ci dici che quello è il preambolo che ti è stato imposto dalla facoltà. Il che la dice lunga sul fatto che le facoltà impongano certi schemi senza sapere quello che dicono o che fanno; per giunta dando in pasto ai laureandi tratti di codice (il preambolo è solo codice) scritti in modo arcaico e e con tutti gli errori indicati come “peccati mortali” in un documento distribuito con il sistema TeX.

                Comunque il tuo problema si sta rivelando più grave di quello che pensavo.

                Ti propongo di scovare il mio indirizzo di posta elettronica (ricordando che fra le guide tematiche ce ne sono scritte da due “Claudi”; quello giovane si chiama Fiandrino e quello vecchio si chiama Beccari). Io non amo mettere il mio indirizzo in chiaro nel forum per il soliti problemi di malware e sniffer vari che girano per la rete.

                Zippi tutta la tua tesi e se non supera i 2MiB, me la alleghi ad un messaggio di posta elettronica; altrimenti me la metti in un posto da cui io la possa scaricare; non sono un puritano, ma preferirei che il posto sia una cosa priva di réclame e in particolare privo di trailer con donnine poco vestite. Mi è già capitato… 👿

                Così esamino con calma il tutto. e magari ti sistemo anche il preambolo.

              • #111928
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::



                  @ASp
                  mi ha comunicato che il problema è sparito. Mi ha spiegato che stava compilando con ShareLaTeX, non sulla sua macchina dove non riusciva a replicare il problema. Cancellati tutti i file ausiliari su ShareLaTeX e ricompilando (come suggerito da @Marluxia) il problema è sparito.

                  Dunque, anch’io non ero andato lontano dal vero, ma non mi assumo nessun merito che va tutto a @Marluxia; io dicevo solo che doveva cerare nel nella esecuzione del comando [tt]\begin{document}[/tt]. Durante questa esecuzione non solo vengono eseguiti tutti i comandi differiti mediante [tt]\AtBeginDocument[/tt] ma vengono anche letti tutti i file ausiliari generati nella compilazione precedente. Basta un errore fatale che lasci qualcuno di questi file mal terminato e possono succedere le cose più strane, come quella della tilde non più carattere attivo. Anch’io dovrei ricordarmi più spesso di questo fatto.

                  Tutto è bene quel che finisce bene; mi dispiace solo di non aver dato abbastanza importanza ai file ausiliari e all’informazione che il documento veniva composto su una macchina “lontana”. Sembra che funzioni bene, ma io personalmente preferisco avere tutto sul lio calcolatore e lo consiglio anche agli altri. Ma ciò che è comodo per me, non necessariamente lo è per altri.

                • #111929
                  Up
                  0
                  Down
                  ::


                  Confermo! Grazie ancora a tutti quanti per l’aiuto e la pazienza!

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

              Go to top