Risposte nei forum create
-
AutoreRisposte
-
::
Andrea.LM” post=63287volevo sapere se poi hai trovato il pacchetto varioref nelle versioni che hai insatallato.
Lo chiedo perchè in TeX Live 2011 che ho scaricato ieri non c’è nella lista dei pacchetti nè installati nè disponibili. Ho visto però che c’è un pacchetto di nome refstyle, è possibile che dentro ci sia varioref?varioref fa parte dei pacchetti indispensabili per LaTeX.
Andrea.LM” post=63287Ho provato a scrivere questo codice, seguendo l’ “Arte di scrivere con LaTeX”(v. apr2011) e mi sono accorto che non crea i riferimenti incrociati nè li evidenzia; inoltre nel documento in pdf che viene creato non ci sono le informazioni indicate:
`\documentclass[a4paper,11pt,twoside,draft]{article} %imposta il tipo di documento[A4,altezza testo,fronte retro,]{articolo}
…`Togli l’opzione draft.
Ciao
Enrico
26 Settembre 2011 alle 18:18 in risposta a: Cambio carattere su tabelle e formattazione di base #62605::
Inutile mettere faccine e infarcire di parolacce o di non tanto velati insulti il messaggio. Cambia registro, ti prego.Mettere una tabella in testa a una pagina per il resto a due colonne è facile:
`\documentclass[a4paper,twocolumn]{article}
\usepackage[demo]{graphicx}
\usepackage{lipsum}
\begin{document}
\title{Un articolo}
\author{U. Nautore}
\maketitle\lipsum % mettiamo un po' di testo
\begin{figure*}[t]
\centering
\includegraphics[width=.8\textwidth,height=4cm]{pippo}
\caption{Una didascalia}
\end{figure*}\lipsum\lipsum % altro testo
\end{document}`
Componi questo documento e vedrai che in cima alla pagina 3 c’è la figura e che il resto del testo è a due colonne, senza alcuna interruzione.Se invece vuoi spezzare il testo in due parti (sopra la tabella e sotto la tabella), stai sbagliando impostazione tipografica. Il lettore sarà molto confuso su quale direzione prendere per proseguire la lettura quando arriva alla fine della prima semicolonna in alto a sinistra: andare alla semicolonna di destra o a quella di sotto?
Lascia queste cose alle riviste patinate. C’è un modo, naturalmente, ma richiede pesanti interventi manuali: essenzialmente di usare l’ambiente multicols invece dell’opzione twocolumn, chiudere l’ambiente, inserire la figura e riaprire l’ambiente. La prosecuzione della semicolonna in alto a sinistra sarà quella in alto a destra. Ovviamente, però, non si può avere alcun automatismo: dove mettere la figura devi deciderlo tu ed essere pronto a modificarne la posizione se il testo precedente cambia.
Ciao
Enrico
::homer314″ post=63260Buondì a tutti
vorrei aggiornare la mia TL2010 (con path e setup di default) alla versione 2011 ed ho trovato cercando nel forum il seguente link
http://tug.org/texlive/upgrade.html
Nella pagina stessa di dice che la procedura non è “a prova di proiettile” in quanto può variare a seconda dei casi. La mia domanda è:
qualcuno l’ha utilizzata con successo oppure ci sono alternative migliori ?
Installa la versione 2011 completa. Quando sarai sicuro che tutto funzioni a dovere, cancella la cartella 2010 e sarai a posto.
Ciao
Enrico
25 Settembre 2011 alle 18:07 in risposta a: [Risolto]Scelta automatica fra \clearpage e \cleardoublepage #64120::OldClaudio” post=63236Enrico: io ho appena aggiornato il mio TeX Live 2011 sul mio iMac; non trovo tracce del lituano come lingua accessibile con babel; lo è con polyglossia, ma non con babel; non esiste la sillabazione e il file log della costruzione di pdflatex.fmt lo conferma, non esiste lithuanian.ld, quindi babel lo considera una lingua ignota per la quale non dispone né della sillabazione (sostituita con quella dell’inglese americano di default) né le parole predefinite. Che cosa usi tu per scrivere davvero in lituano?
`> kpsewhich lithuanian.ldf
/usr/local/texlive/2011/texmf-dist/tex/latex/lithuanian/lithuanian.ldf
> grep lithuanian `kpsewhich language.dat`
% from hyphen-lithuanian:
lithuanian loadhyph-lt.tex`
Il prologo della compilazione dice
`Babeland hyphenation patterns for english, dumylang, nohyphenation,
german-x-2011-07-01, ngerman-x-2011-07-01, afrikaans, ancientgreek, ibycus, arabic,
armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutch,
ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnish, french, galician,
german, ngerman, swissgerman, monogreek, greek, hungarian, icelandic, assamese,
bengali, gujarati, hindi, kannada, malayalam, marathi, oriya, panjabi, tamil, telugu,
indonesian, interlingua, irish, italian, kurmanji, lao, latin, latvian, lithuanian,
mongolian, mongolianlmc, bokmal, nynorsk, polish, portuguese, romanian, russian,
sanskrit, serbian, serbianc, slovak, slovenian, spanish, swedish, turkish, turkmen,
ukrainian, uppersorbian, welsh, loaded.`
C’è tutto. Prova con
`> kpsewhich pdflatex.fmt`
Che cosa ti dice il terminale?Ciao
Enrico
25 Settembre 2011 alle 7:37 in risposta a: [Risolto]Scelta automatica fra \clearpage e \cleardoublepage #64118::
Non funziona come pensi. Vediamo un esempio più semplice:
`\expandafter\a\expandafter\b\c`
Il primo token è espandibile, quindi TeX lo espande; questo causa l’espansione del secondo \expandafter, ma subito! TeX non esamina \a fino a che l’espansione del primo token sia terminata, ciò che avviene solo quando è espanso \c.Vediamone uno più complicato:
`\expandafter\expandafter\expandafter\a\expandafter\b\c`
I token sono sette, li indico con numeri. L’espansione di 1 causa, nell’ordine, quella di 3, 5 e 7. Al termine di questo avremo
`\expandafter\a\b`
Solo ora il token 2 della lista iniziale viene esaminato per dare dunque
`\a`
Nel caso precedente il risultato sarebbe
`\a\b`
e la differenza salta agli occhi, in particolare quando \b raccoglie argomenti.Ciao
Enrico
24 Settembre 2011 alle 21:00 in risposta a: [Risolto]Scelta automatica fra \clearpage e \cleardoublepage #64114::antonio.macrì” post=63196
`\makeatletter
\expandafter\def\expandafter\cleardoublepage\expandafter{\expandafter
\if@openright
\cleardoublepage
\else
\clearpage
\fi}
\makeatother`
Esercizio: perché funziona e non va in circolo vizioso?Ciao
EnricoMi esercito io: il motivo essenziale è che viene calcolato il significato del comando prima di assegnarlo al token \cleardoublepage. In altri termini, viene espanso il \cleardoublepage presente nel corpo della definizione prima di ridefinirlo, in modo che il suo significato sia quello vecchio, non quello che gli si vuole assegnare (che contiene lo stesso \cleardoublepage).
Giusto.
antonio.macrì”Ne approfitto per chiedere una cosa sull’espansione di token e in particolare su \expandafter. Quest’ultimo funziona così: prima espande il secondo (che lo segue) token e poi fa riprendere l’espansione dal token che lo segue immediatamente. Questo mi fa pensare che si crei una sorta di stack di espansione. Mi spiego meglio: vogliamo espandere tutta la ridefinizione di \cleardoublepage. Innanzitutto, devo espandere il primo \expandafter (la rappresentazione l’ho improvvisata):
[…
A questo punto ho espanso tutti gli \expandafter e \cleardoublepage. L’espansione riprende da \if@openright e, a seguire, da {, \cleardoublepage e infine \def.
Giusto il ragionamento?
Evidentemente no: non può mica riespandere \cleardoublepage. Ma allora non mi è ben chiaro come funziona.
Tutto quasi giusto, fino all’ultimo “code”. Vediamo il quasi. TeX mantiene una lista di token che elabora uno alla volta, prendendo il cibo necessario da un “input buffer” i cui rifornimenti vengono dal documento in elaborazione con il processo di “tokenization” (quello che forma comandi o passa caratteri). Se il primo token che ha nella lista è espandibile, esegue l’espansione e le procedure connesse; nel caso di una macro l’espansione provoca la ricerca degli argomenti, quindi anche il rifornimento dal buffer, e la sostituzione del token e dei suoi argomenti con la lista che viene presa dalla memoria, con la sostituzione di #1, …, #9 con gli argomenti stessi. Nel caso di \expandafter l’espansione richiede la lettura di due token e poi provoca l’espansione del secondo come detto; il primo token dopo \expandafter rimane lì nella lista (non è proprio uno stack, come vedi). Quando un token viene espanso, sparisce dalla “main token list” insieme ai suoi argomenti, ma rimane il prodotto dell’espansione da cui si ricomincia.
Ecco allora il punto fondamentale: nella lista che hai accuratamente scritto, il primo token che rimane è \def che non è espandibile! In questo caso TeX esegue la procedura connessa che, in questo caso, consiste nel riconoscere il token da definire, i “parameter tokens” (qui non ce ne sono) e il “replacement text”, cioè ciò che va dalla graffa aperta a quella chiusa corrispondente; il tutto viene passato alla memoria senza espansione e cancellato dalla “main token list”.
Un altro aspetto non secondario: l’espansione di una macro usa la definizione presente in memoria al momento. In questo caso \def ancora non è stato eseguito e quindi la definizione usata per l’espansione di \cleardoublepage a opera della catena di \expandafter è quella “precedente” (l’avevi osservato, ma è meglio dirlo più esplicitamente).
Ciao
Enrico
::logos” post=63186Salve a tutti. Chiedo perdono, anticipatamente, per la domanda semplice e sciocca. Vorrei cambiare l’uscita del comando \ref perché scriva da solo il numero delle equazioni entro parentesi e non senza niente. Qualcuno può dirmi come si possa fare?
Il pacchetto amsmath fornisce il comando \eqref che fa esattamente quello che chiedi.
Ciao
Enrico
::
Bisogna fare molta attenzione a maiuscole e minuscole. C’è un altro modo di inserire i caratteri lituani, che ho scoperto facendo qualche indagine.
`\documentclass[a4paper]{article}
\usepackage[L7x,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[lithuanian,italian]{babel}
\newcommand{\lith}[1]{\foreignlanguage{lithuanian}{#1}}\pagestyle{empty}
\begin{document}
\lith{a ą b c č d e ę ė f g h i į y j k l m n o p r s š t u ų ū v z ž}\lith{A Ą B C Č D E Ę Ė F G H I Į Y J K L M N O P R S Š T U Ų Ū V Z Ž}
Lo \lith{Žalgiris} di \lith{Kaunas} è una delle migliori squadre di basket (\lith{krepšinis}) della Lituania.
\end{document}`
Avrai anche la sillabazione corretta. Per le parole in lituano verrà usato il font Latin Modern; quindi non dovresti avere problemi con il tuo documento che già li adopera.Ciao
Enrico
24 Settembre 2011 alle 16:26 in risposta a: problemi con la gestione delle “floats” in una pagina #64096::
Aggiungi \vspace*{-1cm} subito dopo \begin{figure}; questo alzerà il tutto di un centimetro (aggiusta a piacere). Per spostare a destra, scrivi
` \makebox[\textwidth]{\hspace{2cm}%
\subfloat[prima]{\includegraphics[scale=0.5]{./images/1}}%
\qquad
\subfloat[seconda]{\includegraphics[scale=0.5]{./images/2}}%
}\\`
e analogamente per gli altri due gruppi. Questo sposta a destra di 1cm (perché stiamo centrando), non di due.Ciao
Enrico
24 Settembre 2011 alle 16:19 in risposta a: [Risolto]Scelta automatica fra \clearpage e \cleardoublepage #64112::Elrond” post=63162È possibile definire (oppure esiste già?) un comando che sia equivalente a `\clearpage’ se è impostata l’opzione di classe `oneside’ e a `\cleardoublepage’ se si usa `twoside’ (magari anche insieme a `openright’)? Girando su internet ho scoperto che è possibile definire un if del tipo `\ifoneside’ (vedi qui) che dovrebbe poter fare al caso mio, però mi piacerebbe avere il consiglio di qualcuno più competente di me in materia 🙂
Tu vuoi un comando che faccia come \cleardoublepage, eccetto quando è impostata l’opzione “openany”. Bene, quando è impostata questa opzione, il condizionale \if@openright è falso.
`\makeatletter
\newcommand{\cleartochapterpage}{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi}
\makeatother`
Se vuoi ridefinire \cleardoublepage in modo da non dover usare un nuovo comando,
`\makeatletter
\expandafter\def\expandafter\cleardoublepage\expandafter{\expandafter
\if@openright
\cleardoublepage
\else
\clearpage
\fi}
\makeatother`
Esercizio: perché funziona e non va in circolo vizioso?Ciao
Enrico
-
AutoreRisposte