Risposte nei forum create
-
AutoreRisposte
-
::
Discussione http://www.guit.sssup.it/phpBB2/viewtopic.php?t=5417 al quinto e sesto post.
Si risolve facilemnte con un \newif
Molte grazie per la dritta. Alla luce del tuo consiglio, la mia classe assume quindi la seguente forma:
`\NeedsTeXFormat{LaTeX2e}[1995/12/01]\ProvidesClass{lezione}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\newif\iflezione@esercitazione
\DeclareOption{esercitazione}{\lezione@esercitazionetrue}\ProcessOptions\relax
\LoadClass{article}
\iflezione@esercitazione
\newcommand{\@tipologia}{Esercitazione}
\else
\newcommand{\@tipologia}{Lezione}
\fi\renewcommand{\@maketitle}{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large Tipologia: \@tipologia}%
\end{center}%
\par
\vskip 1.5em}\endinput`
L’unico dubbio che mi rimane è quello di avere inserito le istruzioni al posto giusto. Comunque, a meno che qualcuno non abbia commenti da fare, considero questa versione la definitiva.Per quanto riguarda la seconda domanda, mi rispondo da solo (adesso che la classe funziona): nonostante l’istruzione
`\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}`
sembra che non vi siano ambiguità: l’opzione «esercitazione» viene gestita dalla classe e tutto il resto da article.cls.Grazie e a presto!
6 Aprile 2009 alle 8:10 in risposta a: LaTeX-Result: 101 Error(s) ! Extra }, or forgotten \endgroup #32718::
Non hai neanche lontanamente idea di quanto ti sia grato! Non ero riuscito in alcun modo a risolvere questo mio problema.Non ci crederai, immagino; ma il problema è il \lstinline nel titolo della sezione.
Tra tutte le idee che mi erano passate per la mente c’era anche questa, ma l’avevo prontamente abbandonata non appena la composizione della versione depurata era filata liscia come l’olio.
Quando ci sono errori misteriosi, dipendono quasi sempre da comandi fragili non protetti.
Ne prendo atto. A questo punto, sembra che l’unica difficoltà sia quella di capire se un generico comando è fragile o meno 🙂
L’unico è quello. Se infatti lo si toglie, il problema sparisce. Con la “versione depurata” probabilmente rimanevi in una pagina sola.
Forse il file di output risultante aveva complessivamente due pagine, ma la pagina in cui compariva il comando \lstinline nella testatina non veniva effettivamente superata. Non ci sarei mai arrivato.
Non mi pare che serva una roba di quel genere:
`\section{\textsf{Pgm\_19.1 (ContenitoriIO)}}`
fa esattamente la stessa cosa.Quasi. Credo invece che il codice di cui ho bisogno sia:
`\section[{\footnotesize\textsf{Pgm\_19.1 (ContenitoriIO)}}]{Pgm\_19.1 (ContenitoriIO)}`
È il caso di fornire una piccola spiegazione su quello che sto cercando di realizzare. Nell’incorporare i codici dei programmi, ho deciso di usare un carattere proporzionale senza grazie, come si capisce da:
`\lstset{basicstyle=\footnotesize\sffamily}`
La stessa riga evidenzia inoltre come il corpo risulti inferiore a quello del testo normale.Aldilà dei codici importati dall esterno con \lstinputlisting, può capitare che venga richiamata nel flusso del testo normale qualche parola riservata, mediante \lstinline. Chiaramente, anche questa viene resa a corpo minore e senza grazie.
Quando però si è trattato di inserire i comandi di sezionamento, dove ogni sezione o sottosezione riporta il nome di una classe Java, non ho usato la sintassi
`\section{\lstinline!Pgm_19.1 (ContenitoriIO)!}`
non tanto per il fatto dei comandi fragili, che ignoravo, quanto piuttosto perché il corpo ridotto nel titolo della sezione mi sembrava di dubbio gusto; ho quindi optato per un più pratico
`\section{Pgm\_19.1 (ContenitoriIO)}`
mantenendo il corpo predefinito, dal momento che a rendere il carattere senza grazie ci pensava già l’istruzione
`\RequirePackage[bf,sf]{titlesec}`
nel file di classe. Al contrario, nelle testatine e nell’indice generale mi sembrava che la modifica al corpo fosse meno fastidiosa, cosa che mi ha spinto a scrivere
`\section[\lstinline!Pgm_19.1 (ContenitoriIO)!]{Pgm\_19.1 (ContenitoriIO)}`
modificata poi in
`\section[\texorpdfstring{\lstinline!Pgm_19.1 (ContenitoriIO)!}{Pgm\_19.1 (ContenitoriIO)}]{Pgm\_19.1 (ContenitoriIO)}`
per evitare problemi in merito al testo che andava a finire nei segnalibri del file PDF, ottenendo però gli errori di cui sopra.Alla luce della tua risposta e delle mie esigenze, credo quindi che il codice di cui ho effettivamente bisogno sia quello che ho riportato sopra, e cioè
`\section[{\footnotesize\textsf{Pgm\_19.1 (ContenitoriIO)}}]{Pgm\_19.1 (ContenitoriIO)}`
visto che l’istruzione \textsf e la modifica al corpo non sembrano infastidire hyperref al punto tale da richiedere un’istruzione del tipo \texorpdfstring.Grazie e a presto!
12 Febbraio 2009 alle 16:47 in risposta a: Tabelle a colori alternati: dove mettere \rowcolors? #30821::
Ciao Lorenzo, e grazie per l’interessamento.Per me la posizione di \rowcolors va bene così. Pagina 85 dell’Arte.
Tra l’altro, alla stessa pagina scopro l’esistenza del comando \cellcolor, che forse, nel comando di intestazione che ho definito, è più adatto:
`\newcommand{\intest}[1]{\multicolumn{1}{>{\cellcolor{grigio}}c}{\textbf{#1}}}`
al posto di`\newcommand{\intest}[1]{\multicolumn{1}{>{\columncolor{grigio}}c}{\textbf{#1}}}`
Rimane però un piccolo problema: quando avevo chiesto se era il caso, ad esempio, di creare un ambiente apposito, mi riferivo al tentativo di aumentare la semantica (in fin dei conti, \rowcolors è un comando “puntuale” che mi farebbe piacere inserire nel preambolo, e non prima di ogni tabella). Osserva infatti quello che succede se il numero delle righe diventa dispari:`\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{array}
\usepackage{colortbl}
\usepackage{tabularx}\definecolor{grigio}{gray}{.7}
\definecolor{grigioChiaro}{gray}{.9}\newcommand{\intest}[1]{\multicolumn{1}{>{\cellcolor{grigio}}c}{\textbf{#1}}}
\newcolumntype{Z}{>{\centering\arraybackslash}X}
\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}\begin{document}
\rowcolors{3}{grigioChiaro}{}
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768
\end{tabularx}Bla, bla, bla\dots
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768 \\
VGA & 640 & 480
\end{tabularx}Bla, bla, bla\dots
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768
\end{tabularx}\end{document}`
Questo non è l’effetto da me desiderato, e per ovviare a questo problema non ho altra scelta che ripetere il comando prima di ciascuna tabella, cosa che volevo evitare:`\rowcolors{3}{grigioChiaro}{}
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768
\end{tabularx}Bla, bla, bla\dots
\rowcolors{3}{grigioChiaro}{}
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768 \\
VGA & 640 & 480
\end{tabularx}Bla, bla, bla\dots
\rowcolors{3}{grigioChiaro}{}
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768
\end{tabularx}`
Qual è il modo migliore di gestire questa situazione, tenendo conto della semantica?Grazie e a presto!
::Vorrei trovare qualche carattere a macchina da scrivere che si accosta bene al Minion (secondo me il Computer Modern TypeWriter non gli si addice) […]
[…] sembra molto gradevole anche l’URW Letter Gothic […]Mi sembra che anche il Bera Mono, usato da Lorenzo nella sua guida, ci stia bene accanto (anche se prima va scalato).
Quache altra idea?
Grazie e a presto!
::[…] qual è il carattere a macchina da scrivere usato nel documento MinionPro Support for LaTeX (http://ftp.uniroma2.it/TeX/fonts/minionpro/MinionPro.pdf)?
Autoaggiornamento veloce: dovrebbe trattarsi (http://newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2008-06/msg00210.html) del Bistream Letter Gothic, che è a pagamento (http://www.ctan.org/tex-archive/fonts/metrics/w-a-schmidt/blg.txt).
Ma sembra molto gradevole anche l’URW Letter Gothic (http://www.ctan.org/tex-archive/nonfree/fonts/urw/lettergothic/README.lettergothic); la caccia continua…
A presto!
::
Grazie per la risposta.A questo punto, si tratta solo di mettere a posto i dettagli post-installazione.
Ma per questo apro un topic a parte, Minion e Myriad: avvertimenti e accostamenti, http://www.guit.sssup.it/phpBB2/viewtopic.php?t=4920.
A presto!
::
Grazie per la risposta (e, già che ci siamo, complimenti per il suo nuovo scritto, anche se ci vorrà un bel po’ per digerirlo. Bellissimo Utopia, che diventa un potenziale candidato per il carattere della mia tesi, concorrendo con il Palatino (e, più in generale, lo stile ClassicThesis) pubblicizzato da Lorenzo e con Lucida Bright. Senza nulla togliere ai Computer Modern).Il comando \@iden semplicemente toglie le graffe attorno al suo argomento.
Ho capito. Grazie per il codice, che risolve il mio problema alla perfezione.
Solo ancora una piccola precisazione su questa porzione di codice:
`\newif\if@terminecolor
\DeclareOption{stampa}{\@terminecolorfalse}
\DeclareOption{colored}{\@terminecolortrue}
\ExecuteOptions{colored}
\ProcessOptions\relax`
Io avevo chiesto di realizzare un’opzione, «stampa», ma vedo che lei ne ha dichiarata anche un’altra, di nome «colored»; quest’ultima, mi sembra di capire, impone che sia attivata l’enfatizzazione a colore dei termini, ed esegue quindi le istruzioni illustrate più in basso nel ramo «if».In parole povere, nel sorgente LaTeX, posso scrivere indifferentemente
`\usepackage{pacchetto}`
oppure
`\usepackage[colored]{pacchetto}`
o almeno questo è quello che sembra suggerire la pratica.Grazie ancora e a presto.
::8) Prometti di usarlo solo se capisci ciò che fanno questii comandi 8)
Ti do la mia parola d’onore. Anzi, il minimo che posso fare per ringraziarti è spiegare cio che sono riuscito a capire della tua definizione agli altri lettori interessati:
-
`\makeatletter
[…]
\makeatother`
Tutto l’ambiente è compreso tra le istruzioni «\makeatletter» e «\makeatother», che fanno sì che gli eventuali caratteri chiocciola («@») in esse contenuti vengano trattati come dei caratteri qualsiasi, senza effetti collaterali; -
`\newenvironment{esercizio}
{ […] } <--- apertura { [...] } <--- chiusura` Viene dichiarato l'ambiente «esercizio»; [li]`\par\addvspace{\medskipamount}\noindent\textbf{Esercizio.}\ % \@ifnextchar\par{\@gobble}{}` Questo è il codice di apertura:[ul][li]`\par` Si inizia un nuovo paragrafo (o capoverso); [li]`\addvspace{\medskipamount}` Il comando «\addvspace» ci hai già gentilmente spiegato tu che cosa fa:Quando LaTeX vede due \addvspace consecutivi, esegue solo quello che ordina la spaziatura maggiore (uno solo se viene ordinata la stessa spaziatura da ambedue).
«\medskipamount» in questo caso è la dimensione di questa spaziatura. Si può mettere una grandezza a piacere;
-
`\noindent`
Il paragrafo immediatamente seguente non è interessato dall’indentazione; -
`\textbf{Esercizio.}`
Viene stampata la stringa «Esercizio.» (sul perché si usa «\textbf» al posto di «\bfseries», si legga il topic sottolineato, in particolare i messaggi <http://www.guit.sssup.it/phpBB2/viewtopic.php?p=10943#10943> e <http://www.guit.sssup.it/phpBB2/viewtopic.php?p=10952#10952>), in neretto (non «grassetto», come credevo fino a non molto tempo fa, altra perla, Parole chiave in grassetto con listings [Risolto], <http://guit.sssup.it/phpbb/viewtopic.php?highlight=neretto&p=11978#11978>); -
`\ <--- c'è uno spazio` Questa stringa viene separata da un carattere di spaziatura dal testo immediatamente seguente; [li]`\@ifnextchar\par` Questo è il punto chiave (almeno per me, visto che è la prima volta che mi capita sotto il naso): evidentemente, esiste un comando di nome «\@ifnextchar» che effettua un test sul carattere immediatamente successivo: a seconda dell’esito di questo test, può fare (o non fare) qualcosa. In questo caso, se il carattere immediatamente successivo è «\par» (o, immagino, un’equivalente andata a capo)…
-
`{\@gobble}{}`
… viene chiamato il comando «\@gobble», che, come abbiamo già letto nella discussione Occultare un comando con parametri, <http://guit.sssup.it/phpbb/viewtopic.php?t=1578&highlight=gobble>, oppure all’indirizzo <http://www.tug.org/pipermail/macostex-archives/2005-April/014764.html>, “cancella” il primo carattere che trova (che non sia uno spazio bianco) oppure la prima stringa che trova raggruppata tra parentesi; se, al contrario, il carattere immediatamente successivo non è «\par», non si fa nulla («{}»).
`\par\addvspace{\medskipamount}`
Questo è il codice di chiusura:-
`\par`
Come sopra, si inizia un nuovo paragrafo o capoverso; -
`\addvspace{\medskipamount}`
Come sopra, si tiene conto della spaziatura.
[/ul]L’ultima cosa che mi viene da dire, che non c’entra tantissimo con questo argomento, è che dovrò riuscire a capire il significato del carattere chiocciola per TeX/LaTeX quando non è reso come un carattere come tutti gli altri. Visto che è già un bel po’ che mi scontro con questo argomento, mi sa che questa è la volta buona per comprare il TeXbook…
Grazie ancora e a presto!!! 🙂
::[Gli ambienti] che permettono di lasciare una riga vuota sono quelli che mantengono TeX in “modo verticale”, dove i comandi \par sono ignorati. Il problema con il tuo è che l’inizio dell’ambiente forza il modo orizzontale.
Se ho capito bene, quello che dovrei fare io è studiare prima di tutto che cosa voglia dire «modo verticale» e poi realizzare un ambiente di questo tipo.
Si può fare, naturalmente, ma secondo me è una perdita di tempo.
🙂 Be’, vorrà dire che proverò a farlo da solo, magari a tempo perso.
Grazie e a presto!
::La riga vuota ha una funzione sintattica nei file .tex: significa “finisci il paragrafo” (o capoverso).
Certamente, avevo in mente proprio questa cosa quando ho scritto
vorrei dire a LaTeX che la semantica di quella riga bianca non rappresenta l’inizio di un nuovo periodo, come «\par» [cioè come LaTeX la interpreta di solito], ma una semplice separazione «visiva» al livello del sorgente, che non si deve ripercuotere sul risultato.
In pratica, stavo cercando di capire se si poteva definire una sorta di «\ignorespaces» non per la comune andata a capo tra «\begin{nomeAmbiente}» e il corpo dell’ambiente stesso, ma per l’andata a capo immediatamente successiva.
La separazione visiva è già data da \begin{esercizio}, magari preceduto da una riga vuota.
Su questo sono d’accordo, ma forse anche una riga vuota che segue non sta male…
In quasi nessun ambiente puoi fare così senza avere effetti indesiderati.
Stavo pensando: si potrebbe dare un’occhiata a uno di quegli ambienti «sicuri» di cui parli tu, cercare di capire come sono fatti a vedere se quella porzione di codice è riadattabile (se non è TeXnicamente troppo difficile). A naso, mi pare che l’ambiente «document» di article.cls si comporti come voglio io.
Grazie e a presto.
::
Grazie a tutti per avere chiarito questo mio dubbio.Usa il primo modo.
Bene.
Il pacchetto geometry, specificando solo il formato della carta, fa scelte diverse da quelle della classe article.
Ecco spiegato l’arcano.
Se hai la necessità di personalizzare i tuoi margini, geometry.
Grazie per l’intervento, ma non è che non conoscevo il pacchetto «geometry», anzi, lo uso abbastanza spesso, è solo che volevo un consiglio su come impostare il layout di un documento in A4, cioè se specificarlo direttamente nella classe (se questa lo permette, come «article») oppure se richiamare l’opzione apposita di «geometry». Non solo ho ottenuto quello che volevo, ma mi è stata anche raccontata questa storia delle “scelte diverse” (strada che non approvo del tutto, in quanto, secondo me, uno si sarebbe aspettato che i due codici che avevo postato all’inizio avessero prodotto lo stesso risultato).
Comunque questa tua osservazione, oltre a quella di Enrico
Usa geometry solo se vuoi scegliere tu stesso i parametri di impaginazione.
mi fa venire in mente un’altra domanda simile a quella originale. Anche in questo caso, non si tratta di risolvere un problema, ma di scegliere una strada tra (almeno) due possibili. È come un esercizio di scrittura.
Se volessi specificare, oltre al layout A4, anche le dimensioni dei margini, per esempio, quale codice dovrei usare tra i seguenti due (non si badi ai valori che ho assegnato ai margini, non ho letto da nessuna parte che è corretto tipograficamente impostarli a due centimetri, in questo caso quello che importa è solo il codice)?
-
codice uno:
`\documentclass[a4paper]{article}\usepackage[hmargin={2cm,2cm},vmargin={2cm,2cm}]{geometry}
\begin{document}
testo a caso
\end{document}
` -
codice due:
`\documentclass{article}\usepackage[a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm}]{geometry}
\begin{document}
testo a caso
\end{document}
`
Questa volta i due codici danno lo stesso risultato (o almeno così sembra a me, popolare di parole per credere). A questo punto immagino che mi verrà consigliato di nuovo il primo.
Grazie e a presto.
::
Riciao, e grazie a tutti per le esaurienti risposte alle mie domande.Perché si “raccomanda” T1? Be’, solo per comodità e non dover fare i salti mortali per ottenere caratteri che non compaiono nella codifica OT1 e quindi spesso sono emulati “alla buona”, come accade per le virgolette basse.
[…] alcuni caratteri dell’encoding OT1 sono emulati e tale emulazione è talmente di scarso livello che preferisco ricorrere a una definizione di comando solamente per cambiare un carattere.
Capisco. Non conoscevo la storia dell’emulazione. La prima volta che ho visto il font Computer Modern, mi è subito parso un font molto strano. Strano nel senso che sicuramente è molto elegante e adatto alla stampa, ma comunque mi sembrava che la resa di alcuni caratteri con questo font fosse quantomeno insolita, cioè sicuramente «tipograficamente corretta», ma che qualcuno si sarebbe potuto aspettare un risultato differente.
Come dice Enrico, fissato il font (Computer Modern), sembra che non ci sia differenza tra i Computer Modern dell’OT1 e gli European Modern di T1, salvo per alcuni caratteri, come queste virgolette, che solo ora scopro essere emulate in OT1. Mai e poi mai avrei pensato che queste virgolette in OT1 sarebbero state emulate “alla buona”, anzi, pensavo che la resa di questi caratteri in OT1 fosse qualcosa di molto aggraziato, dettato da qualche convenzione tipografica (anche se, a mio gusto personale, sono d’accordo con voi che è più “bella” la resa di questi caratteri in T1. Ma si sa, il gusto personale è soggettivo…).
È possibile vedere da qualche parte una lista dei caratteri presenti in T1 e non presenti (oppure emulati) in OT1?
[…] la mia scelta di mantenermi su OT1 è dettata dalla cattiva qualità dell’output da font T1 su piattaforma GNU/Linux.
Ciao Emiliano, io uso Mac (che, in definitiva è uno Unix come Linux) eppure non ho nessun problema con la codifica T1.
Non voglio finire OT, ma anch’io uso T1 sotto GNU/Linux, e non mi pareva che la qualità fosse così cattiva. Forse ti stai riferendo al solo font Computer Modern (lo dico perché in gran parte dei documenti che ho scritto sotto GNU/Linux avevo caricato «mathptmx»)? Farò delle prove…
[…] i pacchetti li installo tramite MiKTeX Package Manager.
MiKTeX per GNU/Linux? Non sapevo che ci fosse. Ero rimasto fermo a teTeX…
Ciao e grazie ancora!
::[…]In questo modo sembra che si riesca a modificare il layout.
Secondo me non basta: i margini non sono quelli richiesti. Anche se inserisci
`\RequirePackage{layaureo}`
al posto di geometry, il risultato non è quello “giusto”. Evidentemente, c’è dell’latro codice che “interferisce” con le impostazioni dei margini.Può darsi che non basti. Quando ho scritto «sembra» intendevo dire che sicuramente qualche cambiamento c’è stato. Di norma, a meno che non lo scriva esplicitamente, provo sempre il codice che scrivo, prima di inserirlo in un post (ho scritto anche che a me funzionava). Se provi a fare esattamente come ho scritto io, con «geometry», il risultato si vede. Ho composto proprio il file di esempio proposto dall’autore, «ClassicThesis.tex», e il layout è cambiato. Come ho già detto, non ho toccato i parametri per le note a margine, e, se mi ricordo bene, un’altra parte che non è stata interessata dal cambiamento era il frontespizio. Per le prove avevo usato pdfTeX, visto che questa sembrava essere la strada suggerita in «loadpackages.sty» e in «classicthesis.sty».
Comunque, non so se era chiaro, il mio messaggio non voleva essere una soluzione definitiva, ma uno spunto in più per aiutare 2dvisio a risolvere il suo problema. Uno spunto qua, uno spunto là…
29 Gennaio 2007 alle 12:07 in risposta a: comando speciale che si ridefinisce per l’indice analitico #12245::Cioè perché agisco in questo modo?
Beh perché la prima volta che introduco un concetto voglio che si veda chiaramente con un bel neretto, quando certe volte lo ripeto in altri contesti voglio che si veda lo stesso chiaramente ma con qualcosa di meno pesante quindi con il corsivo. Così si notano le parole chiave subito…era questa la risposta che intendevi?Sì, comunque non preoccuparti, è stato un errore mio: essendo a digiuno di indici analitici, mi ero dimenticato (proprio da un punto di vista «logico») che è possibile ripetere quante volte si vuole il comando «\index» con lo stesso termine, in modo da tener traccia di tutte le pagine in cui esso compare.
Per qualche ragione, mi ero convinto che il comando «\index» lo si chiamasse una e una sola volta (per termine), e quindi non mi pareva sensato che tu volessi il termine in neretto alla prima composizione e in corsivo dalla seconda in poi. Tanto sarebbe valso farlo direttamente in corsivo, no? 🙄
Ripeto: errore mio. E grazie per la spiegazione.
-
-
AutoreRisposte