Risposte nei forum create
-
AutoreRisposte
-
::
Ciao a tutti!
Ho un problema con il pacchtto Biblatex, versione 0.6 (beta). Quando uso questo pacchetto per la bibliografia i titoli dei capitoli, sezioni e sottosezioni che nell’indice occupano più di una righa, invece che andare a capo, sforano oltre il margine della pagina. La stessa cosa succede con le didascalie delle tabelle nell’indice delle tabelle.
Se invece non uso il pacchetto, i titoli nell’indice vanno normalmente a capo.
Non riesco a risolverem il problema.
Utilizzo un sistema Mac Os X e compilo con il comando Latex.Non mi risulta. Questo documento si compila perfettamente:
`\documentclass[a4paper]{book}
\usepackage[italian]{babel}
\usepackage{biblatex}
\usepackage{csquotes}\begin{document}
\frontmatter
\tableofcontents\mainmatter
\chapter{Un titolo lungo, ma lungo lungo lungo lungo lungo lungo
lungo lungo lungo lungo lungo lungo lungo lungo lungo lungo}\section{Altrettanto pomposo pomposo pomposo pomposo pomposo pomposo pomposo pomposo pomposo}
\end{document}`
Ciao
Enrico
::Salve, vorrei sapere se è possibile riportare in un altro punto del testo una equazione precedentemente scritta ed a cui è stato associato un label. Quando dico riportare non intendo la creazione di un semplice riferimento (tramite \ref) ma una ricopiatura integrale dell’equazione a volte utile per facilitare la lettura. Per ora mi dò al copia e incolla.
`\newcommand{\eqimportante}{1+1=2} % nel preambolo
…
\begin{equation}\label{importante}
\eqimportante
\end{equation}
…
Ricordiamo l'equazione importante
\begin{equation}
\eqimportante\tag{\ref{importante}}
\end{equation}`
Per \tag occorre amsmath.Ciao
Enrico
::Questo perché ridefinisce \bibitem in termini di \BR@@bibitem che ha la definizione
`\def\BR@@bibitem #1#2\par{…}`
Dunque il secondo argomento è delimitato da \par. Ovviamente questo non basta e occorre anche modificare quel comando
`\catcode`\^^M=10\relax`
in un più onesto
`\catcode`\^^M=5\relax`Enrico, ora funziona tutto in maniera spettacolare. 😀
Mi resta la curiosità di capire che cosa fa quel (per me) ermetico
`\catcode`\^^M=5\relax`
e quali sono i cambiamenti ora che ho messo 5 al posto di 10.Non è affatto ermetico; basta leggere l’aureo articolo su ArsTeXnica che parla appunto dei codici di categoria. 🙂
^^M indica il carattere di fine riga che TeX inserisce quando legge un file; siccome ogni sistema operativo ha il suo modo di fare, Knuth ha deciso che, una volta trovata la fine riga (secondo quanto stabilito dal SO), tutto ciò che la indica viene scartato e sostituito con un carattere fisso (quello di numero \endlinechar, usualmente 13).
Questo carattere ha, normalmente, codice di categoria 5. Quando TeX ne vede due consecutivi, li sostituisce con un token \par, altrimenti questo carattere diventa equivalente a un token di categoria 10 (spazio).
Mi dirai, ma se io su una riga batto due spazi e poi il ritorno a capo, come fa TeX a trovare due fine riga consecutivi? Risposta: gli spazi a inizio riga sono del tutto ignorati. Così si può far rientrare il codice come ci pare, senza preoccuparci di spazi spuri che, invece, possono comparire a fine riga.
Una definizione come \def\xxx#1\par{…} delimita l’argomento con il token \par; ma le due chiamate
`\xxx aaa\par
\xxx aaa
`
sono del tutto equivalenti.Ciao
Enrico
::Ciao a tutti, dopo tanto torno e sempre con in miei mille dubbi!
Vorrei dare un colore ad una sola cella di una tabella, in modo che si capisse che non è stata utilizzata, come si fa?
Pacchetto colortbl
E poi un’altra domanda che non riguarda la tabella, esiste una specie di programma che gestisce texlive (linux) come MikTex per win? per far fare gli aggiornamenti, far ricaricare i pacchetti ecc ecc..
No, speriamo per TeX Live 2008.
Ciao
Enrico
::Ciao, purtroppo è saltato fuori un altro problema con l’ambiente sidebyside. 😥 Vorrei fare un esempio di bibliografia con l’ambiente thebibliography, ma purtroppo sembra che il comando \bibitem sia indigesto a sidebyside. Riporto l’esempio completo con i codici che mi interessano.
…
In compilazione c’è addirittura un errore di sintassi…
Se provo a ridefinire \bibitem come \item la bibliografia almeno viene generata, anche se naturalmente non nel formato corretto: resta però anche un’incompatibilità con minitoc.
Mi andrebbe bene anche una soluzione “spiccia e sporca” (purché funzionante): gli esempi bibliografici sono solo quei due, e \bibitem non lo uso più per tutta la guida.
Il problema è creato dal pacchetto backref, che impone, da qualche parte ci sarà pure scritto, che ogni \bibitem sia seguito da una riga vuota:
`\begin{thebibliography}{1}
\bibitem{a} testo\bibitem{b} testo
\end{thebibliography}`
Questo perché ridefinisce \bibitem in termini di \BR@@bibitem che ha la definizione
`\def\BR@@bibitem #1#2\par{…}`
Dunque il secondo argomento è delimitato da \par. Ovviamente questo non basta e occorre anche modificare quel comando
`\catcode`\^^M=10\relax`
in un più onesto
`\catcode`\^^M=5\relax`
Naturalmente, scrivere \bibitem fuori da un ambiente thebibliography dà errore sempre.Ciao
Enrico
::Professore,
per pura curiosità, se io volessi usare, cosa che non farei mai, i numeri cmu negli ambienti matematici, che cosa ci devo mettere dentro \SetMathAlphabet?
Sbagli a usare \SetMathAlphabet, perché questo serve a modificare il font secondo la versione (normal, bold o altre disponibili).
`\DeclareMathAlphabet{\mathui}{OT1}{cmr}{m}{ui}`
Poi puoi scrivere $\mathui{orrore}$.
Ciao
Enrico
::Il font è cmu (cm unslanted).
Ecco un esempio
`
\documentclass[10pt,twoside,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\font\cmuf=cmu10
\begin{document}
\cmuf
\lipsum
\end{document}`Ho provato a rinominare \rmdefault e ad usare \DeclareMathAlphabet e \SetMathAlphabet ma non riesco ad usarli né nel testo semplice e né in ambienti matematici come si può notare dai pedici e apici dei due link.
`{\fontshape{ui}\selectfont Sottogruppi}`
La qualità tipografica e le scelte dei tipi di carattere di quel documento sono assai discutibili. Non solo usa il corsivo raddrizzato, ma anche il font cmdunh, che è una specie di abominio; esiste solo perché Knuth voleva mostrare come, cambiando i parametri, si possano ottenere dagli stessi sorgenti Metafont altri tipi di carattere. Come caratteri particolari per un marchio commerciale (di sigarette, in questo caso) possono anche andare, in un documento stampato no.Ciao
Enrico
::Scusa Enrico per cosa sta
`
\@dblarge
`
Provo anch’io ad applicarmi…È \@dblarg. Serve per fornire automaticamente un argomento opzionale se non è dato. La definizione di \@chapter è
`\def\@chapter[#1]#2{…}`
e quindi \@chapter si aspetta di trovare una parentesi quadra subito dopo. Dando \@dblarg{\@chapter} si hanno due casi
`\@dblarg{\@chapter}{arg}
\@dblarg{\@chapter}[optarg]{arg}`
Nel primo caso il risultato è come se si fosse dato
`\@chapter[arg]{arg}`
nel secondo invece risulta
`\@chapter[optarg]{arg}`
Naturalmente tutto questo è nascosto all’utente. Chi scrive \chapter{Pippo} non ha bisogno di sapere che “Pippo” non è in realtà l’argomento di \chapter (che di fatto non è una macro con argomenti :!:) né che, se scrive \chapter[Pluto]{Pippo}, non sta dando veramente un argomento opzionale a \chapter.La macro \chapter viene trasformata in
`\@dblarg{\@chapter}`
e, a questo punto, accade la magia di cui sopra.Riassumendo: se vuoi definire un comando \xxx che abbia un argomento opzionale e uno obbligatorio, con la clausola che se l’argomento opzionale manca sia considerato uguale a quello obbligatorio, le strade sono due:
`\newcommand{\xxx}[2][]{%
\def\next{#1}%
\ifx\next\@empty
\@xxx[#2]{#2}%
\else
\@xxx[#1]{#2}
\fi}
\def\@xxx[#1]#2{}`
Oppure si può scrivere
`\newcommand{\xxx}{\@dblarg{\@xxx}}
\def\@xxx[#1]#2{}`
Quale sia meglio, mi pare evidente.Ciao
Enrico
::[quote]E se volessi fare la stessa cosa con le sezioni?
Non ti applichi. 🙂
Prima di tutto grazie.
Ad applicarmi mi applico avevo dato \show\section e non ci avevo capito un tubo.
In pratica la soluzione che avevo provato con chapter andava e va bene per le sezioni.
A proposito, per il capitolo la tua soluzione non funziona infatti \capitolo* dà errore mentre
`
\makeatletter
\let\oldchapter\chapter
\let\@schapter\oldchapter
\makeatother`funziona.[/quote]
`\makeatletter
\def\@schapter{\@dblarg{\@chapter}}
\makeatother`
Ciao
Enrico
::Buffa questa cosa:
`\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{xymtex}
\begin{document}
$\square$
\end{document}`
produce l’errore:
`$;\relax \expandafter \threech@r \@membera {}{}\relax \ifx \@memberb \ETC.
! File ended while scanning use of \@m@mb@r.
\par
`
In effetti ho visto che
`\Box
`
e
`\square
`
danno la stessa cosa. Quindi se si usano xymtex e amsmath basta usare \Box al posto di \square.Tuttavia, se c’è qualcuno che sa come risolvere l’incompatibilità con \square, son qui
XyMTeX ridefinisce \square.
`\usepackage{amssymb,amsmath}
\let\amssquare\square
\usepackage{xymtex}
\let\xymsquare\square`
Poi dipende da quale vuoi che sia il significato di \square che ti serve di più. Se è quello di amssymb, scrivi
`\renewcommand{\square}{\amssquare}`
Ciao
Enrico
::Sto preparando una relazione in inglese; per ciascun capitolo ho un file .tex, richiamato nel file principale mediante il comando \input. Poiché un capitolo devo scriverlo in italiano, come faccio a “dire” a LaTeX che per quel capitolo deve utilizzare le regole di sillabazione per l’italiano e non quelle per l’inglese?
Nel preambolo scrivi \usepackage[italian,english]{babel}, così la lingua principale del documento è l’inglese.
Per il tuo capitolo in italiano basta che tu scriva
`\begin{otherlanguage}{italian}
\input{capitoloitaliano}
\end{otherlanguage}`
Usa “otherlanguage*” se non vuoi che le parole chiave siano tradotte in italiano.Ciao
Enrico
::Ciao Enrico, ho corretto la frase così:
Nel modo matematico, ogni lettera è considerata come un nome di variabile e viene scritta come tale. Se si vuole inserire un breve testo all’interno di una formula fuori corpo (con il normale font tondo e spaziatura normale), allora bisogna scriverlo usando il comando \text{<...>}.
Eh, mica tanto vero! Con \text viene usato il font “attuale”, cioè quello in vigore fuori dalla formula. Perciò, se il contesto è corsivo, il risultato di \text è in carattere corsivo.
Ciao
Enrico
::Rieccomi!
Ho trovato un altro problemino con l’ambiente sidebyside (che alla fine mi sono deciso ad usare nella prima forma, quella col minuscolo rientro, che secondo me ci sta bene).
Nel codice, gli spazi bianchi sembrano non avere effetto! Eppure a me piacerebbe incolonnare (anche visivamente) alcuni simboli nel codice. Il typeset invece è perfetto. Ecco un esempio (per comodità, riporto tutto un documento compilabile).
`…`
Non riesco ad allineare i vari & nell’ambiente align, posso aggiungere spazi a volontà, ma non succede niente…C’è una cura?
Suppongo ci voglia qualche opzione per listings. Il file sideside.tmp viene scritto con tutti gli spazi che inserisci; se listings non li rispetta, non saprei che altro farci.
Ciao
Enrico
::Io credo dritto.
Per completezza, riporto una citazione sugli AMS Euler:
AMS Euler sono una famiglia di font matematici commissionata dalla American Mathematical Society e disegnata da Hermann Zapf e Donald Knuth. Cercano di emulare lo stile della calligrafia di un matematico che scriva simboli matematici sulla lavagna, che è dritto, piuttosto che inclinato.
È per questo che ho qualche dubbio sull’uso di “dritto” come contrapposto a “corsivo matematico”.
🙄
Sulla grafia dei matematici che scrivono alla lavagna ci sarebbe da dire parecchio. 😀 Non sulla mia, ovviamente, che è irreprensibile. 8)
Il nome “corsivo” ha due significati diversi: indica sia la scrittura “a mano” che i caratteri tipografici che la imitano. La scrittura a mano ha le aste diritte, almeno quella normale di chi ha imparato a scrivere nella scuola italiana, mentre quella “calligrafica” tende ad avere le aste inclinate. Le lettere che indicano variabili di solito si scrivono con un’attenzione maggiore, quindi quasi sempre con le aste diritte.
Per maggiore chiarezza menzionerei proprio le “aste diritte”.
Il carattere tipografico che in inglese si chiama “roman type” in italiano è “tondo”.
Ciao
Enrico
29 Novembre 2007 alle 17:04 in risposta a: simulare \thanks con molti \author nel documento [risolto] #19352::Ma non è più corretto scrivere così?
`
\makeatletter
\newtoks\@authortoks
\@authortoks={\@empty}
\newcommand{\@authorcomma}{, }
\let\orig@author\author
\renewcommand\author[2]{%
\@authortoks\expandafter{\the\@authortoks#1\footnotemark[#2]\space\@authorcomma}%
}
\newtoks\@addresstoks
\newcommand{\address}[2]{%
\@addresstoks\expandafter{\the\@addresstoks\footnotetext[#1]{#2}}}
\let\orig@maketitle\maketitle
\def\maketitle{%
\orig@author{\the\@authortoks}
\begingroup
\renewcommand{\thefootnote}{\fnsymbol{footnote}}%
\orig@maketitle
\the\@addresstoks
\endgroup}
\makeatother`No, così hai una virgola anche dopo l’ultimo.
Ma mi spieghi meglio cosa fanno \@authortoks e \the\@authortoks dentro la ridefinizione di author e quale è la loro differenza?
\@authortoks è il nome di un registro token, \the\@authortoks ne estrae il contenuto. Per assegnare un valore a un registro token si scrive
`={ }`
dove il carattere = è opzionale. Siccome le regole di TeX prevedono chesia seguito da una parentesi graffa aperta, TeX espande i token successivi al nome finché trova una graffa aperta. Quindi con
`\@authortoks\expandafter{\the\@authortoks}`
la presenza di \@authortoks impone l’espansione di \expandafter, la quale causa l’espansione del token successivo a quello che segue \expandafter, quindi \the; così il contenuto di \@authortoks viene immesso nella lista di token tra le graffe e si ottiene il risultato voluto.Un po’ diverso se si desiderasse aggiungere qualcosa all’inizio della lista. Nella macro che segue, #1 è la lista di token da aggiungere, #2 il nome di un registro token.
`\def\addinfrontof#1#2{%
\toks0={#1}%
#2\expandafter{\the\toks0\expandafter\space\the#2}}`
È interessante capire perché funziona. Dopo aver caricato la lista nel registro token temporaneo \toks0, il passo successivo è come prima. Con una differenza: quando \expandafter causa l’espansione di \the, questo trova \toks e la regola vuole che \toks sia seguito da un numero. Quando TeX è in cerca di un numero trova le cifre espandendo i token finché ne trova uno inespandibile che non sia una cifra. Perciò qui, trovando uno 0, espande il token successivo che è \expandafter, il quale provoca quella del secondo \the, il quale estrae il contenuto del registro #2. Il token \space, alla fine, sparisce perché segue una costante. WOW.Ciao
Enrico(Nota: ho modificato leggermente la macro perché, se per caso il registro token #2 avesse un contenuto che comincia con un numero si sarebbe nei pasticci.)
-
AutoreRisposte