Interlinea “variabile”

  • Creatore
    Topic
  • #75328
    franen
    Partecipante
      Up
      0
      Down
      ::


      Ciao, un problemino col solito pacchetto per la gestione dei brani biblici. Se compilate l’emc qui sotto vedete che l’interlinea non è sempre costante (non parlo della spaziatura fra i “blocchi” di testo, solo di quella all’interno dei blocchi).
      Sapreste dirmi qual è il motivo e qual è la soluzione? Io non riesco proprio a capirlo.
      (Questo è il codice che gentilmente Claudio aveva scritto per la versione LaTeX2e del pacchetto, ma anche nella versione LaTeX3 la sintassi è rimasta praticamente la stessa perché non sono riuscito a capire come ottenere qualcosa di equivalente a \minipage, se Enrico ha dei suggerimenti…)

      Francesco
      `% !TEX encoding = UTF-8 Unicode
      \documentclass{article}
      \usepackage[utf8]{inputenc}
      \usepackage[T1]{fontenc}
      \usepackage{tikz}
      \usepackage{eso-pic}
      \AddToShipoutPicture{
      \begin{tikzpicture}
      \foreach \y in {24,36,48,…,720}
      \draw(100pt,\y pt)–(700pt,\y pt);
      \end{tikzpicture}}
      \newlength\poemindent
      \newcommand{\poemsep}{\vspace{2\baselineskip}}
      \newcommand{\mypar}{\par}
      \setlength{\poemindent}{6em}
      \def\bpoem#1\epoem{%
      \noindent\makebox[\textwidth][r]{%
      \minipage{\dimexpr\textwidth-\poemindent}%
      \hangindent=0em #1\mypar\endminipage%
      }\newline%
      }
      \begin{document}
      \the\baselineskip{} \input{input2.tex}
      \end{document}`

      Attachments:
      You must be logged in to view attached files.
    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #75329
        Up
        0
        Down
        ::

        franen” post=74466Ciao, un problemino col solito pacchetto per la gestione dei brani biblici. Se compilate l’emc qui sotto vedete che l’interlinea non è sempre costante (non parlo della spaziatura fra i “blocchi” di testo, solo di quella all’interno dei blocchi).
        Sapreste dirmi qual è il motivo e qual è la soluzione? Io non riesco proprio a capirlo.
        (Questo è il codice che gentilmente Claudio aveva scritto per la versione LaTeX2e del pacchetto, ma anche nella versione LaTeX3 la sintassi è rimasta praticamente la stessa perché non sono riuscito a capire come ottenere qualcosa di equivalente a \minipage, se Enrico ha dei suggerimenti…)

        Francesco
        `% !TEX encoding = UTF-8 Unicode
        \documentclass{article}
        \usepackage[utf8]{inputenc}
        \usepackage[T1]{fontenc}
        \usepackage{tikz}
        \usepackage{eso-pic}
        \AddToShipoutPicture{
        \begin{tikzpicture}
        \foreach \y in {24,36,48,…,720}
        \draw(100pt,\y pt)–(700pt,\y pt);
        \end{tikzpicture}}
        \newlength\poemindent
        \newcommand{\poemsep}{\vspace{2\baselineskip}}
        \newcommand{\mypar}{\par}
        \setlength{\poemindent}{6em}
        \def\bpoem#1\epoem{%
        \noindent\makebox[\textwidth][r]{%
        \minipage{\dimexpr\textwidth-\poemindent}%
        \hangindent=0em #1\mypar\endminipage%
        }\newline%
        }
        \begin{document}
        \the\baselineskip{} \input{input2.tex}
        \end{document}`

        Semplice. 🙂 Una [tt]minipage[/tt] viene centrata rispetto alla sua altezza globale e diventa tanto alta quanto profonda. Perciò tra due [tt]minipage[/tt] consecutive viene usato lo spazio [tt]\lineskip[/tt]. Soluzione: usare [tt]\minipage[t][/tt] e un trucco da conoscitori. 🙂

        `\def\bpoem#1\epoem{%
        \noindent\makebox[\textwidth][r]{%
        \minipage[t]{\dimexpr\textwidth-\poemindent}%
        \hangindent=0em #1\mypar\xdef\theprevdepth{\the\prevdepth}\endminipage
        }\par\prevdepth=\theprevdepth
        }`
        A che serva [tt]\makebox[\textwidth][r][/tt] proprio non lo so. Io farei così:
        `\newenvironment{poem}
        {\par\noindent\kern\poemindent
        \minipage[t]{\dimexpr\textwidth-\poemindent}\ignorespaces}
        {\par\xdef\theprevdepth{\the\prevdepth}\endminipage
        \par\prevdepth=\theprevdepth}`
        scrivendo in modo un po’ più naturale
        `\begin{poem}
        Accumsan vitae a risus.\\
        Nunc lorem tortor,\\
        pharetra vel facilisis eget,\\
        sodales ac velit.
        \end{poem}
        \poemsep
        \begin{poem}
        Accumsan vitae a risus.\\
        Nunc lorem tortor,\\
        pharetra vel facilisis eget,\\
        sodales ac velit.
        \end{poem}`

        Ciao
        Enrico

      • #75330
        franen
        Partecipante
          Up
          0
          Down
          ::


          Grazie Enrico.
          È la prima volta in 4 anni di LaTeX che incontro \prevdepth… grazie!
          il \makebox[r] serviva a spostare tutta la minipage a destra di un \poemindent, come avrai immaginato.
          Per quanto riguarda la scrittura del testo nella maniera “convenzionale” devo pensarci, penso risulti più semplice così…
          (Il tutto riguarda sempre il pacchetto che si trova qui e di cui si parlava qui).

          Mi confermi che a oggi non esiste un equivalente di minipage in LaTeX3?

          Francesco

        • #75331
          Up
          0
          Down
          ::

          franen” post=74479Grazie Enrico.
          È la prima volta in 4 anni di LaTeX che incontro \prevdepth… grazie!
          il \makebox[r] serviva a spostare tutta la minipage a destra di un \poemindent, come avrai immaginato.
          Per quanto riguarda la scrittura del testo nella maniera “convenzionale” devo pensarci, penso risulti più semplice così…
          (Il tutto riguarda sempre il pacchetto che si trova qui e di cui si parlava qui).

          Mi confermi che a oggi non esiste un equivalente di minipage in LaTeX3?

          Eh, non è una primitiva di uso frequentissimo. 🙂 L’idea è di ripristinare, quando TeX deve decidere quanto spazio inserire, la profondità dell’ultima riga della minipage.

          Non c’è ancora nulla a livello di comandi per utente in expl3.

          Ciao
          Enrico

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

      Go to top