Re: Problema con \numberpstarttrue

#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.

    Go to top