Risposte nei forum create
-
AutoreRisposte
-
::
ciao,
allora il problema non so come si è risolto da solo e magicamente è apparsa la bibliografia.
BibTeX serve se gestisci la bibliografia tramite un database, non se la scrivi direttamente nel tuo testo.
Ci sono 2 altri problemi:
1) nell’indice non mi appare la scritta appendici epoi l’elenco delle appendici ma mi esce solo la lettera che indica l’appendice come si può fare a inserire la parola appendice ed esca Appendice A, per esempio?
2) la bibliografia non è presente nell’indice, cioè non c’è nell’indice che indichi che a pagina tot c’è la bibliografia, come risolvere il problema e inserirla?
grasie.Problemi ampiamente trattati sul forum. Ti prego, usa il forum giusto: quello sulla tipografia è per argomenti di carattere generale.
Ciao
Enrico
::Buongiorno a tutti.
Credo di aver prodotto, senza volerlo, una tabella degna della galleria degli orrori di Latex; pazienza, se pubblicata nel libro nero rinuncio da subito a qualsiasi copyright e rinnego la paternità :-).Purtroppo però non riesco ad inserire un testo abbastanza lungo che ‘deve’ occupare due colonne alla seconda riga. Questa è forse la peggiore tra le versioni prodotte, che però si avvicina al risultato voluto (pensate alle altre!):
`
\documentclass[11pt, a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{tabularx}
\usepackage{array}\begin{document}
\newcommand{\mybox}{\parbox{0.4\textwidth}{\centering\smallskip Richiedenti di età inferiore a 40 anni non compiuti che si insediano conformemente alla misura 112 bla bla bla bla bla bla bla bla bla bla \smallskip}}
\newcommand{\altririchiedenti}{\parbox{0.4\textwidth}{\centering\smallskip Altri richiedenti\smallskip}}
\newcommand{\fasciaaltimetrica}{\parbox{0.2\textwidth}{\centering\smallskip Fascia altimetrica\smallskip}}\begin{tabular}{p{0.20\textwidth}|m{0.175\textwidth}|m{0.175\textwidth}|m{0.175\textwidth}|m{0.175\textwidth}}
\multicolumn{5}{c}{Percentuale di aiuto pubblico sulla spesa ammessa}\tabularnewline
\hline
\multicolumn{1}{m{0.20\textwidth}|}{\fasciaaltimetrica} & %%
\multicolumn{2}{m{0.40\textwidth}|}{\mybox} & %%%
\multicolumn{2}{m{0.40\textwidth}}{\altririchiedenti}\tabularnewline
\hline
& Interventi edilizi/fondiari & Interventi agrari & Interventi edilizi/fondiari & Interventi agrari \tabularnewline
\hline
Zona svantaggiata (Montagna) & 60 & 40 & 50 & 35 \tabularnewline
\hline
Altre zone (Collina) & 50 & 35 & 40 & 30 \tabularnewline
\hline
Altre zone (Pianura) & 40 & 30 & 35 & 22 \tabularnewline
\hline\end{tabular}
`Ho provato con tabularx, peggiorando la situazione. Qualcuno sa aiutarmi? Grazie.
Ciao.Ti propongo un’altra versione, che usa il pacchetto booktabs:
`\begin{tabular}{>{\raggedright}p{0.25\textwidth}cccc}
\multicolumn{5}{c}{Percentuale di aiuto pubblico sulla spesa ammessa}\\
\toprule
& \multicolumn{4}{c}{Interventi} \\
& edilizi/fondiari & agrari & edilizi/fondiari & agrari \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
\multicolumn{1}{c}{\myentry{Fascia\\altimetrica}} &
\multicolumn{2}{c}{\myentry{Richiedenti in\\base alla L. 112\textsuperscript{*}}} &
\multicolumn{2}{c}{Altri richiedenti} \\
\cmidrule(r){1-1} \cmidrule(lr){2-3} \cmidrule(lr){4-5}
Zona svantaggiata (Montagna) & 60 & 40 & 50 & 35 \\
Altre zone (Collina) & 50 & 35 & 40 & 30 \\
Altre zone (Pianura) & 40 & 30 & 35 & 22 \\
\bottomrule
\multicolumn{5}{l}{\small\textsuperscript{*} Richiedenti di et\`a inferiore a 40 anni…}
\end{tabular}`
Non metterei tutta la pappardella nell’intestazione, ma con un semplice rimando a una nota al piede della tabella. Rovescerei anche l’ordine fra le intestazioni.Il comando \myentry non è niente di speciale:
`\newcommand{\myentry}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}}`
Serve per “simulare” multirow.Ciao
Enrico
::… una domanda,
ma conviene sostituire l’istruzione TeX \def per la definizione dei comandi con una forma equivalente in LaTeX?A volte sì a volte no. Per le macro che hanno un argomento opzionale è di sicuro più comodo \newcommand; in altri casi uso \def senza troppo preoccuparmi, forse sbagliando. In genere è meglio usare \newcommand per i comandi a livello utente le cui definizioni vadano nel preambolo. Per il resto è più che altro questione di gusti.
Ciao
Enrico
::Rimando a dopo, adesso devo fuggire al treno. 👿
Eccomi qui. Adesso vediamo un po’ di cose: come ti ho detto, più argomenti opzionali sono da escludere. La sintassi preferibile è
`\firma{Il Direttore Galattico}{Lupo de Lupis}
\firma[sigla=/ab/cd]{Il Direttore Galattico}{Lupo de Lupis}
\firma[sigla=/ab/cd,lineabase]{Il Direttore Galattico}{Lupo de Lupis}
\firma[lineabase]{Il Direttore Galattico}{Lupo de Lupis}`
e dovrebbe essere chiaro ciò che si intende; per \firmadoppia e \firmatripla basta aggiungere gli opportuni argomenti opzionali. Ecco il codice, occorre il pacchetto xkeyval (basta anche keyval, ma conviene usare il più potente):
`\usepackage{xkeyval}\newcommand{\stileruolo}[1]{{\fontfamily{ptm}\selectfont\textsc{#1}}}
\newcommand{\stilenominativo}[1]{#1}
\newcommand{\firmabox}[1]{\makebox[.333\textwidth]{\hss#1\hss}}\newcommand{\componifirma}[2]{%
\begin{tabular}[t]{@{}c@{}}
\firmabox{\stileruolo{#1}}\\
\firmabox{\stilenominativo{#2}}
\iflineabase\\\rule{0pt}{1cm}\rule{.333\textwidth}{0.4pt}\fi
\end{tabular}}\makeatletter
\newif\iflineabase
\def\sigla{}
\define@key{firma}{sigla}{\def\sigla{#1}}
\define@key{firma}{lineabase}[true]{\lineabasetrue}
\makeatother\newcommand{\firmadoppia}[5][]{\setkeys{firma}{#1}\par
\hbox to\hsize{%
\rlap{\sigla}\hfil
\ifsingola\expandafter\phantom\fi
{\componifirma{#2}{#3}}\hfil\componifirma{#4}{#5}}}\newcommand{\firma}[3][]{\firmadoppia[#1]{}{}{#2}{#3}}
\newcommand\firmatripla[7][]{\firmadoppia[#1]{#2}{#3}{#4}{#5}
\medskip
\hbox to\hsize{\hfill\componifirma{#6}{#7}\hspace{.25\textwidth}}}`
Non ci sono grandi differenze da quello di prima. L’unica cosa è modificare dove si pone la sigla, che viene definita tramite la chiave. Ho anche aggiunto il condizionale che è normalmente falso (quindi la linea non viene composta). Se viene data l’opzione “lineabase” invece il condizionale diventa vero e la linea esce.Dopo tutto non è così difficile. Se hai altre opzioni si tratta di capire come realizzarle.
C’è solo un altro bieco trucco: se la firma è singola e si deve comporre la linea di base, occorre evitare che venga anche quella sulla prima; con quel \phantom si ottiene ciò che si vuole: il comando \firma attiva lo switch \ifsingola; se questo è vero entra in azione \phantom che vede il \componifirma relativo alla prima firma come argomento. Se invece siamo con \singolafalse, come è usuale, la coppia di graffe non fa male.
Non che il tutto mi piaccia tantissimo, probabilmente bisognerebbe ripensare alla faccenda da capo. Ma è un punto di partenza per capire come funziona l’interfaccia “chiave=valore”.
Ciao
Enrico
::Sì, pero se usi amsmath, o metti la definizione prima di caricare il pacchetto, oppure, se la definizione la si vuole dopo per comodità, devi scrivere per forza
`\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum@$}}}`perché con il semplice \number\sum non va.
Già. Infatti \sum con amsmath è una macro definita in termini di \sum@; uffa.
`\makeatletter
\def\@addtosum{}
\@ifundefined{sum@}{\let\@@sum\sum}{\let\@@sum\sum@\def\@addtosum{@}}
\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\@@sum$}}}
\@namedef{sum\@addtosum}{
\mathop{\mathchoice{\@sum\LARGE}{\@sum\Large}
{\@sum\large}{\@sum\normalsize}}}
\makeatother`
Se \sum@ è definito siamo con amsmath; perciò usiamo il comando giusto per estrarre il valore e ridefiniamo \sum oppure \sum@ secondo i casi.Ciao
Enrico
::Bene grazie,
ci lavorerò un po’ su, anche per capire il funzionamento dei comandi TeX da te usati nell’ultimo codice.Nel frattempo vorrei tornare al problema dei parametri opzionali:
A volte non riesco a vedere alla prima la sintassi dei comandi. Solo con tentativi e approfondimenti ulteriori riesco a chiarirmi il codice, questa volta di \newcommand.Nella sintassi infatti non mi era chiaro se l’argomento opzionale possa essere utilizzato specificandolo tra parentesi quadre oppure graffe.
Io l’avevo inteso con le parentesi graffe e questo non raggiungeva l’obiettivo che mi ero preposto:
`\nuovocomando[opzione]{testo per il secondo argomento del comando}`
Chiarito il caso di una sola opzione per \newcommand, rimane il problema multiplo, ovvero implementare un comando con più opzioni, preferibilmente da specificare in ordine singolo tra parentesi quadre, così:
`\nuovocomando[opzione1][opzione2]…[opzionen]{testo di input al comando}`Non funziona: se l’opzione1 non c’è, come fai? A quel punto dovresti sempre mettere tutte le coppie di quadre, che non ha molto senso.
Guarda la macro \makebox: ha due argomenti opzionali, ma il secondo ha senso solo se c’è il primo. Nel tuo caso questo andrebbe a pallino.
Per questo tipo di situazioni bisogna ricorrere al sistema “chiave=valore” come per le opzioni a \includegraphics. Il pacchetto da usare è keyval oppure xkeyval.
Rimando a dopo, adesso devo fuggire al treno. 👿
Ciao
Enrico
::Prof,
C’è un errore. O scrivi
`\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum@$}}}`
o
`\edef\@sum#1{\vcenter{\hbox{#1$\mathchar”1350$}}}`Nessuna delle due, perché mai? Quella che ho scritto funziona benissimo. 🙂
Ora vediamo di capirci qualcosa. Con questa dichiarazione definisci e espandi (\edef) \@sum il quale crea una scatola centrata verticalmente con \vcenter con al suo interno una scatola orizzontale. Dentro questa c’è l’argomento della dimensione (#1) e poi il simbolo di sommatoria.
Con la seconda definizione dichiari (o meglio ridefinisci) il comando \sum; specifichi che vuoi un operatore matematico (\mathop) e poi con \mathchoiche fai le varie scelte a seconda dello stile. Se si dà \sum dentro un ambiente matematico \scriptscriptstyle il comando \sum chiama \@sum\normalsize, se è \scriptstyle chiama \@sum\large, sa è \textstyle chiama \@sum\Large e se è \displaystyle chiama \@sum\LARGE.Ci ho preso?
Tutto tranne il commento a \edef. L’originale è
`\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum$}}}`
senza altri @ che nel nome del comando. Funziona perché l’unico comando espandibile dentro al testo della definizione è \number. Siccome \sum è definito tramite \mathchardef, si può usare \number\sum per ottenere il codice usato (in forma decimale, ma a \mathchar va benissimo lo stesso). Così anche senza sapere che codice è stato assegnato a \sum, posso usarlo e, cosa più importante, nel testo di sostituzione di \@sum non compare il comando \sum.Con LaTeX senza alcun pacchetto aggiuntivo, \meaning\@sum restituisce
`macro:#1->\vcenter {\hbox {#1$\mathchar 4944$}}`
che è esattamente ciò che volevo (e in effetti 4944 è “1350, cioè esadecimale in TeXspeak). Con \edef si definisce un comando espandendo tutto ciò che è espandibile nel testo di sostituzione. Non lo sono i caratteri (ovviamente), \vcenter, \hbox e \sum. Ma \number sì e l’espansione di \number comincia cercando un numero: \sum va bene come numero, in questo contesto, come ogni cosa definita tramite \chardef o \mathchardef. Per esempio la costante \@ne che si usa spesso è definita con
`\chardef\@ne=1`
In questo caso è un bieco trucco per evitare di andare a guardare la definizione di \sum con \mathchardef. Ma più generale, in fin dei conti. Certo, se \sum fosse definito in altro modo andremmo nei pasticci. Non farei lo stesso con \notin, per esempio.Ciao
Enrico
::..no no, non discuto 😀
..volevo solo una conferma, visto che sulla guida “impara latex…” viene utilizzato l’ambiente center (quindi io tutte le figure le avevo già inserite così), mentre altrove (forse anche qui appunto!) ho trovato centering…..
..quindi l’ambiente center è da usare per formattare pezzi di testo invece?grazie grazie!
PS: un GRAZIE anche per il pacchetto per il frontespizio 😉
Purtroppo quella guida non è molto buona. C’è quella di Lorenzo, dacci un’occhiata
http://www.lorenzopantieri.net/LaTeX_files/ArteLaTeX.pdf
L’ambiente center serve appunto per centrare parti di testo e per questo aggiunge un po’ di spazio verticale prima e dopo. Non devi preoccuparti del fatto che \centering non ha un “contrario”, perché lo fai eseguire in un ambiente alla fine del quale i suoi effetti spariscono. La didascalia non ne è influenzata.
Ciao
Enrico
::Ciao a tutti, sto scrivendo (come molti!) la tesi in latex.. avrei bisogno di un consiglio, visto che cercando su varie guide/forum ho trovato “pareri” discordanti….
Quale di questi è il codice più “corretto” per ottenere un’immagine (e relativa didascalia) centrata nella pagina??
`\begin{figure}[htbp]
\begin{center}
\includegraphics[width=\textwidth]{T-test.eps}
\end{center}
\caption{bla bla bla}
\label{fig:prova}
\end{figure}`
`\begin{figure}[htbp]
\begin{center}
\includegraphics[width=\textwidth]{T-test.eps}
\caption{bla bla bla}
\label{fig:prova}
\end{center}
\end{figure}`
`\begin{figure}[htbp]
\centering
\includegraphics[width=\textwidth]{T-test.eps}
\caption{bla bla bla}
\label{fig:prova}
\end{figure}`Facendo una prova mi sembra che la differenza fra i 3 sia solo nella distanza figura-didascalia e didascalia-testo, ma magari c’è qualcosa che non so……….
grazie!!!!!!!!
PS: son nuova di questo forum, non mi infamate in partenza! 😉 thanks..
Avresti potuto provare a cercare centering nel forum, che dici? La terza, e guai a te se provi a discutere. 😉
Ciao
Enrico
::\begin{align}
f(x)={\huge\sum}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
\end{align}
Potreste aiutarmi?Io in queste situazioni uso il pacchetto relsize di Donald Arseneau:
`
% preambolo
\usepackage{relsize}
%
% … dopo \begin{document}$$
f(x)=\mathlarger{\sum}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
$$`
oppure, per un ingrandimento ancora maggiore:
`$$
f(x)=\mathlarger{\mathlarger{\sum}}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
$$
`Certo, ma vuoi mettere con un po’ di codice criptico ed esoterico? C’è perfino \edef:!:
Una tiratina d’orecchie: mai usare $$ in LaTeX. 🙂
Ciao
Enrico
::Nonostante latex determini in maniera automatica la grandezza di un simbolo matematico (ad esempio quello di sommatoria) ho la necessità di ingrandirlo. Ho provato con un comando del tipo (nel preambolo utilizzo il pacchetto \usepackage{mathptmx})
\begin{align}
f(x)={\huge\sum}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
\end{align}ma se ho capito bene questo tipo di comando dovrebbe funzionare solo su font non matematici. Potreste aiutarmi?
Non vedo perché ingrandirlo, sinceramente. Se proprio insisti prova con questo codice nel preambolo
`\makeatletter
\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum$}}}
\def\sum{\mathop{
\mathchoice{\@sum\LARGE}{\@sum\Large}
{\@sum\large}{\@sum\normalsize}}}
\makeatother`
Prova anche con \LARGE al posto di \huge.Esercizio: scoprire come funziona la macro. 🙂
Ciao
Enrico
::Enrico, questa è la mia classe (sono pronto ad essere fustigato…). Quando inserisco il tuo codice, di cui ovviamente non capisco un accidente, la compilazione non va a buon fine: Undefined control sequence. \caption@AtBeginDocument
Aggiungi, subito prima
`\@ifundefined{caption@AtBeginDocument}
{\let\caption@AtBeginDocument\AtBeginDocument}{}`
Ciao
Enrico
::Sto usando gli ambienti definiti sopra (diciamo figure, per esempio). Ho notato che se li uso con
`\begin{figure}
\centering
\includegraphics[width=.7\columnwidth]{nomeFigura}
\caption{Una didascalia}
\label{Una label}
\end{figure}`
tutto funziona bene. Se però voglio mettere una didascalia prima della figura (come si farebbe in una tabella, per esempio), uso
`\begin{figure}
\centering
\caption{Una didascalia}
\includegraphics[width=.7\columnwidth]{nomeFigura}
\label{Una label}
\end{figure}
`
e la figura non viene più centrata. Sbaglio qualcosa di fondamentale o sono i comandi che non funzionano?È strano che funzioni, perché a me non funziona affatto. 👿
`\usepackage{caption}
\makeatletter
\let\@@@caption\caption
\caption@AtBeginDocument{%
\def\captionof{\caption@teststar\caption@of{\@@@caption*}\@@@caption}}
\makeatother\renewenvironment{figure}[1][]
{\def\caption{\captionof{figure}}\center}
{\endcenter}`
Altrimenti si definisce \caption in termini di sé stessa. Aggiorna il pacchetto caption, ci sono state parecchie modifiche.Ciao
Enrico
::Io ho usato 12.5cm di giustezza e 18.5cm di altezza (suggerimento 🙂 dell’editore). Non dimenticare l’opzione heightrounded a geometry.
Per quelli che come me non sapevano che cosa fa quest’opzione, riporto dalla doc. di geometry:
The option heightrounded rounds \textheight to n-times (n: an integer) of \baselineskip plus \topskip to avoid “underfull vbox” in some cases.
Ho usato
`\documentclass[10pt]{book}
\usepackage{geometry}
\geometry{papersize={17cm,24cm},text={12.5cm,18.5cm},centering,dvips=false,heightrounded}`
Per completezza, sapresti dirmi come realizzare lo stesso risultato con le classi KOMA/Script di ClassicThesis? Non si sa mai., magari il mio editore si lascia convincere.. 😉Grazie mille,
LorenzoP.S. Il formato 17×24 mi piace parecchio, lo trovo molto maneggevole. Purtroppo ho la sensazione che farci stare ClassicThesis non sia indolore: se si riempie la pagina e si rinuncia alla gabbia “a doppio quadrato” di ClassicThesis, probabilmente si perde un po’ del fascino dello stile… Comunque penso valga la pena provare!
La parte sul formato di pagina di KoMaScript è ostica quasi quanto le macro di David Kastrup e le sue “documentazioni”. Sarà che sono tedeschi? 🙂
Ciao
Enrico
::[quote]Ciao a tutti,
sto scrivendo una classe per i poster della mia università. I poster dovranno essere di due colonne, perciò ho scritto
`\RequirePackage{textpos}`
e ho definito un comando
`\newcommand{\leftcolumn}[1]{ \begin{textblock*}{26.7cm}(0cm,12cm) #1 \end{textblock*} }`
Quando inserisco un ambiente figure annidato dentro \leftcolumn, LaTeX sembra ignorare il comando \centering. Infatti
`\begin{figure}
\centering
\includegraphics[width=.5\columnwidth]{foldsurfs}
\caption{An invariant manifold in the upper flow hits the switching surface}
\end{figure}`
non centra la figura, mentre usando un ambiente center invece di \centering tutto fila per il verso giusto. Sulla guida di textpos, a pagina 4, l’autore ammette di aver modificato l’ambiente figure e table.Mi rassegno ad usare l’ambiente center?
La modifica rilevante agli ambienti è di aver annullato tutto ciò che LaTeX esegue alla fine. È possibile che con un semplice
`\let\endfigure\par`
nel preambolo la faccenda ti ritorni a posto. Analogo per \endtable, se usi l’ambiente table. Ma se gli oggetti non devono essere mobili e hai solo bisogno della didascalia, perché non consideri il pacchetto caption e il suo comando \captionof? (Cerca nel forum al riguardo.)Ciao
EnricoPurtroppo \let\endfigure\par non sembra funzionare. Gli utenti di questa classe per i poster dovranno essere in grado di inserire una figura, centrarla e modificarne le dimensioni a piacimento, scrivere una didascalia e di riferisi alla figura nel testo. In generale vorrei fare in modo che gli studenti usino il più possibile i comandi di LaTeX standard. A quello che capisco, mi chiedi di fargli rinunciare all’ambiente figure e di usare un includegraphics seguito da captionof. Secondo te sarebbe ortodosso racchiudere tutto questo all’interno di un ambiente ad hoc?[/quote]
E noi sbattiamo via l’ambiente figure bacato di \textpos e ce lo ricreiamo in modo che faccia ciò che ci interessa (ci si può mettere \centering o no, è indifferente).
`\usepackage{textpos}
\usepackage{caption}
\renewenvironment[1][]{figure}
{\def\caption{\captionof{figure}}\center}
{\endcenter}`
Naturalmente così la figura non “galleggia”, ma in un poster non è importante, le cose vanno disposte a mano.Ciao
Enrico
-
AutoreRisposte