Risposte nei forum create
-
AutoreRisposte
-
::
Enrico, perdonami, ma non ti seguo:
Lascia perdere la vecchia definizione. Se la provi con differenziali di ordine superiore vedrai subito che l’esponente va troppo in alto.
L’uso di differenziali di ordine superiore non è da imputare al comando \deriv, non \diff, o mi sbaglio? Inoltre nell’articolo citato (pag. 46, colonna destra) c’è proprio un esempio di derivata seconda ottenuta con il comando \deriv
`a\deriv[2]{y}{x}+…` e a me non sembra sbagliata la posizione dell’esponente. Forse non ho capito quello che mi dicevi?Prova a guardare affiancate le formule ottenute con la vecchia definizione (cambia il nome in \diffold) e la nuova. Vedrai che l’esponente è nettamente più in alto (0.84pt, per la precisione).
confronta le due formule
`\int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\diff x
\int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\mathrm{d} x`(in un display, naturalmente) e scoprirai che nella prima c’è una spaziatura di troppo.
D’accordo, la tua pars destruens ha fatto breccia. La pars costruens? Non posso mica usare sempre \mathrm{d} e ricavarmi ogni volta gli spazi a mano?
Perché no? Si tratta di mettere (o no) un \, davanti a \mathrm{d}; con
`\newcommand{\diff}{\mathrm{d}}`
puoi scrivere
`\int_{a}^{b}f(x)\,\diff x`
Ciao
Enrico
::Ciao a tutti,
mi riallaccio in parte a un discorso fatto un po’ di tempo fa (Copiare un comando di sezionamento, <http://guit.sssup.it/phpbb/viewtopic.php?t=1584>):[quote]`\newenvironment{esercizio}[1]{% L'ambiente prende un parametro: il titolo
% dell'esercizio.
\noindent% L'ambiente non e` preceduto da alcuna
% indentazione.
\normalfont% I caratteri sono scritti normalmente, in
% romano.
\normalsize% I caratteri hanno un corpo normale.
{\bfseries#1}% *Solo* il primo argomento (il titolo) e` in
% grassetto.
\hspace{.575em}% Vi e` una distanza orizzontale che separa il
% titolo dal resto della consegna.
}
{%
\clearpage% Alla fine dell'esercizio vi e` un salto pagina.
}`[…] Una cosa di sicuro manca nella tua definizione: dopo \hspace{…} devi mettere \ignorespaces, altrimenti LaTeX vede lo spazio che viene dopo \begin{esercizio}{titolo} (è di solito un fine riga, ma non cambia la faccenda).[…]
In questo momento sto realizzando qualcosa di simile:
`\newenvironment{esercizio}%
{%
\par\medskip\noindent\textbf{Esercizio.}\ \ignorespaces%
}%
{%
\par\smallskip%
}`
In merito a quel commento su «\ignorespaces»: tutto fila liscio se richiamo l’ambiente in questo modo
`\begin{esercizio}
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
\end{esercizio}`
ma se volessi scrivere il sorgente così, invece
`\begin{esercizio}Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla\end{esercizio}`
salta fuori un salto di una riga che non mi piace (in poche parole: vorrei dire a LaTeX che la semantica di quella riga bianca non rappresenta l’inizio di un nuovo periodo, come «\par», ma una semplice separazione «visiva» al livello del sorgente, che non si deve ripercuotere sul risultato).Come potrei fare?[/quote]
La riga vuota ha una funzione sintattica nei file .tex: significa “finisci il paragrafo” (o capoverso). In quasi nessun ambiente puoi fare così senza avere effetti indesiderati. La separazione visiva è già data da \begin{esercizio}, magari preceduto da una riga vuota.Ciao
Enrico
::Prova questo codice
`\begin{equation}\label{eq:equazione}
\hbox to .9\linewidth{$\displaystyle{x^2+\frac{1}{2}}$}
\end{equation}`e non dimenticare le parentesi graffe che racchiudono la formula o esce uno schifo.
Ti da anche un Overfull \hbox. Comunque, se devi avere per forza questo risultato, ignora il warning.
Ti dà un Underfull \hbox, forse. Che si evita semplicemente mettendo un \hfil dopo la formula. Con \hbox to
si chiede a TeX di riempire una scatola della dimensione specificata. Se non c’è “colla” sufficiente, usa quella che ha. Perché con le graffe non viene spaziata la formula? Perché TeX la considera una “sottoformula” e quindi la congela così com’è. Così per esercizio, un modo meno barbaro per ottenere una formula a una distanza fissa dal margine sinistro nell’ambiente equation può essere:
`\newcommand{\fleq}[2][2]{%
\hbox to 0pt{\hss
\hbox to\columnwidth{\hspace{#1em}$\displaystyle#2$\hfil}%
\hss}%
}
\begin{equation}
\fleq{x^2+\frac{1}{2}}
\end{equation}`
L’argomento obbligatorio è la formula, quello opzionale il numero di em da lasciare come distanza dal margine (default 2).Visto che stai studiando le \hbox, puoi cercare di capire che cosa succede.
Ciao
Enrico
::Salve a tutti.
So bene che ad alcuni non piacerà l’idea, ma visto che la normativa internazionale ISO 31/XI impone l’uso della derivata come operatore, mi sto ponendo il problema di definirla adeguatamente (con il carattere tondo, per cominciare).
Poiché, per fortuna, qualcuno ha fatto lo “sporco lavoro” per me, in modo da definire perfettamente la derivata in quanto a font e spaziature, mi accingevo a fare un semplice copia e incolla del comando che Claudio Beccari (è lui quel “qualcuno”) ha chiamato \diff.
Il problema sorge dal fatto che, purtroppo, in due documenti diversi (lontani anche nel tempo, per la verità) Claudio utilizza due definizioni che, almeno a me, sembrano diverse.
Nell’articolo di dieci anni fa Typesetting mathematics for science and technology according to ISO 31/XI, disponibile qui, per \diff è impiegata questa sequenza di comandi in TeX (purtroppo) per me incomprensibile:`\makeatletter
\providecommand*{\diff}%
{\@ifnextchar^{\DIfF}{\DIfF^{}}}
\def\DIfF^#1{%
\mathop{\mathrm{\mathstrut d}}%
\nolimits^{#1}\gobblespace}
\def\gobblespace{%
\futurelet\diffarg\opspace}
\def\opspace{%
\let\DiffSpace\!%
\ifx\diffarg(%
\let\DiffSpace\relax
\else
\ifx\diffarg[%
\let\DiffSpace\relax
\else
\ifx\diffarg\{%
\let\DiffSpace\relax
\fi\fi\fi\DiffSpace}`
mentre nella recente Introduzione all’arte della composizione tipografica con LaTeX dello stesso autore, è impiegato un più laconico (e un po’ più comprensibile):
`\newcommand*{\diff}{\mathop{}\!\mathrm{d}}`Vi chiedo: i due comandi sono identici, ma scritti in maniera diversa? Se no, quale è più corretto adottare?
Aggiungo (ovemai fosse utile a risolvere l’enigma) che nell’articolo, al \diff definito in TeX, sono accoppiati i seguenti comandi (che penso possano essere utili) per la scrittura automatica della derivata totale e parziale, rispettivamente \deriv e \pderiv:`\providecommand*{\deriv}[3][]{%
\frac{\diff^{#1}#2}{\diff #3^{#1}}}\providecommand*{\pderiv}[3][]{%
\frac{\partial^{#1}#2}%
{\partial #3^{#1}}}`Lascia perdere la vecchia definizione. Se la provi con differenziali di ordine superiore vedrai subito che l’esponente va troppo in alto. La nuova è molto più efficiente e non ha quel problema. Ne ha altri che secondo me non sono irrilevanti: confronta le due formule
`\int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\diff x
\int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\mathrm{d} x`
(in un display, naturalmente) e scoprirai che nella prima c’è una spaziatura di troppo.Un consiglio: non usare \providecommand. Se per caso uno dei pacchetti che carichi definisse il comando \deriv, ti gratteresti la testa a lungo per capire dove stai sbagliando.
E, come Catone tanto tempo fa diceva Ceterum censeo Carthaginem esse delendam alla fine di ogni suo discorso, io dico: Il simbolo d di differenziale non è un operatore.
Ciao
Enrico
::Ciao a tutti.
Alla fine di un paragrafo (il penultimo di un capitolo) vorrei inserire tre immagini che mi occupano ognuna una pagina intera.
Il problema è che queste immagini, non vengono inserite alla fine del penultimo paragrafo, ma alla fine dell’ultimo.
Il codice che ho usato, alla fine del testo del penultimo paragrafo è il seguente:`\begin{figure}[!ht]
\centering
…
\end{figure}`
Come posso fare?`\begin{figure}[p]`
Ciao
Enrico
::Mi serve la definizione del comando \fbox.
In un pacchetto, non ricordo quale, c’era scritto che si trova nel file latex.tex; però io non lo riesco a trovare.
Sta in “latex.ltx” dalla riga 4636 in poi. L’idea è semplice, poi ci sono tutte le complicazioni dovute agli argomenti opzionali che servono per \framebox, il quale è definito usando le macro con cui si fa anche \fbox.
Si tratta, essenzialmente, di quanto fa Knuth nel TeXbook per la macro \boxit (esercizio 21.3):
`\def\boxit#1{\vbox{\hrule\hbox{\vrule\kern3pt
\vbox{\kern3pt#1\kern3pt}\kern3pt\vrule}\hrule}}`
In LaTeX i \kern3pt sono sostituiti da \kern\fboxsep.Ciao
Enrico
::Vorrei sapere cosa fanno i seguenti comandi:
1) \mathsurround
2) \mathrel
3) \cr
4) \crcr
5) \ialign
6) \noaligned infine questo, che ho trovato spesso
7) \leaders
1) \mathsurround è un parametro dimensionale che dice quanto spazio supplementare TeX deve aggiungere a sinistra e a destra di ogni formula in corpo ($…$). Alcuni stili tipografici vogliono infatti che le formule siano leggermente più spaziate rispetto alle parole. Normalmente \mathsurround è 0pt.
Legato a \mathsurround c’è il comando interno \m@th: quando si usa il modo matematico per fare qualche costruzione che altrimenti sarebbe più complicata (ce ne sono parecchie in plain.tex, cerca \m@th e lo scopri), si inserisce questo comando per annullare l’eventuale \mathsurround positivo:
`\def\dots{\relax\ifmmode\ldots\else$\m@th\ldots\,$\fi}`
\m@th equivale a \mathsurround=0pt; occorre sapere che il valore usato è quello valido alla fine della formula; il valore globale non cambia perché $…$ costituisce un gruppo.2) \mathrel ha un argomento; questo, considerato come semplice simbolo, verrà spaziato dal resto usando le regole per i simboli di relazione. Per esempio, il modo corretto di scrivere “a R b” che si usa nei libri di matematica è $a\mathrel{R} b$.
3) \cr è il comando primitivo che dice a TeX che finisce la riga di un allineamento; si può usare solo dentro un \halign (o un \valign, ma qui andiamo troppo nell’esoterico)
4) \crcr è un comando primitivo che dice a TeX: se c’è appena stato un \cr, ignorami, altrimenti fa’ finta che io sia \cr
5) \ialign è basato su \halign: dice di costruire un \halign in cui però il \tabskip iniziale sia nullo e il parametro \everycr sia vuoto
6) \noalign: serve per inserire materiale fra le righe di un allineamento. Su \noalign è basato, per esempio, \hline di LaTeX
7) \leaders: è il comando che permette di stampare i puntini di guida nell’indice. La sintassi è \leaders
, dove sta a indicare una \hbox, una \vbox, una \vtop oppure una \hrule oppure una \vrule. Esempio:
`\def\hrulefill{\leaders\hrule\hfill}
\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill}`
Il primo riempie uno spazio orizzontale con una linea, prova con
`\hbox to \hsize{Due \hrulefill\ parole}`
Il secondo usa \cleaders: la \hbox viene ripetuta fino a riempire lo spazio richiesto, lasciando spazi bianchi uguali all’inizio e alla fine. Invece \leaders allinea le \hbox ripetute a una “griglia invisibile”: negli indici si deve usare \leaders e non \cleaders. Esempi:
`\catcode`@=11
\def\mydot{\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}}
\catcode`@=12
\hbox to \hsize{AAA \leaders\mydot\hfill\ AAA}
\hbox to \hsize{AAAAA \leaders\mydot\hfill\ AAAAA}
\hbox to \hsize{AAAAA \cleaders\mydot\hfill\ AAAAA}`
Nelle prime due i puntini sono allineati verticalmente fra di loro, nella terza no.Dunque, per scrivere una fila di puntini per indicare uno spazio da riempire in un modulo, si usa \dotfill che è basato su \cleaders (non ci sono allineamenti verticali da rispettare); una macro per i puntini guida nell’indice deve usare \leaders.
A dire il vero si può usare \leaders anche in modo verticale e ci sarebbe pure \xleaders, ma direi che può bastare.
Però puoi provare a vedere che succede con questo codice
`\hbox to 2.5in{\cleaders\vbox to .5in{\cleaders\hbox{\TeX}\vfil}\hfil}`
Non è carino? (Dal TeXbook, naturalmente.)Ciao
Enrico
::In LaTeX o in TeX, nei fonts cm, il codice della barra / è “30E. Vorrei sapere quale è il codice della barra dritta cioè di |.
Che significa? Quale codice?
Il \mathcode di “/” è “13D, quello della barra diritta è “26A.
Con “30E scegli una barra diritta dalla famiglia di font numero 3 (simboli), di fatto quella che otterresti con “\big/”. Infatti il \delcode di “/” è “02F30E, che significa:
- a grandezza normale, la barra diritta usata come delimitatore è il carattere “2F nella famiglia 0 (per default cmr10); se invece a grandezza maggiore, si usa il carattere “0E della famiglia 3 (per default cmex10); il font della famiglia 3 ha le informazioni per stampare versioni più grandi, all’occorrenza.
Il \delcode della barra diritta è “26A30C; infatti nel font cmr10 non c’è il carattere per la barra diritta e la versione di grandezza normale è presa dalla famiglia 2 (per default cmsy10). E infatti, il \mathcode di | è “026A, quello di / è “013D.
Ahi! Perché “013D? Be’, domandalo a Knuth. 😀 No, il motivo è “facile”: siccome la maggioranza dei simboli delle formule viene preso dal font della famiglia 1 (per default cmmi10), prendere la barra diritta da lì permette la crenatura automatica.
Esempio:
`\setbox0=\hbox{$V/$}\showthe\wd0
\setbox0=\hbox{$V\mathchar`/$]\showthe\wd0`
dà come dimensioni, rispettivamente, 11.94444pt e 13.05557pt. Ciò mostra che, nel primo caso c’è crenatura, nel secondo no. (Con \mathchar`/ si ottiene il carattere di posto “2F nella famiglia 0, cioè la barra / come si desidera.)Ciao
Enrico
::Fossi in te, userei le impostazioni di default (opzioni fleqn e leqno del pacchetto amsmath). Se vuoi proseguire nella tua strada (non te lo consiglio però) prova:
Lo so che rompo le palle, ma io verrei che solamente una formula mi si allineasse a sinstra, e le altre tranquillamente la centro..pensavo che esisteva qualche comando particolare all’interno dell’ambiente, o qualche ambiente apposta.
Dovresti, per favore, essere un po’ più chiaro nelle domande. Che significa “allineata a sinistra”? Al margine? O un insieme di formule allineate fra loro a sinistra e globalmente centrate?
Se vuoi una formula allineata al margine sinistro (e non trovo motivazioni valide per farlo, illuminaci, ti prego :D) basta un semplice
`\begin{flushleft}
$\displaystyle$
\end{flushleft}`
O capisco male ciò che desideri? Se ti serve un margine, basta aggiungerlo prima della formula con \hspace*{} Ciao
Enrico
17 Marzo 2007 alle 23:52 in risposta a: Ambiente per inserire codice LaTeX con di fianco il typeset #10075::Lorenzo,
Riprendo questo topic perché ho finalmente trovato due ottimi modi per riprodurre l’ambiente che cercavi.
A parte l’ottimo pacchetto sverb, ne esiste un’altro che si chiama, nemmeno a farlo apposta
example
ftp://tug.ctan.org/pub/tex-archive/macros/latex209/contrib/misc/example.styNe segnalo un altro: examplep (la TeX Live più recente ce l’ha). Mi sono divertito a costruire una versione di example che non usa file esterni, ma mi sono accorto che è adatto solo a esempi molto brevi e poco complicati.
Ciao
Enrico
::Cancella quei due \MakeUppercase.
Come mai? Che comando va usato al loro posto?
Non ho indagato a fondo su quanto succede in quella situazione. Sta di fatto che erano quelli che creavano il problema, perché evidentemente nel \leftmark e nel \rightmark c’è anche un comando “\selectlanguage{italian}” che, con \MakeUppercase, diventa un “\selectlanguage{ITALIAN}”: a questo punto c’è l’errore.
In questo caso sono inutili, visto che non erano stati ridefiniti i \…mark i quali, per le classi standard, contengono già il comando \MakeUppercase.
Ciao
Enrico
::Ho avuto lo stesso problema con babel e fancyhdr.
Quello che mi capita è che quando vado a compilare il sorgente che ho incollato qui di seguito mi riporta 17 errori che dicono: “Package babel Error: You haven’t defined the language ITALIAN yet”.
`\documentclass[11pt,a4paper,openright,twoside]{book}
…
\newcommand{\fncymain}{%
\fancyhead[RO]{{\footnotesize\MakeUppercase
\rightmark}}
\fancyfoot[RO]{\thepage}
\fancyhead[LE]{{\footnotesize\MakeUppercase
\leftmark}}
\fancyfoot[LE]{\thepage}
\fancyfoot[C]{}
\renewcommand{\headrulewidth}{0.3pt}}
…
\end{document}`Cancella quei due \MakeUppercase.
Ciao
Enrico
::Guarda, manuali ne ho letti ad nauseam… per qualche motivo ho controllato questa cosa su qualche guida tranne che su LA GUIDA per eccellenza… non so perchè 😳
Ti segnalo, se non l’avessi vista, l’ottima “Introduzione” di C. Beccari. A pagina 46 trovi la descrizione di \caption che serviva. Ma là ci sono anche tante altre cose.
Ciao
Enrico
::Mi sembra di ricordare che non si puo’ specificare l’overlay all’interno di una tikzpicture. Per sicurezza prova a chiedere qui (spesso è lo stesso Tantau a rispondere):
Forum pgf/Tikz
http://sourceforge.net/mailarchive/forum.php?forum_id=45629Forum Beamer
http://sourceforge.net/forum/forum.php?forum_id=319190Il codice seguente produce 16 cerchi, uno alla volta. Se li si vuole far “apparire e scomparire” il modo migliore, secondo me, è di disegnarli tutti, rendendone uno solo non invisibile.
`\begin{frame}
\vspace*{1cm}
\begin{tikzpicture}
\foreach \c in {(0,3),(0,2),(0,1),(0,0),(1,3),(1,2),(1,1),(1,0),%
(2,3),(2,2),(2,1),(2,0),(3,3),(3,2),(3,1),(3,0)}
\draw<+-> \c circle (0.5cm);
\end{tikzpicture}\vspace{0pt plus 1filll}
\end{frame}`
Lascio a cpl il compito di modificare a suo piacimento. Ma i cerchi sono sedici.Ciao
Enrico
::Grazie… ora che me lo dici mi sa che l’avevo già letto da qualche parte, ma non sono stato in grado di ritrovarlo 😯 😀
Prendi la “(mica) tanto breve introduzione a LaTeX”, sezione 2.12, pagina 36 (nella versione che ho io). Cerca \caption e vedrai. Può essere utile cercare le cose sui manuali, sai? 😉
Come mai se uno deve scoprire le funzioni del forno a microonde legge le istruzioni e se invece vuole far funzionare un software considera la lettura di un manuale come l’ultimissima risorsa? 👿
Ciao
Enrico
-
AutoreRisposte