problema con \marginpar

  • Questo topic ha 5 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 19 anni, 11 mesi fa da ev.
  • Creatore
    Topic
  • #10761
    Up
    0
    Down
    ::


    Ciao a tutti,
    sto scivendo un documento nel quale ho utilizzato abbondantemente il comando \marginpar per inserire note a margine. Il problema che mi si presenta è il seguente: quando una nota a margine è “ancorata” all’ultima riga di una pagina, anzichè proseguire nella pagina successiva questa và a finire sul bordo e, se particolarmente lunga, esce anche dalla pagina.

    A parte l’ovvia risposta “..in una nota a margine non dovresti scrivere un romanzo” è possibile fare qualcosa per risolvere questo problema in stile Latex (cioè senza spostare manualmente la nota e senza inserire interruzioni di pagina manuali)?

    Grazie
    SM

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #10762
      Up
      0
      Down
      ::

      A parte l’ovvia risposta “..in una nota a margine non dovresti scrivere un romanzo” …

      Provo a darti una risposta che esula dal problema TeXnico.

      Le note a margine non sono utilizzate normalmente nella tipografia italiana (alcuni riferimenti possono essere la documentazione del pacchetto LayAureo di Fabiano Busdraghi, in CTAN, oppure le ‘Norme tipografiche per l’italiano in LaTeX’ di Gustavo Cevolani, presente sul primo numero di ArsTeXnica, rivista ufficiale di GuIT), pertanto ti consiglierei di cambiare tipo di nota (quelle a pié di pagina sono molto più comuni).

      Ciao.

    • #10763
      Up
      0
      Down
      ::


      Grazie per la risposta.
      In realtà sperimentavo layout alternativi senza peroccuparmi troppo della tipografia italiana. Tutto nasceva dall’aver letto (e constatato personalmente) che documenti impaginati con zone di testo molto larghe sono difficili da leggere perchè “scoraggerebbero” il lettore. Addirittura il testo che ho letto riportava come “larghezza massima” il valore (sigh!!) di 132 mm.

      Anche senza attenersi strettamente ai 132mm (utilizzando 140mm su foglio A4 con carattere di 10pt) rimane una grande quantità di spazio vuoto ed il documento assume un pò la forma (a mio parere) del tema delle superiori, nel quale scrivere su mezzo foglio era una scusa per far sembrare il tema più lungo..

      Utilizzando invece un area di testo di 150mm con 3.5cm a sinistra dove scrivere informazioni e commenti aggiuntivi mi pareva graficamente più ricco.

      SM

      PS. Si, sò gia che la tipografia italiana se fosse morta si contorcerebbe nella tomba.. 😉

    • #10764
      Up
      0
      Down
      ::


      La tua è una condizione quasi normale, tutti i principianti che si trovano di fronte agli ampi margini di LaTeX si trovano in una condizione di quasi fastidio. Hai già detto tutto tu, ma lasciami tentare di persuaderti dall’utilizzare layouts più larghi: per testi molto lunghi, diminuire i margini e fare in modo che la linea di testo sia più lunga di 66 caratteri appesantisce la lettura, perché l’occhio umano si stanca di più a leggere una riga lunga. Non sono io che dico questo, ma decenni (se non centinaia di anni) di tipografia. E il problema non sono i margini di LaTeX, è il foglio A4 🙂

      Se vuoi un consiglio e ti serve di allargare i margini, affidati a pacchetti statici come layaureo o qualcosa di più dinamico come geometry, fermo restando che qualsiasi allargamento dell’area del testo è, di base, sbagliato.

      Ciao.

    • #10765
      ev
      Partecipante
        Up
        0
        Down
        ::

        è possibile fare qualcosa per risolvere questo problema in stile Latex

        No: le note a margine sono racchiuse in box e quando la scatola è troppo grande “sfora”. Se stai usando la classe memoir, potresti usare \sidebar (ma fai attenzione che il comportamento è un po’ diverso da quello di \marginpar); oppure potresti dare un’occhiata a marginnote, che usando framed potrebbe aver aggirato anche questo problema (NB: non l’ho mai usato).

      • #10766
        ev
        Partecipante
          Up
          0
          Down
          ::


          Ritorno sulla questione perché mi sono messo a pensare ad una possibile soluzione, tutta da scrivere e testare con cura, che permetterebbe di ottenere risultati paragonabili a quelli del layout di The Annotated Hobbit (purtroppo non ho trovato un’immagine dell’interno da farvi vedere, quindi dovrete accontentarvi della descrizione: le abbondanti e copiose note sono sistemate nel generoso margine esterno, solitamente in corrispondenza del termine o della frase a cui si riferiscono; quando una nota è molto lunga viene continuata sulle pagine seguenti, iniziando in corrispondenza della prima riga del testo, e le note seguenti sono tutte “spostate” di conseguenza, senza alcuna sovrapposizione).

          L’idea di base è dovuta a recenti esperienze che ho avuto con il meccanismo dei text flow di ConTeXt: in estrema sintesi, è possibile definire il contenuto di un “blocco” di testo particolare e riversare parte di tale “blocco” un po’ per volta in “scatole” diverse a seconda della dimensione delle “scatole” fino ad esaurie il contenuto del “blocco”. Il tutto fa uso della primitiva \vsplit.

          Detto questo, ipotizziamo di avere l’equivalente dei text flow di ConTeXt anche in LaTeX. A grandi linee, si potrebbe tentare di procedere in questo modo:

          • definire il luogo fisico sulla pagina in cui verranno posizionate le note (larghezza ed altezza);

          • definire una sorta di “buffer”, da usare in modalità FIFO, che contenga il testo di tutte le note a margine che vengono analizzate mano a mano che la compilazione del documento procede;

          • nel codice delle note a margine:

          • se il buffer è vuoto allora si aggiunge il testo nel buffer e si inizia esplicitamente a svuotarlo subito, segnalando opportunamente l’inizio dell’operazione;

          • se il buffer non è vuoto, ci si limita ad aggiungere il testo in coda;

          • nella routine di output, quando è il momento di generare una nuova pagina, se il buffer non è vuoto e non ne è già stato iniziato lo svuotamento in questa pagina, allora si svuota il buffer e si resetta lo stato del segnale di cui sopra.[/ul] Nella migliore delle ipotesi, avendo preventivamente fissa l’altezza della zona in cui finiranno le note, usando l’analogo del text flow (ancora tutto da scrivere, ovviamente), il contenuto del buffer verrebbe potenzialmente usato in maniera parziale ed il rimanente verrebbe conservato ed usato nelle pagine seguenti. Ovviamente, se si provasse ad untilizzare le classiche inserzioni tutto questo farebbe a cazzotti con il meccanismo dei floating object… e se fosse così facile, se non ci fossero problemi di sincronizzazione, etc., qualcuno ci avrebbe già pensato 🙂 Però, se qualcuno non ha idee su come passare le prossime vacanze di Natale, regalo l’idea ed un caloroso “in bocca al lupo”.

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

        Go to top