rodimus

Risposte nei forum create

Stai visualizzando 15 risposte – dal 121 al 135 (di 141 totali)
  • Autore
    Risposte
  • in risposta a: A capo indentato #11879
    Up
    0
    Down
    ::

    vorrei che i capoversi dopo ambienti itemize, theorem e così via non fossero indentati, ma iniziassero all’inizio del rigo

    Ciao,
    vorrei fare una semplice riflessione che forse potrebbe aiutarti a risolvere il tuo problema.
    Guarda questo codice:
    `Bla, bla, bla\dots

    \begin{itemize}
    \item bla;
    \item bla;
    \item bla.
    \end{itemize}

    Bla, bla, bla\dots
    `
    direi che è un modo comune di scrivere, e parecchia gente potrebbe marcare il sorgente in questo modo; non va dimenticato, però, che in LaTeX la fine del paragrafo può essere dichiarata in due modi: o con il comando «\par» o con una semplice andata a capo.

    Questa scrittura permette di separare visivamente l’elenco dal resto del testo, ma suggerisce implicitamente anche la fine di un «paragrafo» e l’inizio di un altro. Ecco perché l’indentazione, comportamento che LaTeX adotta di default per i nuovi paragrafi (a parte subito sotto ai comandi di sezionamento).

    Senza andare a fare cose complicate, almeno secondo me, potresti pensare che il paragrafo che vai a definire prima dell’elenco non termini con l’inizio di quest’ultimo ma continui dopo la sua fine:
    `Bla, bla, bla\dots
    \begin{itemize}
    \item bla;
    \item bla;
    \item bla.
    \end{itemize}
    \dots bla, bla, bla\dots
    `
    In questo modo non hai due paragrafi, ma uno solo, brevemente interrotto dall’elenco. Non essendoci un nuovo paragrafo, non c’è neanche l’indentazione che lo contraddistingue. Tutto qui.

    Se invece, casualmente, tutto ciò che devi scrivere sotto agli elenchi è sempre un nuovo paragrafo, bisognerà escogitare qualcos’altro. Pensaci su e facci sapere.

    P.S. tanti auguri e buone feste a tutti 🙂

    in risposta a: Numerazione “insolita” con Adobe Reader #9200
    Up
    0
    Down
    ::


    Ciao Roberto, grazie per la risposta 🙂

    Posto di seguito un codice minimale, così se qualcuno dovesse avere bisogno di provarlo subito basta che faccia un copia e incolla…
    Prima però faccio un paio di considerazioni (il codice non mi era funzionato subito):

    1. per ottenere quel risultato bisogna assolutamente usare i comandi \frontmatter, \mainmatter ecc. (non è un optional), dopo avere strutturato il documento in questo modo; di conseguenza, bisogna usare per forza la classe book;

    2. se si usa quell’opzione e basta, si presenta un avvertimento, che può essere evitato specificando anche plainpages=false (leggere qui per una spiegazione più precisa).

    Ecco il codice:
    `\documentclass{book}

    \usepackage[pdfpagelabels,plainpages=false]{hyperref}

    \begin{document}

    \frontmatter

    \chapter*{Introduzione}

    Bla, bla, bla\dots

    \mainmatter

    \chapter{Inferno}

    Bla, bla, bla\dots

    \chapter{Purgatorio}

    Bla, bla, bla\dots

    \backmatter

    \chapter{Paradiso}

    Bla, bla, bla\dots

    \end{document}`
    Grazie mille e a presto! 🙂

    in risposta a: Inserire grande tabella #8811
    Up
    0
    Down
    ::

    […] Devo inserire una tablella sia lunga che larga. […] Per la lunghezza come posso fare? devo usare qualche pacchetto […] o qualche comando […] o entrambe le cose…

    Ciao gandalf_p,
    ti consiglio di leggere Le Tabelle in LaTeX di Luigi Carusillo. La sezione 2.4, Tabelle lunghe e larghe (pagine 13[17]-15[19]) propone un esempio inerente al tuo problema.

    A presto!

    in risposta a: Sto impazzendo con le intestazioni fancyhdr #8802
    Up
    0
    Down
    ::

    Mi scrive sempre INDICE ad ogni pagina

    Mi pare molto strano. Adesso vediamo.

    in questo caso col tuo cambiamento di codice ad ogni pagina in alto a sinistra pari

    Sì, questo è giusto, ma è anche quello che volevi tu. Hai detto di volere che i capitoli comparissero nelle pagine pari, a sinistra, mentre le sezioni a destra. “INDICE”, corrisponde al titolo del “capitolo” dell’indice dei contenuti.

    Allora, facciamo così:

    1. crea un file LaTeX vuoto (per esempio, prova.tex);

    2. copiaci dentro tutto questo codice
      `\documentclass[a4paper,italian,twoside]{book}

      \usepackage[italian]{babel}
      \usepackage{fancyhdr}
      \pagestyle{fancy}
      \fancyhf{}
      \fancyhead[LE]{\slshape\leftmark}
      \fancyhead[RO]{\slshape\rightmark}
      \fancyfoot[LE,RO]{\bfseries\thepage}

      \begin{document}

      \tableofcontents

      \chapter{Capitolo}

      \newpage

      \section{Sezione 1}

      \newpage

      \section{Sezione 2}

      \newpage

      \section{Sezione 3}

      \newpage

      \section{Sezione 4}

      \end{document}`
      che è scritto volutamente male, ma solo per farti notare come vengono posizionate le intestazioni, e salva;

    3. compila (tre volte) e guarda un po’ come ti viene fuori.

    Ti dico un po’ quello che vedo io:

    • poiché sia \tableofcontents che \chapter chiamano lo stile plain, sia a pagina 1 che a pagina 3 non ci sono intestazioni e il numero della pagina compare in calce, al centro;

    • per quanto concerne le altre pagine:

    • le pagine pari presentano il capitolo in testa a sinistra e il numero di pagina in calce a sinistra (a pagina 2 leggo “INDICE”, alle pagine 4 e 6 leggo “CAPITOLO 1. CAPITOLO”);

    • le pagine dispari, al contrario, presentano la sezione in testa a destra e il numero di pagina in calce a destra (a pagina 5 leggo “1.2. SEZIONE 2”, a pagina 7 leggo “1.4. SEZIONE 4”).

      [/ul]
      Guarda un po’ se corrisponde, confronta questo esempio ridotto con il file che stai scrivendo tu e prova a vedere cosa c’è che non va. Per ora non mi viene niente altro in mente. Se non hai ancora risolto, scrivi di nuovo, eventualmente facendo vedere il codice che stai scrivendo tu (magari non tutto, solo una parte minimale per farci capire).

      A presto!

    in risposta a: Sto impazzendo con le intestazioni fancyhdr #8799
    Up
    0
    Down
    ::


    Ciao birricoddo,
    come detto poco fa, le marche non sono il mio forte, ma forse per questo problema posso bastare io 🙂

    Devo fare una tesi fronteretro, sto usando book

    Quindi il tuo documento comincia così (almeno credo)
    `\documentclass[a4paper,italian,twoside]{book}`

    Con il package fancydr ho scritto il seguente codice
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhf{}
    \fancyfoot[LE,RO]{\bfseries\thepage}
    \fancyhead[RO]{\slshape \leftmark}
    \fancyhead[LE]{\slshape \rightmark}
    Vorrei nelle pagine a Sinistra pari: il nome del capitolo (e qui ci siamo)

    No, non ci siamo :-(, mi sa che hai invertito quello che volevi fare…
    `\fancyhead[LE]{\slshape\leftmark}`

    Nelle pagine a Destra dispari: il nome della sezione (e qui non ci siamo).

    Be’, ci siamo quasi 😉
    `\fancyhead[RO]{\slshape\rightmark}`

    Mi mette sempre in ogni pagina a destra dispari INDICE.
    COME MAI???

    Strano, questo problema non l’ho riscontrato. Semmai capitolo e sezione erano invertiti. Prova ad usare quindi questo codice
    `\pagestyle{fancy}
    \fancyhf{}
    \fancyhead[LE]{\slshape\leftmark}
    \fancyhead[RO]{\slshape\rightmark}
    \fancyfoot[LE,RO]{\bfseries\thepage}`
    E a vedere se ti soddisfa. Casomai, riscrivi.

    A presto!!!

    in risposta a: Occultare un comando con parametri #8779
    Up
    0
    Down
    ::


    Il mio problema è stato risolto. Da qui in poi si tratta solo di chicche.

    Nessuna obiezione sostanziale eccetto che forse, invece di una sezione per esercizio, andrebbe meglio un ambiente, che potrebbe chiamare \clearpage alla fine (se si vuole lasciare spazio) oppure niente se si vogliono stampare tutti gli esercizi uno in fila all’altro.

    Molto bene. E allora in stampa.sty elimino le righe
    `\setcounter{tocdepth}{0}
    \setcounter{secnumdepth}{0}`
    che non servono più a nulla, ed elimino pure la ridefinizione di \section. Al suo posto introduco l’ambiente “esercizio”, che definisco nel seguente modo (perdonatemi la sintassi, mi sa che è il primo ambiente che scrivo da zero):
    `\newenvironment{esercizio}[1]{% L'ambiente prende un parametro: il titolo
    % dell'esercizio.
    \noindent% L'ambiente non e` preceduto da alcuna
    % indentazione.
    \normalfont% I caratteri sono scritti normalmente, in
    % romano.
    \normalsize% I caratteri hanno un corpo normale.
    {\bfseries#1}% *Solo* il primo argomento (il titolo) e` in
    % grassetto.
    \hspace{.575em}% Vi e` una distanza orizzontale che separa il
    % titolo dal resto della consegna.
    }
    {%
    \clearpage% Alla fine dell'esercizio vi e` un salto pagina.
    }`
    L’ambiente verrà poi utilizzato nel file LaTeX come illustrato di seguito:
    `\begin{esercizio}{Esercizio 14 del 21 luglio 2000}
    L'esercizio richiede di bla, bla, bla\dots
    \end{esercizio}`
    Cerco di spiegare alla buona cosa ho fatto: nella versione per la stampa, mi faceva piacere che l’ambiente per l’esercizio fosse uguale a \paragraph; guardo quindi la definizione di \paragraph in book.cls (modifico solo l’indentazione per leggibilità, ma il contenuto è inalterato):
    `\newcommand\paragraph{\@startsection
    {paragraph}% Il nome.
    {4}% Il livello.
    {\z@}% L'indentazione.
    {3.25ex \@plus1ex \@minus.2ex}% Lo spazio prima.
    {-1em}% Lo spazio dopo.
    {\normalfont\normalsize\bfseries}}% Lo stile.`
    nella definizione del mio ambiente ho cercato di essere il più fedele possibile a \paragraph, a parte qualcosina che non ho capito; apro un post a parte per discutere di ciò, in modo da non divagare troppo nei dettagli tecnici.

    Purtroppo questo ambiente, non tanto in modalità “stampa” quanto in modalità “raccolta”, deve fare tutto quello che faceva \section, e quindi la sua definizione in realtà sarebbe molto più complicata di quella che ho proposto io. In particolare, in raccolta.sty:

    • l’ambiente deve essere numerato, e la numerazione deve seguire il modello di \section, ovvero .; spulciando un po’ nel forum, forse questo lo so fare:
      `% Viene introdotto un nuovo contatore, che fa dipendere la numerazione
      % dell'ambiente da definirsi da quella del capitolo.

      \newcounter{esercizio}[chapter]

      % La numerazione viene impostata nella forma ..

      \renewcommand{\theesercizio}{\thechapter.\arabic{esercizio}}
      `
      ovviamente, anche l’ambiente deve essere aggiornato di conseguenza:
      `\newenvironment{esercizio}[1]{% L'ambiente prende un parametro: il titolo
      % dell'esercizio.
      \refstepcounter{esercizio}% Il contatore viene aggiornato.
      \noindent% L'ambiente non e` preceduto da alcuna
      % indentazione.
      \normalfont% I caratteri sono scritti normalmente, in
      % romano.
      \normalsize% I caratteri hanno un corpo normale.
      {\bfseries\theesercizio\ #1}% *Solo* il primo argomento (il titolo) e` in
      % grassetto.
      \hspace{.575em}% Vi e` una distanza orizzontale che separa il
      % titolo dal resto della consegna.
      }
      {%
      \clearpage% Alla fine dell'esercizio vi e` un salto pagina.
      }`

    • i singoli esercizi devono essere aggiunti all’indice dei contenuti (come \section), quindi direi che nell’ambiente, per esempio dopo \refstepcounter{esercizio}, ci potrei mettere
      `\addcontentsline{toc}{section}{\theesercizio\ #1}`
      (pare che funzioni);

    • i singoli esercizi dovranno essere scritti in delle marche che potranno essere usate da fancyhdr per gestire le intestazioni (per esempio, nelle pagine pari il capitolo e nelle dispari l’esercizio, e qui mi vengono già i brividi perché per me le marche sono arabo), come \section;

    • il corpo dovrà essere un po’ più in grande, quindi al posto di
      `\normalfont\normalsize\bfseries`
      ci andrà
      `\normalfont\Large\bfseries`
      e penso che basti;

    • sarebbe da implementare anche la versione con asterisco e il fatto di permettere di mandare nell’indice dei contenuti un titolo (opzionale) più corto (non sono in grado di farlo).

    Ho quindi paura che per via delle mie scarse conoscenze TeXniche, tutti questi propositi (bellissimi e interessanti, davvero) li si potrà mettere in atto solo col tempo. Ho idea che userò la tecnica divide et impera :-), eventualmente con nuovi topic, se necessario (uno sulle marche, di sicuro, noi due non andiamo molto d’accordo 😉

    Il prossimo passo è di fornire opzioni a stampa.sty in modo da scegliere tra le varie possibilità.

    Cosa vorresti dire? Che non dovrei usare due pacchetti (raccolta.sty e stampa.sty) ma uno solo (es. formattazione.sty) da chiamare così
    `\usepackage[raccolta]{formattazione}`
    oppure così?
    `\usepackage[stampa]{formattazione}`
    Sarebbe fantastico, ma ho idea che sia un po’ aldilà delle mie possibilità…
    Nel frattempo, ringrazio tutti quanti per la pazienza e l’interesse (wow! Questo topic sta diventando tosto e stimolante (almeno per me… 😉

    in risposta a: problemi con \section{} e longtable #8788
    Up
    0
    Down
    ::

    Il fatto è che avrei voluto evitare perchè, come tutte le soluzioni da smanettone, funzionano solamente se non si modifica più il documento

    Concordo pienamente 🙂

    Se questo tuo problema si presenta solamente un numero limitato di volte

    Già che ci siamo, ti dico tutto quello che mi è passato per la testa quando ho scritto questa frase: stavo pensando ad una cosa, ma, come al solito, non è detto che sia corretta e non è neppure detto che la sintassi che ti sto per proporre vada bene.

    Stavo pensando che se il tuo problema si presenta ogni volta, cioè ogni volta che fai cominciare una sezione, il titolo di questa cade a fine pagina e la tabella viene spostata alla pagina successiva (poco verosimile, me ne rendo conto, ma tutto può succedere…), potresti ridefinire \section in modo che un salto pagina preceda il titolo della sezione e che quindi questo venga spostato alla pagina successiva; in pratica, dai un compilata al codice seguente:
    `\documentclass{article}

    \makeatletter
    \renewcommand{\section}{\@startsection
    {section}% Il nome.
    {1}% Il livello.
    {\z@}% L'indentazione.
    {-3.5ex \@plus -1ex \@minus -.2ex}% Lo spazio prima.
    {2.3ex \@plus.2ex}% Lo spazio dopo.
    {\clearpage\normalfont\Large\bfseries}} % Lo stile <<------- Ecco qua il salto. \makeatother \begin{document} Bla, bla, bla\dots \section{Uno} Bla, bla, bla\dots \section{Due} Bla, bla, bla\dots \section{Tre} Bla, bla, bla\dots \end{document}` Se ciò sia (sintatticamente) giusto o meno lo sto chiedendo in un altro post; a seconda della risposta ottenuta vedrò di aggiornare anche questo post, per completezza…

    Ciao e a presto!

    in risposta a: Occultare un comando con parametri #8777
    Up
    0
    Down
    ::


    Ciao a tutti. In questo messaggio cerco di fare un riassunto di tutto il discorso, mettendo in evidenza solo i punti essenziali.

    Ormai siamo giunti alla fine, e, a parte un piccolo dubbio che mi è venuto in mente, il mio problema è risolto. Scrivo questo messaggio prevalentemente per ringraziare ev, che si chiedeva dove stava l’utilità nel problema che mi sono posto, facendo vedere a lui e a chiunque ne fosse interessato un esempio di applicazione reale dell’idea che mi era venuta.

    Questo messaggio è lungo e articolato e serve da riassunto; chi non è interessato non occorre che perda tempo a leggerlo.

    alla fine avrei preferito usare una versione (leggermente modificata) della sua [di egreg9], senza nulla togliere alla tua [di ev], che risolve il mio problema alla perfezione.

    E invece, alla fine, pare che le cose vadano ancora meglio: le due soluzioni sembrano essersi “unificate” in una sola che prende il meglio di tutte e due. Fantastico! 🙂

    In merito al significato dei comandi (almeno a me) misteriosi di cui dovevo cercare il significato:

    non so cosa facciano ne’ \@ifstar

    `\@ifstar\@gobble\@gobbleopt`
    \@ifstar controlla se il comando è seguito dall’asterisco; se lo è, esegue \@gobble, altrimenti \@gobbleopt.

    Bene, grazie, direi che questo spiega la sintassi del comando \@ifstar: se il test che conduce (controllare se il comando è seguito dall’asterisco) risulta essere vero, viene eseguito, in generale il primo comando proposto, altrimenti il secondo.

    ne’ \@gobble

    Il primo [\@gobble] mangia il suo argomento [l’argomento del comando nel quale esso è chiamato]

    Benissimo; come leggo anche su questo messaggio, \@gobble “cancella” il primo carattere che trova (che non sia uno spazio bianco) oppure la prima stringa che trova raggruppata tra parentesi (graffe, ovviamente). In pratica si tratta dell’istruzione di cancellazione che andavo cercando. Chiaramente, bisognava anche sapere dove metterla (oltre a sapere che esisteva)…

    Per quanto riguarda i nuovi comandi, invece:

    `\newcommand\@gobbleopt[2][]{}`
    [\@gobbleopt] mangia l’argomento obbligatorio e anche quello opzionale.

    Ho idea che questo trucco mi sarà molto utile in futuro (e forse non solo a me…)

    Ovviamente vorrai aggiungere a \not@a@section qualche comando di spaziatura.

    Ma anche no, grazie, sono più che soddisfatto di com’è attualmente.

    Non dovresti avere alcun problema di indice.

    Confermo.

    Ecco la storia integrale del perché ho voluto risolvere questo problema…

    Tempo fa, per prepararmi ad un esame, mi sono messo a raccogliere dei testi degli esercizi di vecchi esami e a scriverli in una dispensa. Ho pensato di codificare il tutto nel seguente modo:

    • le consegne degli esercizi sono state scritte direttamente così come le ho trovate; il “titolo” dell’esercizio è stato codificato con una sezione (es. \section{Esercizio 4 del 12 aprile 1996});

    • quando degli esercizi simili facevano parte di un blocco logico comune, questo è stato codificato con un capitolo (es. \chapter{Esercizi sui B-tree});

    • se è stato possibile racchiudere blocchi comuni in ulteriori macroblocchi, questi ultimi sono stati codificati con delle parti (es. \part{Esercizi sugli alberi}).

    A questo punto ho arricchito la dispensa con ulteriori caratteristiche messe a disposizione dal linguaggio (l’indice dei contenuti, le metainformazioni e i segnalibri di hyperref, le intestazioni di fancyhdr e così via) che potessero facilitare il reperimento delle informazioni. Anche per questo motivo, questa dispensa non l’ho mai stampata.

    Io sono una persona a cui basta poco per distrarsi, e quindi, quando devo svolgere degli esercizi, desidero che il foglio sia il più “pulito” possibile. Ho pensato quindi che tutti gli strumenti messi a disposizione dal linguaggio che rendevano così facile la navigazione, nella carta stampata per me dovevano sparire.

    Mi sono messo quindi a scrivere un secondo file (usando il copia e incolla quando potevo) in cui ho fatto sparire l’indice, le intestazioni, i numeri di pagina (perche’ gli esercizi non erano legati l’uno all’altro, e quindi potevano essere svolti indipendentemente), ho eliminato i comandi \part e \chapter, perché il raggruppamento non aveva più importanza, ho sostituito le occcorrenze di \section con \paragraph per diminuire la dimensione del testo della consegna (semanticamente scorretto, ma una volta stampato uno non vede il sorgente elettronico del documento), ho dato dei \newpage per lasciare lo spazio sufficiente per svolgere l’esercizio e così via. La dispensa, così riscritta, aveva quindi un senso ed una praticità, per me, e stavolta potevo stamparla davvero.

    Questo è stato un lavorone; fatto una volta, rifarlo sarebbe stato solo una perdita di tempo. In questi giorni ho avuto proprio la necessità di rifarlo e ho preferito perdere un po’ più di tempo per semplificare il lavoro in modo da non doverlo rifare mai più, e grazie al GuIT il problema è risolto.

    In breve, la soluzione è questa (l’esempio che propongo è reale; semplicemente, non ho scritto le consegne degli esercizi per non allungare troppo il post):

    • scrivere un solo sorgente, il file esempio.tex illustrato di seguito;

    • scrivere delle regole di formattazione varie per la produzione di una modalità “raccolta” della mia dispensa, quella pensata per essere “navigata”, non stampata, nel file raccolta.sty;

    • scrivere delle regole di formattazione varie per la produzione di una modalità per la stampa, in cui l’aspetto semantico e ipertestuale è ridotto al minimo, nel file stampa.sty.

    Come già detto, questa idea l’ho presa in prestito dal mondo HTML + CSS; in questo ambito, infatti, non è raro che uno stesso documento venga formattato in modi differenti a seconda del mezzo con cui deve essere visualizzato.

    Ecco il file esempio.tex con il contenuto; ho indentato un po’ male sperando di facilitare la leggibilità. Si noti che il file carica il pacchetto per la raccolta (raccolta.sty); i due pacchetti sono mutuamente esclusivi: o l’uno, o l’altro.
    `\documentclass[a4paper,italian]{book}

    \usepackage{raccolta}
    %\usepackage{stampa}

    \begin{document}

    \frontmatter

    \tableofcontents

    \mainmatter

    \pagestyle{fancy}

    \part[Alberi]{Esercizi sugli alberi}
    \chapter[BST]{Esercizi sui BST}
    \section{Esercizio 1 del 7 dicembre 2004}
    Bla, bla, bla\dots
    \section{Esercizio 2 del 7 dicembre 2004}
    Bla, bla, bla\dots
    \chapter[RB-tree]{Esercizi sugli RB-tree}
    \section{Esercizio 2 del 21 gennaio 1999}
    Bla, bla, bla\dots
    \section{Esercizio 1 del 10 dicembre 1994}
    Bla, bla, bla\dots
    \chapter[B-tree]{Esercizi sui B-tree}
    \section{Esercizio 5 del 21 gennaio 2006}
    Bla, bla, bla\dots
    \section{Esercizio 7 del 19 dicembre 1991}
    Bla, bla, bla\dots
    \part[Grafi]{Esercizi sui grafi}
    \chapter[Prim]{Esercizi sull'algoritmo di Prim}
    \section{Esercizio 4 del 21 gennaio 1999}
    Bla, bla, bla\dots
    \chapter[Kruskal]{Esercizi sull'algoritmo di Kruskal}
    \section{Esercizio 1 del 9 dicembre 1992}
    Bla, bla, bla\dots
    \end{document}`
    Segue il file raccolta.sty, che permette di generare un documento per la navigazione; non lo commento perché non è rilevante ai fini del problema:
    `\NeedsTeXFormat{LaTeX2e}

    \ProvidesPackage{raccolta}[2006/04/20]

    \RequirePackage[italian]{babel}
    \RequirePackage{fancyhdr}
    \RequirePackage[bookmarksopen,plainpages=false]{hyperref}

    \hypersetup{%
    pdfauthor={Pinco Pallino},%
    pdftitle={Raccolta di esercizi di Algoritmi e Strutture Dati},%
    pdfsubject={Esercizi per migliorare la pratica con gli algoritmi},%
    }

    \pagestyle{fancy}
    \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
    \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
    \fancyhf{}
    \fancyhead[LE,RO]{\thepage}
    \fancyhead[RE]{\nouppercase{\leftmark}}
    \fancyhead[LO]{\nouppercase{\rightmark}}
    \renewcommand{\headrulewidth}{0pt}

    \fancypagestyle{plain}{
    \fancyhf{}
    \renewcommand{\headrulewidth}{0pt}
    }

    \endinput`
    Infine, il file stampa.sty, che contiene tutto il bel discorso che abbiamo fatto; i commenti salienti compaiono prima dei comandi:
    `\NeedsTeXFormat{LaTeX2e}

    % Il presente pacchetto, pensato per una dispensa di esercizi da svolgere,
    % formatta il sorgente in modo tale che ogni esercizio (se la consegna non e`
    % troppo lunga) venga posto in una singola pagina, affinché la persona che deve
    % svolgerlo (a mano), dopo avere stampato la dispensa, abbia spazio sufficiente
    % per poterlo risolvere.

    \ProvidesPackage{stampa}[2006/04/20]

    \RequirePackage[italian]{babel}
    \RequirePackage{fancyhdr}

    % Poiche' qualcuno potrebbe voler svolgere gli esercizi nell'ordine che
    % preferisce (o, comunque, alcuni esercizi potrebbe non volerli svolgere
    % affatto), non ha senso tenere conto di una numerazione sequenziale delle
    % pagine.

    \pagestyle{fancy}
    \fancyhf{}
    \renewcommand{\headrulewidth}{0pt}

    % Giusta o sbagliata che sia, l'istruzione seguente permette di aumentare di
    % parecchio la giustezza del testo, e riduce i margini, in modo da fornire uno
    % spazio maggiore per chi deve scrivere.

    \RequirePackage[top=2cm,left=2cm,right=2cm,bottom=2cm]{geometry}

    % I comandi \part e \chapter vengono azzerati dal comando \not@a@section;
    % per quanto riguarda \section, non si vuole che esso venga eliminato del
    % tutto, ma solo che esso risulti scritto piu` in piccolo. Si vuole comunque
    % che non compaia nell'indice…

    \setcounter{tocdepth}{0}

    % … e inoltre, se il titolo di una sezione e` semplicemente il testo della
    % consegna, a chi deve svolgere l'esercizio non dovrebbe interessare che
    % l'esercizio in questione sia la sezione 4.3 di un possibile capitolo
    % dedicato ai grafi.

    \setcounter{secnumdepth}{0}

    % Il nuovo comando \not@a@section si prefigge lo scopo di “annullare” (rendere
    % vuoti) i comandi di sezionamento; per fare cio` chiama \@gobble in presenza
    % di un comando di sezionamento non numerato e \@gobbleopt in presenza di un
    % sezionamento numerato, che potrebbe avere un titolo opzionale.

    \def\not@a@section{\@ifstar\@gobble\@gobbleopt}

    % Il nuovo comando \@gobbleopt “annulla” sia l'argomento obbligatorio che
    % quello opzionale del comando in cui viene chiamato.

    \newcommand\@gobbleopt[2][]{}

    % I comandi \part e \chapter vengono “annullati”.

    \let\part\not@a@section
    \let\chapter\not@a@section

    % Il comando \section viene riformattato in modo da essere scritto molto piu`
    % in piccolo, come \paragraph. In piu` viene chiamata l'istruzione \clearpage
    % che fornisce a chi deve svolgere l'esercizio lo spazio bianco in cui poterlo
    % risolvere (a mano, dopo averlo stampato) dal momento che inserisce il testo
    % dell'esercizio [la \section] successivo[a] appena alla pagina seguente; in
    % questo modo, per ogni facciata c'e` un solo esercizio (a meno di consegne
    % troppo lunghe).

    \renewcommand{\section}{\@startsection
    {section}% Il nome.
    {1}% Il livello.
    {\z@}% L'indentazione.
    {3.25ex \@plus1ex \@minus.2ex}% Lo spazio prima.
    {-1em}% Lo spazio dopo.
    {\normalfont\normalsize\bfseries\clearpage}} % Lo stile.

    \endinput`
    Chi è interessato può provare a compilare per vedere la differenza con i due pacchetti.
    L’ultimo dubbio che mi è venuto: se sintatticamente è corretto chiamare \clearpage dentro a \section codì direttamente oppure se si può fare di meglio; comunque, questa sarebbe solo una chicca.

    Grazie a tutti per la bontà dei vostri suggerimenti e per la vostra pazienza! A presto! 🙂

    in risposta a: Occultare un comando con parametri #8775
    Up
    0
    Down
    ::


    Ciao ev.

    Direi che il problema è risolto quasi del tutto; purtroppo ci sono ancora dei \clearpage (almeno credo che siano questi, dando una sbirciata in book.cls) di troppo.

    Ridefinisci \chapter come ti ho suggerito e ricompila.

    Ti chiedo scusa, non ho specificato che la presenza dei \clearpage di troppo si avverte nella soluzione proposta da egreg9, non nella tua. Il fatto è che la sua soluzione mi era parsa più semplice, comprensibile e ad alto livello e, per queste ragioni, alla fine avrei preferito usare una versione (leggermente modificata) della sua, senza nulla togliere alla tua, che risolve il mio problema alla perfezione.

    Quindi, oltre alla prima distinzione che ho fatto (separare i problemi per \chapter e per \part), ne introduco qui un’altra: “soluzione egreg9” e “soluzione ev”. Per tutto questo mio messaggio mi concentrerò solo sulla “soluzione ev”, il cui corretto funzionamento si vede nel seguente esempio minimale:
    `\documentclass{book}

    \makeatletter
    \def\chapter{\@ifstar\@gobble\@capitolo@farlocco}%
    \newcommand*{\@capitolo@farlocco}[2][]{\relax}%
    \makeatother

    \begin{document}

    \tableofcontents

    \chapter[Titolo corto]{Titolo luuuuuuuungo}

    Uno, uno, uno\dots

    \chapter*{Titolo senza numero}

    Due, due, due\dots

    \end{document}`
    Per dimostrare (solo a me stesso) di avere imparato qualcosa da tutti e due, modifico il tuo codice eliminando il \relax nella tua definizione
    `\makeatletter
    \def\chapter{\@ifstar\@gobble\@capitolo@farlocco}%
    \newcommand*{\@capitolo@farlocco}[2][]{}%
    \makeatother`
    dal momento che mi viene detto che non sempre è corretto usarlo. Pare che non vi siano effetti collaterali.

    mi potrebbe servire “azzerare” anche \part

    Idem come sopra, ma te lo lascio come esercizio

    Volentieri. Tenendo presente che non so cosa facciano ne’ \@ifstar (anche se immagino che abbia a che fare con la variante non numerata di un qualsiasi comando) ne’ \@gobble, e che non capisco perché nel nuovo comando che definisci compaia il carattere chiocciola (ma su questo non occorre rispondermi perché aprirò di sicuro un post dedicato all’argomento in futuro), andando ad intuito scriverei:
    `\makeatletter
    \def\part{\@ifstar\@gobble\@parte@farlocca}%
    \newcommand*{\@parte@farlocca}[2][]{}%
    \makeatother`
    Se però applico questo codice ad un esempio minimale
    `\documentclass{book}

    \makeatletter
    \def\part{\@ifstar\@gobble\@parte@farlocca}%
    \newcommand*{\@parte@farlocca}[2][]{}%
    \makeatother

    \begin{document}

    \tableofcontents

    \part[Parte corta]{Parte luuuuuuuunga}

    Uno, uno, uno\dots

    \part*{Parte senza numero}

    Due, due, due\dots

    \end{document}`
    mi accorgo che purtroppo, come già notato con la soluzione egreg9, compare il titolo dell’indice, cosa che non vorrei. Per il resto, tutto a posto.

    sempre che non salti la mosca al naso anche a te al solo leggere la parola esercizio.

    Al contrario, l’esercizio a me piace molto e ritengo che faccia bene, basta che si riesca ad arrivare a qualcosa di “costruttivo” 😉

    Nel frattempo ho appena ordinato The LaTeX Companion, sperando che mi faccia luce in merito ai comandi misteriosi di cui sopra. Ora devo scappare, ma cercherò comunque più tardi in rete il loro significato.

    P.S. se possibile, mi farebbe piacere cercare di sollevare da quei problemi anche la soluzione egreg9. Se invece (per chi ha un modello mentale perfetto di LaTeX) quella soluzione non era corretta o all’altezza (cosa di cui dubito, visto il personaggio 😉 come non detto.

    P.P.S. ev scusami ancora se ti ho fatto sentire “in secondo piano”. Non era mia intenzione.
    Ciao a tutti!

    in risposta a: problemi con \section{} e longtable #8786
    Up
    0
    Down
    ::


    Ciao sandman.

    ho un problema di “convivenza” tra longtable ed il comando \section{}.
    Ho una sezione che inizia nella parte bassa di una pagina ed è seguita (senza altre righe di testo nel mezzo) da una longtable.
    Il problema è che il titolo della sezione rimane su una pagina e la tabella viene spostata sull’altra..
    Oltre ad inserire una interruzione di pagina manuale cosa potrei fare?

    Per quello che ne so io, assolutamente niente: LaTeX decide da solo quale sia la posizione migliore in cui inserire le varie entità messe a disposizione dal linguaggio. Penso che tutti quanti prima o poi abbiamo vissuto l’esperienza di storcere il naso di fronte alle sue scelte, ma alla fine è solo una questione di abitudine.

    Se questo tuo problema si presenta solamente un numero limitato di volte, mi sa che l’unica cosa che puoi fare è un’interruzione manuale, come dici tu, ma non è detto che sia la cosa migliore da fare.

    in risposta a: Occultare un comando con parametri #8773
    Up
    0
    Down
    ::


    Grazie ad entrambi per l’interessamento al mio problema 🙂

    Limitandoci alle classi standard, \chapter può comparire in tre modi diversi:
    `\chapter{Titolo}
    \chapter[Titolo breve]{Titolo lungo}
    \chapter*{Titolo}`

    Non sono stato molto preciso in merito, è vero. È probabile che in generale nel mio documento possano comparire tutte e tre i modi che mi hai proposto.

    Se però usi qualche volta \chapter*, devi fare qualcosa di più complicato:
    `\makeatletter
    \renewcommand{\@schapter}[1]{}
    \renewcommand{\@chapter}[2][]{}
    \makeatletter`
    (e nessuna delle ridefinizioni precedenti)

    Ho provato a mettere in pratica quanto suggerito in un ambiente minimale (giustamente l’indice, non avendo voci da segnalare, non compare affatto):
    `\documentclass{book}

    \makeatletter
    \renewcommand{\@schapter}[1]{}
    \renewcommand{\@chapter}[2][]{}
    \makeatletter

    \begin{document}

    \tableofcontents

    \chapter[Titolo corto]{Titolo luuuuuuuungo}

    Uno, uno, uno\dots

    \chapter*{Titolo senza numero}

    Due, due, due\dots

    \end{document}`
    Direi che il problema è risolto quasi del tutto; purtroppo ci sono ancora dei \clearpage (almeno credo che siano questi, dando una sbirciata in book.cls) di troppo. In pratica, per come la vedo io, vorrei ridefinire \chapter (in tutte e tre le forme) in modo tale che il file prodotto in output a partire dall’esempio che ho appena scritto fosse composto da una pagina sola, con i testi “Uno, uno, uno\dots” e “Due, due, due\dots” separati (come da una riga bianca (\par) ideale).

    Vorrei quindi che l’output fosse identico a quello del file seguente (lasciamo stare dove va a finire il numero di pagina, e anche se l’internlinea tra le due rige è un po’ più grande, va bene lo stesso):
    `\documentclass{book}

    \begin{document}

    Uno, uno, uno\dots

    Due, due, due\dots

    \end{document}`
    Riusciamo a fare anche questo? 😉

    Ah! Prima che tu lo domandi, non funziona allo stesso modo per \section.

    Quasi! 😉 Mi sono appena reso conto però che mi potrebbe servire “azzerare” anche \part (ooops…)

    Prendendo esempio da quanto suggeritomi, ho provato a fare da solo (nel mio documento inserirei sia l’azzeramento di \chapter che quello di \part; nel codice seguente, però, mi occupo solo di \part per affrontare i due casi separatamente):
    `\documentclass{book}

    \makeatletter
    \renewcommand{\@spart}[1]{}
    \renewcommand{\@part}[2][]{}
    \makeatletter

    \begin{document}

    \tableofcontents

    \part[Titolo corto]{Titolo luuuuuuuungo}

    Uno, uno, uno\dots

    \part*{Titolo senza numero}

    Due, due, due\dots

    \end{document}`
    Qui i problemi sono due:

    1. anche qui ci sono dei \clearpage di troppo (ma se si può risolvere nel caso di \chapter, nell’esempio sopra, mi sa che la soluzione per \part non sarà troppo differente…);

    2. l’indice (o meglio, il titolo dell’indice) stavolta compare (anche se, giustamente, privo di voci). Se possibile, non lo vorrei neanche qui.

    Questo è tutto! Grazie per la collaborazione e buona notte! 🙂

    in risposta a: Tabular e colori #8742
    Up
    0
    Down
    ::

    dovrei usare delle tabelle colorate, con \colorbox ottengo solo di colorare un testo. E’ possibile usare un colore di sfondo all’interno di tabular?

    Ciao ramyrro,
    ti consiglio di leggere Le Tabelle in LaTeX di Luigi Carusillo. Il capitolo 4, Colorare le tabelle (pagine 18[22]-20[24]) propone alcuni esempi di tabelle colorate.

    A presto!

    in risposta a: Maketitle con testo che non va a capo #8434
    Up
    0
    Down
    ::

    non riesco però a capire perché \vspace{…} non funziona più (ho dovuto usare \vskip)! Qualcuno ha qualche spiegazione?

    Mi rispondo in parte da solo: basta indicare che dopo la seconda riga nera orizzontale il paragrafo termina, cioè basta sostituire
    `\rule{\linewidth}{5pt}`
    con
    `\rule{\linewidth}{5pt}\par`
    Desumo quindi che \vspace{…}, per funzionare correttamente, necessiti di un’indicazione esplicita di fine paragrafo.

    Grazie ancora e buon finesettimana a tutti! 🙂

    in risposta a: Maketitle con testo che non va a capo #8433
    Up
    0
    Down
    ::


    Un grazie di cuore a tutti quelli che hanno voluto aiutarmi nella soluzione del mio problema! 🙂

    Adesso cerco io di essere utile a qualcun altro, se mai dovesse averne bisogno in futuro, riassumendo i punti principali di questo discorso (e facendo qualche piccola considerazione):

    1. sono persuaso che la soluzione migliore per me (perché una soluzione universale non esiste 😉 sia quella proposta dal prof. Gregorio (eliminare \sloppy e \fussy e usare \raggedright{…}); tra l’altro, mi sono persuaso a diminuire la dimensione del corpo del carattere per ottenere una giustificazione meno “indecente” 😉

    2. visto che pensavo di utilizzare questo frontespizio non per un singolo documento ma per una serie di documenti, ho pensato che fosse più corretto separare il contenuto dalla presentazione, come si fa nei linguaggi di marcatura per il web, inserendo il codice appena visto in un file di classe. Siccome non l’ho mai fatto prima (ho preso spunto da qui e da qui), forse non ho tenuto conto di qualche usanza e/o consuetudine. In tal caso, chiedo scusa ;-).

      Per chiarezza, riassumo di seguito il codice riveduto e corretto, che non si trova più all’interno di un file LaTeX (.tex) ma in un file di classe (.cls) (es. book-frontispiece.cls):

      `%% book-frontispiece.cls
      %%
      \NeedsTeXFormat{LaTeX2e}
      \ProvidesClass{book-frontispiece}
      [2006/03/11 Classe per personalizzare il frontespizio. Si basa su `book.cls']
      %%
      \DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
      \ProcessOptions
      \LoadClass{book}
      %%
      \renewcommand{\maketitle}{
      \setlength{\parindent}{0pt}
      \thispagestyle{empty}
      \rule{\linewidth}{5pt}
      {\raggedright\fontsize{30}{36}\selectfont\sffamily{}\@title\par}
      \vspace{1em}
      \rule{\linewidth}{5pt}
      %\vspace{1em} % Non funziona! Come mai?
      \vskip 1em % Ho dovuto usare \vskip
      {\raggedleft\LARGE\sffamily{}\@date\par}
      \setlength{\parindent}{15.0pt}
      \clearpage
      }
      %%
      \endinput`
      Ho anche creduto che fosse più corretto ridefinire \maketitle con \renewcommand{…}{…} (visto che esisteva già), piuttosto che usare \def

      Tale classe di documento può essere richiamata in un file LaTeX nel modo seguente:

      `\documentclass[a4paper,italian]{book-frontispiece}

      \title{Appunti del corso di Algoritmi e Strutture Dati}
      \author{Pinco Pallino}
      \date{\isodash{.}\isodate{\today}} % formattazione data

      % Pacchetti
      \usepackage{avant} % AvantGarde
      \usepackage[italian]{babel}
      \usepackage[T1]{fontenc}
      \usepackage{isodate} % per scrivere la data in formato aaaa.mm.gg
      \usepackage[top=2cm,left=2cm,right=2cm,bottom=2cm]{geometry}
      \usepackage[latin1]{inputenc}
      \usepackage{mathptmx} % Times
      \frenchspacing

      \begin{document}

      \maketitle

      \end{document}`

    3. già che c’ero, ho modificato la classe in modo che permettesse pure l’inserimento della data (formattata in un modo un po’ diverso grazie al pacchetto isodate); non riesco però a capire perché \vspace{…} non funziona più (ho dovuto usare \vskip)! Qualcuno ha qualche spiegazione?

    4. se mi avanza un po’ di tempo, cercherò di scrivere una piccola guida che riassume il nostro bel discorso.

    Grazie ancora e buon finesettimana a tutti! 🙂

    in risposta a: sezionamento documento #8463
    Up
    0
    Down
    ::


    Ciao set, benvenuto 🙂

    quando inserisco \subsubsection il titolo del paragrafo mi compare come se avessi usato il comando \subsection*
    qualcuno sa dirmi il perchè?

    Perché, come puoi leggere, per esempio, su questa pagina, il contatore secnumdepth, che si occupa di estendere la numerazione alle varie parti di un testo (capitolo, sezione, sottosezione, ecc.), in modo predefinito, è impostato a 2, il che vuol dire che la numerazione è estesa fino alla sottosezione; se tu volessi estenderla alla sotto-sottosezione, dovresti incrementare il valore di questo contatore, portandolo, come minimo, a 3.

    Prova a compilare il codice sottostante:

    `\documentclass{book}

    \setcounter{secnumdepth}{3}

    \begin{document}

    \chapter{Chapter}
    \section{Section}
    \subsection{Subsection}
    \subsubsection{Subsubsection}

    \end{document}`

    L’argomento è già stato trattato in precedenza nel forum, come minimo, qui e qui.

    Ciao e buona fortuna! 🙂

    Stai visualizzando 15 risposte – dal 121 al 135 (di 141 totali)

    Go to top