Errore terminazione ambiente adjmulticols

  • Creatore
    Topic
  • #114541
    Up
    0
    Down
    ::


    Buongiorno a tutti!
    Sto cercando di realizzare un libretto dei canti per la mia parrocchia. Sto utilizzando il pacchetto canoniereonline di Francesco Endrici (basato su Songs di Hamlen). Per mantenere il tutto più compatto possibile ho deciso di inserire sia canti a una colonna, sia a due colonne (in base alla lunghezza dei versi). Per farlo uso l’ambiente multicols, in cui inserisco il corpo di un canto (voglio avere il titolo comunque largo come tutta la pagina). So che forse non è il metodo più elegante, ma a parte alcuni piccoli effetti collaterali, che correggo manulamente, mi permette di fare esattamente ciò che voglio.
    Alcuni canti non possono essere messi su due colonne perchè magari sforano di 1 o 2 millimetri la larghezza della colonna. Per ovviare a questo problema ho trovato il pacchetto adjmulticol, che crea un ambiente multicolonna che si estende oltre i margini. So che probabilmente tipograficamente non sia la scelta più corretta, ma mi sembra un buon compromesso tra grafica e compattezza del libretto. Il problema, per cui vi chiedo suggerimenti, è che ricevo questo errore (in riferimento al codice in seguito riportato):

    `riga 17: \begin{adjmulticols} on input line 13 ended by \end{multicols}. \end{adjmulticols}`

    Peraltro il risultato compilato è esattamente quello che mi aspetto (quindi sarei tentato di ignorare brutalmente l’errore). Inoltre il pacchetto adjmulticols in un documento normale non mi crea problemi, quindi suppongo sia dovuto a qualche incompatibilità con il pacchetto songs (o canzoniere online). Però credo (e spero) che in qualche modo possa funzionare ugualmente, dato che multicol funziona “bene” e adjmulticol è basato proprio su di esso. Come posso risolvere? O altrimenti, conoscete pacchetti alternativi che facciano lo stesso?
    Di seguito riporto un codice minimo su cui si presenta il problema:

    `\documentclass[ a5vert, libertine, titleindex, tematicindex, lyric, nocover]{canzoniereonline}
    \usepackage[hidelinks]{hyperref}
    \usepackage[italian]{babel}
    \usepackage{adjmulticol}

    \songcolumns{1}
    \begin{document}
    \begin{songs}{}

    \beginsong{Titolo del canto}
    \begin{adjmulticols}{2}{-2mm}{-2mm}
    \beginverse
    strofa numero uno
    \endverse
    \beginverse
    strofa numero due
    \endverse
    \end{adjmulticols}
    \endsong

    \end{songs}
    \end{document}
    `

    Grazie,
    Michele

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #114542
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Benvenuto nel forum.
        Temo che nessuno qui sul forum, tranne Francesco Endrici, possa darti una risposta, perché il pacchetto canzoniereonline o la classe canzoniereonline.cls non fanno parte della distribuzione di TeX Live. Quindi nessuno può sperimentare il codice di quelal classe e constatare se ci sia incompatibilità fra multicols e adjmulticols.

        Mi spiace.
        Tuttavia avrei un piccolo suggerimento da darti; se non puoi usare adjmulticols per allargare un pochino la giustezza delle due colonne, puoi al contrario ridurre un pochino il corpo dei font con i quali scrivi. Vedo infatti che usi i font libertine che sono scalabili con continuità (prendi in esame anche, eventualmente i font liberitnus, basati sui precedenti ma, a mio parere, migliori sotto molti punti di vista, se non altro perché hanno un esperto di font che se ne occupa costatemente,mentre i libertine sono un po’m ehm, lasciati in disparte).

        La macro seguente`\DeclareRobustCommand*\setfontsize[2][1.2]{%
        \def\linespread{#1}\fontsize{#2}{#2}\selectfont}`permette di specificare solo e soltanto con i font scalbili con continuità anche a tratti un corpo qulsiasi anche fratto. Supponiamo che tu stia componendo in corpo 12pt (nonlo vedo indicato fra le opzioni della classe ma è probabile che sia il corpo di default) allora se vuoi il tuo cnto richede un allargamento della giustezza di 4mm su una giustezzaa normale di (diciamo) 120mm, questo significa un 3% in più. Se tu diminuisci il corpo del 3% e quindi vuoi passare da 12pt a 11.64pt, ti basta specificare quel comando con l’argomento 11.64 (con o senza pt, è lo stesso) e il giochetto è fatto.

        Naturalmente questo trucchetto non funzionerabbe con i font CM e nemmeno cono i font CM-super, perché non sono scalabili con continuità, ma con i font Type 1, TrueType e OpenType funziona alla grande.

      • #114543
        Up
        0
        Down
        ::


        Grazia della risposta! In realtà nel vero libretto sto usando il font raleway a 10pt, ma dovrebbe essere OpenType (in realtà non ne sono sicuro, ma i file del font sono .otf, quindi lo è?). Adesso faccio una prova con il tuo consiglio. In pratica dovrei mettere \setfontsize[11.6] prima del canto e ripristinare poi 10 dopo con \setfontsize[10]. Gli argomenti però non dovrebbero essere 2? devo inserire anche l’interlinea?

      • #114544
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Se usi il mio comando dentro un ambiente o dentro un gruppo, la sua impostazione rimane cofinata all’interno dell’ambiente o del gruppo. No, l’allargamento dello scartamento lo puoi mettere se vuoi; il primo parametro è opzionale e il valore 1.2 è il suo valore di default; quindi se componi col corpo 10pt, il default per lo scartamento è di 12pt perciò l’interlinea è di 2pt; non confondere lo scartamento con l’interlinea, anche se generalmente il noto word processor, tradotto in italiano in India, chiama interlinea lo scartamento.

          Ma se componi in corpo 10 devi impostare [tt]\setfontsize{9.7)[/tt], cioè il 3% in meno del corpo normale, se vuoi restringere le righe di 4mm su 120mm. Siccome io ho supposto che 4/120 fosse il restringimento della riga, ho calcolato il 3%, ma tu devi provare diversi valori (minori di 10) facendoti prima due conti sulle dita per non dover fare troppi tentativi. Io sono arrivato a specificare fino a tre cifre decimali in qualche mio documento. Quindi la macro e la soluzione trovata lavorando con il fattore di spread, invece che con lo scartamento a me è risultata molto valida e utile.

        • #114545
          Up
          0
          Down
          ::


          Grazie! Credo che ci sia un piccolo refuso nella funzione che mi hai indicato, il doppio backslash prima di selectfont dovrebbe essere singolo. A parte quello funziona, adesso vedrò se usare questo metodo o tenermi adjmulticols con l’errore. Comunque mi hai risolto un dubbio che avevo sulla scalabilità con continuità dei font!

          Ma se componi in corpo 10 devi impostare \setfontsize{9.7), cioè il 3% in meno del corpo normale, se vuoi restringere le righe di 4mm su 120mm. Siccome io ho supposto che 4/120 fosse il restringimento della riga, ho calcolato il 3%, ma tu devi provare diversi valori (minori di 10) facendoti prima due conti sulle dita per non dover fare troppi tentativi.

          Sì sì, questo era chiaro, avevo solo messo il numero senza ricalcolarlo su 10pt.

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

      Go to top