Risposte nei forum create
-
AutoreRisposte
-
::
C’è qualcosa che non va. In composizione a due colonne la classe article assegna il valore 452pt a \textwidth, mentre \columnwidth e \linewidth valgono 221pt. In un itemize di primo livello \linewidth scende a 201pt.
Solo negli ambienti figure* (e table*) \linewidth coincide con \textwidth, purché non si stia usando in quegli ambienti un ambiente per liste (che non è affatto vietato). Quindi direi che \linewidth non vada mai usato in connessione con \includegraphics all’interno di un ambiente figure o table, con asterisco o senza. In quelli con l’asterisco adoperi \textwidth, in quelli senza impieghi \columnwidth.
Certo, nelle rare situazioni in cui si usa un ambiente per liste in figure o table, la faccenda cambia. Ne hai mai viste? 🙂
Ciao
EnricoQuesta volta, Enrico, non ti seguo. Facciamo così:
-
per inserire una figura fuori testo in ambiente figure si possono usare indifferentemente \columnwidth o \linewidth;
-
per inserire una figura fuori testo in ambiente figure* si possono usare indifferentemente \textwidth o \linewidth;
-
per inserire una figura in testo ci sono casi in cui si possono usare indifferentemente \columnwidth o \linewidth; in altri casi va usato \linewidth.
Quale (o quali) di queste affermazioni è errata? Nel codice che ho inviato, ci sono diversi esempi di figure, fuori testo (inserite con ambiente figure o figure*) e in testo. In tutti i casi \linewidth funziona perfettamente (almeno, così mi pare!). Sbaglio? Naturalmente, non è obbligatorio usare sempre \linewidth, però se lo si usa il risultato è buono sempre!
Mi faresti un controesempio di una “cilecca” di \linewidth?
Per favore!
Ciao,
L.P.S. Non ho mai visto elenchi dentro un ambiente mobile, ma se il controesempio richiede quella situazione (rara, e credo anche sconsigliabile), ben venga comunque.
::
Carissimi, Enrico ha ragione: non si tratta di una faccenda così importante. Tuttavia, credo finalmente di essere arrivato in fondo a questa storia. 🙂OldClaudio, infatti, mi ha fatto notare un errore nel ragionamento che avevo fatto: in una composizione a due colonne, infatti, \linewidth coincide con \textwidth, e quindi si può usare tranquillamente \linewidth anche in un ambiente figure*.
L’esempio che avevo proposto si modifica allora così:
`\documentclass[twocolumn]{article}
\usepackage{lipsum,graphicx}
\usepackage[applemac]{inputenc}
\usepackage[italian]{babel}\begin{document}
\lipsum[1]
\section{Lorem ipsum dolor}
\lipsum[2]\begin{figure}[t]
\centering
\includegraphics[width=\linewidth]{Mani}
\caption{In questo esempio si possono usare sia \texttt{columnwidth}
sia \texttt{linewidth}: \texttt{textwidth} non va bene.}
\end{figure}\lipsum[1-2]
\begin{figure*}[t]
\centering
\includegraphics[width=\linewidth]{Mani}
\caption{In questo esempio si possono usare sia \texttt{textwidth} sia \texttt{linewidth}: \texttt{columnwidth} non va bene.}
\end{figure*}\lipsum
Nel seguente esempio di figura “”in testo'' si possono usare sia
\texttt{columnwidth} sia \texttt{linewidth}: \texttt{textwidth}
non va bene.
\begin{center}
\includegraphics[width=\linewidth]{Mani}
\end{center}\lipsum[2]
\begin{itemize}
\item Mane
\item Tekel
\item Nell'esempio seguente bisogna usare \texttt{linewidth}:
né \texttt{columnwidth} né \texttt{textwidth} vanno bene.
\item \includegraphics[width=\linewidth]{Mani}
\item Fares\end{itemize}\lipsum[3]
\section{Conclusioni}
In conclusione:
\begin{itemize}
\item per inserire una figura fuori testo in ambiente \texttt{figure} si possono usare indifferentemente \texttt{columnwidth} o \texttt{linewidth};
\item per inserire una figura fuori testo in ambiente \texttt{figure*} si possono usare indifferentemente \texttt{textwidth} o \texttt{linewidth};
\item per inserire una figura in testo ci sono casi in cui si possono usare indifferentemente \texttt{columnwidth} o \texttt{linewidth}; in altri casi va usato \texttt{linewidth}.
\end{itemize}Si può anche dire che:
\begin{itemize}
\item in \emph{tutti} i casi è sufficiente usare \texttt{linewidth}, e si è a posto.
\end{itemize}Con le tabelle il discorso è analogo.
\end{document}
`Cambiano completamente le conclusioni: in tutti in casi, \linewidth va sempre bene. ❗
A questo punto (anche in omaggio al principio di semplicità), userò \linewidth per tutte le tabelle e figure (in testo e fuori testo) dei miei documenti, e lo consiglierò senz’altro nelle mie modeste guide…
Non ringrazierò mai abbastanza Enrico e Claudio…
A presto,
Lorenzo
::Dentro una minipage, infatti, viene tutto cambiato: la minipage è trattata come se fosse una pagina di testo adeguata a una giustezza data dall’argomento di minipage.
Chiarissimo!
E per il resto? Concordi con le conclusioni che ho cercato di riassumere nel mio intervento precedente?
Grazie mille,
L.
::Esempio tipico è una minipage larga ad esempio .5\textwidth. Dentro la minipage \linewidth è pari a .5\textwidth mentre \textwidth e \columnwidth con cambiano.
Ho più di un dubbio sulla correttezza di questa affermazione. Vedi il primo esempio di pagina 59 di questa guida.
Si include un’immagine di larghezza \columnwidth… eppure, come è evidente, l’immagine è larga (meno di metà) della colonna del testo del documento. (Nel documento principale, ad una colonna, \columnwidth = \textwidth.) Mi pare si possa concludere che, in quell’esempio, la \columnwidth sia cambiata.
Ciao,
L.
::
Ciao a tutti. Riprendo il topic perché mi sembra opportuno inserire un esempio per chiarirmi (spero) definitivamente la questione.
`\documentclass[twocolumn]{article}
\usepackage{lipsum,graphicx}
\usepackage[latin1]{inputenc}
\usepackage[italian]{babel}\begin{document}
\lipsum[1]
\section{Lorem ipsum dolor}
\lipsum[2]\begin{figure}[t]
\centering
\includegraphics[width=\columnwidth]{Mani}
\caption{In questo esempio si possono usare sia \texttt{columnwidth}
sia \texttt{linewidth}: \texttt{textwidth} non va bene.}
\end{figure}\lipsum[1-2]
\begin{figure*}[t]
\centering
\includegraphics[width=\textwidth]{Mani}
\caption{In questo esempio bisogna usare \texttt{textwidth}:
né \texttt{columnwidth} né \texttt{linewidth} vanno bene.}
\end{figure*}\lipsum
Nel seguente esempio di figura “”in testo'' si possono usare sia
\texttt{columnwidth} sia \texttt{linewidth}: \texttt{textwidth}
non va bene.
\begin{center}
\includegraphics[width=\columnwidth]{Mani}
\end{center}\lipsum[2]
\begin{itemize}
\item Mane
\item Tekel
\item Nell'esempio seguente bisogna usare \texttt{linewidth}:
né \texttt{columnwidth} né \texttt{textwidth} vanno bene.
\item \includegraphics[width=\linewidth]{Mani}
\item Fares\end{itemize}\lipsum[3]
\section{Conclusioni}
In conclusione:
\begin{itemize}
\item per inserire una figura fuori testo in ambiente \texttt{figure} si possono usare indifferentemente \texttt{columnwidth} o \texttt{linewidth};
\item per inserire una figura fuori testo in ambiente \texttt{figure*} va usato \texttt{textwidth};
\item per inserire una figura in testo ci sono casi in cui si possono usare indifferentemente \texttt{columnwidth} o \texttt{linewidth}; in altri casi va usato \texttt{linewidth}.
\end{itemize}Si può anche dire che, in generale:
\begin{itemize}
\item per inserire una figura fuori testo in ambiente \texttt{figure*} va usato \texttt{textwidth};
\item in \emph{tutti} gli altri casi, è sufficiente usare \texttt{linewidth}, e si è a posto.
\end{itemize}Con le tabelle il discorso è analogo.
\end{document}`
Riporto le conclusioni. In generale:-
per inserire una figura fuori testo in ambiente figure si possono usare indifferentemente \columnwidth o \linewidth;
-
per inserire una figura fuori testo in ambiente figure* va usato \textwidth;
-
per inserire una figura in testo ci sono casi in cui si possono usare indifferentemente \columnwidth o \linewidth; in altri casi va usato \linewidth.
Si può anche dire che, in generale:
-
per inserire una figura fuori testo in ambiente figure* va usato \textwidth;
-
in tutti gli altri casi, è sufficiente usare \linewidth, e si è a posto.
Con le tabelle il discorso è analogo.
(Naturalmente, se si è sicuri che il proprio documento non verrà mai composto a due colonne, si possono usare indifferentemente \textwidth e \columnwidth, che per documenti ad una colonna coincidono. Ma il caso che sto trattando vuole essere il più generale possibile.)
Fatemi sapere se c’è qualcosa che non va.
Ciao,
L.
12 Settembre 2008 alle 18:35 in risposta a: Intestazione sbagliata dopo \chapter*{} –> Aiuto urgente #26801::Come posso fare per andare a capo o risolvere il problema in altro modo?
Accorcia il titolo. Si tratta di un bell’esercizio di sintesi, può dare soddisfazioni.
In fin dei conti si può riassumere anche la Divina Commedia in una riga, dicendo che è “il racconto di un uomo che finisce nell’al di là da vivo”, per cui…
Ciao,
L.
::Non ho affatto detto che le classi standard non vanno usate. Anzi, il loro essere contenitori generici è la loro forza.
Mi pare che tu abbia detto che le classi standard, in quanto contenitori generici, non andrebbero usate dall’utente finale, che dovrebbe usare classi “più adatte alla pubblicazione”, basate sì su quelle standard, ma diverse. Se queste classi ci fossero, la cosa andrebbe benissimo anche a me: l’utente dovrebbe scrivere con la classe, poniamo, articolo.cls, limata e rifinita, per esempio, senza la “testatina sul nulla” e con le didascalie scritte in formato decente, basata su article.cls, che potrebbe allora restare invariata. (Allo stesso modo, chi adopera un Mac usa un’interfaccia semplice ed elegante, mentre in realtà sotto il cofano batte un OS Unix, ruvido e arcigno.) Tuttavia, come tu stesso dici, l’utente finale usa (spesso) direttamente article.cls, e gli tocca rimediare ai difettucci di quella classe aggiungendo pezzetti di codice — e queste “toppe” non sono il massimo della comodità…
ciò che è scritto per le classi standard deve continuare a essere composto esattamente nello stesso modo.
Mah, questo è un punto su cui siamo in disaccordo (non càpita spesso, e tutte le poche volte che è successo, col tempo ho scoperto che avevi ragione tu: il lettore è avvisato!). Ora come ora, penso — scusami per l’irriverenza del paragone — che anche i Dieci Comandamenti sono stati modificati, nel corso della storia (per gli interessati: è stato soppresso il comandamento “non farai né idolo né immagine”, che era il secondo; tutti gli altri sono stati spostati di uno nella numerazione e l’ultimo è stato sdoppiato, per far tornare il conto). Quindi non capisco perché il codice delle classi standard di LaTeX debba invece restare “sacro e inviolabile”. 😉
http://it.wikipedia.org/wiki/Dieci_comandamenti
Quanto al bug di index, prova a segnalarlo (prima vedi se per caso c’è già una segnalazione e le eventuali risposte).
Lo farò senz’altro, Enrico!
A presto,
Lorenzo
::
[OFF TOPIC]Non sono d’accordo [con l’idea di scrivere “risolto” nel titolo di un topic…risolto]. Lo trovo inutile, anzi dannoso, perché così si scoraggia a rispondere chi ha una soluzione alternativa al problema e a guardare il topic chi potenzialmente potrebbe averla.
Sono d’accordo con Andrea. Fra l’altro un topic intitolato “come inserire unità di misura in LaTeX” avrebbe avuto come risposta, qualche tempo fa, “il pacchetto SIunits”. Ora però c’è siunitx, che è migliore. Stesso discorso con enumertae -> enumitem, e gli esempi potrebbero continuare. Una delle cose belle di LaTeX è che non si smette mai di imparare: non si arriva mai alla fine della storia. Scrivere “Risolto” in un topic non rispecchierebbe questa realtà.
Chiedo scusa a tutti per l’OT.
Ciao,
L.
[/OFF TOPIC]
::Allora vediamo a esser + chiaro:
stò scrivendo la mia tesi di laurea in lyx e il mio correlatore vuole che gli esempi vengano inseriti in riquadri (box) a sfondo grigio privi di contorno. Visto che se provo con il comando “inserisci box” , al cui interno inserisco l’esempio, nn mi è possibile eseguire alcun tipo di formattazione chiedevo a qualcuno se fosse possibile avere magari del codice da inserire nel preambolo.
Spero di essere stato chiaro stavolta
ciao
marcoTi aiuto:
Cerco di essere più chiaro. Sto scrivendo la mia tesi di laurea utilizzando LyX e il mio correlatore vuole che gli esempi vengano inseriti in riquadri con lo sfondo grigio, privi di contorno. Se però provo ad inserire gli esempi con il comando “inserisci box” di LyX, non mi è possibile controllarne in alcun modo il formato. Qualcuno può fornirmi del codice opportuno da inserire nel preambolo?
Purtroppo anche così è difficile aiutarti, perché non specifichi la natura degli esempi che vuoi inserire (codici di un linguaggio di porgrammazione? Citazioni? Esempi numerati di “tipo-teorema”?) e soprattutto perché non conosco LyX.
Non prendertela, mi raccomando! 😉
Ciao,
L.
::Le classi standard sono pensate per essere contenitori generici, da sostituire poi con chiamate della classe più adatta alla pubblicazione. Quindi forniscono solo un minimo essenziale. È vero che, in passato, non c’erano moltissime classi più specifiche fra cui scegliere, ma non è un difetto di LaTeX, quanto degli utenti di alto livello (editori) che non le hanno sviluppate.
[…]
La testatina sul nulla è conseguenza di quanto detto prima. Le classi standard sono solo un modello di vestito, per intenderci quelli disegnati su carta: nessuno li indossa, ma vanno usati per tagliare e cucire il vestito vero.
Caro Enrico, prima di rispondere ho preferito pensarci su un po’!
In definitiva, credo che stiamo dicendo cose non troppo diverse. Io dico che le classi standard presentano dei difetti (come ad esempio la “testatina sul nulla” o il formato infelice delle didascalie), e che sarebbe opportuno incorporare il codice che corregge quei difetti direttamente nelle classi standard.
Tu dici che le classi standard non adrebbero usate 😯 (non si tratta di un’affermazione da poco!!!), ma andrebbero sostituite con altre classi, più mirate e “rifinite”, che però… non ci sono (in quanto chi doveva farlo non le ha sviluppate).
Resto della mia opinione. Ben lungi dalla folle idea che le classi standard debbano incorporare “tutto”, penso che sarebbe il caso di inserire, ad esempio, questo codice
`\makeatletter
\def\cleardoublepage{\clearpage
\if@twoside
\ifodd\c@page
\else
\null\thispagestyle{empty}\clearpage
\fi
\fi}
\makeatother`
e anche questo
`\usepackage[font=small,format=hang]{caption}`
(e poco altro: vedi alcuni dei punti che ho evidenziato nel primo intervento) direttamente nelle classi standard. Se la chiamata al pacchetto può essere “pericolosa”, ci si mette direttamente il codice corrispondente, e si sviluppa quello.Non credo che, TeXnicamente parlando, l’ostacolo sia insormontabile. Si avrebbe solo qualche problemino di retro-compatibilità, ma la retro-compatibilità non può essere il solo elemento da considerare, quando si sviluppa qualcosa. Altrimenti useremmo ancora le VHS e le musicassette!
Ciao,
L.
::Ciao, devo inserire una lettera greca nella mia tesi ma non ci riesco.
Ah, giusto per spaccare il capello in quattro, il nostro amico ha chiesto solo “come inserire una lettera greca”, senza specificare che si tratta di un simbolo matematico. Per inserire lettere greche “testuali”, il modo è tutto diverso, naturalmente.
`\documentclass{article}
\usepackage[greek,italian]{babel}
\newcommand{\greco}[1]{%
\begin{otherlanguage*}{greek}#1\end{otherlanguage*}}
\begin{document}
In lettere minuscole, \TeX{} si scriverebbe \greco{teq}.
\end{document}
`
Ciao,
L.
::Riporta il codice che ti restituisce l’errore.
Dal preambolo che hai indicato, mi sembra che tu abbia caricato i pacchetti da utilizzare con gli ambienti matematici. Quindi il comando:
`\Delta`
dovrebbe inserirti correttamente la lettera maiuscola “delta”.
Ciao.
r.…in ambiente matematico, naturalmente!
`$\Delta$`
Ciao,
L.
-
-
AutoreRisposte