egreg9

Risposte nei forum create

Stai visualizzando 15 risposte – dal 3,646 al 3,660 (di 13,205 totali)
  • Autore
    Risposte
  • in risposta a: Compilazione da riga di comando #59930
    Up
    0
    Down
    ::

    E’ possibile passare da riga di comando delle opzioni ai pacchetti caricati ovvero far caricare dei pacchetti?
    Esempio
    latex ????? pippo.tex
    dove al posto di ????? c’è qualcosa per far caricare, ad esempio, il pacchetto xcolor oppure per passare l’opzione dvips a xcolor?

    Grazie
    Flavio

    `latex -jobname pippo '\RequirePackage[dvips]{xcolor}\input{pippo}'`
    Oppure, se xcolor è già caricato dal tuo documento,
    `latex '\PassOptionsToPackage{dvips}{xcolor}\input{pippo}'`
    Ciao
    Enrico

    in risposta a: Frontespizio #59891
    Up
    0
    Down
    ::

    La tesina è lunga una quarantina di pagine, per questo ho usato report; forse allora ho sbagliato a dividere in parti, meglio tenere i capitoli come primo genere di divisione, proverò così.
    Per quanto riguarda la numerazione, invece, mi sarebbe molto utile e poi i capitoli (sezioni a questo punto, se decido di scalare il sezionamento) hanno un loro nome quindi sono ben distinguibili.

    Per una quarantina di pagine, una divisione in parti è fuori discussione. Già cinque capitoli, che fanno una media di otto pagine a capitolo, mi sembrerebbero di troppo.

    La soluzione potrebbe essere quello di due capitoli (le tue parti) e la divisione in paragrafi (\section) di questi.

    Ciao
    Enrico

    in risposta a: Estrazione elementi Bibtex in una macro #59897
    Up
    0
    Down
    ::


    Aggiungere, prima di \makeatother, la seguente definizione:
    `\makeatletter
    \newcommand{\usebibdataurl}[2][|]{%
    \toks@=\expandafter\expandafter\expandafter{\usebibdata{#2}{url}}%
    \toks@=\expandafter\expandafter\expandafter{\the\toks@}%
    \toks@=\expandafter\expandafter\expandafter{\the\toks@}%
    \scantokens\expandafter{\expandafter\url\expandafter#1\the\toks@#1\endinput}}
    \makeatother
    `
    Così \usebibdataurl{eco2005nome} stamperà l’URL in modo corretto (e non c’è bisogno di scrivere \_). Nel caso il carattere | sia usato nell’URL, si può scrivere
    `\usebibdataurl[!]{eco2005nome}`
    Il carattere dato come argomento opzionale è quello per delimitare l’URL come nella sintassi
    `\url!!`
    che assomiglia a quella di \verb.

    Ciao
    Enrico

    in risposta a: Estrazione elementi Bibtex in una macro #59896
    Up
    0
    Down
    ::

    Volevo dire che, a fronte di risposte di questo tipo, si può restare solo senza parole.

    Non era poi così difficile. 🙂

    Vediamo qual è l’idea. I file .bib sono strutturati secondo lo schema
    `@entry{citekey,
    field1={…},
    field2={…},
    …
    }`
    e questo ne fa un ottimo candidato per “keyval”. L’unico problema è estrarre la chiave di citazione. Vediamo con il tuo esempio del “Nome della rosa”.

    Definiamo \book in modo che raccolga tutta l’elemento della bibliografia come argomento e lo passiamo a \extractkey. Questo comando ha due argomenti delimitati, il primo termina alla prima virgola, il secondo è tutto il resto. Definiamo allora \currentry come il primo argomento, ci servirà in seguito, e passiamo il resto al comando \setkeys di keyval. Questo legge tutte le chiavi definite nello spazio “reuse” e che sono tutte dello stesso tipo: nel caso di “title=Il nome della rosa” il risultato è di eseguire
    `\global\@namedef{\currentry @title}{Il nome della rosa}`
    che equivale, nel nostro caso, a
    `\global\def\eco2005nome@title{Il nome della rosa}`
    Lo stesso viene eseguito su tutti i campi.

    Che ci resta da fare? Intanto la macro per usare questi dati; \usebibdata prende due argomenti: la chiave di citazione e il tipo di dato. A partire da questi costruisce il comando da eseguire; per esempio \usebibdata{eco2005nome}{title} esegue
    `\eco2005nome@title`
    che appunto stampa “Il nome della rosa”.

    Altra cosa da fare: nel file bib c’è scritto @book e non \book. Poco male: leggiamo il file in modo che \ sia un carattere normale e al suo posto si usi @:
    `\newcommand\bibinput[1]{%
    \begingroup\catcode`\@=0 \input{#1.bib}\endgroup}`
    Quando si esegue \bibinput{xyz}, prima di leggere il file si dice a TeX che i comandi sono introdotti da @, quindi @book è come se fosse \book. Il tutto in un gruppo, quindi alla fine della lettura il carattere @ ritornerà al suo stato precedente. Per questo le definizioni dei vari comandi sono globali (\global\@namedef), altrimenti alla fine della lettura li perderemmo.

    Limitazioni. Non si può usare @ in uno dei campi o nella chiave di citazione. I campi vanno delimitati con le graffe (o con niente), non con le doppie virgolette come sarebbe possibile nella sintassi di BibTeX.

    Ricordarsi di definire tutti i campi e i tipi di documento necessari. Per gli url c’è qualche problemino, ci penso.

    Ciao
    Enrico

    in risposta a: Estrazione elementi Bibtex in una macro #59893
    Up
    0
    Down
    ::

    Ciao a tutti,

    desideravo porre il seguente quesito:

    Prendiamo una macro definita con \newcommand che riceve un parametro

    Il parametro è la stessa chiave di ricerca che si passa al comando \cite per fare riferimento a un elemento di BIBTEX.

    Supponiamo che io abbia il seguente elemento nel mio file .bib:

    @book{eco2005nome,
    title={Il nome della rosa},
    author={Eco, U.},
    isbn={9788845246340},
    series={Grandi tascabili Bompiani},
    url={http://books.google.com/books?id=OV\_yAAAAMAAJ},
    year={2005},
    publisher={Tascabili Bompiani}
    }

    Nel mio file .tex scrivo:

    qualche cosa \CLAFE{eco2005nome} ancora qualche cosa

    Vorrei che la macro \CLAFE, che riceve il parametro “eco2005nome” legga il file CLAFE.BIB estragga in diverse variabili il valore del “title”, di “year”. In modo che poi possa utilizzare, all’interno della macro ovviamente, questa variabili per fare altre cose.

    \newcommand{\CLAFE}[1]
    {
    Ricevo il parametro #1 che conterrà “eco2005nome”
    Leggo il file .bib con questa chiave
    Imposto in una variabile, per esempio, ANNO, il valore del campo Year del record .Bib
    Scrivo il contenuto di ANNO in corsivo, o in grassetto o altro ….
    }

    Chiedo troppo ?
    🙂

    Ciao a tutti e un grazie comunque.

    CLAFE

    Interessante problema.
    `\documentclass[a4paper]{article}

    \usepackage{keyval}
    \makeatletter
    \def\define@reuse@key#1{%
    \define@key{reuse}{#1}{\global\@namedef{\currentry @#1}{##1}}}
    \define@reuse@key{title}
    \define@reuse@key{author}
    \define@reuse@key{isbn}
    \define@reuse@key{series}
    \define@reuse@key{url}
    \define@reuse@key{year}
    \define@reuse@key{publisher}
    \define@reuse@key{journal}
    %%% inserire tutti gli altri tipi che servono
    %\define@reuse@key{}

    \def\book#1{\extractkey#1\@nil}
    \let\article\book
    \let\incollection\book
    %%% Inserire tutti gli altri tipi che servono

    \def\extractkey#1,#2\@nil{\def\currentry{#1}\setkeys{reuse}{#2}}
    \def\usebibdata#1#2{\@nameuse{#1@#2}}
    \makeatother

    \newcommand{\bibinput}[1]{%
    \begingroup\catcode`\@=0 \input{#1.bib}\endgroup}

    \bibinput{xyz} % il nome del file .bib

    \begin{document}
    \usebibdata{eco2005nome}{title}

    \usebibdata{eco2005nome}{year}
    \end{document}`
    Dovrai completare le due liste di comandi secondo lo schema dato; la prima lista per i campi, la seconda per i tipi di documento.

    Ciao
    Enrico

    in risposta a: Numero appendice #59882
    Up
    0
    Down
    ::

    Ciao a tutti.

    Ho un raro problemaccio che non riesco a risolvere! In pratica, io ho inserito l’appendice nel testo come segue:

    %%Appendice%%
    \appendix
    \renewcommand\appendixpagename{Appendix}
    \renewcommand\appendixtocname{Appendix}
    \appendixpage
    \thispagestyle{empty}
    \chapter{Chapter \ref{ch2}}
    \label{a2}
    \thispagestyle{empty}

    Il punto è che nonostante abbia messo \thispagestyle{empty} sotto \appendixpage il numero di pagina continua a comparire, dando un risultato pessimo!

    Qualcuno può dirmi come ovviare? Grazie a tutti!

    Che il risultato sia pessimo è una tua opinione. 🙂 Non serve a nulla dare \thispagestyle dopo \appendixpage perché quel comando emette un \newpage. Pensa intensamente al mago Merlino e scrivi, invece di \appendixpage, il codice seguente:
    `\begingroup
    \expandafter\let\csname ps@plain\expandafter\endcsname
    \csname ps@empty\endcsname
    \appendixpage
    \endgroup`
    Riguardo alla domanda del secondo messaggio, sinceramente non capisco che cosa tu intenda.

    Ciao
    Enrico

    in risposta a: Far rientrare gli ambienti #59855
    Up
    0
    Down
    ::

    Dici egreg che è meglio metterli fuori dalla dimostrazione gli eventuali Lemmi??

    Dentro o fuori non vedo la necessità di farli rientrare rispetto al margine. Lunghi tratti rientrati sono comunque da evitare. Si vedono spesso dimostrazioni di enunciati in più punti risolti con ambienti “enumerate”: brutto, se occupa più di mezza pagina, e nemmeno necessario, perché basta il numero all’inizio del capoverso.

    Ciao
    Enrico

    in risposta a: Far rientrare gli ambienti #59853
    Up
    0
    Down
    ::

    Ciao a tutti! Sto’ scrivendo la tesi di laurea e mi sono imbattuto in un problema. All’interno della dimostrazione di un teorema devo inserire 2 lemmi conseguenti e per questo volevo farli rientrare verso il centro in modo da fare capire che sono inseriti all’interno della dimostrazione… Come faccio?? 🙂

    Non farlo.

    Ciao
    Enrico

    in risposta a: tempo di compilazione #59849
    Up
    0
    Down
    ::

    Buongiorno,
    ringrazio OldClaudio per avermi indicato la documentazione dove andare a guardare. Andando a leggere cosa fa \pdfelapsedtime, infatti, mi è sorto un dubbio sul codice scritto da Enrico. Se questa macro contiene il numero di “secondi scalati”, cioè secondi divisi per 65536, per avere il risultato in millisecondi non bisognerebbe dividere per 1000 e moltiplicare per 65536 che è esattamente il contrario di ciò che fa il codice?

    Grazie mille per la pazienza
    Fra

    Edit: il tutto mi è più oscuro in quanto provando il codice effettivamente da risultati giusti (il che, in realtà, non mi stupisce affatto!)

    Quel “seconds divided by 65536” contraddice in modo evidente il numero indicato subito dopo: 323115 moltiplicato per 65536 darebbe un tempo piuttosto lungo. È chiaro che l’autore intende “il numero di (secondi/65536)”.

    Confermo che si tratta di una primitiva specifica di pdfTeX; non c’è in XeTeX né in LuaTeX.

    Ciao
    Enrico

    in risposta a: tempo di compilazione #59845
    Up
    0
    Down
    ::

    Buonasera a tutti,
    qualcuno sa se e come è possibile risalire alla durata della compilazione di un documento con LaTeX (non mi sembra ci sia scritto nel file .log)?

    `\usepackage{atveryend}
    \AtVeryEndDocument{\message{%
    *********************************^^J%
    * Elapsed time
    \number\numexpr1000*\pdfelapsedtime/65536\relax\space
    milliseconds^^J%
    *********************************^^J%
    }}`
    Non è una misura accuratissima, ma non credo che ti serva tanto di più.

    Se hai un sistema Unix puoi usare time (compilando dalla shell):
    `time pdflatex file`
    Ciao
    Enrico

    in risposta a: TeX Live 2011/pretest #59508
    Up
    0
    Down
    ::

    Scusa ma non la trovo! Andando in http://tug.org/texlive/pretest c’è un link cliccabile a MacTeX ma manda alla pagina di MacTeX 2010 e non mi sembra ci sia la versione pretest.
    Bene allora per Lion resto fiducioso! 🙂

    Devi seguire il percorso per trovare il deposito per la versione pretest e poi sceglierne uno; eccolo qui: http://ftp.cstug.cz/pub/tex/local/tlpretest/

    Ciao
    Enrico

    in risposta a: TeX Live 2011/pretest #59506
    Up
    0
    Down
    ::

    Cercando su internet non sono riuscito a trovare la versione pretest di MacTeX 2011. Esiste o bisogna attendere la versione ufficiale di TeXLive 2011?

    Ciao
    Fra

    Aggiungo: c’è modo di sapere se funzionerà con MacOS X Lion, in uscita a luglio?

    Non ho provato, ma nei depositi del pretest c’è un MacTeX. Posso supporre che sia la versione pretest, da aggiornare poi con TeX Live Utility. Non c’è che da provare.

    Hai dubbi che possa non funzionare con 10.7? Io no. 🙂

    Ciao
    Enrico

    in risposta a: Opzioni documentclass #59789
    Up
    0
    Down
    ::

    Ma è normale? Cioé, di solito nei libri la pagine sono centrate rispetto alla rilegatura e al margine esterno … così ho troppo spazio all’esterno rispetto a quello che ho all’interno, non è che stia benissimo …

    Ma che libri leggi? 🙂

    Ciao
    Enrico

    in risposta a: Includere pagine di PDF in Latex #59785
    Up
    0
    Down
    ::

    Ciao Enrico.

    Sì, conoscevo pagecommand ma tra le due soluzioni quella con il
    \clearpage mi sembrava meno contorta . Certo è un peccato che
    non ci sia un’opzione apposita in pdfpages. Ora scrivo all’autore 😀

    Magari gli suggerisco un’opzione solo per la prima pagina, tipo label=pippo,
    e una in cui viene aggiunto un numero all’etichetta di base: per esempio
    mlabel=pippo genererà pippo.1 per la pagina 1, pippo.2 per
    la seconda e così via.

    Ciao ciao.
    Fra

    Intanto puoi fare così. Sarebbe interessante potersi riferire alla pagina inclusa invece che a un contatore ad hoc, visto che di sicuro \includepdf ne conosce il numero.
    `\documentclass[a4paper]{article}
    \usepackage{pdfpages,etoolbox}
    \newcounter{labels}
    \newcommand\mlabel[1]{\stepcounter{labels}\label{#1.\thelabels}}
    \makeatletter
    \newcommand\xolabel[1]{\label{#1}\global\let\olabel\@gobble}
    \makeatother

    %%% infame trucco
    \expandafter\pretocmd\csname\string\includepdf\endcsname
    {\setcounter{labels}{0}\global\let\olabel\xolabel}{}{}
    %%% fine dell'infame trucco

    \begin{document}
    \includepdf[pages=1-3,pagecommand=\mlabel{pippo}]{dilip}

    \includepdf[pages=4-6,pagecommand=\olabel{pluto}]{dilip}

    \pageref{pippo.1} \pageref{pippo.2} \pageref{pippo.3}

    \pageref{pluto}

    \end{document}`
    Aggiungiamo a \includepdf il codice per inizializzare il contatore delle etichette e il comando \olabel. Quest’ultimo viene reso innocuo dopo il primo uso in un \includepdf.

    Come e perché funzioni quel misterioso \pretocmd è lasciato per esercizio al lettore. 🙂

    Ciao
    Enrico

    in risposta a: Includere pagine di PDF in Latex #59783
    Up
    0
    Down
    ::

    beh, eleganza o meno il problema è risolto, quindi grazie infinite 😉

    Esiste la chiave “pagecommand” che però esegue il codice dato su ogni pagina inclusa, quindi occorre spezzare l’inclusione:
    `\includepdf[pages=3,pagecommand=\label{pippo}]{pippo}
    \includepdf[pages=4]{pippo}
    \includepdf[pages=5,pagecommand=\label{pluto}]{pippo}
    \includepdf[pages=6-8]{pippo}`
    Ciao
    Enrico

Stai visualizzando 15 risposte – dal 3,646 al 3,660 (di 13,205 totali)

Go to top▲