CNLTX Bundle: Errore compilazione “Undefined control sequence”

  • Creatore
    Topic
  • #121059
    Up
    0
    Down
    ::


    Salve a tutti,

    cerco di spiegare il mio problema fornendo una descrizione di contorno il più esaustiva possibile, sperando di ricevere qualche indizio o suggerimenti da qualcuno più esperto di me per risolvere o sistemare l’errore. Cerco di spiegare anche i test da me effettuati per risolvere il problema.

    PREMESSA
    Sistema operativo: Linux Ubuntu 22.04 LTS
    Distribuzione TeX: TeX Live 2022 aggiornata alla data di oggi 14 giu 2022

    Nei giorni scorsi sono inciampato per casualità nella documentazione ufficiale del bundle CNLTX dell’autore Clemens Niederberger e sono rimasto compiaciuto della qualità estetica del manuale per la produzione di documentazione di classi e pacchetti.

    Ho deciso così di voler provare il bundle in oggetto per creare dei miei documenti personali dando un tocco di rinnovamento agli stessi. Dopo aver letto un pò di documentazione ufficiale utilizzando il classico comando texdoc cnltx ho deciso di voler provare subito un banale esempio del tipo “HelloWorld.tex” utilizzando la classe ufficiale della documentazione del bundle chiamata cnltc-doc [prime 4 sezioni del manuale].

    Compilando con pdfLaTeX (ma anche con XeLaTeX e LuaLaTeX) ricevo l’errore Undefined control sequence senza comprendere dove stia la fonte del problema.

    `
    % !TEX TS-program = pdflatex
    %
    % Template che utilizza il bundle CNLTX di Clemens NIEDERBERGER
    % https://mirror.math.princeton.edu/pub/CTAN/macros/latex/contrib/cnltx/cnltx_en.pdf
    %

    % #########################################
    % DOCUMENT CLASS
    % #########################################
    \documentclass{cnltx-doc}

    % Class options
    % – load-preamble: carica il preambolo standard con pacchetti aggiuntivi
    %
    % NOTA: richiede il pacchetto libertinehologopatch.sty
    % https://github.com/cgnieder/libertinehologopatch
    %
    %\documentclass[load-preamble]{cnltx-doc}

    % #########################################
    % IMPORTED PACKAGES
    % #########################################

    % Pacchetti del bundle CNLTX da utilizzare in alternativa come pacchetti stand-alone
    %\usepackage{cnltx}
    %\usepackage{cnltx-base}
    %\usepackage{cnltx-example}
    %\usepackage{cnltx-tools}
    %\usepackage{libertinehologopatch}

    % Codifica dei font
    %\usepackage[T1]{fontenc}

    % Codifica di input
    %\usepackage[utf8]{inputenc}

    % Lingue
    \usepackage[italian]{babel}

    % Test
    %\usepackage{lipsum}
    %\usepackage{blindtext}

    % Fonts
    %\usepackage{mlmodern}

    % #########################################
    % PACKAGE SETUP
    % #########################################
    % TODO

    % #########################################
    % BEGIN DOCUMENT
    % #########################################
    \begin{document}

    \section{This is a section}
    This is the body of the section

    \end{document}
    `

    compilando il file .tex di esempio sopra riportato mi dà come errore in compilazione il messaggio: Undefined control sequence, pur essendo il sorgente super minimale. Nello specifico l’errore è:

    `
    ! Undefined control sequence.
    \__hook selectfont …@raggedtwoe@everyselectfont
    \__hook_toplevel selectfon…
    l.61 \end{document}
    `

    Deduco in questo caso che non sia un problema mio, ma che l’errore provenga da altrove dal momento che l’esempio è super minimale senza fronzoli e non ci siano importazioni di pacchetti particolari. Magari qualche incompatibilità con TeX Live 2022?

    TEST EFFETTUATI

    • Windows 10 con TeX Live 2022 aggiornata con IDE TeXstudio e TeXworks
    • Ubuntu 22.04 con TeX Live 2022 aggiornata con IDE TeXstudio e TeXworks

    Tutti i test danno come risultato lo stesso errore riportato in oggetto al topic.

    Riporto in allegato i seguenti file:

    • file test-example.tex di esempio
    • screenshot TeXstudio del messaggio di errore del compilatore
    • screenshot TeXworks del messaggio di errore del compilatore
    • file di log

    In attesa di un gentile aiuto e riscontro, porgo un saluto a tutti.
    Grazie, Andrea

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 10 filoni di risposte
  • Autore
    Risposte
    • #121060
      samiel
      Partecipante
        Up
        0
        Down
        ::


        Non conosco questa classe, per cui il mio post è in effetti inutile
        per le tue esigenze. Ma se vuoi dare un tocco di originalità ai tuoi documenti,
        senza dover imparare classi nuove, puoi anche lavorare sulle tradizionali.
        Il .pdf che allego l’ho creato con article…
        m

        [attachment]C:\fakepath\xindy2.pdf[/attachment]

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


          Ciao.
          Benvenuto sul forum.
          Hai la TeX Live full?
          R.

        • #121062
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Benvenuto nel forum, Andrea!

            Ho esaminato il tuo esempio e con il mio Mac, aggiornato come il tuo Linux, ho avuto gli stessi problemi. Ho compilato sia con pdfLaTeX sia con LuaLaTeX. Ho esaminato il codice sorgente di cnltx.cls e vi ho trovato alcune cosette che non vanno anche in relazione con il tuo EMC.

            1) i file libertinehologopatch.sty non esiste più! viene richiesto dalla classe, ma si otterrebbe un altro errore che appare chiaramente se si usa l’impostazione giusta dello shell editor.
            2) laclasse carica i pacchetti ifxetex e ifluatex in modo da disporre dei test per sapere con quale motore di composizione si sa alvorando; Niedermayer avrebbe potuto caricare solo il pacchetto iftex per sapere se si sta componendo con pdflatex o con gli altri due; nei miei paccheti io preferisco agire così, maè una questione di gusti. Il punto è che se compili con pdfLaTeX, lui carica da solo il pacchetto per l’inpuenc, per il fontenc,e per i font da usare oltre a babel; se compili con Xe o Lua, carica da solo fontspec e polyglossia. Perciò quando si usa cnltx.cls non è necessario specificare nessuna di queste cose.
            3) l’errore di “undeifned control sequence” avviene durante l’esecuzione dello statement \begin{document}; il comando \begin è stato da anni ridefinito mediante il linguaggio (intermedio) LaTeX3; lo si vede anche da come è scritto il messaggio d’errore. Questo è un errore difficile da correggere, se non mettendo le mani dentro il file di formato latex.ltx se e solo se si conosce a menadito il linguaggio LaTeX3; io lo conosco molto superficialmente e non ci metto le mani dentro. Potrei metterle nel file cnltex.cls ma non mi sembra giusto, anche perché la licenza a cui è legato il suo software non lo consente; se lo facessi, e ammesso che riesca a trovare il modo di correggere il baco, dovrei mandargli la mia correzione, affinché lui stesso la inglobi nel suo software e lo ricarichi su CTAN.

            Ho scritto a Clemnes Niederberger segnalandogli gli errori; in particolare gli ho segnalato che il suo pacchetto è del 2019, per giunta ancora in una versione beta 0.15, quindi non definitiva. Clemens, evidentemente usa funzioni avanzate, ma non si tiene al corrente degli aggiornamenti almeno mensili del formato di LaTeX. Io con i miei pacchetti ne controllo regolarmente il funzionamento e li aggiorno se cessassero di funzionare; tuttavia spesso vi inserisco macro definite con l’interfaccia LaTeX3, scoprendo che il codice che scrivo è molto più chiaro e facile da manutenere, rispetto alle stesse macro scritte col linguaggio di LaTeX2e. Forse è una questione di gusti; so di altri importanti creatori di pacchetti che non vogliono nemmeno sentir parlare di LaTeX3.

            Detto questo, ti pongo una domanda, Sono d’accodo con te per valutare molto positivamente l’estetica del documento cnltx.pdf, ma per ottenere quel bellissimo risultato bisogna ricorrere a pacchetti esterni, di solito divoratori di spazio di memoria, tanto che più di una volta, per compilare con una di quelle classi, mi sono trovato nella necessità di configurare il mio TeX Live per triplicargli la memoria di lavoro. Personalmente nonlo trovo un gran bell’investimento, anche se il risultato è stupendo. Ecco la domanda: sei sicuro di voler usare quella classe?

          • #121063
            Up
            0
            Down
            ::


            Si TeX Live full

          • #121064
            Up
            0
            Down
            ::


            Buongiorno Claudio, grazie del benvenuto, ma grazie soprattutto per la tua esaustiva risposta. Sei stato chiaro, esauriente e comprensibilissimo nella descrizione del problema.

            Purtroppo stavo scrivendo la risposta al tuo messaggio e l’avevo articolata su 8 punti visto che mi hai dato una risposta esauriente e completa, ma ahimè ho perso il testo perché mi era scaduta la sessione.
            Vedo se riesco a farti un riassunto sui punti principali che ti avevo scritto, ma a questo punto parto dalla fine rispondendo alla tua ultima domanda, così andiamo diritto al punto e ti faccio perdere meno tempo.

            1. Ovviamente non devo usare per forza quella classe, sono abbastanza aperto mentalmente come sviluppatore software. In questo caso vengo al punto 2.

            2. Cosa vuoi sottintendere con la tua domanda finale? Intendi che posso raggiungere lo stesso risultato estetico utilizzando magari classi o pacchetti alternativi? Se fosse così mi farebbe piacere conoscerli, dal momento che solitamente ho sempre cercato di destreggiarmi manualmente usando l’ambiente titlepage o altri metodi manuali nelle classi standard.

            3. Che consigli avresti per me per orientarmi o indirizzarmi per ottenere un risultato estetico simile ai manuali di Clemens? Anche se esistono classi o pacchetti che non conosco che puoi consigliarmi va bene.

            Non ti sto ad annoiare con gli altri punti che avevo scritto perché principalmente ribadivano quello che hai detto tu.
            Ti dico solo che mi fa piacere leggere che tu abbia scritto a Clemens facendogli notare i problemi riscontrati sulla sua classe.
            Anche io gli ho scritto una mail proprio ieri dicendogli che c’erano alcuni problemi, ma ancora non ho ricevuto risposta.
            Spero comunque che queste email siano per lui occasione di sistemare il problema e aggiornarsi sugli aggiornamenti mensili di LaTeX.

            Altra cosa che ci tengo a dirti è che tra i test da me effettuati c’è stato quello di provare a non usare direttamente la classe “cnltx-doc” di Clemens, ma di usare i pacchetti stand-alone del bundle con la classe KOMA-Script scrartcl, dalla quale la classe cnltx-doc deriva.
            Questo tentativo l’ho fatto perché nella documentazione ufficiale stessa del bundle è riportato che i pacchetti richiamati dalla sua classe potevano essere usati anche singolarmente. Speravo così di ottenere lo stesso risultato estetico usando i comandi dei pacchetti di base “cnltx” e “cnltx-base”, ma ahimé anche così non sono riuscito a raggiungere il risultato da me sperato.

            Stesso problema che hai avuto tu con il pacchetto “libertinehologopatch.sty” l’ho avuto anche io e per risolvere il problema di assenza di quel pacchetto ho dovuto scaricarlo dal repository GitHub di Clemens e inserirlo nella mia directory dei sorgenti LaTeX. In compilazione non mi dava più il problema, ma ottenevo comunque altri errori dal compilatore.

            Alla fine l’ho presa persa Claudio. Però mi spiace perché il risultato estetico di quei manuali mi piacerebbe raggiungerlo, ma dal momento che nemmeno con i pacchetti usati singolarmente ci sono riuscito mi son detto di non intestardirmi troppo. Pace.

            P.S.
            Uso LaTeX principalmente per scrivere documenti più svariati tra cui: guide, tutorials, manuali tecnici, ma soprattutto atti giuridici, vademecum legali, documenti giuridici per l’autodifesa legale.

            Grazie, Andrea.

          • #121065
            Up
            0
            Down
            ::

            OldClaudio” post=121581Benvenuto nel forum, Andrea!

            Ho esaminato il tuo esempio e con il mio Mac, aggiornato come il tuo Linux, ho avuto gli stessi problemi. Ho compilato sia con pdfLaTeX sia con LuaLaTeX. Ho esaminato il codice sorgente di cnltx.cls e vi ho trovato alcune cosette che non vanno anche in relazione con il tuo EMC.

            1) i file libertinehologopatch.sty non esiste più! viene richiesto dalla classe, ma si otterrebbe un altro errore che appare chiaramente se si usa l’impostazione giusta dello shell editor.
            2) laclasse carica i pacchetti ifxetex e ifluatex in modo da disporre dei test per sapere con quale motore di composizione si sa alvorando; Niedermayer avrebbe potuto caricare solo il pacchetto iftex per sapere se si sta componendo con pdflatex o con gli altri due; nei miei paccheti io preferisco agire così, maè una questione di gusti. Il punto è che se compili con pdfLaTeX, lui carica da solo il pacchetto per l’inpuenc, per il fontenc,e per i font da usare oltre a babel; se compili con Xe o Lua, carica da solo fontspec e polyglossia. Perciò quando si usa cnltx.cls non è necessario specificare nessuna di queste cose.
            3) l’errore di “undeifned control sequence” avviene durante l’esecuzione dello statement \begin{document}; il comando \begin è stato da anni ridefinito mediante il linguaggio (intermedio) LaTeX3; lo si vede anche da come è scritto il messaggio d’errore. Questo è un errore difficile da correggere, se non mettendo le mani dentro il file di formato latex.ltx se e solo se si conosce a menadito il linguaggio LaTeX3; io lo conosco molto superficialmente e non ci metto le mani dentro. Potrei metterle nel file cnltex.cls ma non mi sembra giusto, anche perché la licenza a cui è legato il suo software non lo consente; se lo facessi, e ammesso che riesca a trovare il modo di correggere il baco, dovrei mandargli la mia correzione, affinché lui stesso la inglobi nel suo software e lo ricarichi su CTAN.

            Ho scritto a Clemnes Niederberger segnalandogli gli errori; in particolare gli ho segnalato che il suo pacchetto è del 2019, per giunta ancora in una versione beta 0.15, quindi non definitiva. Clemens, evidentemente usa funzioni avanzate, ma non si tiene al corrente degli aggiornamenti almeno mensili del formato di LaTeX. Io con i miei pacchetti ne controllo regolarmente il funzionamento e li aggiorno se cessassero di funzionare; tuttavia spesso vi inserisco macro definite con l’interfaccia LaTeX3, scoprendo che il codice che scrivo è molto più chiaro e facile da manutenere, rispetto alle stesse macro scritte col linguaggio di LaTeX2e. Forse è una questione di gusti; so di altri importanti creatori di pacchetti che non vogliono nemmeno sentir parlare di LaTeX3.

            Detto questo, ti pongo una domanda, Sono d’accodo con te per valutare molto positivamente l’estetica del documento cnltx.pdf, ma per ottenere quel bellissimo risultato bisogna ricorrere a pacchetti esterni, di solito divoratori di spazio di memoria, tanto che più di una volta, per compilare con una di quelle classi, mi sono trovato nella necessità di configurare il mio TeX Live per triplicargli la memoria di lavoro. Personalmente nonlo trovo un gran bell’investimento, anche se il risultato è stupendo. Ecco la domanda: sei sicuro di voler usare quella classe?

            Claudio mi sono scordato di citarti nella risposta che ho inviato qualche ora fa. Trovi la risposta sopra comunque. Buona giornata

          • #121066
            samiel
            Partecipante
              Up
              0
              Down
              ::


              Io ho fatto cose che assomigliano un po’ a quello che vuoi tu
              con la semplice classe article. Dai un’occhiata all’allegato

              [attachment]C:\fakepath\xindy2.pdf[/attachment]

              xindy2.pdf

              PS
              non mi allega.. dipende dalla dimensione 200kB?
              m

            • #121067
              Up
              0
              Down
              ::

              samiel” post=121586Io ho fatto cose che assomigliano un po’ a quello che vuoi tu
              con la semplice classe article. Dai un’occhiata all’allegato

              [attachment]C:\fakepath\xindy2.pdf[/attachment]

              xindy2.pdf

              PS
              non mi allega.. dipende dalla dimensione 200kB?
              m

              Si credo dipenda dalla dimensione dell’allegato. Ti ho mandato una richiesta di accesso su drive a quel link che hai messo “xindy2.pdf” per vedere. Grazie intanto

            • #121068
              samiel
              Partecipante
                Up
                0
                Down
                ::


                fatto!

              • #121069
                Up
                0
                Down
                ::

                samiel” post=121588fatto!

                Bel risultato, non male, davvero! Proverò a replicarlo magari. Hai usato qualche pacchetto o esiste qualche pacchetto per mettere l’indice del documento su due colonne? Oppure lo hai fatto manualmente?

              • #121070
                samiel
                Partecipante
                  Up
                  0
                  Down
                  ::


                  in realtà mi sono fatto dei pdf della documentazione d xindy. In particolare il 2, che hai visto, si basa su questo codice:
                  `\documentclass{ltxdockit}

                  \usepackage{xltxtra}
                  \setmainfont[Numbers=OldStyle]{TeX Gyre Bonum}
                  \setsansfont[Ligatures=TeX,Scale=MatchLowercase]{Candara}
                  \setmonofont[Ligatures=TeX,Scale=MatchLowercase]{Consolas}
                  \usepackage{polyglossia}
                  \setdefaultlanguage{italian}
                  \PolyglossiaSetup{italian}{indentfirst=false}

                  \renewcommand\contentsname{table of contents}
                  \addtokomafont{sectionentry}{\rmfamily\mdseries\scshape\lowercase}
                  \addtokomafont{section}{\rmfamily\mdseries\scshape\color{spot}\lowercase}
                  \addtokomafont{subsection}{\rmfamily\mdseries\itshape\color{spot}}
                  \makeatletter
                  \def\@seccntformat#1{\protect\makebox[0pt][r]{\csname
                  the#1\endcsname\hspace{\marglistsep}}}
                  \makeatother

                  \definecolor{spot}{rgb}{0.6,0,0}
                  \definecolor{boxframe}{rgb}{0.6,0,0}
                  \definecolor{boxfill}{rgb}{1,.95,.95}

                  \usepackage{verbatim}
                  \usepackage{upquote}
                  \newcommand{\midtilde}{\raisebox{-0.30\baselineskip}{\textasciitilde}}

                  \lstnewenvironment{example}[1][]
                  {\lstset{%
                  aboveskip=1.5\lstenvsep,
                  xleftmargin=3pt,
                  xrightmargin=3pt,
                  frame=single,
                  backgroundcolor=\color{boxfill},
                  rulecolor=\color{boxframe},
                  framesep=2.5pt,
                  framerule=0.5pt,
                  style=latex,#1}}
                  {}

                  % “appendix” environment
                  \newenvironment{appendixx}{\setlength{\parindent}{0pt}\ttfamily\footnotesize}

                  \hypersetup{linkcolor=black,urlcolor=black}

                  \title{\textsf\huge{\spotcolor xindy}}
                  \author{\mdseries\itshape\Large\spotcolor A fle\textbf{x}ible
                  \textbf{ind}exing s\textbf{y}stem}
                  \date{}

                  \begin{document}
                  \maketitle

                  \tableofcontents

                  \section{Tutorial}`

                  ma gli altri due li ho fatti, temporibus illis, rispettivamente con article e con report
                  tanto per sperimentare

                  m

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

              Go to top