OldClaudio

Risposte nei forum create

Stai visualizzando 15 risposte – dal 1,366 al 1,380 (di 11,287 totali)
  • Autore
    Risposte
  • in risposta a: Ritagliare immagini .eps e modiche alle caption #116597
    OldClaudio
    Partecipante
      Up
      0
      Down
      ::


      Per rimpicciolire basta mettere un comando di corpo all’inizio dell’argomento obbligatorio di \captionof. Per ridurre la distanza devi ridefinire il comando;

      Vai quindi a cercare la definizione del comando \captionof, copiala nel tuo preambolo, cambi il comando di definizione in \renewcommand, e apportaci tutte le modifiche che vuoi, compreso quello dello spazio. Probabilmente devi mettere al ri-definizione fra \makeatletter e \makeatother, perché ricordo che contiene delle macro il cui nome contiene la non-lettera @.

      in risposta a: Ritagliare immagini .eps e modiche alle caption #116594
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Si può fare ma devi usare il comando \includegraphics* e fra le opzioni devi specificare l’opzione viewport o l’opzione trim; Vieport implica che tossa specificare correttamente in unità di misura reali le coordinate dell’angolo inferiore sinistro e quelle delll’angolo superiore destro dell’oblò rettangolare attraverso il quale vuoi vedere la figura; trim richiede che possa specificare correttamente le larghezze delle strisce da ritagliare via dai quattro lati della figura. Controlla bene nella documentazione della grafica che leggi con il comando texdoc grfguide.

        Altternativamante puoi installare (in aggiunta a ghostscriot che dovresti già avere a bordo, il programma gview (o gv in una macchina UNIX) che permette di visualizzare sia dei file eps, sia delle figure pdf, ma che consente di convertire dall’un formato all’altro e consente di ridefinire il bounding box, cioè le dimensioni del rettangolo circoscritto alla figura. Con questo programma (interfaccia grafica) si riesce a scontornare una figura sia eps sia pdf, ma ovviamente devi installare il programma e devi imparare ad usarlo; lo trovi in rete anche in forma gratuita, almeno per uso personale; cercalo col tuo motore di ricerca preferito.

        Personalmente sul mio Mac io uso il programma Preview/Anterprima che mi permette di scontornare sia le immagini pdf, sia quelle eps, che trasforma direttamente in formato pdf; e altri formati grafici a matrici di punti, pochi, ma sono quelli maggiormente diffusi. Il suo vantaggio, come per gview, è che trasforma i formati vettoriali conservando la vettorialità mentre i programmi di fotoritocco, che io sappia, non conservano la vettorialità.

        in risposta a: Classe documento BYU Textbook #116591
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Esplorando meglio il pacchetto BYUTextbook, di cui ho scaricato ex novo il file .zip originale, ho scoperto che la causa del loop infinito è dovuta a babel; quindi non si può usare babel con con questa classe.

          Si può usare xelatex; ho cambiati le prime righe come segue`% !TEX TS-program = XeLaTeX
          \documentclass{BYUTextbook}

          % The \lipsum command just loads dummy text.
          \usepackage{lipsum}

          %\usepackage[english]{babel}% BYUTextbook non funziona con babel…

          \usepackage{polyglossia}% … ma funziona con polyglossia; solo che bisogna compilare con XeLaTeX
          \setmainlanguage{italian}

          \begin{document}`e la compilazione con XeLaTeX permette di ottenere pari pari l’esempio fornito con il file .zio con la sillabazione in italiano e le parole infisse in italiano.
          Naturalmente ci sono delle parole infisse anche nella classe e quelle non sono in italiano, perché non sono state definite con apposite macro ridefinibili.
          Lo stesso vale per il formato della carta. Bisogna mettere le mani dentro il codice della classe che, però, è soggetta alla licenza MIT.

          Per la verità questa licenza non è molto restrittiva, ma in generale la si può modificare lasciando il preambolo come è, ma cambiando il nome alla classe; bisogna indicare chi ha eseguito la modifica e bisogna anche specificare che l’autore originale non è responsabile delle modifiche, ma se qualcosa non va, bisogna rivolgersi a chi ha eseguito le modifiche, indicandone anche il recapito (e-mail).

          in risposta a: Classe documento BYU Textbook #116590
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            La lingua italiana si usa come al solito, mettendo nel preambolo la riga`\usepackage[italian]{babel}`.

            Ho provato il tuo insieme di file introducendo una sezione iniziale all’inizio del capitolo, e per qual che si può vedere con lipsum, sembra che la sillabazione italiana funzioni anche con le parole “infisse”, come Capitolo, vengono in italiano.

            Tuttavia i file che hai inviato non permettono di trattarli come un esempio minimo compilabile, non solo per le immagini da inclduere che non lo permttono, ma anche per almeno un errore grave, che manda in cilclo infinito il programma. Dunque, è difficilissimo capire come provvedere a modificare/correggere quel file e quella classe.

            Ma perché diamine vai a cercare classi di dubbia origine, male o per niente documentate, che non si sa bene cosa facciano. Non è una classe ufficiale del sistema TeX, per quel che posso dire, e ridefinisce cose molto dubbie difficili da modificare, per esempio usa la carta in fomato letter, in una maniera a cui non si può ovviare se non modificando il file cls, che per la licenza MIT non è direttamente modificabile.

            In sostanza non sono in grado di aiutarti in nessun modo, se non per consigliarti di:

            1) impara meglio LaTeX
            2) leggi la documentazione di ogni pacchetto e classe che usi;
            3) se una classe non standard, come stai facendo, devi essere in grado di leggerne il codice, capire che cosa fa e capire anche come modificarne il comportamento.
            4) Ricorda l’aforismo, ricordato in tutte le guide della sezione Documentazione di questo forum, scritte da Lorenzo Pantieri: “LaTeX non è Word”

            in risposta a: Problemi con didascalia immagine #116584
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Benvenuta nel forum
              \includegraphics coni suoi argomenti va dentro l’ambiente figure, prima del comando per la didascalia.`
              \begin{figure}
              \centering %per centrare la figura
              \includegraphics[width=\textwidth]{layout_impianto_1}
              \caption{Layout dell'impianto turbogas} %didascalia numerata
              \label{layout_impianto_1} %produce un riferimento alla figura
              \end{figure}`Se non vuoi specificare la larghezza devi commentare tutta l’opzione, o, se ci fossero altre opzioni, solo quella che non ti serve; così:`\begin{figure}
              \centering %per centrare la figura
              \includegraphics[%width=\textwidth
              ]{layout_impianto_1}
              \caption{Layout dell'impianto turbogas} %didascalia numerata
              \label{layout_impianto_1} %produce un riferimento alla figura
              \end{figure}`
              Non usare mai gli underscore che anche se in certe circostanza non danno problemi, essi fanno parte dei caratteri speciali che possono essere usai solo in modo matematico, anche se ceri comandi li accettano, per esempio \label. Non hai davvero nessuna necessità di usare l’underscore; che differenza c’è nello scrivere [tt]layout_impianto_1[/tt] invece di [tt]layout-impianto-1[/tt] dal punto di vista del significato mnemonico della stringa? In particolare non usarli mai nei nomi dei file. Ma se usi il trattino non incorri in nessun problema, mentre se usi l’underscore puoi incontrare problemi.

              in risposta a: Posizionamento immagini suddivise per sezioni senza testo #116581
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Benvenuto nel forum.

                Per tua consolazione non sei l’unico ad avere avuto questo problema.

                Tuttavia va notato che la scelta di mettere un certo numero di sezione in paragrafi con tutolo è un’idea che viene a molti, ma che va bene per un catalogo e non per un libro.

                Non so quanta esperienza tu abbia con LaTeX, maci sono vari modi per gestire il problema.
                1) ogni immagine occupa un certo spazio verticale; l’uso dell’ambiente float serve appunto per far flottare l’oggetto dove c’è abbastanza postoper mettercelo.

                2) per impostazione predefiniita ogni classe specifica dei liimiti minimi e massimi all’occupazione della pagina da parte del testo e delle figure sopra il testo e delle figunre sotto il testo (per le pagine che contengono anche il testo), e delle percentuali minime per una pagina si sole figure.

                3) solo quando viene emesso un comando \clearpage (esplicitamente o implcitamente) i vincoli suddetti vengono rilasciati.

                4) il parametro di posizione H serve solo per combinare pasticci.

                5) Bisogna fare attenzione alle dimensioni verticali delle figure; una figura con la sua didascalia non può essere più alta di \textheight e meno per lasciare posto al titolo, altrimenti che siano flottanti o non flottanti viene produttauna pagina col solo titolo e la prima figura va nella pagina successiva. E non c’è niente da fare se non immettere la figura con un’altezza minore (scalandola, per esempio, con height=0.85\textheight.

                6) invece di usare l’ambiente float si può usare l’ambiente centering, per esempio secondo questo schema`\begin{center}
                \includegraphics[height=0.85\textheight]{

                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Cominciamo dal fondo.

                  a) 12 non è un’opzione valda; se vui comporre in corpo 12pt, devi scrivere 12pt, non semplicemente 12.

                  b) qualunquetesto strutturato in parti, capitoli, paragrafi, sottoparagrafi, eccetera, li deve avere numerati. Perciò togli gli asterischi a tutti i tuoi comandi di sezionamento, e di conseguenza togli tutti i \phantomsection e \addcontentsline.

                  Gli hiperlink funzionano con le cose numerate e, anche se non li si usano i vari \label, \ref, \pageref, gli hypellink funzionano con le cose numerate.
                  Il comando \pantomsection servirebbe per mettere un target e un anchor all’oggetto non numerato.

                  La cosa è lunga da spiegare; e (con una certa fatica) si capisce leggendo la documentazione di \hyperref (texdoc hyperref comando da terminale); Infatti si consuma una certa fatica leggendo e rileggendo cose che dovrebbero essere chiarissime per qualunaue informatico, e sono quasi incomprensibili ai comuni utenti.

                  La guida “LaTeX per l’impaziente” ovviamente non scende nei dettagli; dice solo: “se vuoi fare così fai questo e quest’altro” e raramente aggiunge “quando non funziona leggi la documentazione specifica”. Ma ahimè, quest’ultima è la frase che conta.
                  Le due guide “L’Arte di scrivere con LaTeX” e “LaTeXpedia” non dicono molto di più su queste cose. Probabilmente nemmeno la guida più approfondita, “Introduzione all’arte della composizione tipografica con LaTeX”, dice molto di più, ma raccomanda (quasi) sempre di documentarsi leggendo le guide tematiche (nel sito Documentazione di questo forum) e la documentazione specifica di ogni pacchetto. Forse dice di più il “LaTeX Companion” (commerciale; pubblicato dalla Addison Wesley).

                  in risposta a: Carta millimetrata lineare, semilogaritmica e log-log #116560
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Ma se i calcoli li fai sui valori delle coordinate, non ti devi preoccupare, perché sono solo i coefficienti di \unitlength.

                    Altrimenti, sì devi trasformare i valori numerici in pt ma non è una cosa particolarmente difficile quando hai i valori 72,27 (che indica i punti al pollice) e 25,4 (che indica i millimetri al pollice); poi, ovviamente puoi calcolarti una volta per tutte i due rapporti 72,27/25,4 = 2.845275590551181 (che indica i punti al millimetro, e il suo reciproco 0.351459803514598 (che indica i millimetri al punto) con cui puoi fare tutte le conversioni che credi.

                    Con i comandi di etex, in particolare \dimexpr una volta avevo creato una macro per trafermare quanlunque grandezza espressa con la sua unità di misura, per trasformarla nella misura eseguita con qualunque altra unità dimisura. funzionava benissimo ma erano solo due righe di codice che quando mi occorrono faccio prima ad ricrearle, piuttosto che andarle a cercare nell’ormai dimenticato file iniziale.

                    in risposta a: Problema tabella a capo #116574
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Dove hai scovato la classe peloritana.cls?
                      Senza di quella è difficile darti una mano; dicci almeno da dove si può scaricare.

                      Occhio e croce non hi programmato bene la tua tabella; ma è difficile dirlo senza sapere che cosa fa quella classe misteriosa.

                      Quello che posso dirti è che
                      1) latexsym non deve essere caricato mai se si carica \amssymb

                      2) carichi color due volte e carichi anche xcolor; inoltre assegni le opzioni useames e dvipsnames al pacchetto color che non sa che cosa farsene, in quanto sono opzioni per xcolor.

                      Queste sono solo le prime cose che mi sono balzate agli occhi; spero che non ce ne siano altre.

                      in risposta a: Errore LaTex ambiente cases #116571
                      OldClaudio
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        Infatti non hai fatto quello che ti ho detto: in \parbox devi specificare la stessa larghezza dell’oggetto che includi. Per esempio hai scritto`\parbox{\textwidth}{\includegraphics[width=0.2\columnwidth]{img/xn_dispari.png}}`mentre avresti dovuto scrivere`\parbox{0.2\columnwidth}{\includegraphics[width=0.2\columnwidth]{img/xn_dispari.png}}`

                        Perdonami: ho il sospetto che tu non sappia che cosa sia \columnwidth; la guida che ti ho indicato lo spiega chiaramente. Tuttavia se vuoi che la tabella esterna sia larga complessivamante come la gabbia di stampa hai diverse altre possibilità. Intanto correggi quanto ti ho detto sopra, poi possiamo ragionare se mandi un’immagine di quel che ottieni, per migliorare il risultato complessivo.

                        PS: in particolare:
                        \textwidth: larghezza complessiva della gabbia di stampa.
                        \columnwidth: larghezza di una colonna di testo per quando si compone a due colonne; è un po’ inferiore a 0.5\textwidth percé bisono considera uno spazio fra le due colonne.
                        \linewidth giustezza corrente della riga di testto; di solito è pari a \textwidth se si compone a una colonna, e a \columnwidth se si compone a due colonne, ma è inferire dentro gli ambienti speciali come quote, quotation, itemize, enumerate, description, e in altri casi.

                        \columnwidth non ha nulla a che vedere con la larghezza delle colonne di una tabella.

                        in risposta a: Carta millimetrata lineare, semilogaritmica e log-log #116558
                        OldClaudio
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          Bravo Francesco; hai perfettamente ragione. Nel mio ultimo codice, quello per i quattro tipi di carta basta aggiungere \squarecap subito prima di \line nella riga 177 e nella riga 201.

                          Ti ringrazio, perché mi sono domandato tante volte a che cosa servisse \squarecap; sapevo esattamente che cosa faceva ,ma onestamente mi sono sempre domandato quando mai fosse necessario o utile usarlo. Ora con il tuo occhio sensibilissimo, me l’hai fatto scoprire. Pensavo che qualche utilità si sarebbe potuta avere con righe molto spesse, non con righe spesse 1pt, che di default si incrociano, effettivamente con \buttcap. Ammetto di aver usato una volta o due \roundcap, ma \squarecap mai.

                          Se il contorno della carta, lineare (o anche logaritmica) fosse disegnato con polygon invece che con rette, il problema non si presenterebbe, ma diventerebbe decisamente più complicato il tutto; \squarecap è la soluzione.

                          Grazie mille
                          Claudio

                          PS: Credevo di averlo spiegato in una delle varie guide che cosa succede con \buttcap, \squarecap e \roundcap, oltre con \miterjoint, \roundjoint e \beveljonit. In effetti l’ho scritto in una guida di una serie che non vedrà mai la luce, perché i membri del piccolo comitato LaTeX Collection Documentation Team si è arenato.

                          in risposta a: Carta millimetrata lineare, semilogaritmica e log-log #116556
                          OldClaudio
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            Be’, visto che è divertente cimentarsi ocn queste cose ecco il codice per generare qualunque tipo di carta “millimetrata” lin-lin, log-lin, lin-log e log-log.
                            Riustilizzo i codici leggermente adattati e, più importante, corretti, in modo che professori e studenti possao stamparsi le carte di cui hanno bisogno. Qui c’è il codice adeguatamente commentato:`% !TeX encoding = utf8
                            % !TeX program = pdflatex

                            % Disegna in formato A4 landscape (base 297mm; altezza 210mm) quattro
                            % tipi di carte “millimetrate con scale lineari e/o logaritmiche:
                            % lin-lin, log-lin, lin-log e log-log.
                            % Il tutto si affida al comando \carta che accetta due argomenti
                            % facoltativi, il primo relativo alle ascisse e il secondo alle ordinate;
                            % entrambi sono numeri interi non negativi e rappresentano il numero di
                            % decadi contenute lungo l'asse delle ascisse e delle ordinate. Se uno
                            % o entrambi i numeri sono nulli (zero, 0) la graduazione è lineare e non
                            % logaritmica; gli usi possibili sono i seguenti (N e M sono un numeri
                            % positivi):
                            % \carta equivalente a \carta[0] e a \carta[0][0]: carta lin-lin
                            % \carta[N] equivalente a \carta[N][0]: carta log-lin
                            % \carta[0][N]: carta lin-log
                            % \carta[N][M]: cara log-log
                            % Siccome le dimensioni del grigliato sono di 260mm di base e 180mm
                            % di altezza, non bisogna usare per N e M numeri troppo grandi,
                            % orientativamente non maggiori di 5 (che forse è già troppo), perché
                            % altrimenti le linee della graduazione logaritmica diventano troppo
                            % fitte, fino a fondersi assieme, nonostante le linee più sottili siano
                            % di circa 0,15mm.Non ci sono problemi con le scale lineari perché con
                            % la carta millimetrata le righe distano comunque 1mm l'una dall'altra.
                            % Questo file permette di disegnare i quattro tipi di file colorati
                            % del solito rosso-giallino; il file è modificabile, nel senso che si
                            % può definire un altro colore a piacere.
                            % si potrebbe anche modificare per comporre carte più grandi da stampare,
                            % per esempio, su fogli A3.
                            % Certamente si deve cambiare il logo dell'università se lo si vuole
                            % inserire, o si deve commentare la riga che include il logo se non si
                            % vuole inserire neiente; Il nome di questo logo è solo d'esempio
                            % ed è di fantasia; difficilmente si dispone di questo particolare logo,
                            % che non corrisponde a nessun logo ufficiale.
                            %
                            % Si ritiene che questo file possa essere utile ai docenti e agli studenti
                            % che devono disegnare a mano diagrammi lineari 0 semi- o bi-logaritmici
                            % e possono evitare di comprare le carte già predisposte per questi scopi.
                            %
                            % Dopo \begin{document} ci sono quattro esempi d'uso.
                            %
                            %
                            \documentclass{article}
                            \usepackage[a4paper,landscape]{geometry}
                            \geometry{top=15mm,bottom=15mm,left=18.5mm,right=18.5mm}
                            \usepackage{pict2e,graphicx,xfp,color,xparse}

                            \definecolor{gridcolor}{RGB}{250,153,89}
                            %\definecolor{gridcolor}{RGB}{0,0,0}
                            % Macro di servizio
                            % Macro per usare una macro col solo suo nome, senza il backslash
                            % Accetta stringhe senza backslash formate da caratteri qualunque
                            \newcommand\csuse[1]{\csname#1\endcsname}
                            %
                            \newcommand\WhileDoOne[4][1]{%
                            % Ciclo while singolo o interno
                            % #1 := incremento da un ciclo all'altro (facoltativo: default 1)
                            % #2 := valore iniziale
                            % #3 := valore finale
                            % #4 := operazioni cicliche
                            {\countdef\J=2560 \J=#2\relax
                            \csuse{@whilenum}\J<#3\do{#4\advance\J by #1}}% } \newcommand\WhileDoTwo[4][1]{% % Ciclo esterno di due cicli % #1 := incremento da un ciclo all'altro (facoltativo: default 1) % #2 := valore iniziale % #3 := valore finale % #4 := operazioni cicliche {\countdef\K=2562 \K=#2\relax \csuse{@whilenum}\K<#3\do{#4\advance\K by#1}}% } % \newcommand\hlines[4]{% % #1 := \decyy oppure \decy % #2 := fattore reale di incremento da una riga alla successiva % #3 := spessore delle linee espresso con il valore \lwa, o \lwb o \lwc % #4 := lunghezza espressa con \longwidth o \xlength. Se #4 > \xlength,
                            % automaticamente usa un displacement iniziale pari a -\ticklength
                            % \ystep := (già pre-calcolato come altezza della carta divisa per il
                            % numero di decadi) altezza di ogni decade, in modo da poter
                            % ripetere le stesse linee in ogni decade.
                            \edef\xoffset{\fpeval{\ifdim#4pt > \xlength pt -\ticklength \else 0\fi}}
                            \expandafter\multiput\expandafter(\ifdim#4pt>\xlength pt
                            -\ticklength \else 0\fi,\fpeval{ln(#2)*\ystep/ln(10)})(0,\ystep){#1}%
                            {\linethickness{#3}\line(1,0){#4}}%
                            }
                            %
                            \newcommand\vlines[4]{%
                            % #1 := \decxx oppure \decx
                            % #2 := fattore reale di incremento da una riga alla successiva
                            % #3 := spessore delle linee espresso con il valore \lwa, o \lwb o \lwc
                            % #4 := lunghezza espressa con \longheight o \ylength. Se #4 > \ylength,
                            % automaticamente usa un displacement iniziale pari a -\ticklength
                            % \xstep := (già pre-calcolato come larghezza della carta divisa per il
                            % numero di decadi) larghezza di ogni decade, in modo da poter
                            % ripetere le stesse linee in ogni decade.
                            \edef\yoffset{\ifdim#4pt > \ylength pt -\ticklength \else 0\fi}
                            \multiput(\fpeval{ln(#2) * \xstep / ln(10)},\yoffset)(\xstep,0){#1}%
                            {\linethickness{#3}\line(0,1){#4}}%
                            }
                            %
                            % Il comando \carta accetta dino a dueargomenti facoltativi
                            % che descrivono il tipo di carta: lineare, semilologaritmica, e
                            % bilogaritmica che si vuole creare; se non ne vine specifica nessuno
                            % o si specificano due argomenti nulli (\carta[0][0]), viene tracciato
                            % una carta bilineare. Se il primo è positivo e il secondo manca o è
                            % nullo, si traccia una carta semilogaritmca con le ascisse logaritmiche;
                            % se il primo è nullo e il secondo è positivo si traccia una carta
                            % semilogaritmicoa con le ordinate logaritmiche; se entrambi sono
                            % positivi si traccia una carta bilogaritmica, dove il primo numero
                            % indica le decadi in orizzontale e il secondo le decadi in verticale e,
                            % quando il numero vale zero, la scala è lineare.
                            % In ogni caso le lunghezze delle linee orizzontali e verticali sono
                            % rispettivamente \xlength e \ylength, uguali alle dimensioni orizzontali
                            % e verticali della carta.
                            % Le linee hanno tre possibili spessori; 1pt(circa un terzo di millimetro)
                            % quelle più spesse, e le altre due in progressione geometrica di (circa)
                            % 1/\sqrt{2} come prescrivono le norme UNI per le varie gerarchie di
                            % linee.
                            % Per la carta (bi)lineare si riempie solo il reticolo di linee ugualmente
                            % spaziate dove quelle che marcano i centimetri sono di 1pt, quelle che
                            % marcano i 5mm sono spesse 0.7mm e quelle che marcano gli altri
                            % millimetri sono spesse 0.5mm. Questo vale anche per le carte
                            % semilogaritmiche per la scala lineare.
                            % Per le scale logaritmiche la linea che delimita la decade oltre ad
                            % essere prolungata fuori della carta di \ticklength sia sotto sia sopra,
                            % la linea è spessa 1pt. Lo spessore di 0.7pt viene usato per i valori
                            % “interi” della graduazione, e lo spessore di 0.5pt viene usato per le
                            % altre linee.
                            % Per le scale logaritmiche è necessario specificare quante decadi si
                            % vogliono lungo l'asse orizzontale e per le bilogaritmiche quante se ne
                            % vogliono lungo l'asse verticale.
                            % Siccome le dimensioni di 260mm per 180mm sono in rapporto 13/9
                            % nella scala bilogaritmica le decadi non possono mai avere le stesse
                            % dimensioni, e sono, quindi, sempre dei rettangoli per poter ottenere
                            % dei quadrati con numeri di decadi adeguati bisognerebbe che le
                            % dimensioni della carta graduata fossero multipli di 12 o di 6, per
                            % esempio; 4 decadi in orizzontale e tre in verticale darebbero al
                            % massimo 240mm per 180mm. La possibilità di comporre una carta
                            % bilogaritmica con decadi delle stesse dimensioni in orizzontale e in
                            % verticale non è stata affrontata.
                            %
                            \NewDocumentCommand{\carta}{% Descrittori degli argomenti
                            O{0} % specifica quante decadi in orizzontale; può valere 0 e la scala
                            % % orizzontale diventa lineare; default 0.
                            O{0} % specifica quante decadi in verticale; può valere 0 e la scala
                            % % verticale diventa lineare; default 0.
                            }{\newpage
                            % Impostazioni tipografiche
                            \parindent=0pt
                            \pagestyle{empty}%
                            \setlength{\unitlength}{1mm}%
                            \color{gridcolor}%
                            % Impostazioni generali della carta in landscape
                            % I numeri sottintendono l'unità di misura \unitlength=1mm
                            \def\xlength{260}% Non è prudente definire \width e \height che sono
                            \def\ylength{180}% specifiche del nucleo di LaTeX
                            %% temporanemente le rendo uguali a \width e \heigth ma dopo i test
                            %% elimino queste equivalenze
                            %\let\width\xlength \let\height\ylength
                            \def\ticklength{2}% sporgenza delle linee verticali sopra e sotto il bordo
                            % Le linee sporgenti si usano solo per le scale logaritmiche
                            \edef\longwidth{\fpeval{\xlength+2*\ticklength}}
                            \edef\longheight{\fpeval{\ylength+2*\ticklength}}
                            \unless\ifcsname lwa\endcsname\newlength\lwa\fi
                            \setlength{\lwa}{1pt}% Originariamente{0.4mm}; 1pt=0.35mm
                            \unless\ifcsname lwb\endcsname\newlength\lwb\fi
                            \setlength{\lwb}{0.7pt}% Originariamente{0.2mm}; 0.7pt=0,25mm
                            \unless\ifcsname lwc\endcsname\newlength\lwc\fi
                            \setlength{\lwc}{0.5pt}% Originariamente{0.1mm};0.5pt=0.18mm
                            \begin{picture}(\xlength,\ylength)
                            \edef\decx{#1}\edef\decy{#2}%
                            \ifnum#1=0\relax
                            % traccia le linee verticali sulle ascisse lineari
                            \multiput(0,0)(10,0){27}{\linethickness{\lwa}\line(0,1){\ylength}}
                            \multiput(5,0)(10,0){26}{\linethickness{\lwb}\line(0,1){\ylength}}
                            \multiput(0,0)(1,0){260}{\linethickness{\lwc}\line(0,1){\ylength}}
                            \else
                            % traccia le linee verticali sulle ascisse logaritmiche
                            \edef\decxx{\fpeval{\decx + 1}}%
                            \edef\xstep{\fpeval{\xlength / \decx}}
                            % linee principali, una ogni decade + una in fondo
                            \vlines{\decxx}{1}{\lwa}{\longheight}
                            % secondo livello: in ogni decade, una ogni unità
                            \WhileDoOne{2}{10}{\vlines{\decx}{\J}{\lwb}{\ylength}}
                            % terzo livello: una ogni 1/10, o 2/10, o 5/10, per ciascuna decade
                            \WhileDoTwo{1}{3}{% una ogni 1/10
                            \WhileDoOne{1}{10}{\vlines{\decx}{(\K+\J/10)}{\lwc}{\ylength}}}%
                            %
                            \WhileDoTwo{3}{7}{% una ogni 2/10
                            \WhileDoOne[2]{2}{10}{\vlines{\decx}{(\K+\J/10)}{\lwc}{\ylength}}}%
                            %
                            \WhileDoOne{7}{10}{%una ogni 5/10
                            \vlines{\decx}{(\J+0.5)}{\lwc}{\ylength}}%
                            % fine delle linee verticali
                            \fi
                            \ifnum#2=0\relax
                            % traccia le linee orizzontali sulle ordinate lineari
                            \multiput(0,0)(0,10){19}{\linethickness{\lwa}\line(1,0){\xlength}}
                            \multiput(0,5)(0,10){18}{\linethickness{\lwb}\line(1,0){\xlength}}
                            \multiput(0,0)(0,1){180}{\linethickness{\lwc}\line(1,0){\xlength}}
                            \else
                            % traccia le linee orizzontali sulle ordinate logaritmiche
                            \edef\decyy{\numexpr \decy +1}%
                            \edef\ystep{\fpeval{\ylength / \decy}}
                            % linee principali, una ogni decade + una in fondo
                            \hlines{\decyy}{1}{\lwa}{\longwidth}
                            %
                            % secondo livello: in ogni decade, una ogni unità
                            \WhileDoOne{2}{10}{\hlines{\decy}{\J}{\lwb}{\xlength}}
                            % terzo livello: una ogni 1/10, o 2/10, o 5/10, per ciascuna decade
                            \WhileDoTwo{1}{3}{% una ogni 1/10
                            \WhileDoOne{1}{10}{\hlines{\decy}{(\K+\J/10)}{\lwc}{\xlength}}}%
                            %
                            \WhileDoTwo{3}{7}{% una ogni 2/10
                            \WhileDoOne[2]{2}{10}{\hlines{\decy}{(\K+\J/10)}{\lwc}{\xlength}}}%
                            %
                            \WhileDoOne{7}{10}{% una ogni 5/10
                            \hlines{\decy}{(\J+0.5)}{\lwc}{\xlength}}%
                            % Fine delle linee orizzontali
                            \fi
                            % Per mettere il logo dell'ateneo o qualunque altro logo la cui immagine
                            % sia più larga che alta. In ogni caso per ogni logo l'impostazione
                            % width=25mm può essere adattata a ogni particolare logo.
                            % Le coordinate specificate con \put sono riferite all'origine della
                            % carta graduata (nell'angolo inferiore sinistro) e mettono in posizione
                            % l'angolo superiore sinistro dell'immagine del logo.
                            %
                            \put(-16,193){\makebox(0,0)[tl]{\includegraphics[width=25mm]{TITlogoCropped}}}
                            %\put(-16,193){\makebox(0,0)[tl]{\includegraphics[width=12mm]{unifilogo_black_v.pdf}}}
                            \end{picture}}
                            % —————————– FINE PREAMBOLO ——————————————————–

                            \begin{document}\errorcontextlines=100
                            \carta
                            \carta[3]
                            \carta[0][2]
                            \carta[4][3]
                            \end{document}
                            `
                            [attachment=2294]CartaLandscapeLSBConXparse.pdf[/attachment]

                            Attachments:
                            You must be logged in to view attached files.
                            in risposta a: Errore LaTex ambiente cases #116568
                            OldClaudio
                            Partecipante
                              Up
                              0
                              Down
                              ::


                              Benvenuto nel forum

                              Ti so rispondere subito perché le tabelle hanno il grafico non allineato rispetto alla matematica.
                              Tu usi celle di tipo l, c e simili che permettono di inserire un solo oggetto (includendo in quasta definizione anche una sola riga di testo) allineati secondo la loro linea di base; i altre parole vengono allineati i loro punti di riferimento; Nel tuo DocLatez.txt tu mostri una tabella di due colonne che a sinistra contiene un’immagine (figura, diagramma, quel che si può includere con includegraphics) e a destra un’altra tabellina.

                              Ora se tu avessi letto con più attenzione le guide, almeno alcune, che si trovano nella sezione Documentazione, come ti ha indicato Gustavo, avresti letto che le tabelle accettano un argomento facoltativo che determina la posizione della loro linea di base, cioè del suo punto di riferimento. Di default una tabella a cui non sia stato specificato nulla è allineata rispetto alla sua mezzeria (precisamente secondo il suo asse matematico) con l’asse matematico di ciò che le è adiacente; senza andare nel difficile della matematica, possiamo dire che se latabella avesse nella sua mezzeria verticale una riga di testo, questa sarebbe allineata con prima o unica riga presente nelle celle adiacenti.
                              Ma una figura non è una riga di testo; dove si trova la sua linea di base? Ebbene tutto nella composzione del sistema TeX, qualuqnue programma di composizione tu stia usando (tex, etex, latex, pdflatex, xelatex, lualatex,…) è fatto di oggetti che hanno una loro linea di base. Per le figure inglobate solo con \includegraphics, questa linea di base è la base del rettangolo che la circoscrive.

                              Allora tornado al tuo esempio, nella prima tabella la figura a sinistra della prima cella dovrebbe avere la base alla stessa altezza del centro veritcale della tabellina di destra.

                              Come fare a metterel alla stessa altezza: basta mettere \includegrapics dentro una scatola che si chiama \parbox, fissandola questa scato la stessa larghezza della figura importata/inclusa.

                              Ma ora cos’è mai questa \parbox? è una scatola che può contenere righe di testo (da cui il nome di par-box: scatola per capoversi) ma può contenere qualunque cosa che si possa inserire in un testo. Soddisfa ad una certa sintassi che ammette fino a tre argomenti facoltativi, e due obbligatori ma di solito non se ne sua nessuno o si usa solo il primo. Se non si usa nessun argometno facoltativo il suo contenuto viene allineato secondo la sua mezzeria verticale, proprio come le tabelle.

                              Non ti sto a scrivere il codice che dovresti usare; ti raccomando, invece, di scegliere fra le numerose guide della sezione Documentazione quella intitolata “Il LaTeX Reference Manual commentato”, in italiano, che rappresenta la (libera) traduzione ottenuta del manuale di Leslie Lamport, il creatore del linguaggio LaTeX, e (forse troppo) abbondantemente commentata per renderla conforme con gli aggiornamenti che sono intervenuti dal 1994 ad oggi. La guida (scaricatela sul tuo calcolatore), letta a schermo, ha un indice analitico iperconnesso con le varie parti del testo; se cerchi \parbox e clicchi su uno dei numeri di pagina che l’affiancano in quell’indice analitico, il visualizzatore ti porta immediatamente nella pagina dove si dice qualcosa di interessante in merito; può essere un esempio d’uso, o la definizione della sua sintassi o qualcosa di più o meno importante relativo a \parbox.

                              Buona lettura.

                              in risposta a: Carta millimetrata lineare, semilogaritmica e log-log #116554
                              OldClaudio
                              Partecipante
                                Up
                                0
                                Down
                                ::


                                Ho pensato che tutte quelle righe di codice necessarie per tracciare una linea alla volta con ascisse logaritmiche si può semplificare; questa soluzione fa riferimento ad un ciclo while come si fa in tutti i linguaggi di programmazione. Con il sistema TeX a livello utente il nucleo di LaTeX non offre niente. Il pacchetto etoolbox fornisce il comando \csuse che fa cose egregie per usare comandi interni al nucleo di LaTeX e anche altri comandi, ma mi sembra eccessivo caricare tutto quel pacchetto, per una cosa che per le carte logaritmiche mi sembra eccessivo; tanto vale definirsene una copia molto più modesta, per usare il comando \@whilenum interno al nucleo di LaTeX. La sintassi del comando è la seguente:

                                \@whilenum\do{,comandi>}

                                dove è una condizione numerica da verificare per terminare il ciclo; uno dei due comparandi deve essere contenuto in un registro numerico di tipo count (TeX) e non di tipo counter (LaTeX); invece deve essere l’insieme delle operazioni da eseguire ripetitivamente, compresa, alla fine una istruzione per alterare il valore del contatore. Insomma normali operazioni che si fanno con qualunque linguaggio di programmazione. L’artificio che ci occorre è collegare il contatore con la parte intera o con la parte fratta delle coordinate per le quali tracciare le linee verticali della carta semilogaritmica in formato landscape; Ecco il codice`% !TeX encoding = utf8
                                % !TeX program = pdflatex
                                % !TeX spellcheck = en_US

                                % Disegna una carta in cui le ordinate sono lineari e le scisse sono logaritmiche; la carta è disegnata in landscape, così non ci sono problemi in merito alla direzione in cui crescono le scale.

                                \documentclass[a4paper,landscape]{article}
                                \usepackage[a4paper,landscape,top=15mm,bottom=15mm,left=18.5mm,right=18.5mm]{geometry}
                                \usepackage{graphicx}
                                %\usepackage{curve2e}% carica già xfp.sty, ma per il resto non mi sembra che vanga usato; o meglio, viene usato solo perché carica il pacchetto xcolor — color è sufficiente.
                                \usepackage{xfp,color}

                                \def\width{260}
                                \def\height{180}
                                \definecolor{gridcolor}{RGB}{250,153,89}
                                %\definecolor{gridcolor}{RGB}{0,0,0}

                                \parindent=0pt
                                \pagestyle{empty}
                                \setlength{\unitlength}{1mm}
                                \edef\dec{4}
                                \edef\decaux{\numexpr \dec + 1}
                                \edef\xstep{\fpeval{\width / \dec}}
                                \edef\ystep{\fpeval{\height / \dec}}
                                \edef\ticklength{2}
                                \edef\longwidth{\fpeval{\width + 2 * \ticklength}}
                                \edef\longheight{\fpeval{\height + 2* \ticklength}}
                                \newlength\lwa
                                \setlength{\lwa}{1pt}%{0.4mm}
                                \newlength\lwb
                                \setlength{\lwb}{0.7pt}%{0.2mm}
                                \newlength\lwc
                                \setlength{\lwc}{0.5pt}%{0.1mm}

                                % Macro per usare una macro col sulo suo nome, senza il backslash
                                % Accetta stringhe senza backslash formate da caratteri qualunque
                                \newcommand\csuse[1]{\csname#1\endcsname}

                                \newcommand\hlines[4]{%
                                % #1 := \decaux oppure \dec
                                % #2 := fattore reale di incremento da una riga alla successiva
                                % #3 := spessore delle linee espresso con il valore \lwa, o \lwb o \lwc
                                % #4 := lunghezza espressa con \longwidth o \width. Se #4 > \width,
                                % automaticamente usa un displacement iniziale pari a -\ticklength
                                % \ystep := (già pre-calcolato come altezza della carta divisa per il
                                % numero di decadi) altezza di ogni decade, in modo da poter
                                % ripetere le stesse linee in ogni decade.
                                %\edef\yoffset{\fpeval{#2}}
                                \expandafter\multiput\expandafter(\ifdim#4pt>\width pt
                                -\ticklength \else 0\fi,\fpeval{ln(#2)*\ystep/ln(10)})(0,\ystep){#1}%
                                {\linethickness{#3}\line(1,0){#4}}%
                                }

                                \newcommand\vlines[4]{%
                                % #1 := \decaux oppure \dec
                                % #2 := fattore reale di incremento da una riga alla successiva
                                % #3 := spessore delle linee espresso con il valore \lwa, o \lwb o \lwc
                                % #4 := lunghezza espressa con \longheight o \height. Se #4 > \height,
                                % automaticamente usa un displacement iniziale pari a -\ticklength
                                % \xstep := (già pre-calcolato come larghezza della carta divisa per il
                                % numero di decadi) altezza di ogni decade, in modo da poter
                                % ripetere le stesse linee in ogni decade.
                                \edef\xoffset{\ifdim#4pt > \height pt -\ticklength \else 0\fi}
                                \multiput(\fpeval{ln(#2) * \xstep / ln(10)},\xoffset)(\xstep,0){#1}%
                                {\linethickness{#3}\line(0,1){#4}}%
                                }

                                \begin{document}\errorcontextlines=100
                                \centering

                                \begin{picture}(\width,\height)(0,0)
                                \color{gridcolor}

                                % linee orizzontali (a intervalli lineari in verticale}
                                \multiput(0,0)(0,10){19}{\linethickness{\lwa}\line(1,0){\width}}
                                \multiput(0,5)(0,10){18}{\linethickness{\lwb}\line(1,0){\width}}
                                \multiput(0,0)(0,1){180}{\linethickness{\lwc}\line(1,0){\width}}

                                % Nel codice che segue si usa \csname @wilenum\encsname perché \@whilenum
                                % contiene la chiocciola; si potrebbe usare \makeatletter …\makeatother;
                                % il risultato sarebbe lo stesso, la coppia delle dichiarazioni sul codice
                                % di categoria merita di essere usato quando di segni @ ce ne sono tanti.

                                % linee verticali a intervalli logaritmici in orizzontale

                                % linee principali, una ogni decade + una in fondo
                                \vlines{\decaux}{1}{\lwa}{\longheight}
                                % secondo livello: in ogni decade, una ogni unità
                                \countdef\J=2560 \countdef\K=2562
                                \J=2
                                \csuse{@whilenum} \J<10\do{%
                                \vlines{\dec}{\J}{\lwb}{\height}%
                                \advance\J by 1}
                                % terzo livello: una ogni decimo, o due decimi, o …, per ciascuna unità
                                \J=1\K=1
                                \csuse{@whilenum}\K<3\do{{% secondo while dentro un gruppo
                                \csuse{@whilenum} \J<10\do{%
                                \edef\XX{\fpeval{\K+\J/10}}%
                                \vlines{\dec}{\XX}{\lwb}{\height}%
                                \advance\J by 1}}\advance\K by 1}
                                %
                                \J=2\K=3
                                \csuse{@whilenum}\K<7\do{{% secondo while dentro un gruppo
                                \csuse{@whilenum} \J<10\do{%
                                \edef\XX{\fpeval{\K+\J/10}}%
                                \vlines{\dec}{\XX}{\lwb}{\height}%
                                \advance\J by 2}}\advance\K by 1}
                                %
                                \J=7
                                \csuse{@whilenum} \J<10\do{%
                                \vlines{\dec}{\fpeval{\J+0.5}}{\lwb}{\height}%
                                \advance\J by 1}

                                % Per mettere il logo dell'ateneo o qualunque altro logo la cui immagine
                                % sia più larga che alta. In ogni caso per ogni logo l'impostazione
                                % width=25mm può essere adattata a ogni particolare logo.
                                % Le coordinate specificate con \put sono riferite all'origine della
                                % carta graduata (nell'angolo inferiore sinistro) e mettono in posizione l'angolo superiore sinistro dell'immagine del logo.

                                \put(-16,193){\makebox(0,0)[tl]{\includegraphics[width=25mm]{LogoPoliTO-blu}}}% Politecnico di Torino
                                %\put(-16,193){\makebox(0,0)[tl]{\includegraphics[width=12mm]{unifilogo_black_v.pdf}}}% Università di Firenze

                                \end{picture}

                                \end{document}`Naturalmente sarebbe possibile rendere ancora più semplice il codice definendo, invece di \csuse, il comando \WhileNum così:`\newcommand\WhileNum{\csname @whilenum\endcsname` e usare questo al posto della stringa [tt]\csuse{@whilenum}[/tt] in tute lerighe dove questo compare. Per questo piccolofile della carta semilogaritmica sare bbe più comodo, ma in un file più grande e con usi diversificati di comandi interni il più semplice comando [tt]\csuse[/tt] è più versatile.

                                Si nota che ci sono quattro distinti blocchi: il primo e il quarto hanno un solo contatore da gestire; il secondo e il terzo hanno due cicli while con il secondo annidato nel primo e richiede di essere racchiuso in un gruppo di due gaffe [tt]{…}[/tt] altrimenti succedono pasticci con i codici interni dei cicli while.

                                Non dico che questa nuova versione sia più facile da capire rispetto alla precedente, ma certamante c’è molto meno da scrivere; se poi si volessero definire due nuovi comandi che ricevono diversi parametri (inizio e fine del ciclo, e gli altri parametri necessari per tracciare le linee) per eseguire correttamente o un singolo ciclo while o i due cicli annidati, il codice del corpo dell’ambiente picture si potrebbe semplificare ulteriormente. Usando le funzionalità del pacchetto xparse sarebbe perfino possibile definire un solo comando con diversi argomenti facoltativi che gestisce da solo sia il singolo ciclo che i due cicli annidati. Andando più a fondo con il linguaggio L3 probabilmente si riuscirebbe a comporre tutta la carta con un solo comando che gestisce l’intera lista delle coordinate; non ci ho provato, ma non escludo che si possa fare.

                                Direi che questo esercizio di carta semilogaritmica è una buona palestra per esercitare la fantasia creativa e per imparare ad usare i codici interni di LaTeX in modo avanzato.

                                in risposta a: Carta millimetrata lineare, semilogaritmica e log-log #116553
                                OldClaudio
                                Partecipante
                                  Up
                                  0
                                  Down
                                  ::


                                  Ne ho pronto un altro più compatto; te lo invio domani.
                                  Claudio

                                Stai visualizzando 15 risposte – dal 1,366 al 1,380 (di 11,287 totali)

                                Go to top