Risposte nei forum create
-
AutoreRisposte
-
::
Salve a tutti, sono un neofita di LaTeX (lo uso da appena due giorni ma me ne sono già innamorato!!)
Oggi ho provato a disegnare con PSTricks la funzione 1/(x^2) utilizzando questo codice:
`
\begin{pspicture}(-3.5,-2.5)(3.5,2.5)
\psaxes[labels=,linecolor=black,linewidth=1.2pt]{->}(0,0)(-3.5,-2.5)(3.5,2.5)
\psplot[linecolor=grey,linewidth=1.5pt,yMax=2]{-3}{3}{x -2 exp}
\rput[lb](6,2){$f:R\rightarrow R,f(x)=x^n;$(\emph{n pari})}
\end{pspicture}
`
Come posso evitare che la funzione “sfori” in alto??Perdonate la mia ignoranza…grazie!
Dovresti almeno specificare come chiami pstricks e quali pacchetti ausiliari servono. Non tutti sono così pratici di quel pacchetto per sapere come impostare una prova.
Quella costruzione “\emph{n pari}” dovrebbe essere “\emph{$n$ pari}”.
Ciao
Enrico
::Scusa, mi sono espresso male, avevo capito che “matrix” e compagnia sono basati su “array”, intendevo dire che sono “array” già impostati come si deve per lo scopo, anche se avere un’idea dell’ambiente array male non fa (di eqnarray sì, però!!!).
Anche riguardo l’avviso avrei dovuto essere più chiaro, qualcosa del tipo: se di notazioni matematiche ne usate poche vi può bastare questo manuale, altrimenti usate il pacchetto “amsmath”, facendo attenzione che ecc. ecc. e andatevi a leggere direttamente il manuale amsmath.
Mi rendo conto che la guida è solo introduttiva ma credo che molti, come me, cerchino di impratichirsi con i loro consigli di base prima di impegolarsi con guide più specifiche. La mancanza dell’avviso che ho suggerito porta, secondo me, a perdere tempo con l’approfondimento di brutte abitudini che si farebbe meglio a ignorare del tutto.Grazie della dritta, anche se non mi è chiara una cosa (e sai la novità, dirai): se uso quei comandi poi posso utilizzare indifferentemente \[ e \begin{displaymath} , oppure posso usare solo più \begin{displaymath}? E riguardo il fatto che è scomodo da scrivere non si potrebbe ridefinire con “dmath” o qualcosa del genere?
Con il codice magico puoi usare sia l’uno che l’altro, sono di fatto del tutto equivalenti. Se usi spesso \[…\] non ti conviene proprio la forma “lunga” e nemmeno quella “lunghetta”. Io di solito faccio così nel sorgente:
`Ecco qui la famosa formula
\[
e^{i\pi}+1=0
\]
che contiene cinque numeri molto famosi`
Come vedi, emulo nel testo .tex il risultato.Ciao
Enrico
::Complimenti, una spiegazione a prova di cretino… ma si vede che non hai ancora conosciuto uno come me!
Scherzi a parte ora so come inserirmi in desktop e vedere i file ivi contenuti, nonché creare nuove cartelle e spostarci i suddetti file (pensavo di dover metter i file .sty in /tools proprio perché non riuscivo a creare nuove cartelle), quindi un grosso passo avanti, sentiti ringraziamenti.
Ma come sempre mi capita, chiarito un dubbio, me ne sorgono un altro paio (non ho ancora capito se è sintomo di curiosità e intelligenza o di colossale ignoranza e stupidità, vabbè).A questo punto avrei deciso di creare in /tex/latex , /doc/latex , e /source/latex dell’albero locale una cartella che si chiama proprio “newpack” e mettere lì i vari file che scarico, senza creare una cartella per ognuno. Ci sarebbero problemi?
Non te lo consiglio. Tenere in ordine quelle cartelle è molto importante per quando vuoi sapere, per esempio, se un pacchetto ce l’hai già, che versione è, eccetera.
Poi, ho fatto qualche prova e “scompattando” i file .ins e .dtx mi ritrovo sommerso da file che non ho idea di dove mettere, e nelle istruzioni non lo trovo. Il file .sty va in /tex/latex/newpack , il file .pdf o comunque quelli della documentazione vanno in /doc/latex/newpack , i file .ins e .dtx vanno in /source/latex/newpack ma che ne faccio dei vari:
`.aux .cfg .clo .drv .dvi .gst .idx
.ist .log .lot .out .tex .toc`
e chissà quanti altri che non mi sono comparsi nelle prove? Non esiste da qualche parte un elenco completo da consultare? Ho cercato ma non ho trovato nulla.Dovrebbe dirtelo il messaggio quando compili con “latex newpack.ins”, elencando quali estensioni di file spostare dove.
Non mi è capitato invece il caso in cui la compilazione della documentazione richiede anche di far girare bibtex e makeindex. Se capitasse dovrei usare le istruzioni:
`% sudo mkbibtexlsr
% sudo mkmakeindexlsr`No 😀 Per carità 😀
Il comando “sudo maketexlsr” serve per far conoscere al sistema TeX i file che hai aggiunto. Per evitare di dover andare a guardare sul disco se un file c’è o no, è stato escogitato di crearsi liste di file, in modo da dover accedere solo alla lista per sapere se un file c’è e dove sta.
Se devi compilare la documentazione e c’è bisogno di bibtex o makeindex, dovrai dare
`% bibtex newpack
% makeindex newpack
% pdflatex newpack
% pdflatex newpack`
(due volte, sì).Per finire, così se Dio vuole ho una panaromica completa e non scoccio più, se dovessi scaricare delle nuove classi e dei nuovi font, in quali cartelle dovrei metterli?
La distribuzione di Wierda è molto completa. Impara un po’ alla volta.
P.S. giusto per curiosità se cerco un file .sty con il comando da terminale “kpsewhich” me lo trova, ma con spotlight no. Come mai?
Questo dipende da Spotlight che non indicizza veramente tutto. Puoi scaricarti il modulo da qui
Ciao
Enrico
::Lungi da me voler criticare il lavoro altrui, che trovo peraltro ottimo, vorrei suggerire a chi di dovere l’aggiunta di un avvertimento nella guida di base meritatamente consigliata come primo approccio al mondo LaTeX “Una (mica tanto) breve introduzione a LaTeX2e”.
Mi riferisco alla parte matematica che è datata e che rischia di far prendere cattive abitudini ai neofiti.
Andrebbe specificato che usando il package “amsmath” va utilizzata solo la sintassi \[ \] invece di \begin{displaymath} e \end {displaynmath} (almeno così viene indicato nell’altra guida sui peccati da evitare usando LaTeX2e) e soprattutto che l’uso degli ambienti “array” e “eqnarray” è stato in pratica sostituito da ambienti più potenti e versatili (“matrix”, “align”, “gather”, “split” e simili) : senza riscrivere la guida basterebbe dire a chiare lettere di leggersi direttamente il manuale di “amsmath” per il loro uso e non perdere tempo con l’insoddisfacente “eqnarray”.Un avvertimento del genere a me avrebbe risparmiato un bel po’ di tempo e qualche frustrazione e non credo di essere il solo.
Saluti e complimenti a tutti per il meraviglioso aiuto che date ai novellini come me.
La mica tanto breve non vuole essere una guida completa ed esauriente. Per chi non ha esigenze particolari per formule matematiche, i comandi del LaTeX standard sono più che sufficienti. Dovendo usare qualcosa di più, ecco che entra in gioco amsmath con i suoi ambienti.
L’ambiente “displaymath” non è stato ridefinito probabilmente perché nessuno lo usa (troppo lungo da scrivere). La cura è semplice, richiede una semplice formula magica da scrivere dopo aver caricato amsmath:
`\usepackage{amsmath}
\let\displaymath\[
\let\enddisplaymath\]`
Non ti preoccupare se non lo capisci; è come il navigatore satellitare: mica sai come funziona, però lo usi.Non è vero che “matrix” e compagnia siano più “potenti” di “array”. Del resto l’ambiente “matrix” chiama al suo interno un ambiente “array”, credici o no.
Su eqnarray invece bisogna dire che non va usato mai.
Ciao
Enrico
::Grazie mille delle indicazioni.
Purtroppo come avevo preannunciato sono molto imbranato con il computer (ho preso il Mac con difficoltà e stringendo la cinghia, visto che non sarei in grado di usare decentemente Linux, ormai conosco i miei limiti e mi sono rassegnato). Quindi mi sono rimasti dei dubbi.Sono stato incompleto, da ciò che scrivevi pensavo che avessi maggiore dimestichezza con il Terminale. Lancia l’applicazione Terminale, che trovi nella cartella /Applicazioni/Utilità. La finestra che compare rappresenta una shell e il breve testo che precede il cursore si chiama “prompt”. Siccome è personalizzabile, lo si indica genericamente con %, ciò che viene dopo sono i comandi che vengono eseguiti dando “invio”.
Hai scaricato da CTAN un file di nome newpack.zip, che ti ritrovi sulla scrivania. Con un doppio clic lo scompatti e ti viene creata una cartella newpack. Lanci il terminale e, in successione, esegui questi comandi:
`% cd ~/Desktop/newpack
% latex newpack.ins
% pdflatex newpack.dtx`
e altri che eventualmente ti siano indicati. Una volta compilata correttamente la documentazione ed estratti i file necessari, cioè le operazioni precedenti, devi mettere i file giusti al posto giusto.
`% sudo mkdir -p `kpsexpand \$TEXMFLOCAL`/tex/latex/newpack
% sudo mv *.sty `kpsexpand \$TEXMFLOCAL`/tex/latex/newpack
% sudo mkdir -p `kpsexpand \$TEXMFLOCAL`/doc/latex/newpack
% sudo mv *.pdf `kpsexpand \$TEXMFLOCAL`/doc/latex/newpack
% sudo mktexlsr`
Naturalmente dovrai spostare anche eventuali altri file che ti verranno indicati alla fine della compilazione del file .ins; la compilazione della documentazione può richiedere anche di far girare bibtex e makeindex, secondo le indicazioni che vengono fornite durante la compilazione stessa.Ciao
Enrico
::Mi dispiace aver letto questa tua spiegazione solo ora. In effetti, ero andato a cercare il significato dei comandi e avevo già ricostruito quello tu hai molto gentilmente spiegato… Grazie!
L’altro giorno mi sono però accorto che questo tipo di comando va bene quando tutto ciò che devo utilizzare può essere messo a inizio paragrafo… Supponiamo invece che io voglia ora indicare un dialogo non più con un:— Ciao, tutto bene?
Ma con un:
“Ciao, tutto bene?”
In questo caso dovrei mettere anche delle virgolette di chiusura dopo il testo del paragrafo (lasciamo stare l’indentazione, supponiamo che sia standard). C’è un modo di farlo senza utilizzare un comando tipo \dia{testo} ma un comando come \dia testo?
Non senza un “mark up” più dettagliato; per esempio: \dia … \edia o qualcosa di simile.
Se sei stato previdente e le tue battute di dialogo hanno sempre una riga vuota che segue, puoi anche usare quella come delimitatore finale:
`\def\dia{\par\begingroup\def\par{\unskip''\endgraf\endgroup}“}`
Come funziona?(1) Il \par termina il paragrafo precedente;
(2) inizio un gruppo, nel quale \par viene ridefinito, apro le virgolette;
(3) il comando \par adesso: (a) elimina eventuali spazi; (b) compone le virgolette di chiusura; (c) comanda la fine paragrafo (\endgraf è un sinonimo di \par con il significato originale) (d) chiude il gruppo, in modo che \par riprenda il suo significato originale.Sarebbe anche possibile la definizione
`\def\dia#1\par{“#1''\par}`
che ha lo svantaggio di leggere tutta la battuta come argomento.Però, se hai battute che sono composte di più paragrafi, saresti nei pasticci; quindi meglio un approccio
`\newcommand{\dia}{\par“}
\newcommand{\edia}{\unskip''}
…
\dia … \edia`
Ciao
Enrico
::Grazie mille della velocissima risposta. Quindi se ho ben capito devo creare nella libreria di home direttamente una cartella texmf e relative sottocartelle (in altre parole non devo mettere la texmf nella cartella tex/latex che esiste in libreria).
Però mi sembra di aver capito che così il pacchetto lo posso usare solo io, mentre vorrei che fosse utilizzabile da tutti gli utenti. In tal caso va bene il percorso che avevo indicato (con aggiornamento successivo del database) o è ancora un altro?Non certo in /usr/local/teTeX/tex/latex/tools, ma in una cartella apposita.
Supponiamo che tu abbia eseguito
`% latex newpack.ins
% pdflatex newpack.dtx
`
per estrarre il pacchetto e compilare la documentazione, e che ti venga indicato di installare nella directory newpack. Il modo migliore è
`% sudo mkdir -p `kpsexpand \$TEXMFLOCAL`/tex/latex/newpack
% sudo mv *.sty `kpsexpand \$TEXMFLOCAL`/tex/latex/newpack
% sudo mkdir -p `kpsexpand \$TEXMFLOCAL`/doc/latex/newpack
% sudo mv *.pdf `kpsexpand \$TEXMFLOCAL`/doc/latex/newpack
% sudo mktexlsr`
Naturalmente dovrai spostare anche eventuali altri file che ti verranno indicati alla fine della compilazione del file .ins; la compilazione della documentazione può richiedere anche di far girare bibtex e makeindex, secondo le indicazioni che vengono fornite durante la compilazione stessa. I segni ‘%’ stanno come al solito a indicare il prompt della shell. L’uso di
“kpsexpand \$TEXMFLOCAL“
che in sintassi bash può diventare
`$(kpsexpand \$TEXMFLOCAL)`
permette di evitare di doversi riferire esplicitamente all’albero locale della distribuzione. Per esempio, l’ultima versione di Wierda, quella basata su TeXLive, ha modificato il punto dove l’albero locale si radica nel filesystem in /usr/local/gwTeX/texmf.local, ma con il comando che ti ho indicato non occorre nemmeno saperlo.Le pseudovariabili d’ambiente usate dalle distribuzioni TeX sono molte; è importante conoscere TEXMFLOCAL e HOMETEXMF; la prima sappiamo già che cosa significa, la seconda indirizza all’albero personale che, nelle distribuzioni di Wierda per Mac OS X, sta in ~/Library/texmf. Se dai
`% texdoc kpathsea`
dal Terminale, ottieni la documentazione completa. Anni prima che Thomas Esser ideasse la sua famosa distribuzione multipiattaforma teTeX, Karl Berry aveva escogitato il sistema kpathsea per evitare che ogni utente dovesse definire decine di variabili d’ambiente con sintassi complicate, rendendo molto più agevole il compito degli amministratori di sistema che avessero voluto installare TeX.Ultimissima indicazione: se il pacchetto consiste di un solo file .sty, basta sostituire newpack nel codice di prima con misc.
Ciao
Enrico
::scusate sono un ebete…bastava fare {p{5cm} rp{5cm} }, ad esempio
Così hai tre colonne, una di 5cm, una con allineamento a destra di larghezza non specificata (e che quindi dipenderà dagli elementi che sono nella tabella) e una di 5cm.
Il risultato che vuoi si ottiene usando il pacchetto array (\usepackage{array} nel preambolo) e definendo la tabella come
`\begin{tabular}{p{5cm}>{\raggedleft\arraybackslash}p{5cm}}`
Ciao
Enrico
::esiste la possibilità di creare un elenco ad es. di nomi, ordinato alfabeticamente con l’ambiente “description” o qualcosa di equivalente?
E poi? Un ambiente che ti prepari il caffè e ti scaldi l’acqua per la doccia? 😀
Consulta la documentazione dei pacchetti gloss, glosstex, glossary e nomencl per vedere quale ti aggrada di più.
Ciao
Enrico
::ho bisogno della parentesi graffa… è un sistema di equazioni, è obbligatoria ^__^
Nemmeno per idea. Se fosse veramente ciò che dici non avresti bisogno di numerare ciascuna equazione. 😀
A parte gli scherzi, so bene che c’è gente che ha le richieste più strane. Ma dimmi, perché mai vorresti cambiare il delimitatore? Se ci deve essere la graffa, quella ci va, no?
E dove è complicata la sintassi dell’ambiente numcases?
`\begin{numcases}{}
eq1\\
eq2
\end{numcases}`
L’ambiente non è nato per numerare equazioni di un sistema, ma per scrivere comodamente definizioni per casi e numerarli per riferircisi. Questa è la ragione dell’argomento.Se proprio vuoi cambiare il delimitatore, puoi usare un ambiente numcases+ che puoi definire così:
`\newenvironment{numcases+}[2][\lbrace]
{\def\{{#1}\numcases{#2}}{\endnumcases}`
Per ottenere la parentesi tonda puoi scrivere
`\begin{numcases+}[(]{}
a+b=c\\
d+e=f
\end{numcases+}`
Ma non puoi usare il comando \{ all’interno dell’ambiente.Ciao
Enrico
::Salve,
ho un problema con l’ordinamento alfabetico delle voci in bibliografia. Non riesco a capire come mai non mi restituisce l’ordine alfabetico sulla base della prima voce che scrivo nel campo “author”.Io compilo il campo “author” con “Cognome e Nome” o con il nome dell’istituzione che ha redatto l’opera da inserire es. “Basle Committee on Banking Supervision“, ma non ottengo l’ordine alfabetico in base all’iniziale del Cognome o in generale della prima lettera presente in author.
Errore: “Nome Cognome” oppure “Cognome, Nome”. Nota la virgola. In molte lingue occidentali una persona si chiama “Nome Cognome” (fa eccezione l’ungherese) e a questo si è adeguato l’autore di BibTeX.
Per instituzioni, scrivi un gruppo di graffe in più:
`name={{Banca d'Italia}},`
Ciao
Enrico
::ho bisogno di inserire due formule e lo faccio con la seguente sequenza di comandi
`\begin{eqnarray}
& \label{eq:eb}\mathcal{E}_b=E_x u + E_y v + E_t\\
& \label{eq:ec2} {\mathcal{E}_c}^2=\left( \pdd{u}{x} \right)^2 + \left( \pdd{u}{y} \right)^2+\left( \pdd{v}{x} \right)^2 + \left( \pdd{v}{y} \right)^2
\end{eqnarray}`
\pdd è un comando definito da me nel seguente modo:
`\newcommand {\pdd}[2]{\ensuremath{\frac{\partial #1}{\partial #2}}}`
Il latex compila correttamente, ma l’output è un po’ fastidioso: le parentesi che racchiudono gli elementi con la x al denominatore, sono più piccole di quelle che racchiudono gli elementi con al y al denominatore… e quindi naturalmente anche gli esponenti vengono ad altezze differenti…
C’è un modo per uniformare la dimensione delle parentesi??? Ho preferito evitare di usare \big \Big perché volevo che fosse il Latex a decidere… ma così lo trovo proprio brutto esteticamente…..in casi come questi, invece, la scelta “manuale” è la migliore. Puoi però usare la scelta automatica dicendo a LaTeX che nel denominatore c’è sempre qualcosa di “profondo”
`\newcommand{\pdd}[2]{\frac{\partial#1}{\partial#2\vphantom{y}}}`
Non usare \ensuremath, non ha quasi alcuna utilità. Non c’è molta differenza fra scrivere $\pdd{u}{x}$ e \pdd{u}{x} nel testo normale; usando i dollari hai il vantaggio che puoi facilmente trovare tutte le formule matematiche.Non usare eqnarray mai, tanto meno in quel modo. L’ambiente giusto è gather di amsmath.
`\begin{gather}
\mathcal{E}_b=E_x u + E_y v + E_t \label{eq:eb}\\
\mathcal{E}_c^2=\left( \pdd{u}{x} \right)^2 + \left( \pdd{u}{y} \right)^2+
\left( \pdd{v}{x} \right)^2 + \left( \pdd{v}{y} \right)^2 \label{eq:ec2}
\end{gather}`
In questo modo non occorre modificare la definizione di \pdd. Noterai che ho cancellato le graffe attorno a \mathcal{E}_c nella seconda riga, è l’uso matematico.Ciao
Enrico
::Voglio scrivere una formula matematica del tipo a=b con un footnote *sopra* il simbolo =, ma non funziona, nel senso che il numero si vede, ma la nota a pie pagina non c’e’. Vi faccio un esempio che e’ piu’ chiaro.
Vuoi fare un cattivo servizio a ciascuno dei tuoi venticinque lettori. Poveretti, come fanno a pensare che quel numerino significa andare a guardare laggiù in basso?
Non dico che, in certi casi, per esigenze didattiche, una spiegazione del passaggio sia opportuna. L’ho usato anch’io, per indicare con un numero fra parentesi quale delle formule scritte in precedenza siano state usate. Per una faccenda del genere ti suggerirei un’altra strategia, con l’ambiente align di amsmath
`\begin{align*} % la versione con * non numera le righe
(a+b)^{p}
&= \sum_{i=1}^{p}\binom{p}{i}a^{p-i}b^i && \text{formula del binomio}\\
&= a^{p}+b^{p} && \text{per il lemma precedente}
\end{align*}`
Non puoi inserire note a piè di pagina dentro a costrutti “interni” come le formule.Se le spiegazioni fossero troppo lunghe, puoi etichettare le tue righe e dare le spiegazioni subito sotto. Le note al piede sono pesanti e vanno evitate quanto più è possibile, soprattutto scrivendo matematica.
Ciao
EnricoPS: ti danno noia gli accenti? Piè, più, è.
PPS: i tuoi lettori saranno certo più di venticinque, non come quelli di quel romanzucolo.
::ora non ho tempo proverò e ti dico…
io in realtà la voglio numerare.. ma in caratteri latini…
mi da fastidio che la tesi cominci da pagina 2 se non di più…..Ma perché non provare con il modo più semplice?
`\pagenumbering{Roman}
…
\tableofcontents
\clearpage
\pagenumbering{arabic}
…`
Ciao
Enrico
-
AutoreRisposte