[RISOLTO] Riferimento incrociato a numero di paragrafo

  • Questo topic ha 2 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 14 anni, 9 mesi fa da Doc.
  • Creatore
    Topic
  • #67713
    Doc
    Partecipante
      Up
      0
      Down
      ::


      Ciao a tutti,
      domanda difficile, almeno per me…

      Nella mia edizione critica, fino ad ora, ho utilizzato un sistema di riferimenti testo/apparato basati, quando necessario, non sulla linea della pagina, ma sul numero del paragrafo. Quest’ultimo lo ottenevo con una sequenza di item, cui erano collegati gli opportuni labels.

      La cosa funziona perfettamente, ma ora vorrei migrare il tutto al nuovo comando \numberpstarttrue/\numberpstartfalse, introdotto nelle ultime versioni di ledmac, che mi consente di ottenere una numerazione automatica dei singoli paragrafi.

      Ora, però, ovviamente, il vecchio sistema di riferimenti incrociati è saltato.

      Che sistema mi suggerireste di utilizzare per riottenere i riferimenti incrociati?
      Se necessario, posso creare (più tardi, però) un esempio di documento compilabile.

      Ciao,
      Domenico

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #67714
        Doc
        Partecipante
          Up
          0
          Down
          ::


          Ecco un esempio di codice. Contiene entrambe le serie, una con gli item (quella finora utilizzata) e l’altra senza (quella cui auspico di poter migrare).

          `% !TEX encoding = UTF-8
          % !TEX program = xelatex
          % !TEX spellcheck = it_IT

          %———————————————————————–
          % PACKAGES
          %———————————————————————–
          \documentclass[11pt,a4paper]{book}
          \usepackage[ outer=4.85cm, inner=4.85cm, top=5.8cm, bottom=5.8cm]{geometry}
          \setlength{\parindent}{0.5cm} % MARGINI PAGINA

          \usepackage{fontspec} % FONT ENCODING
          \setmainfont[Ligatures=TeX]{Linux Libertine O}

          \usepackage{polyglossia} % LANGUAGE SUPPORT
          \setmainlanguage{italian}
          \setotherlanguage{latin}
          \setotherlanguage[variant=polytonic]{greek}

          \usepackage{enumitem} % ENUMERAZIONI

          \usepackage{ledmac,ledpar} % EDIZIONE CRITICA
          \lineation{page} %% Definisce tipo di numerazione (per pagina)
          \linenummargin{inner} %% Definisce il margine per i numeri di linea
          \sidenotemargin{outer} %% Definisce il margine per i marginalia
          \renewcommand*{\notenumfont}{\footnotesize} %%specifica il font per i numeri di linea nelle note
          \newcommand*{\notetextfont}{\footnotesize}

          \let\paralleli=\Afootnote
          \let\testimonia=\Bfootnote
          \let\lectiones=\Cfootnote

          %%% SPAZIO LIBERO SOPRA LE RIGHE SEPARATRICI
          \addtolength{\skip\Afootins}{2em plus.4em minus.4em}

          % SPAZIO BIANCO FRA TESTO ED APPARATO (prima era 5mm)
          \setlength{\skip\Afootins}{2em plus.4em minus.4em}

          % SPAZIO BIANCO FRA LE SINGOLE NOTE D'APPARATO
          \interparanoteglue{2em plus.4em minus.4em}

          %% PER NUMERAZIONE SCOLII (alt. a enumitem)
          \makeatletter
          \renewcommand{\thepstart}{{\makebox[2mm][r]{\bf\@arabic\c@pstart}}\hspace{3mm}}
          \makeatother

          %———————————————————————–
          % PER TOGLIERE NUMERO DI RIGA DA NOTE (DEFINIZIONE DI \killnumber)
          %———————————————————————–
          \makeatletter
          \def\printlines#1|#2|#3|#4|#5|#6|#7|{%
          \begingroup
          \ifnum#2=-1 \ledplinenumfalse \fi %% LINEA AGGIUNTA
          \setprintlines{#1}{#2}{#3}{#4}{#5}{#6}%
          \ifl@d@pnum #1\fullstop\fi
          \ifledplinenum \linenumrep{#2}\else \symplinenum\fi
          \ifl@d@ssub \fullstop \sublinenumrep{#3}\fi
          \ifl@d@dash \endashchar\fi
          \ifl@d@pnum #4\fullstop\fi
          \ifl@d@elin \linenumrep{#5}\fi
          \ifl@d@esl \ifl@d@elin \fullstop\fi \sublinenumrep{#6}\fi
          \endgroup}

          \newcommand*{\killnumber}{\linenum{|-1|||-1||}}
          \makeatother

          %% DEFINIZIONE DEI COMANDI \A[BC]footfmt
          \makeatletter
          \renewcommand{\Afootfmt}[3]{%
          \ledsetnormalparstuff
          {\notenumfont\printlines#1|}\strut\enspace
          {\select@lemmafont#1|#2\rbracket}\enskip#3\strut\par}

          \renewcommand{\Bfootfmt}[3]{%
          \ledsetnormalparstuff
          {\notenumfont\printlines#1|}\strut\enspace
          {\select@lemmafont#1|#2\rbracket}\enskip#3\strut\par}

          \renewcommand{\Cfootfmt}[3]{%
          \ledsetnormalparstuff
          {\notenumfont\printlines#1|}\strut\enspace
          {\select@lemmafont#1|#2\rbracket}\enskip#3\strut\par}

          %% DEFINIZIONE DEL COMANDO \abb
          \newcommand*{\nobrak}{\textnormal{}}
          \newcommand{\abb}[1]{#1\let\rbracket\nobrak\relax}
          \newcommand{\morenoexpands}{%
          \let\abb=0%
          }
          \makeatother

          %———————————————————————–
          % PER RIMUOVERE INUTILE SPAZIO BIANCO DOPO OGNI NUMERO DI LINEA SOPPRESSO
          %———————————————————————–
          \makeatletter
          \newcommand{\Aparafootfmt}[3]{%
          \ledsetnormalparstuff
          \scriptsize
          \notenumfont\printlines#1|%\enspace %% NUOVO DA QUI
          \ifledplinenum
          %\enspace%
          \else
          {\hskip 0em plus 0em minus 0em}%
          \fi %% FINO A QUI
          {\select@lemmafont#1|#2\rbracket}\enskip %% NOTA IL “}”
          \notetextfont
          #3\penalty-10}%\hskip 2em plus .4em minus .4em\relax}

          \newcommand{\Bparafootfmt}[3]{%
          \ledsetnormalparstuff
          \scriptsize
          \notenumfont\printlines#1|%\enspace %% NUOVO DA QUI
          \ifledplinenum
          %\enspace%
          \else
          {\hskip 0em}% plus 0em minus 0em}%
          \fi %% FINO A QUI
          {\select@lemmafont#1|#2\rbracket}\enskip %% NOTA IL “}”
          \notetextfont
          #3\penalty-10}%\hskip 2em plus .4em minus .4em\relax}

          \newcommand{\Cparafootfmt}[3]{%
          \ledsetnormalparstuff
          \scriptsize
          \notenumfont\printlines#1|%\enspace %% NUOVO DA QUI
          \ifledplinenum
          \enspace
          \else
          {\hskip 0em plus.2em minus.2em}
          \fi %% FINO A QUI
          {\select@lemmafont#1|#2\rbracket}\enskip %% NOTA IL “}”
          \notetextfont
          #3\penalty-10\hskip 3em plus.4em minus.4em\relax}

          \makeatother

          \footparagraph{A}
          \footparagraph{B}
          \footparagraph{C}

          \let\Afootfmt=\Aparafootfmt
          \let\Bfootfmt=\Bparafootfmt
          \let\Cfootfmt=\Cparafootfmt

          \begin{document}
          \section{Con enumitem}

          \beginnumbering
          \begin{enumerate}[label=\textbf{\arabic*},ref=\arabic*,leftmargin=0\parindent,labelindent=\parindent, labelsep=*, itemindent=2\parindent,noitemsep]

          \pstart\item\label{itm:enumitem1}\edtext{\abb{}}{\killnumber\testimonia{{\textbf{\ref{itm:enumitem1}}}\enspace Nota d'apparato al paragrafo numero 1}}Prova Nel mezzo del \edtext{cammin}{\lectiones{percorso A}} di nostra vita\pend

          \pstart\item\label{itm:enumitem2} Prova\pend

          \pstart\item\label{itm:enumitem3}\edtext{\abb{}}{\killnumber\testimonia{{\textbf{\ref{itm:enumitem3}}}\enspace Nota d'apparato al paragrafo numero 3}}Prova\pend

          \pstart\item\label{itm:enumitem4} Prova\pend

          \pstart\item\label{itm:enumitem5} Prova\pend

          \end{enumerate}
          \endnumbering

          \newpage
          \section{Senza enumitem}
          \beginnumbering
          \numberpstarttrue

          \pstart\label{senza1}Prova\edtext{\abb{}}{\killnumber\testimonia{{\textbf{\ref{senza1}}}\enspace Nota d'apparato al paragrafo 1}}\pend

          \pstart\label{senza2}Prova\pend

          \pstart\label{senza3}Prova\edtext{\abb{}}{\killnumber\testimonia{{\textbf{\ref{senza3}}}\enspace Nota d'apparato al paragrafo 3}}\pend

          \pstart\label{senza4}Prova\pend

          \pstart\label{senza5}Prova\pend

          \pstart Prova\pend

          \numberpstartfalse
          \endnumbering

          \end{document}`

        • #67715
          Doc
          Partecipante
            Up
            0
            Down
            ::


            Per la cronaca, ho risolto!

            Si deve aggiungere nel preambolo
            `\newcounter{para} \setcounter{para}{0}
            \newcommand{\newpara}{%
            \refstepcounter{para}%
            \noindent\llap{\thepstart}}
            \newcommand{\oldpara}[1]{%
            \noindent\llap{\ref{#1}}}`

            E poi la sintassi dei vari paragrafi sarà più o meno la seguente:
            `\beginnumbering
            \numberpstarttrue
            \pstart\newpara\label{blablabla} blablablabla\pend
            \pstart\newpara\label{blablabla} blablablabla\pend

            \numberpstartfalse
            \endnumbering`

            Se, successivamente, la numerazione dei paragrafi ricomincerà da capo, si dovrà ricordarsi di aggiungere subito all’inizio della sezione
            `\setcounter{para}{0}`
            per azzerare il conto.

            Ciao,
            Domenico

        Visualizzazione 1 filone di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top