URL troppo lungo nella bibliografia

  • Creatore
    Topic
  • #118113
    GuITstaff
    Amministratore del forum
      Up
      0
      Down
      ::


      Buongiorno,
      premetto che ho certo una soluzione ma non sono riuscito a trovarla. Finora mi son sempre arrangiato ma in questo caso non so come intervenire.

      In pratica, nel comporre la bibliografia, alcuni url escono dal margine destro ed esteticamente fanno pena:
      esempio

      La bibliografia l’ho composta in un file a parte in questo modo(ho riportato solamente i 2 url che sbordano):
      `@online{Profibus4,
      title={Profibus},
      url={http://docenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione/files/Profibus%20Corso.pdf},
      }

      @online{Solartron_PIM,
      title={Solartron PIM},
      url={https://www.solartronmetrology.it/-/media/ameteksolartronmetrology/datasheets/503279%20-%20pim%20combined%20data%20sheet.pdf},
      }
      `

      Di seguito metto quello che ho scritto su Texworks nel preambolo e nel main riporto solamente i comandi per stampare la bibliografia:
      `\documentclass[12pt, twoside, titlepage]{report}
      \usepackage{geometry}
      \geometry{a4paper, top=2cm, bottom=2.5cm, left=3cm, right=2.5cm}

      \usepackage[utf8]{inputenc}
      \usepackage[T1]{fontenc}
      \usepackage{lmodern}
      \usepackage[italian]{babel}

      \usepackage{fancyhdr} %testatina e numeri di pagina personalizzati

      \usepackage[hyphens]{url} %per inserire link web

      \usepackage{graphicx} %pacchetti per la gestione delle immagini
      \usepackage{subfig}

      \usepackage{pgfplots} %pacchetto per grafici

      \usepackage{eurosym} %pacchetto per richiamare simbolo €

      \usepackage{amsmath} %pacchetti per l'ambiente math
      \usepackage{amssymb}

      %comandi per frontespizio
      \newcommand {\institutionfont}{\fontsize {22}{20}\scshape}
      \newcommand {\divisionfont}{\fontsize {16}{30}\rmfamily}
      \newcommand {\coursefont}{\fontsize {16}{20}\rmfamily}
      \newcommand {\pretitlefont}{\fontsize {16}{16}\rmfamily}
      \newcommand {\titlefont}{\fontsize {18}{22}\bfseries}%\usefont{T1}{iwona}{bx}{n}
      \newcommand {\fixednamesfont}{\fontsize {14}{17}\rmfamily}
      \newcommand {\namesfont}{\fontsize {15}{18}\bfseries}
      \newcommand {\footfont}{\fontsize {15}{18}\rmfamily}

      %pacchetti per la bibliografia
      \usepackage[autostyle, italian=guillemets]{csquotes}
      \usepackage[backend=biber]{biblatex}
      \addbibresource{Bibliografia/bibliografia.bib}

      \usepackage{hyperref} %riferimenti cliccabili
      \hypersetup{
      pdfpagemode={UseOutlines},
      bookmarksopen,
      pdfstartview={FitH},
      colorlinks,
      linkcolor={blue},
      citecolor={blue},
      urlcolor={blue}
      }

      %%%*****%%%%
      \begin{document}

      %%%%%%%%%%
      \clearpage
      \nocite{*}
      \fancyhead[C]{\small\bfseries\nouppercase{\leftmark}} %sistemo la testatina della bibliografia altrimenti avrei B- BIBLIOGRAFIA
      \printbibliography
      \addcontentsline{toc}{chapter}{Bibliografia}

      %%%%%%%%%%
      \end{document}
      `

      Come potrei evitare che quei due url escano dal bordo destro?

    Visualizzazione 10 filoni di risposte
    • Autore
      Risposte
      • #118114
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Benvenuto nel forum.
          Hai fatto nene a caricare il pacchetto url con l’opzione hyphens, ma devi configurarlo perché usi altri punti di cesura; esamina con attenzione la documentazione del pacchetto url (da terminale da’ il comando texdoc url) e in particolare il paragrafo 5.2.

          In casi disperati puoi sempre usare il comando \href definito dal pacchetto hyperref; riceve dua argomenti, uno è quello che viene scritto nel documento e l’altro è il vero url; in quello destinato ad essere scritto nel documento puoi inserire il comando \discretionary{}{}{} dove vuoi eseguire un “a capo”. \discretionary è il comando con tre argomenti che inserisce un punto di cesura facolttivo; i suoi tere argomenti indicano che cosa metere a fine riga,a inizio della riga successiva nel caso che avvenga la cesura; e che cosa mettere invece se la cesura non vien eseguita.
          Io per esempio userei discretionary per eseguire una cesura facoltativa in un url in corrispondenza di un trattino in questo modo`http://Alto\discretionary{-}{}{-}Adige`in modo da mettere comunque il trattino sia se si va a capo, sia se non si va a capo. Lasciando i tre argomenti vuoiti non si mette nessun segno particolare, perch´in un url non deve comparire nessun altro segno oltre ai suoi propri.
          Come vedi si tratta di uno “sporco trucco” a cui si può ricorrere solo in casi estremi, non da usare sistematicamente.

        • #118115
          GuITstaff
          Amministratore del forum
            Up
            0
            Down
            ::

            OldClaudio” post=118553Benvenuto nel forum.
            Hai fatto nene a caricare il pacchetto url con l’opzione hyphens, ma devi configurarlo perché usi altri punti di cesura; esamina con attenzione la documentazione del pacchetto url (da terminale da’ il comando texdoc url) e in particolare il paragrafo 5.2.

            In casi disperati puoi sempre usare il comando \href definito dal pacchetto hyperref; riceve dua argomenti, uno è quello che viene scritto nel documento e l’altro è il vero url; in quello destinato ad essere scritto nel documento puoi inserire il comando \discretionary{}{}{} dove vuoi eseguire un “a capo”. \discretionary è il comando con tre argomenti che inserisce un punto di cesura facolttivo; i suoi tere argomenti indicano che cosa metere a fine riga,a inizio della riga successiva nel caso che avvenga la cesura; e che cosa mettere invece se la cesura non vien eseguita.
            Io per esempio userei discretionary per eseguire una cesura facoltativa in un url in corrispondenza di un trattino in questo modo`http://Alto\discretitonary{-}{}{-}Adige`in modo da mettere comunque il trattino sia se si va a capo, sia se non si va a capo. Lasciando i tre argomenti vuoiti non si mette nessun segno particolare, perch´in un url non deve comparire nessun altro segno oltre ai suoi propri.
            Come vedi si tratta di uno “sporco trucco” a cui si può ricorrere solo in casi estremi, non da usare sistematicamente.

            ad esempio se nel file bibliografia metto:
            `@online{Solartron_PIM,
            title={Solartron PIM},
            url={https://www.solartronmetrology.it/-/media \UrlBreaks /ameteksolartronmetrology/datasheets/503279%20-%20pim%20combined%20data%20sheet.pdf},
            }`

            oppure
            `@online{Solartron_PIM,
            title={Solartron PIM},
            url={https://www.solartronmetrology.it/-/media \discretitonary{}{}{} /ameteksolartronmetrology/datasheets/503279%20-%20pim%20combined%20data%20sheet.pdf},
            }`

            sia con che senza gli spazi prima e dopo dei 2 comandi \UrlBreaks e \discretitonary, nel pdf lo ritrovo stampato al posto che mi vada a capo esempio

          • #118116
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              No, credo che see nell’url metti quelle cose, non puoi usare nella bibliografia il descrittore di campo url, ma certamante puoi usare il campo note dove metterai qualcosa come `note={\href{https://www.solartronmetrology.it/-/media/ameteksolartronmetrology/datasheets/503279%20-%20pim%20combined%20data%20sheet.pdf}{https://www.solartronmetrology.it/-/media\discretionary{/}{}{/}ameteksolartronmetrology/datasheets/503279%20-%20pim%20combined%20data%20sheet.pdf}},`

            • #118117
              GuITstaff
              Amministratore del forum
                Up
                0
                Down
                ::

                OldClaudio” post=118555No, credo che see nell’url metti quelle cose, non puoi usare nella bibliografia il descrittore di campo url, ma certamante puoi usare il campo note dove metterai qualcosa come `note={\href{https://www.solartronmetrology.it/-/media/ameteksolartronmetrology/datasheets/503279%20-%20pim%20combined%20data%20sheet.pdf}{https://www.solartronmetrology.it/-/media\discretionary{/}{}{/}ameteksolartronmetrology/datasheets/503279%20-%20pim%20combined%20data%20sheet.pdf}},`

                ho provato con:
                `@misc{Solartron_PIM,
                title={Solartron PIM},
                note={URL: \href{https://www.solartronmetrology.it/-/media/ameteksolartronmetrology/datasheets/503279%20-%20pim%20combined%20data%20sheet.pdf}{https://www.solartronmetrology.it/-/media\discretionary{/}{}{/}ameteksolartronmetrology/datasheets/503279%20-%20pim%20combined%20data%20sheet.pdf}},
                }`

                ma poi nel compilare pdflatex si blocca, idem se uso il comando \url. Se tolgo il comando \href invece compila tranquillamente

              • #118118
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Compila perfettamante… Mmmm, e ti crea anche il link cliccabile?

                  Ti dico subito che io buttola spugna, eprché il tuo url contien troppu caratteri % e la documentazione del pacchetto url dice che il suo argomento non può contenere né graffe né chiocciole né cancelletti né doppi circonflessi. Forse studuando le centinaia di pagine dei documentazione di biblatex si riesce a trovare una via d’uscita, ma onestamante questo è un lavoro che dovresti fare tu.
                  Mi spiace.

                • #118119
                  GuITstaff
                  Amministratore del forum
                    Up
                    0
                    Down
                    ::

                    OldClaudio” post=118557Compila perfettamante… Mmmm, e ti crea anche il link cliccabile?

                    Ti dico subito che io buttola spugna, eprché il tuo url contien troppu caratteri % e la documentazione del pacchetto url dice che il suo argomento non può contenere né graffe né chiocciole né cancelletti né doppi circonflessi. Forse studuando le centinaia di pagine dei documentazione di biblatex si riesce a trovare una via d’uscita, ma onestamante questo è un lavoro che dovresti fare tu.
                    Mi spiace.

                    non saprei perchè pdflatex mi dia errore. Ho risolto mettendo il link alla pagina precedente, essendo più conto, non crea problemi.
                    Per l’altro link che sborda o lo toglierò o cercherò di utilizzare un link più corto.
                    Grazie per le risposte.

                  • #118120
                    mcl1962
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Prova ad inserire alla fine del tuo preambolo:

                      `
                      % Aggiustamento per l'a capo degli URL
                      \expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks% save the current one
                      \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
                      \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
                      \do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D%
                      \do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N%
                      \do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X%
                      \do\Y\do\Z\do\*\do\-\do\~\do\'\do\”\do\-\do\0\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9}%
                      \PassOptionsToPackage{hyphens}{url} % scrittura degli URL
                      `

                      Ciao.

                      Claudio

                    • #118121
                      GuITstaff
                      Amministratore del forum
                        Up
                        0
                        Down
                        ::


                        ho risprovato a mettere, nel file bibliografia, note={\href….}, ma ancora una volta si blocca la compilazione
                        `(c:/texlive/2019/texmf-dist/tex/latex/biblatex/lbx/italian.lbx) (./Tesi.bbl)
                        Runaway argument?
                        {\href {http://docenti.etec.polimi.it/IND32/Didattica/AzionamentixAut\ETC.
                        ! File ended while scanning use of \field.

                        \par
                        l.87 \begin{document}`

                        mcl1962″ post=118559Prova ad inserire alla fine del tuo preambolo:

                        `
                        % Aggiustamento per l'a capo degli URL
                        \expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks% save the current one
                        \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
                        \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
                        \do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D%
                        \do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N%
                        \do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X%
                        \do\Y\do\Z\do\*\do\-\do\~\do\'\do\”\do\-\do\0\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9}%
                        \PassOptionsToPackage{hyphens}{url} % scrittura degli URL
                        `

                        Ciao.

                        Claudio

                        aggiunto ma non ha cambiato modo di spezzare i link.
                        esempio

                      • #118122
                        OldClaudio
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          Prova ad aggiungere a quella lista \do\%

                          Dubito che funzioni, ma certamente ci vuole anche quello.

                          In teoria quella lunga lista si potrebbe dividere dopo qualsiasi lettera anche a metà di una parola. Tuttavia, come vedi non funziona.

                          Vedendo il tuo esempio, mi vengono in mente alcune osservazioni.

                          a) i link a cose che si trovano in rete sono generalmente fuffa non solo nelle tesi, ma in qualunque biblio/sitografia di qualunque documento; perché? Semplicemente perché in un tempo più o meno breve ognuni di quegli indirizzi non funzionerà più; l’informazione che si trova in rete è per sua natura labile ed evanescente.
                          b) Se d’altra parte si vuole dare appoggio ad affermazioni del documento mediante dei riferimenti, Secondo me sarebbe meglio scrivere una nota al piede nel quale si dica, per esempio: “Dagli appunti del corso di Tetratricologia, tenutosi nell’anno accademico 2345-2346 presso l’università di Bengodi”. In questo modo si conferma che le affermazioni fatte nel documento non piovono dal cielo ma furono a suo tempo oggetto di un insegnamento ufficiale. Scrivendo in questo modo non hai nemmeno bisogno di usare lunghi url pieni di punti in cui non puoi andare a capo.
                          c) Nella documentazione del pacchetto url c’è scritto come usare diversamente il comando \do per assegnare a una lettera qualsiasi il compito di andare a capo senza usare il trattino. ma dovrebbe essere un lettera non usata nell’url; per poterla scrivere oltre a \newline, bisognerebbe inserire anche il codice ASCII in esadecimale minuscolo preceduto da due circonflessi; per esempio se vuoi andare a capo dopo una “z”, che ha codice esadecimale 7A, dovresti usare `\makeatletter \g@addto@macro\UrlSpecials{\do\z{^^7a\newline}}\makeatother`Come al solito, non sono affatto sicuro che funzioni, ma tentar non nuoce.
                          Onestamente non sono alieno dall’usare sporchi trucchi, ma questo, ammesso che funzioni, non è sporco, ma sporchissimo.

                        • #118123
                          mcl1962
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            #Osc@r# effettivamente la soluzione che ti ho proposto non funziona con il tuo secondo esempio del tuo primo post.

                            Nel frattempo ho scoperto che esiste il pacchetto xurl che gestisce automaticamente gli a capo degli url, anche in biblatex. Se carichi xurl dopo biblatex il tuo problema dovrebbe risolversi (almeno da me è risolto e posso alleggerire il codice dei miei file).

                            Ciao.
                            Claudio

                          • #118124
                            GuITstaff
                            Amministratore del forum
                              Up
                              0
                              Down
                              ::

                              mcl1962″ post=118563#Osc@r# effettivamente la soluzione che ti ho proposto non funziona con il tuo secondo esempio del tuo primo post.

                              Nel frattempo ho scoperto che esiste il pacchetto xurl che gestisce automaticamente gli a capo degli url, anche in biblatex. Se carichi xurl dopo biblatex il tuo problema dovrebbe risolversi (almeno da me è risolto e posso alleggerire il codice dei miei file).

                              Ciao.
                              Claudio

                              provato e funzionale alla grande e tutti gli url rispettano i margini imposti.
                              grazie

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

                          Go to top