Testo su due colonne (pacchetto paracol)

  • Creatore
    Topic
  • #117051
    samiel
    Partecipante
      Up
      0
      Down
      ::


      Ho provato a utilizzare il pacchetto paracol per produrre un testo a due colonne,
      ma il risultato è pessimo perché le colonne sfondano continuamente i margini.
      Si veda in questo (quasi) MWE la terza riga del testo inglese,
      ma di cose del genere ne fa innumerevoli, addirittura la riga inglese
      che invade quella italiana e vi si sovrappone.
      C’è qualche errore nel mio codice, o il pacchetto funziona male per altri motivi?
      Riporto il codice e il risultato.
      `\documentclass[12pt,twoside,openany]{report}
      \usepackage[no-math]{fontspec}
      \usepackage[english,italian]{babel}
      \babelfont[italian]{rm}[Ligatures=TeX,Numbers={Proportional,OldStyle}]{EB Garamond}
      \babelfont[english]{rm}[Ligatures=TeX,Numbers={Proportional,OldStyle}]{EB Garamond}
      \usepackage[autostyle=true]{csquotes}

      \frenchspacing
      \usepackage[a4paper,heightrounded,margin=2.5cm]{geometry}
      \raggedbottom
      \linespread{0.92}
      \lineskip=0pt
      \lineskiplimit=-1000pt
      \usepackage{paracol}

      \begin{document}

      \selectlanguage{english}
      \begin{paracol}{2}
      \setlength{\columnsep}{2em}
      \begin{leftcolumn}
      17: To exercise exclusive Legislation in all Cases whatsoever, over such District (not exceeding ten Miles square) as may, by Cession of particular States, and the Acceptance of Congress, become the Seat of the Government of the United States, and to exercise like Authority over all Places purchased by the Consent of the Legislature of the State in which the Same shall be, for the Erection of Forts, Magazines, Arsenals, dock-Yards, and other needful Buildings;—And

      18: To make all Laws which shall be necessary and proper for carrying into Execution the foregoing Powers, and all other Powers vested by this Constitution in the Government of the United States, or in any Department or Officer thereof.
      \end{leftcolumn}

      \selectlanguage{italian}
      \begin{rightcolumn}
      17: Di esercitare esclusivo diritto di legiferare in qualsiasi caso in quel distretto (non eccedente le dieci miglia quadrate) che per cessione di Stati particolari, e per consenso del Congresso, divenga sede del governo degli Stati Uniti; e di esercitare analoga autorità su tutti i luoghi acquistati, con l’assenso della Legislatura dello Stato in cui si trovano, per la costruzione di fortezze, di depositi, di arsenali, di cantieri e di altri edifici di utilità pubblica;

      18: Di fare tutte le leggi necessarie ed adatte per l’esercizio dei poteri di cui sopra, e di tutti gli altri poteri di cui la presente Costituzione investe il governo degli Stati Uniti, o i suoi dicasteri ed uffici
      \end{rightcolumn}
      \end{paracol}
      \end{document}`

      grazie
      m

      Attachments:
      You must be logged in to view attached files.
    Visualizzazione 7 filoni di risposte
    • Autore
      Risposte
      • #117052
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Le divisioni in sillabe del testo inglese sono più delicate di quelle del testo italiano; aiutati con dei comandi \- e/o aumenta considerevolmente i fattori di tolleranza richiesti per la sillabazione, per esempio porta \tolerance al valore 2000 e \pretolerance al valore 1000; la sillabazione è spiegata succintamente nella giuda tematica Il LaTeX Reference Manual commentato nella sezione delel guide tematiche della Sezione Documentazione di questo forum; e abbastanza diffusamente in un apposito capitolo della GuidGuIT Introduzione all’arte della composizione tipografica con LaTeX.

        • #117053
          samiel
          Partecipante
            Up
            0
            Down
            ::


            ottimo consiglio!
            è opportuno modificare anche emergencystretch ?
            ormai è troppo tardi, domani vedo le guide che mi hai indicato.

            un’altra cosa. poiché i due testi non corrispondono esattamente,
            perché ogni sezione e articolo inizi esattamente in parallelo
            in inglese e in italiano, devo lasciare qua e là qualche riga bianca.
            poiché ho fatto un copia/incolla da un sito inglese e da uno italiano,
            sono costretto a spezzare il testo mettendo ogni volta
            \begin{leftcolumm} ecc., o esiste un sistema più economico?

            grazie
            m

          • #117054
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Be’ è chiaro che qualche intervento manuale lo devi fare; la lunghezza di un testo in italiano di solito è maggiore del corrispondente testo inglese, quindiil numero di righe è 9quasi) sempre diverso. Forse te la puoi avere con una sola macro che definisci mediante l’uscita da una collonna e l’emtrata nell’altra,in mod cje puoi inserire questa macro per separare i capoversi e riallineare le due traduzioni. oppure aggiungi incod al capovero più corto uno opiù comandi \null che inseriscono ciascuno una riga vuota se operano in modo verticale, quindi lasicndo una riga banca fa la fine di un capoverso da llungare e il [rimo \null da aggiungere.

              Visto che conosci il tedesco, prova a scaricati il testo di Anselm Lingnau, LaTeX Hacks, Tips un Techniken für professionellen Textsatz, pubblicato da O’Reilu. Sembra che ce ne sia una versione PDF completa in rete. Nel capitolo 1 paragrafo 10 parla di Polyglotter Parallelismus. È proprio l’argomento che ti interessa sono 5 pagine in tutto, ma sonomolto di più di quello che si può scrivere in un messaggio di questo forum (ammesso che io sia capace di farmi un’idea di qualcosa di scritto in tedesco).

            • #117055
              samiel
              Partecipante
                Up
                0
                Down
                ::


                grazie mille per la segnalazione. scaricato il libro, in serata vedo quel paragrafo.

                il mio problema è che ho due lunghe colonne, tutto il testo in inglese e tutto quello in italiano
                (almeno una quindicina di pagine) e volevo evitare di spezzare il testo in centinaia di capoversi,
                il che mi prenderebbe ore di lavoro. La mia idea (speranza) è che si potessero mantenere
                intatti i testi (sopra tutto l’inglese e dopo tutto l’italiano) e inserire dei “break” all’interno
                guardando l’allineamento nel pdf senza dover disfare tutte le due colonne originali del testo.
                utopia?

                PS
                spero sia legale, cmq:
                LaTeX Hacks

              • #117056
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::

                  samiel” post=117482grazie mille per la segnalazione. scaricato il libro, in serata vedo quel paragrafo.

                  PS
                  spero sia legale, cmq:
                  LaTeX Hacks

                  Non so se sia legale; io l’ho ricevuto da un membro del GuIT; personalmente non l’ho mai scaricato dalla rete, ma era un allegato ad un messaggio.

                • #117057
                  samiel
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    grazie, naturalmente \null produce l’effetto desiderato.
                    ma non ci sono altri comandi / macro per lasciare quella riga vuota?

                    m

                  • #117058
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Non ho mai provato, perché mi sono sempre accontentato di \null; in fondo non ho mai scritto cose più lunghe di una decina di pagine, quindi con un numero di capoversi paralleli dell’ordine della cinquantina; di cui solo qualcuno necessitava di una istanza o due di \null.

                      Però il discorso di paracol, se ben ricordo consiste nel emettere una riga alla volta le due colonne parziali di due capoversi paralleli che prima vengono memorizzati in due scatole verticali; poi vengono svuotate una riga alla volta; verso la fine c’è un test che controlla se l’una e/o l’altra scatola verticale è vuota e se una delle due non lo è, questa solamente viene svuotata in blocco (le ultime una o dei righe, in generale) però sempre una riga alla volta, per consentire il parallelismo anche dopo un salto di pagina che coinvolgesse l’una o l’altra colonna. Potrebbe essere possibile ridefinire questa macro in modo da sostituire i comandi di fine capoverso da emettere dopo un paragrafo della seconda colonna. Onestamente non me la sento di spendere una mezza giornata per cercare di definire questa macro (mezza giornata, perché sto diventando molto lento a causa anche di una incipiente disgrafia che mi fa commettere molti errori di digitazione, errori che forse sono normali refusi nel testo, ma non sono accettabili nel codice).

                      Tuttavia il problema che lamenti sembra sia già risulto dal pacchetto parallel, perché consente di definire le larghezze delle due colonne; giocano sul quel parametro (con la colonna per l’italiano leggermente maggiore di quella per l’inglese) dovrebbe essere possibile dopo qualche tentativo trovare le larghezze giuste dove in un colpo solo tutti o la grande maggioranza dei capoversi sono davvero paralleli. i pochi capoversi che rimangono disallineati si aggiustano con \null.

                    • #117059
                      samiel
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        allora provo anche parallel !
                        m

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

                    Go to top