\vref e italian babel

  • Creatore
    Topic
  • #12555
    Up
    0
    Down
    ::


    Sto usando \vref e mi trovo benissimo, se non fosse per il fatto che mi riporta il numero della figura e inserisce “nella pag.” invece di “a pag.”. Ho provato a guardarmi i file di babel italian.ldf e italian.sty ma non ho trovato nulla di configurabile a riguardo.
    uso `\usepackage[italian]{babel}`

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #12556
      Up
      0
      Down
      ::


      Credo che nella documentazione del pacchetto varioref ci sia scritto come fare.

      Ciao.

    • #12557
      Up
      0
      Down
      ::


      Come sempre Emiliano sei un grande!! 😀 Allora, non so se la mia via sia stata la più ortodossa ma funziona:
      si edita il file varioref.sty che contiene tutte le traduzioni e si sostituisce nella parte italiana quello che serve.
      Piccola osservazione: nel manuale del varioref si trova già la versione corretta

      Defaults for Italian suggested by Giovanni Pensa (pensa@dsi.unimi.it) with
      iTEXnici.
      278 \DeclareOption{italian}
      279 {\vref@addto\extrasitalian{%
      280 \def\reftextfaceafter {\reftextvario{a fronte}%
      281 {nella pagina successiva}}%
      282 \def\reftextfacebefore{\reftextvario{a fronte}%
      283 {nella pagina precedente}}%
      284 \def\reftextafter {nella pagina \reftextvario{seguente}%
      285 {successiva}}%
      286 \def\reftextbefore {nella pagina precedente}%
      287 \def\reftextcurrent {in questa pagina}%
      288 \def\reftextfaraway#1{a pagina~\pageref{#1}}%
      289 \def\reftextpagerange#1#2{\vref@stringwarning\reftextpagerange
      290 on pages~\pageref{#1}–\pageref{#2}}%
      291 \def\reftextlabelrange#1#2{\vref@stringwarning\reflabelpagerange
      292 \ref{#1} to~\ref{#2}}%

      In particolare osservate:

      288 \def\reftextfaraway#1{a pagina~\pageref{#1}}%

      Mentre io stranamente pare avessi una versione “gobba” 😀 del varioref.sty, anche se miktex 2.5 mi assicurava l’aggiornamento di tutti i pacchetti.

      Spero di essere stato d’aiuto a qualcun altro con problemi analoghi. Questo forum è un portento, c’è uno scambio di informazioni, idee e suggerimenti davvero notevole.
      Ringrazio nuovamente tutti quanti e a risentirci alla prossima!

      Ciao

      Enzo

    • #12558
      Up
      0
      Down
      ::


      MAI editare i .sty (ad ogni aggiornamento perderesti tutte le modifiche).

      Se non ricordo male nel manuale di varioref è scitto come modificare il comportamento del pacchetto. Ma, se anche non lo trovassi, basta sovracaricare (è italiano?!?) la funzione nel preambolo del tuo dcumento.

    • #12559
      Up
      0
      Down
      ::


      Sai, a questo non avevo pensato. Rimane il fatto che, come riportato sopra, nel manuale inglese del varioref è riportato l’intero codice e lì la parte italiana è scritta correttamente. Non capisco il perchè di questa incongruenza. Se qualcuno sa indicarmi dove trovare una versione aggiornata del file varioref.sty, sono curioso di confrontarlo con il mio e vedere se coincide con il codice riportato nel manuale del pacchetto.

    • #12560
      Up
      0
      Down
      ::


      Quando cerchi un pacchetto vai qui:
      http://texcatalogue.sarovar.org/brief.html

      Per varioref ti rimanda a
      http://texcatalogue.sarovar.org/entries/varioref.html
      e da li scegli il repository che preferisci.

      Nella documentazione che ho trovato si legge
      `Defaults for Italian suggested by Giovanni Pensa (pensa@dsi.unimi.it) with iTEXnici.
      321 \DeclareOption{italian}
      322 {\vref@addto\extrasitalian{%
      323 \def\reftextfaceafter {\reftextvario{a fronte}%
      324 {nella pagina successiva}}%
      325 \def\reftextfacebefore{\reftextvario{a fronte}%
      326 {nella pagina precedente}}%
      327 \def\reftextafter {nella pagina \reftextvario{seguente}%
      328 {successiva}}%
      329 \def\reftextbefore {nella pagina precedente}%
      330 \def\reftextcurrent {in questa pagina}%
      331 \def\reftextfaraway#1{nella pagina~\pageref{#1}}%
      332 \def\reftextpagerange#1#2{nelle pagine~\pageref{#1}–\pageref{#2}}%
      333 \def\reftextlabelrange#1#2{da~\ref{#1} a~\ref{#2}}%
      334 }}`
      Credo che per modificare il comportamento localmente basti mettere nel preambolo
      `\def\reftextfaraway#1{a pagina~\pageref{#1}}%`

      PS In Latex il preambolo è scritto esplicitamente, in LyX non ne ho la più pallida idea.

    • #12561
      Up
      0
      Down
      ::


      Ti ringrazio per le info. In effetti anche quel codice lì, se non ho visto male, ha l’errore. Strano, come dicevo se apri il pdf relativo a varioref, il codice è corretto.
      Per Lyx hai la possibilità di introdurre nel preambolo tutto quello che ti serve 😉

      Ciao

      Enzo

    • #12562
      Up
      0
      Down
      ::

      Credo che per modificare il comportamento localmente basti mettere nel preambolo
      `\def\reftextfaraway#1{a pagina~\pageref{#1}}%`

      Il modo migliore è di scrivere
      `\makeatletter
      \vref@addto\extrasitalian{\def\reftextfaraway#1{a pagina~\pageref{#1}}}
      \makeatother`
      Questo per evitare che un cambiamento di lingue produca l’effetto di ritornare alla definizione originale. Non è necessario se si usa solo l’italiano, in tal caso il tuo codice è sufficiente.

      Il seguente codice mostra il problema:
      `\documentclass[a4paper,english,italian]{article}
      \usepackage{babel,varioref}
      \def\reftextfaraway#1{a pagina~\pageref{#1}}
      \begin{document}
      \show\reftextfaraway
      \end{document}`
      Il messaggio che si ottiene è
      `> \reftextfaraway=macro:
      #1->nella pagina~\pageref {#1}.`
      Con il codice più complesso, il messaggio è
      `> \reftextfaraway=macro:
      #1->a pagina~\pageref {#1}.`
      Ciao
      Enrico

Visualizzazione 6 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top