egreg9

Risposte nei forum create

Stai visualizzando 15 risposte – dal 1,171 al 1,185 (di 13,218 totali)
  • Autore
    Risposte
  • in risposta a: Bibliografia collegata ma non visibile #81008
    Up
    0
    Down
    ::

    MngSpaghetti” post=80226Salve a tutti,
    […]
    il file bibtex questo

    `\documentclass{article}
    \usepakage{filecontents}
    \begin{filecontents*}{bibliograph}

    @ARTICLE{art:rif.1,
    AUTHOR = Claudio Ciavatta, Luciano Cavani,
    TITLE = Problematiche per l’inserimento dei biostimolanti nella
    legislazione dei fertilizzanti
    JOURNAL = Fertilitas Agrorum,
    YEAR = 2006,
    NUMBER = 1,
    PAGES = 11-17,
    }`
    […]

    Se qualcuno ti ha detto che il file bibliografico si fa così, negagli il saluto. 🙂

    Devi semplicemente scrivere un file testo di nome [tt]bibliograph.bib[/tt] che contenga semplicemente
    `@ARTICLE{art:rif.1,
    AUTHOR = Claudio Ciavatta, Luciano Cavani,
    TITLE = Problematiche per l’inserimento dei biostimolanti nella
    legislazione dei fertilizzanti
    JOURNAL = Fertilitas Agrorum,
    YEAR = 2006,
    NUMBER = 1,
    PAGES = 11-17,
    }`
    e le altre fonti bibliografiche.

    Ciao
    Enrico

    in risposta a: [L3] Comando { o m o } #80986
    Up
    0
    Down
    ::

    ivan” post=80218Perché non si può usare semplicemente #2 al posto di \l_tmpa_tl?

    Ciao
    Ivan

    p.s. sarebbe molto utile avere un commento di questo codice 😉
    Sarà anche semplice (e la struttura in effetti lo è e si capisce), ma la sintassi
    per me non è per niente semplice. Mi pare un’altra lingua 🙄

    edit
    Vedo che il filone è seguito 🙂
    Giro la richiesta anche a Enrico. Qualche delucidazione
    (passo passo) al codice sarebbe utilissima 😀

    `\ExplSyntaxOn`
    Ci liberiamo dei problemi di spazi spuri (e abilitiamo l’uso delle macro di LaTeX3)
    `\NewDocumentCommand{\numx}{ O{} m o }`
    Il comando [tt]\numx[/tt] ha un argomento facoltativo (valore normale vuoto), uno obbligatorio e un altro facoltativo (senza valore normale)
    ` {
    \IfValueTF{#3}`
    Se l’argomento facoltativo [tt]#3[/tt] è espresso, [tt]\IfValueTF{#3}[/tt] risulta vero e si segue il ramo “vero”:
    ` {
    \SI[#1]{#2}{#3}
    }`
    in cui si chiama il comando [tt]\SI[/tt] con gli argomenti indicati. Altrimenti si segue il ramo “falso:
    ` {
    \num[#1]{#2}
    }`
    in cui si chiama [tt]\num[/tt]
    ` }
    \ExplSyntaxOff`
    Fine della definizione e uscita dall’ambiente speciale.

    Vediamo il secondo codice.
    `\ExplSyntaxOn
    \NewDocumentCommand{\numx}{ O{} m o }
    {`
    Tutto come prima. Ma ora, per nessun motivo particolare uso [tt]\IfNoValueTF[/tt] che fa la stessa cosa dell’altro, ma con “vero” e “falso” rovesciati.
    ` \IfNoValueTF{#3}
    { \robitex_numx:nx { #1 } { #2 } }
    { \robitex_numx:nxn { #1 } { #2 } { #3 } }
    }`
    Nei due casi chiamo due macro diverse.
    `\cs_new_protected:Npn \robitex_numx:nn { \num[#1]{#2} }
    \cs_new_protected:Npn \robitex_numx:nnn { \SI[#1]{#2}{#3} }`
    Le due macro sono definite in modo facile: chiamano [tt]\num[/tt] e [tt]\SI[/tt]. Ma si può notare che i suffissi che specificano gli argomenti sono diversi. Infatti le prossime due righe chiariscono:
    `\cs_generate_variant:Nn \robitex_numx:nn { nx }
    \cs_generate_variant:Nn \robitex_numx:nnn { nx }`
    La prima genera la macro [tt]\robitex_numx:nx[/tt] in cui il secondo argomento viene espanso completamente prima di essere passato a [tt]\robitex_numx:nn[tt]. Dunque
    `\robitex_numx:nx{}{}`
    equivale a chiamare
    `\robitex_numx:nn{}{}`

    In LaTeX (quasi) standard questo sarebbe qualcosa come:
    `\def\robitex@numx#1#2{…}
    \def\robitex@numx@expandsecond#1#2{%
    \begingroup\edef\x{\endgroup
    \unexpanded{\robitex@numx{#1}}{#2}}\x}`
    Senza usare [tt]\unexpanded[/tt] sarebbe
    `\def\robitex@numx@expandsecond#1#2{%
    \toks@={\robitex@numx{#1}}%
    \begingroup\edef\x{\endgroup
    \the\toks@{#2}}\x}`

    Direi che l’astrazione di [tt]\cs_generate_variant:Nn[/tt] è un po’ più comoda. 🙂

    Ciao
    Enrico

    in risposta a: [L3] Comando { o m o } #80983
    Up
    0
    Down
    ::

    robitex” post=80214Ciao,
    guardate come è semplice in LaTeX3 definire un comando con un primo argomento opzionale, un secondo argomento obbligatorio ed un terzo argomento ancora opzionale.

    `\NewDocumentCommand { \numx } { o m o }
    {
    \tl_set:Nx \l_tmpa_tl { #2 }
    \IfValueTF { #3 }
    {
    \IfValueTF { #1 }
    {
    \SI[#1]{ \tl_use:N \l_tmpa_tl }{ #3 }
    }
    {
    \SI{ \tl_use:N \l_tmpa_tl }{ #3 }
    }
    }
    {
    \IfValueTF { #1 }
    {
    \num[#1]{ \tl_use:N \l_tmpa_tl }
    }
    {
    \num{ \tl_use:N \l_tmpa_tl }
    }
    }
    }`

    Lo scopo è quello di riunire in un unico comando \num e \SI entrambe del pacchetto siunitx.
    Posso quindi scrivere:
    `un numero \numx{120.12}
    un numero con opzioni \numx[round-precision=2]{120.123}
    un numero con unità di misura \numx{12.23}[\percent]
    un numero con unità di misura ed opzioni \numx[round-precision=3]{12.123}[\percent]
    `

    Ciao.
    R.

    Può essere ancora più semplice. Non vedo la necessità di espandere il secondo argomento, ma si può discuterne.
    `\ExplSyntaxOn
    \NewDocumentCommand{\numx}{ O{} m o }
    {
    \IfValueTF{#3}
    {
    \SI[#1]{#2}{#3}
    }
    {
    \num[#1]{#2}
    }
    }
    \ExplSyntaxOff`
    Se proprio vuoi l’espansione completa del secondo argomento, meglio fare così:
    `\ExplSyntaxOn
    \NewDocumentCommand{\numx}{ O{} m o }
    {
    \IfNoValueTF{#3}
    { \robitex_numx:nx { #1 } { #2 } }
    { \robitex_numx:nxn { #1 } { #2 } { #3 } }
    }
    \cs_new_protected:Npn \robitex_numx:nn { \num[#1]{#2} }
    \cs_new_protected:Npn \robitex_numx:nnn { \SI[#1]{#2}{#3} }
    \cs_generate_variant:Nn \robitex_numx:nn { nx }
    \cs_generate_variant:Nn \robitex_numx:nnn { nx }
    \ExplSyntaxOff`

    Ciao
    Enrico

    in risposta a: [L3] Chiave con valore di default di un’altra chiave #80971
    Up
    0
    Down
    ::

    robitex” post=80210

    [quote=”robitex” post=80202]Ciao,
    nel seguente codice LaTeX3 definisco due chiavi, la prima chiamata ‘name’ e la seconda chiamata ‘secname’ (secondo nome).
    L’effetto che vorrei ottenere è che se non specifico un valore per la chiave secname, questa assuma il valore della chiave ‘name’.
    `
    \documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[italian]{babel}

    \usepackage{expl3}
    \usepackage{xparse}

    \ExplSyntaxOn
    \keys_define:nn { gdsfamily }
    {
    name .tl_set:N = \g_gds_name_tl,
    name .default:n = Paperino,

    secname .tl_set:N = \g_gds_secname_tl,
    secname .default:V = \g_gds_name_tl % non funziona con .default:n si
    }

    \keys_set:nn { gdsfamily } { name }
    \keys_set:nn { gdsfamily } { secname }

    \NewDocumentCommand { \name } { }
    {
    \tl_use:N \g_gds_name_tl
    }

    \NewDocumentCommand { \secname } { }
    {
    \tl_use:N \g_gds_secname_tl
    }
    \ExplSyntaxOff

    \begin{document}
    Il nome è il seguente: \name{} \secname.
    \end{document}`
    Il codice non funziona, ma se cambio la funzione da .default:V a .default:n funziona, come mai?
    Grazie R.

    Con [tt].default:V= \g_gds_name_tl[/tt] imposti il valore di default al valore attuale della variabile che, naturalmente è vuoto perché [tt]name[/tt] non è ancora stata impostata, ma solo definita. Se usi [tt].default:n[/tt] come valore viene presa la variabile [tt]\g_gds_name_tl[/tt]. Se infatti provi senza impostare un valore per [tt]name[/tt] avrai un valore vuoto.

    Devi definire la chiave in modo diverso:
    `\keys_define:nn { gdsfamily }
    {
    secname .code:n =
    \tl_if_empty:nTF { #1 }
    { \tl_gset:NV \g_gds_secname_tl \g_gds_name_tl }
    { \tl_gset:Nn \g_gds_secname_tl { #1 } }
    }`
    Tiratina d’orecchie quotidiana. 🙂 Le variabili globali vanno sempre usate globalmente. Quindi [tt]_gset[/tt], non [tt]_set[/tt].

    Ciao
    Enrico

    Questa volta la tiratina d’orecchie, una volta tanto, posso fartela io! 🙂
    Infatti ho modificato la definizione delle chiavi con la tua proposta:
    `\keys_define:nn { gdsfamily }
    {
    name .tl_gset:N = \g_gds_name_tl,
    name .default:n = Paperino,

    secname .code:n =
    \tl_if_empty:nTF { #1 }
    {\tl_gset:NV \g_gds_secname_tl \g_gds_name_tl}
    {\tl_gset:Nn \g_gds_secname_tl { #1 } },
    }
    \keys_set:nn { gdsfamily } { name }
    \keys_set:nn { gdsfamily } { secname }`

    Tutto bene, un codice pulito e semplice: quando assegno la chiave ‘secname’ senza valore essa imposterà la sua corrispondente variabile a quello della variabile in cui è salvato il valore della chiave ‘name’, mentre se passo un valore questo diverrà quello salvato.

    Se però chiamo assegno solamente la chiave ‘name’ la chiave ‘secname’ non prenderà il nuovo valore se non verrà espressa:
    Con questi comandi infatti
    `\NewDocumentCommand { \name } { m }
    {
    \keys_set:nn { gdsfamily } { name = #1 }
    \tl_use:N \g_gds_name_tl
    }

    \NewDocumentCommand { \secname } { }
    {
    \tl_use:N \g_gds_secname_tl
    }`
    e questo codice utente:
    `Il nome è il seguente: \name{Pluto} \secname.`
    Ottengo (ovviamente) non: “Il nome è il seguente: Pluto Pluto.” ma “Il nome è il seguente: Pluto Paperino.”

    L’importante è che LaTeX3 sia in grado di creare un ambiente di programmazione pulito.

    Illustro adesso un codice che funziona (considera che ho le orecchie già abbastanza tirate…).
    Assegno i valori di default con .default:n:
    `\documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[italian]{babel}

    \usepackage{expl3}
    \usepackage{xparse}

    \ExplSyntaxOn
    \keys_define:nn { gdsfamily }
    {
    name .tl_gset:N = \g_gds_name_tl,
    name .default:n = Paperino,

    secname .tl_gset:N = \g_gds_secname_tl,
    secname .default:n = \g_gds_name_tl,
    }

    \keys_set:nn { gdsfamily } { name , secname }

    \NewDocumentCommand { \setnames } { m }
    {
    \keys_set:nn { gdsfamily } { #1 }
    }

    \NewDocumentCommand { \getname } { m }
    {
    \tl_use:c { g_gds_#1_tl }
    }
    \ExplSyntaxOff

    \begin{document}
    Se non si impostano le chiavi esse prendono il valore di default: Il nome è il seguente: \getname{name}, il secondo nome è \getname{secname}.

    \setnames{ name = Pluto }

    Adesso, il nome è \getname{name}, e la chiave dovrebbe essere con lo stesso valore che è appunto: \getname{secname}.

    \setnames{secname = Mitico Pippo}
    Dopo aver assegnato anche la chiave del secondo nome lo stampiamo: \getname{secname} (il nome principale è rimasto a \getname{name}).

    \setnames{name = Topolino}
    Se a questo punto modifichiamo anche il primo nome avremo: nome = \getname{name}, secondo nome = \getname{secname}.
    \end{document}
    `

    Alla prossima3.
    Ciao e grazie.
    R.[/quote]
    Se non imposti il valore di una chiave, non riceverà mai un valore. Se vuoi che, di default, la tua chiave [tt]secname[/tt] abbia come valore il contenuto della variabile [tt]\g_gds_name_tl[/tt] allora usa [tt].default:n=\g_gds_name_tl[/tt] e, come hai fatto nell’ultimo codice, imposta entrambe per avere un valore iniziale.

    Ciao
    Enrico

    in risposta a: Pacchetto frontespizio e recenti riforme #80974
    Up
    0
    Down
    ::

    nazgul17″ post=80207Ciao a tutti, volevo richiedere un aiuto relativamente al pacchetto frontespizio di Enrico Gregorio.

    Con le recenti riforme universitarie, sono state “cancellate” le entità “facoltà” dall’Italia. Non è un problema per il pacchetto frontespizio: basta non mettercele. Stamattina, però, in segreteria mi hanno detto che la tesi non dovrebbe recare neanche la scritta relativa al dipartimento di afferenza.

    Ora: se non metto nessuno tra facoltà e dipartimento ottengo un errore di compilazione:

    `marco@marco-laptop:~/Scrivania/tesi/thesis$ pdflatex thesis-frn.tex
    This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012)
    restricted \write18 enabled.
    entering extended mode
    (./thesis-frn.tex
    LaTeX2e <2011/06/27>
    Babel and hyphenation patterns for english, dumylang, nohyphenation, ge
    rman-x-2012-05-30, ngerman-x-2012-05-30, afrikaans, ancientgreek, ibycus, arabi
    c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
    h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
    h, french, friulan, galician, german, ngerman, swissgerman, monogreek, greek, h
    ungarian, icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, ma
    rathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian,
    kurmanji, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk,
    polish, portuguese, romanian, romansh, russian, sanskrit, serbian, serbianc, s
    lovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian,
    welsh, loaded.
    (/usr/local/texlive/2012/texmf-dist/tex/latex/base/article.cls
    Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
    (/usr/local/texlive/2012/texmf-dist/tex/latex/base/size10.clo))
    (/usr/local/texlive/2012/texmf-dist/tex/latex/geometry/geometry.sty
    (/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/keyval.sty)
    (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/ifpdf.sty)
    (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/ifvtex.sty)
    (/usr/local/texlive/2012/texmf-dist/tex/generic/ifxetex/ifxetex.sty))
    (./frontespizio.sty
    (/usr/local/texlive/2012/texmf-dist/tex/latex/tools/afterpage.sty)
    (/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/graphicx.sty
    (/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/graphics.sty
    (/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/trig.sty)
    (/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/graphics.cfg)
    (/usr/local/texlive/2012/texmf-dist/tex/latex/pdftex-def/pdftex.def
    (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/infwarerr.sty)
    (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/ltxcmds.sty))))
    (/usr/local/texlive/2012/texmf-dist/tex/latex/eso-pic/eso-pic.sty
    (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/atbegshi.sty)
    (/usr/local/texlive/2012/texmf-dist/tex/latex/xcolor/xcolor.sty
    (/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/color.cfg))))
    No auxiliary output files.

    No file thesis-frn.aux.
    *geometry* driver: auto-detecting
    *geometry* detected driver: pdftex
    (/usr/local/texlive/2012/texmf-dist/tex/context/base/supp-pdf.mkii
    [Loading MPS to PDF converter (version 2006.09.02).]
    ) (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
    (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/ifluatex.sty))
    (/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
    (/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/grfext.sty
    (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty))
    (/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/kvoptions.sty
    (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
    (/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/etexcmds.sty)))
    (/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
    ! Undefined control sequence.
    \front@thefacoldip

    l.15 \preparefrontpage

    ?
    `

    Il mio codice, ridotto all’osso, è questo:
    `\documentclass[11pt,a4paper]{book}
    \usepackage{frontespizio}
    \begin{document}

    \enlargethispage{-5cm}
    \begin{frontespizio}
    \Universita{Verona}
    \Corso[Laurea]{Ingegneria e Scienze Informatiche}
    \Titoletto{Tesi di laurea Magistrale}
    \Titolo {\Large{Titolo bello lungo ed appariscente}}
    \Candidato[vrXXXXXX]{Nome Cognome}
    \Relatore{Nome Cognome}
    \Correlatore{Nome Cognome}
    \Annoaccademico{2011-2012}
    \end{frontespizio}

    \end{document}`

    La domanda è: l’errore è voluto in quanto si vuole che una tra facoltà e dipartimento sia inclusa? Oppure sono io che non ho capito che il problema è un altro e magari è anche banale?

    Aggiungi
    `\Divisione{\mbox{}}`
    E togli [tt]\Large[/tt] dal titolo. Altrimenti non ti laurei. 😉

    Ciao
    Enrico

    in risposta a: [L3] Chiave con valore di default di un’altra chiave #80969
    Up
    0
    Down
    ::

    robitex” post=80202Ciao,
    nel seguente codice LaTeX3 definisco due chiavi, la prima chiamata ‘name’ e la seconda chiamata ‘secname’ (secondo nome).
    L’effetto che vorrei ottenere è che se non specifico un valore per la chiave secname, questa assuma il valore della chiave ‘name’.
    `
    \documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[italian]{babel}

    \usepackage{expl3}
    \usepackage{xparse}

    \ExplSyntaxOn
    \keys_define:nn { gdsfamily }
    {
    name .tl_set:N = \g_gds_name_tl,
    name .default:n = Paperino,

    secname .tl_set:N = \g_gds_secname_tl,
    secname .default:V = \g_gds_name_tl % non funziona con .default:n si
    }

    \keys_set:nn { gdsfamily } { name }
    \keys_set:nn { gdsfamily } { secname }

    \NewDocumentCommand { \name } { }
    {
    \tl_use:N \g_gds_name_tl
    }

    \NewDocumentCommand { \secname } { }
    {
    \tl_use:N \g_gds_secname_tl
    }
    \ExplSyntaxOff

    \begin{document}
    Il nome è il seguente: \name{} \secname.
    \end{document}`
    Il codice non funziona, ma se cambio la funzione da .default:V a .default:n funziona, come mai?
    Grazie R.

    Con [tt].default:V= \g_gds_name_tl[/tt] imposti il valore di default al valore attuale della variabile che, naturalmente è vuoto perché [tt]name[/tt] non è ancora stata impostata, ma solo definita. Se usi [tt].default:n[/tt] come valore viene presa la variabile [tt]\g_gds_name_tl[/tt]. Se infatti provi senza impostare un valore per [tt]name[/tt] avrai un valore vuoto.

    Devi definire la chiave in modo diverso:
    `\keys_define:nn { gdsfamily }
    {
    secname .code:n =
    \tl_if_empty:nTF { #1 }
    { \tl_gset:NV \g_gds_secname_tl \g_gds_name_tl }
    { \tl_gset:Nn \g_gds_secname_tl { #1 } }
    }`
    Tiratina d’orecchie quotidiana. 🙂 Le variabili globali vanno sempre usate globalmente. Quindi [tt]_gset[/tt], non [tt]_set[/tt].

    Ciao
    Enrico

    in risposta a: listoftables rimando nel PDF al titolo e non al fondo #80966
    Up
    0
    Down
    ::

    grenet” post=80200Salve forum.
    Ho i seguenti comandi in frontmatter

    `\tableofcontents %Table of contents
    \listoftables
    \phantomsection
    \addcontentsline{toc}{chapter}{Elenco delle tabelle}
    \listoffigures
    \phantomsection
    \addcontentsline{toc}{chapter}{Elenco delle figure}`

    Indice perfetto, con numeri di pagina corretti… Ma se seguo nel PDF il collegamento all’elenco delle tabelle (o delle figure), finisco alla fine dell’elenco, ossia in pagina pari, anziché “sul titolo” come per un qualsiasi chapter.
    Credo di aver letto che ci sia da attivare un pacchetto per risolvere la cosa, ma francamente non riesco a trovarlo… Mi date una mano?
    Grazie mille.

    Stai inserendo i collegamenti alla fine degli elenchi. Vanno messi all’inizio.
    `\tableofcontents %Table of contents
    \cleardoublepage
    \phantomsection
    \addcontentsline{toc}{chapter}{Elenco delle tabelle}
    \listoftables
    \cleardoublepage
    \phantomsection
    \addcontentsline{toc}{chapter}{Elenco delle figure}
    \listoffigures`
    Ma perché fare tanta fatica?
    `\documentclass[…]{…}

    \usepackage[nottoc]{tocbibind}

    \begin{document}
    \frontmatter
    \tableofcontents
    \listoftables
    \listoffigures
    …`

    Ciao
    Enrico

    in risposta a: Numerazione a piè pagina [risolto] #80960
    Up
    0
    Down
    ::

    vbruno1″ post=80198Salve a tutti,
    sto scrivendo una relazione solo che non riesco a far comparire a piè pagina il numero di pagine in questo formato:
    numero pagina corrente di numero totale pagine documento
    ad esempio 3 di 5

    Ci sono riuscito solo che spunta una riga in alto non desiderata, con il codice seguente:
    `\documentclass[a4paper,12pt]{article}
    \usepackage

    {geometry}
    \usepackage[italian]{babel}
    \addto{\captionsitalian}{%
    \renewcommand*{\refname}{\mdseries \large Bibliografia}}
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[Lenny]{fncychap}
    %\usepackage{fullpage}
    \usepackage{times}
    \usepackage{lastpage}
    \usepackage{fancyhdr}
    \usepackage{floatflt}
    \usepackage{setspace}
    \usepackage{graphicx}
    \usepackage{hyperref}

    \hypersetup{
    colorlinks=true,
    % linkcolor=black,
    citecolor=green,
    linkcolor=blue,
    }

    \pagestyle{fancy}
    \fancyhf{}
    \fancyfoot[r]{\thepage\ di {\hypersetup{linkcolor=black}\pageref{LastPage}}}

    \begin{document}

    ….
    ….

    `

    Con questo effetto

    Sarà quella dell’intestazione capitolo ma a me in questo caso non serve.

    Grazie per l’aiuto.

    `\pagestyle{fancy}
    \renewcommand{\headrulewidth}{0pt} % toglie la riga in alto
    \fancyhf{}
    \fancyfoot[r]{\thepage\ di {\hypersetup{linkcolor=black}\pageref{LastPage}}}`
    Se non ti serve il link all’ultima pagina, puoi semplicemente scrivere l’ultima riga come
    `\fancyfoot[r]{\thepage\ di \pageref*{LastPage}}`
    La variante * di [tt]\pageref[/tt] non crea un hyperlink.

    Invece di [tt]\usepackage{times}[/tt] ti consiglio [tt]\usepackage{mathptmx}[/tt] o, ancora meglio se hai una distribuzione TeX aggiornata,
    `\usepackage{newtxtext,newtxmath}`
    Ciao
    Enrico

    PS: Hai qualcosa a che fare con Jean Valjean?

    in risposta a: [L3] Salvare valori proprietà #80887
    Up
    0
    Down
    ::

    franen” post=80187

    Cercavo una funzione del genere nella documentazione interface3 e non ero accorto della funzione alternativa \clist_map_inline:nn.

    Ma se non esistesse si potrebbe sempre(?) creare con [tt]\cs_generate_variant:Nn[/tt]. O no?

    Più o meno sì. Ma [tt]\clist_map_inline:nn[/tt] e [tt]\tl_map_inline:nn[/tt] sono certamente predefinite perché è normale pensare di dover elaborare liste date come argomenti [tt]n[/tt]. Questo non avrebbe senso per [tt]\seq_map_inline:Nn[/tt] e [tt]\prop_map_inline:Nn[/tt], ovviamente.

    Ciao
    Enrico

    in risposta a: [L3] Salvare valori proprietà #80884
    Up
    0
    Down
    ::

    robitex” post=80178[…]
    mentre la funzione di servizio verrebbe modificata molto poco in questa:
    `\cs_new:Nn \gds_savein_fpval:n
    {
    \clist_set:Nn \l_tmpa_clist { #1 }
    \clist_map_inline:Nn \l_tmpa_clist
    {
    \prop_gput:Nnx \g_gds_salval_prop { ##1 }
    {
    \fp_use:c { g_gds_##1_fp }
    }
    }
    }`

    Più semplice:
    `\cs_new:Nn \gds_savein_fpval:n
    {
    \clist_map_inline:nn { #1 }
    {
    \prop_gput:Nnx \g_gds_salval_prop { ##1 }
    {
    \fp_use:c { g_gds_##1_fp }
    }
    }
    }`
    Ciao
    Enrico

    in risposta a: Rapidità di esecuzione dello scalamento di una lunghezza #80691
    Up
    0
    Down
    ::

    OldClaudio” post=80172Per quel che riguarda i tempi di esecuzione di \dimexpr non sono certo che siano maggiori di quelli dei comandi tradizionali, in quanto sono direttamente programmati nell’eseguibile come operazioni di long integer, almeno la moltiplicazione.

    Prova. 🙂

    1. Contenuto di [tt]testdim.tex[/tt]
    `\dimen0=1cm
    \def\a{\dimen2=1.5\dimen0 }
    %\def\a{\dimen2=\dimen0 \multiply \dimen2 by 3 \divide\dimen2 by 2 }
    %\def\a{\dimen2=\dimexpr\dimen0 * 3/2\relax}
    \def\b{\a\a\a\a\a\a\a\a\a\a}
    \def\c{\b\b\b\b\b\b\b\b\b\b}
    \def\d{\c\c\c\c\c\c\c\c\c\c}
    \def\e{\d\d\d\d\d\d\d\d\d\d}
    \def\f{\e\e\e\e\e\e\e\e\e\e}
    \def\g{\f\f\f\f\f\f\f\f\f\f}
    \def\h{\g\g\g\g\g\g\g\g\g\g}

    \h
    \bye`

    Risultato:
    `$ \time testdim.tex
    testdim.tex: No such file or directory
    0.00 real 0.00 user 0.00 sys
    [eg-macmini:~/provaccia] enricomb% \time pdftex testdim.tex
    This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012)
    restricted \write18 enabled.
    entering extended mode
    (./testdim.tex )
    No pages of output.
    Transcript written on testdim.log.
    11.59 real 10.66 user 0.09 sys`

    2. Contenuto di [tt]testdim.tex[/tt]
    `\dimen0=1cm
    %\def\a{\dimen2=1.5\dimen0 }
    \def\a{\dimen2=\dimen0 \multiply \dimen2 by 3 \divide\dimen2 by 2 }
    %\def\a{\dimen2=\dimexpr\dimen0 * 3/2\relax}
    \def\b{\a\a\a\a\a\a\a\a\a\a}
    \def\c{\b\b\b\b\b\b\b\b\b\b}
    \def\d{\c\c\c\c\c\c\c\c\c\c}
    \def\e{\d\d\d\d\d\d\d\d\d\d}
    \def\f{\e\e\e\e\e\e\e\e\e\e}
    \def\g{\f\f\f\f\f\f\f\f\f\f}
    \def\h{\g\g\g\g\g\g\g\g\g\g}

    \h
    \bye`

    Risultato:
    `$ \time pdftex testdim.tex
    This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012)
    restricted \write18 enabled.
    entering extended mode
    (./testdim.tex )
    No pages of output.
    Transcript written on testdim.log.
    16.28 real 15.48 user 0.11 sys`

    3. Contenuto di [tt]testdim.tex[/tt]
    `\dimen0=1cm
    %\def\a{\dimen2=1.5\dimen0 }
    %\def\a{\dimen2=\dimen0 \multiply \dimen2 by 3 \divide\dimen2 by 2 }
    \def\a{\dimen2=\dimexpr\dimen0 * 3/2\relax}
    \def\b{\a\a\a\a\a\a\a\a\a\a}
    \def\c{\b\b\b\b\b\b\b\b\b\b}
    \def\d{\c\c\c\c\c\c\c\c\c\c}
    \def\e{\d\d\d\d\d\d\d\d\d\d}
    \def\f{\e\e\e\e\e\e\e\e\e\e}
    \def\g{\f\f\f\f\f\f\f\f\f\f}
    \def\h{\g\g\g\g\g\g\g\g\g\g}

    \h
    \bye`

    Risultato:
    `$ \time pdftex testdim.tex
    This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012)
    restricted \write18 enabled.
    entering extended mode
    (./testdim.tex )
    No pages of output.
    Transcript written on testdim.log.
    16.83 real 15.62 user 0.12 sys`
    Ciao
    Enrico

    in risposta a: Rapidità di esecuzione dello scalamento di una lunghezza #80689
    Up
    0
    Down
    ::

    Liverpool” post=80170

    Temo che non sia proprio vero. L’esecuzione di
    `\dimen2=\dimexpr\dimen0*3/2\relax`
    richiede essenzialmente lo stesso tempo di
    `\dimen2=\dimen0 \multiply\dimen2 by 3 \divide\dimen2 by 2`

    Però sul manuale di [tt]etex[/tt] c’è scritto

    manuale di etexLe operazioni aritmetiche sono eseguite individualmente, tranne le operazioni di ‘scalamento’ (una moltiplicazione seguita immediatamente da una divisione) che sono eseguite come un’operazione combinata con un prodotto a 64 bit come valore intermedio

    Questa frase sembra voler dire che mentre nella successione [tt]multiply+divide[/tt] le operazioni sono:
    a) carico il numero
    b) eseguo la moltiplicazione
    c) scarico il numero
    d) carico il numero
    e) eseguo la divisione
    f) scarico il numero

    con le istruzioni di [tt]etex[/tt] le operazioni sono:
    a) carico il numero
    b) eseguo la moltiplicazione
    c) eseguo la divisione sul numero in registro
    d) scarico il numero

    quindi si dovrebbe risparmiare un carico+scarico, se ho capito bene. Forse tu dici che alla fine si tratta di tempi infinitesimi?

    Quel poco che si guadagna da un’assegnazione in meno si perde con l’uso di [tt]\dimexpr[/tt] che è più lento della manipolazione diretta dei registri.

    Ciao
    Enrico

    in risposta a: Rapidità di esecuzione dello scalamento di una lunghezza #80687
    Up
    0
    Down
    ::

    OldClaudio” post=80166

    Ciao e bentornato

    Grazie epr il bentornato; certo sono tornato un poco sul forum e lo faccio quando riesco a trovere una free WiFi. In realtà sono a circa 17 000 km di distanza nello stato di Vittoria, in Australia:smile:

    Tornado al tuo problema Lo scalamanto di una lunghezza andrebbe fatto nel modo migliore sia per precisione, sia per velocità ricorrendo alle estensioni di eTeX che da diversi anni sono incorporate dentro ogni motore di composizione moderno, pdftex, xetex,luatex e forse anche altri. Questi sono i nomi dei veri programmi di composizione che insieme al file di formato latex.ltx formano pdflatex, xelatex, lualatex.

    Allora per scalare di un fattore 0.25 ovvero 1/4 hai queste possibilità:`\dimen0= \dimexpr \dimen0 * 0.25pt / 1pt \relax`oppure` \dimen0 = \dimexpr \dimen0 * 1pt / 4pt \relax`

    I due \relax sono facoltativi se non ci sono ambiguità con quel che segue; le dimensioni in puti tipografic possono venire rappresentate come multipli di \p@.

    Il bello della \dimexpr è che la prima moltiplicazione viene eseguita in un registro da 64 bit (invece della lunghezza normale di 32 bit), quidi senza troncamenti né overflow. La divisione viene eseguite con il numeratore intero a doppia precisione e arrotondato, non troncato come succede con \divide. Sono due operazioni eseguite direttamente nei registri della CPU, quindi richiedono il minimo tempo macchina possibile. Il manuale di eTeX raccomanda di eseguire le operazioni di scalamento in questo modo. texdoc etex è illuminante a questo proposito.

    Ciao
    Claudio

    Temo che non sia proprio vero. L’esecuzione di
    `\dimen2=\dimexpr\dimen0*3/2\relax`
    richiede essenzialmente lo stesso tempo di
    `\dimen2=\dimen0 \multiply\dimen2 by 3 \divide\dimen2 by 2`

    La sintassi che proponi
    `\dimexpr \dimen0 * 0.25pt / 1pt \relax`
    è scorretta. Se infatti provi questa sessione interattiva
    `$ pdftex
    This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012)
    restricted \write18 enabled.
    **\relax
    entering extended mode

    *\dimen0=1cm

    *\dimen0=\dimexpr \dimen0 * 0.25pt / 1pt \relax

    *\showthe\dimen0
    > 0.0pt.
    <*> \showthe\dimen0

    ?

    *\bye
    [1{/usr/local/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
    Output written on texput.pdf (1 page, 11260 bytes).
    Transcript written on texput.log.`
    scopri che \dimexpr finisce con lo 0 e troverai “.25pt / 1pt” nel PDF finale.

    Ciao
    Enrico

    in risposta a: Font Latex #80930
    Up
    0
    Down
    ::

    Driven” post=80145Grazie marco…

    Tale Font non ha un equivalente in Excel giusto?

    Quindi se devo fare una tabella in quell’ambiente e poi importarla come immagine (visto che non conosco altro modo per fare tabelle complesse con Latex) avrà sicuramente un font differente?

    Ciao

    Che c’entra Excel con i font? Usa semplicemente quelli di sistema. Installa tra i font di sistema i Latin Modern in formato OpenType e sei a posto.

    Ciao
    Enrico

    in risposta a: Bibliografia: autori multipli con nome cognome invertiti #80920
    Up
    0
    Down
    ::


    Sì. È giusto.

    Ciao
    Enrico

Stai visualizzando 15 risposte – dal 1,171 al 1,185 (di 13,218 totali)

Go to top