Problema con \numberpstarttrue

  • Creatore
    Topic
  • #72583
    Anna Zago
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno a tutti.
      Sto preparando un’edizione critica con ledmac, e ora ho la necessità di numerare i paragrafi con \numberpstarttrue (e \numberpstartfalse).

      Ho copiato il codice che trovo nel manuale di Wilson (nella versione che ho io è alle righe 723-748) e ho dato il comando \numberpstarttrue dopo \beginnumbering, e \numberpstartfalse prima di \endnumbering. Nel mio testo critico, ogni paragrafo comincia regolarmente con \pstart e termina con \pend (non uso \autopar, mi trovo bene ad aprire e chiudere i paragrafi in modo più “evidente”).

      Quando vado a compilare, però (io compilo con LaTeX in un file DVI, e uso come editor Kile), ricevo la segnalazione di errore “Command \pstart already defined”! Vi copio tutto il mio preambolo per maggior completezza:

      `
      \documentclass[a4paper,12pt]{book}
      \usepackage{ulem}
      \usepackage{ledmac}
      \usepackage[utf8x]{inputenc}
      \usepackage[polutonikogreek,latin,italian]{babel}
      \usepackage{pxfonts}
      \usepackage{marvosym}
      \usepackage{lettrine}
      \usepackage{fancyhdr}
      \usepackage{rotating}
      \usepackage{booktabs}
      \usepackage{tipx}

      \pagestyle{fancy}
      \addtolength{\headheight}{\baselineskip}

      % i comandi seguenti impediscono la scrittura in maiuscolo
      % dei nomi dei capitoli e dei paragrafi nelle intestazioni
      \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
      \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}

      \renewcommand{\today}{\longdate}

      \newcommand{\greek}[1]{{\greektext #1}}

      \let\Anote=\Afootnote
      \let\Bnote=\Bfootnote
      \let\Cnote=\Cfootnote

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

      % QUI È IL PROBLEMA: ecco il tentativo di numerare i paragrafi (con numeri romani)
      \newcounter{pstart}
      \renewcommand{\thepstart}{{\bfseries\@Roman\c@pstart}.}
      \newif\ifnumberpstart
      \numberpstartfalse
      \newcommand*{\pstart}{
      \managehangingsymbol
      \if@nobreak
      \let\@oldnobreak\@nobreaktrue
      \else
      \let\@oldnobreak\@nobreakfalse
      \fi
      \@nobreaktrue
      \ifnumbering \else
      \led@err@PstartNotNumbered
      \beginnumbering
      \fi
      \ifnumberedpar@
      \led@err@PstartInPstart
      \pend
      \fi
      \list@clear{\inserts@list}%
      \global\let\next@insert=\empty
      \begingroup\normal@pars
      \global\setbox\raw@text=\vbox\bgroup\ifautopar\else\ifnumberpstart\ifinstanza\else\thepstart\fi\fi\
      \numberedpar@true}

      % quello che segue è per far sì che l'apparato di varianti non significative sia riportato solo con l'indicazione di riga e non di pagina.
      \renewcommand{\notenumfont}{\bfseries}
      \renewcommand*{\printnpnum}[1]{\relax}

      % quello che segue è per eliminare ] da Anote, Bnote e Cnote nel caso in cui segua \textit{om.}, \textit{add.}, \textit{del.}, \textit{exp.} o altre annotazioni “discorsive''.
      \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}

      \newcommand*{\nobrak}{}
      \newcommand{\abb}[1]{#1\let\rbracket\nobrak\relax}

      \newcommand{\morenoexpands}{%
      \let\abb=0%
      }
      \makeatother
      `

      Cosa sto sbagliando? Un dubbio che ho è che vada inserito anche il codice che nel manuale di Wilson si trova alle righe 749-757, ovvero:

      `
      \newcommand*{\pend}{\ifnumbering \else
      \led@err@PendNotNumbered
      \fi
      \ifnumberedpar@ \else
      \led@err@PendNoPstart
      \fi
      \ifnumberpstart
      \addtocounter{pstart}{1}
      \fi
      `

      Inserendo questo, però, ottengo un secondo errore (oltre a quello di prima): “File ended while scanning use of @argdef”.
      Poiché il primo errore è relativo a un comando “already defined”, ho provato a modicare
      `\newcommand*{\pstart}{ ` in `\renewcommand*{\pstart}{ `, con risultati disastrosi (non riconosce più le sequenze \pstart e \pend)…

      È evidente che mi sta sfuggendo qualcosa, ma da sola non ci arrivo… qualcuno può darmi un suggerimento? 💡
      Vi ringrazio (e scusate la lunghezza),
      Anna

    Visualizzazione 7 filoni di risposte
    • Autore
      Risposte
      • #72584
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          _Anna_” post=71823Buongiorno a tutti.
          Sto preparando un’edizione critica con ledmac, e ora ho la necessità di numerare i paragrafi con \numberpstarttrue (e \numberpstartfalse).

          Ho copiato il codice che trovo nel manuale di Wilson (nella versione che ho io è alle righe 723-748) e ho dato il comando \numberpstarttrue dopo \beginnumbering, e \numberpstartfalse prima di \endnumbering. Nel mio testo critico, ogni paragrafo comincia regolarmente con \pstart e termina con \pend (non uso \autopar, mi trovo bene ad aprire e chiudere i paragrafi in modo più “evidente”).

          Quando vado a compilare, però (io compilo con LaTeX in un file DVI, e uso come editor Kile), ricevo la segnalazione di errore “Command \pstart already defined”! Vi copio tutto il mio preambolo per maggior completezza:

          `
          \documentclass[a4paper,12pt]{book}
          \usepackage{ulem}
          \usepackage{ledmac}
          \usepackage[utf8x]{inputenc}
          \usepackage[polutonikogreek,latin,italian]{babel}
          \usepackage{pxfonts}
          \usepackage{marvosym}
          \usepackage{lettrine}
          \usepackage{fancyhdr}
          \usepackage{rotating}
          \usepackage{booktabs}
          \usepackage{tipx}

          \pagestyle{fancy}
          \addtolength{\headheight}{\baselineskip}

          % i comandi seguenti impediscono la scrittura in maiuscolo
          % dei nomi dei capitoli e dei paragrafi nelle intestazioni
          \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
          \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}

          \renewcommand{\today}{\longdate}

          \newcommand{\greek}[1]{{\greektext #1}}

          \let\Anote=\Afootnote
          \let\Bnote=\Bfootnote
          \let\Cnote=\Cfootnote

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

          % QUI È IL PROBLEMA: ecco il tentativo di numerare i paragrafi (con numeri romani)
          \newcounter{pstart}
          \renewcommand{\thepstart}{{\bfseries\@Roman\c@pstart}.}
          \newif\ifnumberpstart
          \numberpstartfalse
          \newcommand*{\pstart}{
          \managehangingsymbol
          \if@nobreak
          \let\@oldnobreak\@nobreaktrue
          \else
          \let\@oldnobreak\@nobreakfalse
          \fi
          \@nobreaktrue
          \ifnumbering \else
          \led@err@PstartNotNumbered
          \beginnumbering
          \fi
          \ifnumberedpar@
          \led@err@PstartInPstart
          \pend
          \fi
          \list@clear{\inserts@list}%
          \global\let\next@insert=\empty
          \begingroup\normal@pars
          \global\setbox\raw@text=\vbox\bgroup\ifautopar\else\ifnumberpstart\ifinstanza\else\thepstart\fi\fi\
          \numberedpar@true}

          % quello che segue è per far sì che l'apparato di varianti non significative sia riportato solo con l'indicazione di riga e non di pagina.
          \renewcommand{\notenumfont}{\bfseries}
          \renewcommand*{\printnpnum}[1]{\relax}

          % quello che segue è per eliminare ] da Anote, Bnote e Cnote nel caso in cui segua \textit{om.}, \textit{add.}, \textit{del.}, \textit{exp.} o altre annotazioni “discorsive''.
          \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}

          \newcommand*{\nobrak}{}
          \newcommand{\abb}[1]{#1\let\rbracket\nobrak\relax}

          \newcommand{\morenoexpands}{%
          \let\abb=0%
          }
          \makeatother
          `

          Cosa sto sbagliando? Un dubbio che ho è che vada inserito anche il codice che nel manuale di Wilson si trova alle righe 749-757, ovvero:

          `
          \newcommand*{\pend}{\ifnumbering \else
          \led@err@PendNotNumbered
          \fi
          \ifnumberedpar@ \else
          \led@err@PendNoPstart
          \fi
          \ifnumberpstart
          \addtocounter{pstart}{1}
          \fi
          `

          Inserendo questo, però, ottengo un secondo errore (oltre a quello di prima): “File ended while scanning use of @argdef”.
          Poiché il primo errore è relativo a un comando “already defined”, ho provato a modicare
          `\newcommand*{\pstart}{ ` in `\renewcommand*{\pstart}{ `, con risultati disastrosi (non riconosce più le sequenze \pstart e \pend)…

          È evidente che mi sta sfuggendo qualcosa, ma da sola non ci arrivo… qualcuno può darmi un suggerimento? 💡
          Vi ringrazio (e scusate la lunghezza),
          Anna

          Hai letto questo?
          Ciao.
          R.

        • #72585
          Anna Zago
          Partecipante
            Up
            0
            Down
            ::


            Sì, ma non ho capito bene a cosa ti riferisci! 😕 Scusami!

          • #72586
            robitex
            Amministratore del forum
              Up
              0
              Down
              ::

              _Anna_” post=71825Sì, ma non ho capito bene a cosa ti riferisci! 😕 Scusami!

              Scusami tu! Indendevo dire:
              * compila con pdflatex per ottenere il pdf e non il dvi

              Importante:
              …quel codice di cui parli si trova già nel pacchetto ledmac. Non si tratta di esempi che devi inserire nel tuo sorgente.

              Ciao
              R.

            • #72587
              Anna Zago
              Partecipante
                Up
                0
                Down
                ::


                A questo punto ho due domande:
                1) il fatto di compilare con PDFLaTeX o con LaTeX ha qualche riflesso sul problema di \numberpstarttrue? Immagino di no, perché ottengo lo stesso risultato… però se me l’hai detto ci sarà un motivo, quindi ora cerco di capire meglio! 🙂
                2) se i codici che ho messo nel mio preambolo sono già nel pacchetto, basta soltanto indicare \numberptarttrue dopo \beginnumbering e \numberpstatfalse prima di \endnumbering? Io ci ho provato, ma mi dice che le due sequenze sono undefined

                Un altro dubbio che mi è venuto nel frattempo è che il funzionamento di questi due comandi sia in qualche modo subordinato all’uso di \autopar (così si potrebbe dedurre dall’indice analitico del manuale di Leal-Pignalberi), però nel manuale di ledmac sembra di capire che non è così…

              • #72588
                Doc
                Partecipante
                  Up
                  0
                  Down
                  ::

                  _Anna_” post=71827A questo punto ho due domande:
                  1) il fatto di compilare con PDFLaTeX o con LaTeX ha qualche riflesso sul problema di \numberpstarttrue? Immagino di no, perché ottengo lo stesso risultato… però se me l’hai detto ci sarà un motivo, quindi ora cerco di capire meglio! 🙂
                  2) se i codici che ho messo nel mio preambolo sono già nel pacchetto, basta soltanto indicare \numberptarttrue dopo \beginnumbering e \numberpstatfalse prima di \endnumbering? Io ci ho provato, ma mi dice che le due sequenze sono undefined

                  Un altro dubbio che mi è venuto nel frattempo è che il funzionamento di questi due comandi sia in qualche modo subordinato all’uso di \autopar (così si potrebbe dedurre dall’indice analitico del manuale di Leal-Pignalberi), però nel manuale di ledmac sembra di capire che non è così…

                  Ciao Anna,
                  i problemi sono i seguenti:
                  1) ha proprio un senso compilare in latex? ovvero, che ti serve avere un dvi nel 2012? Non fai prima a compilarti un bel pdflatex?
                  2) Ti rimando a queste discussioni proprio su questo comando:
                  http://www.guitex.org/home/index.php?option=com_kunena&func=view&catid=14&id=66676&Itemid=71&lang=it
                  http://www.guitex.org/home/it/forum/14-edizioni-critiche/67494-hyperref-e-paragrafi-numerati-in-ledmac#67494

                  3) Infine, che texlive usi? Presumo la 2011 aggiornata ad oggi, o no?

                  Poi esamino per benino il tuo codice, ma intanto ti posto cosa ho io nel preambolo, a mo’ di esempio:
                  `\makeatletter
                  \renewcommand{\thepstart}{{\makebox[2mm][r]{\bf\@arabic\c@pstart}}\hspace{3mm}}
                  \makeatother`
                  Quindi, nel testo:
                  `\beginnumbering
                  \numberpstarttrue

                  \pstart\newpara blablabla \pend
                  …..
                  …..
                  …..
                  \numberpstartfalse
                  \endnumbering`
                  e nient’altro!

                  Infine, piccola nota: questo comando è stato inserito a partire dalla v. 0.12 di ledmac ed ora siamo alla 0.14. Francamente, non so se il manuale di Leal già lo conosca!

                • #72589
                  Anna Zago
                  Partecipante
                    Up
                    0
                    Down
                    ::

                    Doc” post=71849

                    Infine, piccola nota: questo comando è stato inserito a partire dalla v. 0.12 di ledmac ed ora siamo alla 0.14. Francamente, non so se il manuale di Leal già lo conosca!

                    Penso di no, in effetti: per questo dicevo che sembra soltanto di capire che metta in relazione la numerazione dei paragrafi e il comando \autopar (nell’Indice dei comandi spiegati, alla voce \autopar, dice appunto: numera automaticamente i capoversi del testo critico, ma è evidentemente una mia sovrainterpretazione! :-)).

                    Grazie intanto: farò delle prove e poi riferirò l’esito!
                    Anna

                  • #72590
                    Doc
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Ho provato il tuo codice, eliminando tutta la sezione
                      `% QUI È IL PROBLEMA: ecco il tentativo di numerare i paragrafi (con numeri romani)
                      \newcounter{pstart}
                      \renewcommand{\thepstart}{{\bfseries\@Roman\c@pstart}.}
                      \newif\ifnumberpstart
                      \numberpstartfalse
                      \newcommand*{\pstart}{
                      \managehangingsymbol
                      \if@nobreak
                      \let\@oldnobreak\@nobreaktrue
                      \else
                      \let\@oldnobreak\@nobreakfalse
                      \fi
                      \@nobreaktrue
                      \ifnumbering \else
                      \led@err@PstartNotNumbered
                      \beginnumbering
                      \fi
                      \ifnumberedpar@
                      \led@err@PstartInPstart
                      \pend
                      \fi
                      \list@clear{\inserts@list}%
                      \global\let\next@insert=\empty
                      \begingroup\normal@pars
                      \global\setbox\raw@text=\vbox\bgroup\ifautopar\else\ifnumberpstart\ifinstanza\else\thepstart\fi\fi\
                      \numberedpar@true}`
                      e, ovviamente, aggiungendo un testo fittizio.

                      Ne risulta un dvi perfetto!
                      Ribadisco, però, il consiglio di ricorrere a pdflatex e, meglio ancora, di passare a xelatex, che obiettivamente è più conveniente!

                      Ciao
                      Domenico

                    • #72591
                      Anna Zago
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        Ho compreso la ragione di questo falso problema: si è risolto passando alla versione 0.14 di ledmac!
                        Grazie,
                        Anna

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

                    Go to top