[RISOLTO]… newcommand e numerazione progressiva

  • Creatore
    Topic
  • #68032
    Up
    0
    Down
    ::


    Salve a tutti e buone feste!

    Ho il seguente problema (anzi, premesso che mi approccio da poco a latex… 😎 ) devo definire una serie di nuovi comandi del tipo:
    —codice
    \newcommand{\pg01}{Procedura XX per YY}
    \newcommand{\pg02}{Procedura AA per CC}
    —fine codice

    ma ovviamente la numerazione progressiva non funziona. Esiste qualche modo? Ho letto nella guida dell’Arte che si può usare la sintassi con gi argomenti ma (perdonatemi) non ho capito proprio nulla…

    Chi può darmi una zampata d’aiuto?

    Grazie.

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #68033
      Up
      0
      Down
      ::

      quattropezze” post=67183Salve a tutti e buone feste!

      Ho il seguente problema (anzi, premesso che mi approccio da poco a latex… 😎 ) devo definire una serie di nuovi comandi del tipo:
      —codice
      \newcommand{\pg01}{Procedura XX per YY}
      \newcommand{\pg02}{Procedura AA per CC}
      —fine codice

      ma ovviamente la numerazione progressiva non funziona. Esiste qualche modo? Ho letto nella guida dell’Arte che si può usare la sintassi con gi argomenti ma (perdonatemi) non ho capito proprio nulla…

      Chi può darmi una zampata d’aiuto?

      Grazie.

      Non puoi definire comandi con lettere e numeri nel nome: solo lettere. Che cosa vuoi ottenere, di preciso? Probabilmente esistono altri metodi anche più efficienti di definirsi una lunga serie di \newcommand.

      Ciao
      Enrico

    • #68034
      Up
      0
      Down
      ::


      Grazie per la risposta.
      Sto scrivendo un manuale per un Sistema di Gestione Ambientale al cui interno sono richiamati altri documenti detti “Procedure” che hanno la seguente codifica: “PGA 4.4.1, TITOLO DELLA PROCEDURA”, “PGA 4.4.2, TITOLO DELLA PROCEDURA” ecc. vorrei poterle indicare con un comando nel preambolo in maniera tale da scrivere nel corso del testo semplicemente \pg441 oppure \pg442 ecc in maniera tale da evitare di dover ogni volta riscrivere codice identificativo della procedura e titolo.
      Il newcommand non mi permette di usare questo schema, esiste qualcosa di analogo?

      Ancora grazie.

    • #68035
      Up
      0
      Down
      ::

      quattropezze” post=67185Grazie per la risposta.
      Sto scrivendo un manuale per un Sistema di Gestione Ambientale al cui interno sono richiamati altri documenti detti “Procedure” che hanno la seguente codifica: “PGA 4.4.1, TITOLO DELLA PROCEDURA”, “PGA 4.4.2, TITOLO DELLA PROCEDURA” ecc. vorrei poterle indicare con un comando nel preambolo in maniera tale da scrivere nel corso del testo semplicemente \pg441 oppure \pg442 ecc in maniera tale da evitare di dover ogni volta riscrivere codice identificativo della procedura e titolo.
      Il newcommand non mi permette di usare questo schema, esiste qualcosa di analogo?

      Ancora grazie.

      Puoi usare un metodo indiretto:
      `\newcommand{\definepg}[2]{%
      \expandafter\def\csname pg#1\endcsname{#2}}
      \newcommand{\pg}[1]{\csname pg#1\endcsname}

      \definepg{01}{Procedura XX per YY}
      \definepg{02}{Procedura AA per BB}

      \begin{document}

      \pg{01}

      \pg{02}
      …`
      Ciao
      Enrico

    • #68036
      Up
      0
      Down
      ::


      Grazie mille, funziona alla perfezione.

      Non comprendo bene cosa hai fatto, ma in questo momento (sono in scadenza) funziona e quindi tutto ok.

      Grazie ancora.

      P.S. per i moderatori: per inserire la parola”RISOLTO” cosa occorre fare?

    • #68037
      Up
      0
      Down
      ::

      quattropezze” post=67187Grazie mille, funziona alla perfezione.

      Non comprendo bene cosa hai fatto, ma in questo momento (sono in scadenza) funziona e quindi tutto ok.

      \definepg{}{} definisce il comando “\pg” che sarebbe impossibile da scrivere direttamente; ma con \csname…\endcsname si può definire un nome di comando con caratteri arbitrari. Il significato di “\pg” è ““.

      Il comando “\pg{}” prende il suo argomento e costruisce il comando “\pg” sempre con lo stesso metodo. Si può modificare lo schema perché l’utente sia avvisato se sta cercando di definire un comando già usato o di usarne uno non esistente:

      `\newcommand{\definepg}[2]{%
      \expandafter\newcommand\csname pg#1\endcsname{#2}}
      \newcommand{\pg}[1]{%
      \ifcsname pg#1\endcsname
      % il comando esiste e lo usiamo
      \csname pg#1\endcsname
      \else
      % il comando richiesto non è definito
      \errmessage{Comando \string\pg{#1} non esistente}%
      \fi}`

      quattropezze” post=67187P.S. per i moderatori: per inserire la parola”RISOLTO” cosa occorre fare?

      Dovresti avere a disposizione un pulsante “Modifica” accanto al messaggio originale. Dopo averlo premuto puoi modificare l’oggetto.

      Ciao
      Enrico

    • #68038
      Up
      0
      Down
      ::


      fatto
      grazie ancora.

      ciao

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

Go to top