Risposte nei forum create
-
AutoreRisposte
-
7 Gennaio 2007 alle 20:42 in risposta a: tabelle numerate in romano: sovrapposizione in list of table #12002::
mi spiego meglio…
Non ti stai affatto spiegando meglio; per esempio hai omesso il dettaglio tutt’altro che irrilevante della classe che usi. Il seguente documento ha il comportamento atteso:
`\documentclass{toptesi}\begin{document}
\title{tesi}
\author{pippo}\frontespizio
\sommario
bla bla bla bla bla bla bla bla bla
\ringraziamenti
bla bla bla bla bla bla bla bla bla
\tablespagetrue
\figurespagetrue
\indici\end{document}`
Vuoi farci sapere qualcosa di più?Ciao
Enrico
6 Gennaio 2007 alle 12:41 in risposta a: Algebra relazionale (1 di 2): considerazioni generali #11889::Ma veramente lo faresti con
`\noindent
$ […] $ \\
$ […] $ \\
$ […] $`
(mi ha colpito soprattutto l’andata a capo esplicita) piuttosto che con il sistema che ho suggerito io («align» o un ambiente basato su di esso costruito appositamente)?No che non lo farei così ❗ Era solo per riprodurre lo schema di quell’esempio (nota le virgolette attorno a “corretto”); la cosa più importante era il codice per scrivere i pedici, non la sistemazione finale delle formule.
Ciao
Enrico
::Utilizzo il pacchetto toptesi
Il mio indice, creato col comando \indici, sfora in un’altra pagina per appena 2 voci.
Per ora ho risolto utilizzando il comando:
`\linespread{1.7}
\indici
\linespread{1}`in modo da mettere più voci nella seconda pagina, come ho letto in un precedente post sul forum.
Mi chiedevo se c’è una soluzione più raffinata, visto che il pacchetto lascia comunque molto spazio dal bordo pagina alla prima riga coi titoli (nella prima pagina di ogni capitolo, e dunque anche nella prima pagina dell’indice)
`\enlargethispage{
`
da scrivere in un punto che cada nella pagina incriminata. Probabilmente subito dopo il comando che produce l’indice. Visto che giochi con l’interlinea (e non è bello 🙂 ) non ti so dire qualedare. Fa’ qualche prova. Può anche andare
`\enlargethispage*{1000pt}\pagebreak`
ma tieni conto che le righe in più vengono aggiunte in fondo. Non avrebbe senso “tirare su” l’inizio del capitolo.Ciao
Enrico
::Quello che non ho capito e’ se, nello scrivere una tesi in italiano, ci saranno casi (trascurando l’eventuale possibilita’ di scrivere un abstract iniziale in inglese, ovviamente) in cui dovro’ utilizzare il comando
\selectlanguage{english}.
Non posso semplicemente dire a LaTeX di non sillabare MAI la parola “RFID”, a prescindere dalla lingua in uso?
Con \selectlanguage{english} attivi tutto quanto riguarda l’inglese (l’intestazione a un capitolo diventa Chapter, e così via). Per scrivere brevi tratti in inglese, con la corretta sillabazione, è meglio usare l’ambiente “otherlanguage*” o il comando \foreignlanguage. È tutto spiegato benissimo 😉 nella breve guida che trovi qui.
Ciao
Enrico
::Ciao a tutti,
Non si puo’ scrivere “\hyphenation{RFID l’RFID dell’RFID all’RFID}”, produce un errore di questo tipo:
“! Not a letter. l.157 \hyphenation{RFID all’ RFID} Letters in \hyphenation words must have \lccode>0. Proceed; I’ll ignore the character I just read.”.Per quanto riguarda il fatto che “Gli acronimi in tutte maiuscole sono poco gradevoli”, di fatto RFID si scrive così, solo pochi “arditi” scrivono “RFId”.
La mia proposta infatti è di usare il maiuscoletto. Fa’ tu.
Per il primo problema, devi esplicitamente dare \selectlanguage{italian} prima di \hyphenation, perché così attivi le modifiche specifiche per l’italiano e non solo i pattern di sillabazione. In alternativa, dare \hyphenation{…} dopo \begin{document}.
Ciao
Enrico
::ciao a tutti,
ecco un po’ di codice estratto dalla tesi:
\documentclass[a4paper,12pt,titlepage,oneside]{extreport}
\usepackage[english,italian]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
… (altro pacchetti, tipo \url ed altri)
\hyphenation{RFID}
…
ed ecco qui il codice della proposizione incriminata:
“Da questo momento l’RFID (il “busillis” e’ qui…) perderà lo status di tecnologia pionieristica per diventare una tecnologia in grande e continua espansione con effettivi obiettivi commerciali.”Ecco l’arcano mistero ❗
La tua parola non è “RFID”, ma “l’RFID”. L’italiano ha il problema dell’apostrofo che lega articolo o preposizione articolata e parola (talvolta due parole, come “nessun’altra”). Per evitare problemi nella sillabazione di parole che seguono l’apostrofo, l’apostrofo stesso è considerato come lettera.
Hai due scelte: scrivere \hyphenation{RFID l’RFID dell’RFID all’RFID dall’RFID} oppure evitare quell’apostrofo. Personalmente preferirei non appiccicare apostrofi ad acronimi di quel tipo.
Se intendi proseguire con gli apostrofi davanti agli acronimi, ti consiglio un’altra possibilità:
`\newcommand{\myacronym}]1]{\mbox{\scshape#1}}
\newcommand{\RFID}{\myacronim{rfid}}
…
Da questo momento l'\RFID{} perderà lo status…`
Gli acronimi in tutte maiuscole sono poco gradevoli. Se poi il solito supervisore poco incline alle considerazioni tipografiche ti dicesse che gli acronimi vanno in tutte maiuscole, basterebbe cambiare la prima riga in
`\newcommand{\myacronym}[1]{\mbox{\MakeUppercase{#1}}}`
e tutti gli acronimi definiti seguendo lo schema della seconda riga usciranno in tutte maiuscole. In ogni caso, \mbox impedirà sillabazioni poco opportune.A proposito del fatto che [\hyphenation agisce solo per la sillabazione nella lingua in vigore nel momento in cui viene letto il comando, vorrei sapere se per una tesi in italiano e’ consigliabile scrivere:
\usepackage[english,italian]{babel}
oppure:
\usepackage[italian,english]{babel}La prima, naturalmente.
Ciao
Enrico
::ciao a tutti,
non riesco a forzare la NON sillabazione della parola “RFID” con LaTeX, nonostante il fatto che ho seguito tutta la procedura descritta nel forum per attivare la sillabazione (il file di log mi da’ un rassicurante “Babel
and hyphenation patterns for english, dumylang, nohyphenation, italian, loaded.”). Utilizzo il MiKTeX 2.5, ho messo \hyphenation{RFID} nel preambolo del file principale della tesi, ma c’e’ un caso in cui lo spezza male -> R-FID!!!
Nessun’idea? (nel forum non ho trovato niente di utile per risolvere il problema)
Citazione di una citazione del TeXbook:
If all problems of hyphenation have not been solved,
at least some progress has been made since that night,
when according to legend, an RCA Marketing Manager received
a phone call from a disturbed customer. His 301 had just hyphenated “God.”
PAUL E. JUSTUS, There’s More to Typesetting Than Setting Type (1972)
in IEEE Transactions on Professional Commun. vol PC-15, pp. 13–15Non dovrebbe succedere se non giochicchi con \lefthyphenmin e \righthyphenmin e con le lingue. Ricorda che \hyphenation agisce solo per la sillabazione nella lingua in vigore nel momento in cui viene letto il comando.
`\documentclass{minimal}
\usepackage[english,italian]{babel}\hyphenation{proprio}
\begin{document}
\showhyphens{proprio}
\selectlanguage{english}
\showhyphens{proprio}
\end{document}`
Compilando questo sorgente avrai due messaggi:
`Underfull \hbox (badness 10000) in paragraph at lines 8–8
[] \OT1/cmr/m/n/10 proprioUnderfull \hbox (badness 10000) in paragraph at lines 12–12
[] \OT1/cmr/m/n/10 pro-prio`
Infatti il secondo comando \showhyphens appare quando è in vigore l’inglese, con le sue regole. Il comando \hyphenation è stato dato con in vigore l’italiano, ultima lingua nelle opzioni a babel.In quale contesto avviene la sillabazione di “rfid”?
Ciao
Enrico
::Ciao Enrico, mi dispiace che tu abbia perso del tempo per rispondermi, alla fine sono riuscito a combinare, grazie a questo messaggio: <http://article.gmane.org/gmane.comp.tex.danish/4960> (fortunatamente il linguaggio è «universale», perché il danese proprio non lo capisco).
Come vedi, la soluzione è molto simile a quella che ti ho indicato io
Non si finisce mai di imparare. Ad ogni modo, sono rimasto colpito dal fatto che l’unità di misura di quella lunghezza non è qualcosa di relativo, come em. Immagino che questo voglia dire che classi di documento diverse (se vogliono) ridefiniranno questa lunghezza secondo le loro esigenze. Me la immaginavo come un qualcosa di «intoccabile».
È una scelta di chi disegna la classe del documento. Il fatto che chiedendo
`\showthe\parindent`
la risposta sia in punti è perché così vengono sempre rappresentate le dimensioni: puoi darle in cm, dd, bp, em, eccetera, ma internamente vengono sempre convertite nell’unità sp (65536sp=1pt) e mostrate in punti (pt).Memore di un’altra conversazione che abbiamo avuto un po’ di tempo fa (<http://www.guit.sssup.it/phpBB2/viewtopic.php?p=7872#7872>), mi sono chiesto se anche nella definizione di questo ambiente ci sarebbe stato bisogno di uno «\ignorespaces», ma sembrerebbe che con una o più andate a capo il risultato (in questo caso) sia identico. Immagino dipenda dal fatto che ci troviamo in un contesto differente.
Ci pensano già minipage e lrbox.
Ciao
Enrico
::Accidenti, ha funzionato! Grazie 🙂
Ho rinominato .profile e bash_profile, chiuso e riaperto la shell e boom, funziona.
A questo punto mi chiedo quale sia il problema nei file della mia home.
A dire la verità ho un sospetto. Avevo creato i file con textmate, che di default codifica in UTF-8; può essere un problema di encoding dei caratteri?
DavideMa dai! 😀
Ciao
Enrico
::Un paio di settimane fa, su consiglio di egreg, avevo installato miktek; il tool mpm sembrava funzionare, tant’è che avevo installato anche un pacchetto. Poi, e non mi spiego il perchè, avevo avuto problemi con la shell; il path /usr/local/bin non sembrava settato, anche se avevo opportunamente modificato i file nella mia home; ne sono venuto a capo solo aggiungendo il path in /etc/profile. Con questa modifica i tool installati in /usr/local/bin hanno ripreso a funzionare, tutti tranne miktex.
Ora se scrivo mpm –help o mpm –usage tutto a posto, ma con qualsiasi altro comando ottengo l’errore:
`*** locale::facet::_S_create_c_locale name not valid`
Ho spulciato com.text.tex, dove un thread riportava questo errore, ma in fase di installlazione, e senza risposta.
Avete una qualche idea?Non molte. 😥
Se il .profile nella tua home non funziona potrebbe essere un problema lì. Non dovrebbe essere necessario modificare /etc/profile, anche perché con una reinstallazione del sistema perderesti le modifiche.
1) Prova a rinominare .profile in modo da evitarne la lettura e vedi che succede. Fa’ lo stesso con .login e .bashrc (se li hai).
2) Prova a ricompilare mpm e a reinstallarlo.
Ciao
Enrico
4 Gennaio 2007 alle 20:07 in risposta a: Errore in compilazione, “keyboard character undefined&q #11963::MI rispondo da solo: dopo 2ue ore di debug ho capito dov’era il problema. In sostanza un elemento della mia bibliografia aveva un carattere invisibile di ‘a capo’ nel titolo; quando stampavo la biliografia il compilatore segnalava l’errore.
Come avrai capito è difficile rispondere senza avere un esempio. I caratteri invisibili sono bestie difficili da isolare.
Ciao
Enrico
::Riciao a tutti.
L’enfasi con il nero è pericolosa: si corre il rischio di appesantire molto la pagina.
[…]
Un corsivo va più che bene.Certamente, la maggior parte del testo del documento dovrebbe essere lineare, e se ogni tanto c’è bisogno di enfatizzare qualcosa, «\emph» va benissimo. Tuttavia, ho sempre creduto che un livello di enfasi superiore all’enfasi «normale» potesse ritornare utile. Come ho scritto prima, ho preso spunto da HTML, che consente questa enfasi superiore mediante l’elemento «STRONG» (la resa grafica prodotta da questo elemento è proprio del testo in grassetto).
Non paragoniamo le mele con le pere: HTML e TeX sono concepiti per scopi molto diversi.
Una piccola annotazione: per la tua definizione sarebbe molto meglio
`\newcommand{\strong}{\textbf}`
senza lettura di argomenti.Questa annotazione ti chiederei cortesemente di spiegarmela: non metto in dubbio che tu abbia ragione, come sempre, ma non mi è del tutto chiaro perché la mia definizione
`\newcommand{\strong}[1]{{\bfseries#1}}`
non andava bene. Ci sono un po’ di cose che non mi tornano:
[ol][li] devo aver letto da qualche parte, tempo fa (forse in un esempio sulle marche nella documentazione di «fancyhdr»?), che nella definizione di un comando era prassi comune usare «\bfseries» al posto «\textbf»; da qualche altra parte (può darsi che l’abbia scritto tu in qualche vecchio messaggio), invece, ho letto che era «\bf» il comando che non si doveva usare più per la questione di NFSS; perché quindi non va bene usare «\bfseries»?
[li] «\textbf» si aspetta un parametro, il testo che deve evidenziare in grassetto; nella mia definizione, ne ho tenuto conto:
`\newcommand{\strong}[1]{\textbf{#1}} % nuova versione`
tu invece me lo scrivi come:
`\newcommand{\strong}{\textbf}`
questo vorrebbe forse dire che se c’è corrispondenza tra il numero di parametri che si aspettanto due comandi (uno dei quali deve ridefinire l’altro) è prassi comune non specificarli, questi parametri (nella definizione)?
[li] perché, a questo punto, non basterebbe un:
`\let\strong\textbf`?[/ol]Parto dal fondo: andrebbe benissimo l’ultima soluzione. Ma non è sintassi LaTeX, tutto qui; ciò che non è documentato nel manuale va usato con cautela, soprattutto dagli inesperti.
Il comando da non usare è \bf. Invece \bfseries e \textbf sono più che leciti, ma servono per scopi diversi. Il primo è una dichiarazione, che vale per tutto il gruppo in cui si trova; se vuoi definire un ambiente dove il testo va stampato in nero, è il comando da usare.
Il secondo comando è invece un comando con argomento. La definizione
`\newcommand{\strong}{\textbf}`
al principio appare strana, perché si sospetta che non si passi l’argomento corretto al comando \textbf. Non è così: il compilatore TeX che si trova il comando \strong sostituisce la sua definizione, cioè \textbf; siccome questo vuole un argomento, TeX lo cerca. Però solo dopo aver eseguito la sostituzione! Ecco spiegato l’arcano.Con una definizione come
`\newcommand{\strong}[1]{{\bfseries#1}}`
fai leggere a TeX l’argomento due volte, invece che una sola.Per finire, c’è differenza fra \textbf{…} e {\bfseries…}? Guarda con attenzione il risultato di
`\textbf{f}i {\bfseries f}i`
Ciao
Enrico
::Salve a tutti,
come richiesto nella discussione sottolineato reperibile all’indirizzo <http://www.guit.sssup.it/phpBB2/viewtopic.php?t=396>, ho provato a scrivere un ambiente per un’enfasi «molto forte» per una porzione di documento, che si capisse subito essere di grande rilievo e che saltasse subito all’occhio; pensavo di risolvere in quattro e quattr’otto, e invece non ho cavato un ragno dal buco, in quanto sono saltati fuori più problemi che soluzioni. Ci sono rimasto male.Un ambiente di questo tipo me l’ero immaginato come un blocco di testo racchiuso in un riquadro. Questo era un esempio di prova (non ridete per l’ambiente «center», so che non si dovrebbe usare, ma questa era solo una prova; fossi stato in grado di realizzare l’ambiente finale «enfasiForte» avrei richiamato «\centering»):
`Testo normale\begin{center}
{\fboxsep=.5em\fbox{\begin{minipage}{.9\linewidth}\setlength{\parindent}{1.5em}
Testo importanteTesto importante
\end{minipage}}}
\end{center}Testo normale
`Non c’è niente di male a usare l’ambiente center. Non va usato all’interno di un ambiente figure o table, ma è un’altra faccenda.
L’esempio che avete appena visto, funziona. L’unico problema (fin qui) che non sono stato in grado di risolvere è che l’ambiente «minipage» azzera «\parindent»; da <http://www.eng.cam.ac.uk/help/tpl/textprocessing/teTeX/latex/latex2e-html/ltx-267.html>:
There is no paragraph indentation in the minipage environment. That is, LaTeX sets \parindent to zero; however, you may override this with a \setlength command.
Bel suggerimento, ma quanto vale «\parindent»? un «\the\parindent» esplicito nel corpo mi ritorna 15.0pt, ma dubito seriamente che nei sorgenti di LaTeX (o di TeX) questa grandezza sia stata definita in modo non elastico. Come potete vedere sopra, ho provato a cavarmela «a occhio» con 1.5em, ma se qualcuno sa riportarmi la definizione di «\parindent» (o dirmi in quale file si trova) gliene sarò eternamente grato.
Vale quanto vale 🙂 Di sicuro non è una lunghezza elastica, non avrebbe senso.
Detto ciò, ho provato a passare alla definizione di un ambiente apposito:
`\newenvironment{enfasiForte}{%
\par\medskip\centering{\fboxsep=.5em\fbox{\begin{minipage}{.9\linewidth}\setlength{\parindent}{1.5em}%
}%
{%
\end{minipage}}}\par\medskip%
}`
che, naturalmente non funziona.No, non funziona. Non puoi aprire una graffa nella prima parte e chiuderla nella seconda. L’unico modo è di usare l’ambiente lrbox, ideato proprio per questo.
`\newsavebox{\eFbox}\newlength{\eFlen}\newenvironment{enfasiForte}{%
\par\medskip
\setlength{\eFlen}{\parindent}% memorizzo la dimensione del rientro
\centering % prima di dare \centering che la azzera
\fboxsep=.5em
\begin{lrbox}{\eFbox}%
\begin{minipage}{.9\linewidth}
\setlength{\parindent}{\eFlen}%
}
{%
\end{minipage}%
\end{lrbox}
\fbox{\usebox{\eFbox}}%
\par\medskip
}`
Ciao
Enrico
::Non solo, ma quel comando non andrebbe neppure usato nel corpo del documento. Io farei così, prendendo spunto dall’HTML: in quel linguaggio esistono sia un’enfasi «normale» (l’elemento «EM», che corrisponde al comando «\emph» di LaTeX) che un’enfasi «forte» (l’elemento «STRONG»). Siccome quest’ultima in LaTeX non c’è, perché non crearla?
`\newcommand{\strong}[1]{{\bfseries#1}}`L’enfasi con il nero è pericolosa: si corre il rischio di appesantire molto la pagina. Un corsivo va più che bene. Una piccola annotazione: per la tua definizione sarebbe molto meglio
`\newcommand{\strong}{\textbf}`
senza lettura di argomenti. L’inesperto si chiederà: perché definire un comando che fa esattamente la stessa cosa di un comando già esistente?Risposta: è utilissimo farlo se con il nuovo comando si vuole indicare una struttura logica del nostro documento. Se poi il solito supervisore pignolo dice che non gli piace il modo con cui quella struttura viene resa, basta cambiare la definizione del comando definito, invece di cercare nel documento dove appare il comando \textbf.
Ciao
Enrico
-
AutoreRisposte