Definizione dell’operatore derivata

  • Creatore
    Topic
  • #13735
    Up
    0
    Down
    ::


    Salve a tutti.

    So bene che ad alcuni non piacerà l’idea, ma visto che la normativa internazionale ISO 31/XI impone l’uso della derivata come operatore, mi sto ponendo il problema di definirla adeguatamente (con il carattere tondo, per cominciare).

    Poiché, per fortuna, qualcuno ha fatto lo “sporco lavoro” per me, in modo da definire perfettamente la derivata in quanto a font e spaziature, mi accingevo a fare un semplice copia e incolla del comando che Claudio Beccari (è lui quel “qualcuno”) ha chiamato \diff.

    Il problema sorge dal fatto che, purtroppo, in due documenti diversi (lontani anche nel tempo, per la verità) Claudio utilizza due definizioni che, almeno a me, sembrano diverse.

    Nell’articolo di dieci anni fa Typesetting mathematics for science and technology according to ISO 31/XI, disponibile qui, per \diff è impiegata questa sequenza di comandi in TeX (purtroppo) per me incomprensibile:`\makeatletter
    \providecommand*{\diff}%
    {\@ifnextchar^{\DIfF}{\DIfF^{}}}
    \def\DIfF^#1{%
    \mathop{\mathrm{\mathstrut d}}%
    \nolimits^{#1}\gobblespace}
    \def\gobblespace{%
    \futurelet\diffarg\opspace}
    \def\opspace{%
    \let\DiffSpace\!%
    \ifx\diffarg(%
    \let\DiffSpace\relax
    \else
    \ifx\diffarg[%
    \let\DiffSpace\relax
    \else
    \ifx\diffarg\{%
    \let\DiffSpace\relax
    \fi\fi\fi\DiffSpace}`
    mentre nella recente Introduzione all’arte della composizione tipografica con LaTeX dello stesso autore, è impiegato un più laconico (e un po’ più comprensibile):
    `\newcommand*{\diff}{\mathop{}\!\mathrm{d}}`

    Vi chiedo: i due comandi sono identici, ma scritti in maniera diversa? Se no, quale è più corretto adottare?

    Aggiungo (ovemai fosse utile a risolvere l’enigma) che nell’articolo, al \diff definito in TeX, sono accoppiati i seguenti comandi (che penso possano essere utili) per la scrittura automatica della derivata totale e parziale, rispettivamente \deriv e \pderiv:`\providecommand*{\deriv}[3][]{%
    \frac{\diff^{#1}#2}{\diff #3^{#1}}}

    \providecommand*{\pderiv}[3][]{%
    \frac{\partial^{#1}#2}%
    {\partial #3^{#1}}}`

    Grazie per l’attenzione.

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #13736
      Up
      0
      Down
      ::

      Salve a tutti.

      So bene che ad alcuni non piacerà l’idea, ma visto che la normativa internazionale ISO 31/XI impone l’uso della derivata come operatore, mi sto ponendo il problema di definirla adeguatamente (con il carattere tondo, per cominciare).

      Poiché, per fortuna, qualcuno ha fatto lo “sporco lavoro” per me, in modo da definire perfettamente la derivata in quanto a font e spaziature, mi accingevo a fare un semplice copia e incolla del comando che Claudio Beccari (è lui quel “qualcuno”) ha chiamato \diff.

      Il problema sorge dal fatto che, purtroppo, in due documenti diversi (lontani anche nel tempo, per la verità) Claudio utilizza due definizioni che, almeno a me, sembrano diverse.

      Nell’articolo di dieci anni fa Typesetting mathematics for science and technology according to ISO 31/XI, disponibile qui, per \diff è impiegata questa sequenza di comandi in TeX (purtroppo) per me incomprensibile:`\makeatletter
      \providecommand*{\diff}%
      {\@ifnextchar^{\DIfF}{\DIfF^{}}}
      \def\DIfF^#1{%
      \mathop{\mathrm{\mathstrut d}}%
      \nolimits^{#1}\gobblespace}
      \def\gobblespace{%
      \futurelet\diffarg\opspace}
      \def\opspace{%
      \let\DiffSpace\!%
      \ifx\diffarg(%
      \let\DiffSpace\relax
      \else
      \ifx\diffarg[%
      \let\DiffSpace\relax
      \else
      \ifx\diffarg\{%
      \let\DiffSpace\relax
      \fi\fi\fi\DiffSpace}`
      mentre nella recente Introduzione all’arte della composizione tipografica con LaTeX dello stesso autore, è impiegato un più laconico (e un po’ più comprensibile):
      `\newcommand*{\diff}{\mathop{}\!\mathrm{d}}`

      Vi chiedo: i due comandi sono identici, ma scritti in maniera diversa? Se no, quale è più corretto adottare?

      Aggiungo (ovemai fosse utile a risolvere l’enigma) che nell’articolo, al \diff definito in TeX, sono accoppiati i seguenti comandi (che penso possano essere utili) per la scrittura automatica della derivata totale e parziale, rispettivamente \deriv e \pderiv:`\providecommand*{\deriv}[3][]{%
      \frac{\diff^{#1}#2}{\diff #3^{#1}}}

      \providecommand*{\pderiv}[3][]{%
      \frac{\partial^{#1}#2}%
      {\partial #3^{#1}}}`

      Lascia perdere la vecchia definizione. Se la provi con differenziali di ordine superiore vedrai subito che l’esponente va troppo in alto. La nuova è molto più efficiente e non ha quel problema. Ne ha altri che secondo me non sono irrilevanti: confronta le due formule
      `\int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\diff x
      \int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\mathrm{d} x`
      (in un display, naturalmente) e scoprirai che nella prima c’è una spaziatura di troppo.

      Un consiglio: non usare \providecommand. Se per caso uno dei pacchetti che carichi definisse il comando \deriv, ti gratteresti la testa a lungo per capire dove stai sbagliando.

      E, come Catone tanto tempo fa diceva Ceterum censeo Carthaginem esse delendam alla fine di ogni suo discorso, io dico: Il simbolo d di differenziale non è un operatore.

      Ciao
      Enrico

    • #13737
      Up
      0
      Down
      ::


      Enrico, perdonami, ma non ti seguo:

      Lascia perdere la vecchia definizione. Se la provi con differenziali di ordine superiore vedrai subito che l’esponente va troppo in alto.

      L’uso di differenziali di ordine superiore non è da imputare al comando \deriv, non \diff, o mi sbaglio? Inoltre nell’articolo citato (pag. 46, colonna destra) c’è proprio un esempio di derivata seconda ottenuta con il comando \deriv
      `a\deriv[2]{y}{x}+…` e a me non sembra sbagliata la posizione dell’esponente. Forse non ho capito quello che mi dicevi?

      confronta le due formule
      `\int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\diff x
      \int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\mathrm{d} x`

      (in un display, naturalmente) e scoprirai che nella prima c’è una spaziatura di troppo.

      D’accordo, la tua pars destruens ha fatto breccia. La pars costruens? Non posso mica usare sempre \mathrm{d} e ricavarmi ogni volta gli spazi a mano?

      Un consiglio: non usare \providecommand. Se per caso uno dei pacchetti che carichi definisse il comando \deriv, ti gratteresti la testa a lungo per capire dove stai sbagliando.

      Grazie, lo terrò a mente.

      E, come Catone tanto tempo fa diceva Ceterum censeo Carthaginem esse delendam alla fine di ogni suo discorso, io dico: Il simbolo d di differenziale non è un operatore.

      Di fronte ai tuoi forbiti apoftegmata, io posso solo replicare con una più umile e modesta citazione (terra-terra, come si dice dalle mie parti) di quello che sento dire spesso da mio papà. Anche lui è d’accordo con te: lamenta sempre che in Italia ci siano leggi proprio ingiuste e il sistema fiscale sia altrettanto iniquo. Gli sento spesso dire: ti sembra giusto che debba pagare tante tasse per quello che guadagno? 😀

    • #13738
      Up
      0
      Down
      ::


      Ah, dimenticavo, però papà le paga sempre le tasse! 😆

    • #13739
      Up
      0
      Down
      ::

      Enrico, perdonami, ma non ti seguo:

      Lascia perdere la vecchia definizione. Se la provi con differenziali di ordine superiore vedrai subito che l’esponente va troppo in alto.

      L’uso di differenziali di ordine superiore non è da imputare al comando \deriv, non \diff, o mi sbaglio? Inoltre nell’articolo citato (pag. 46, colonna destra) c’è proprio un esempio di derivata seconda ottenuta con il comando \deriv
      `a\deriv[2]{y}{x}+…` e a me non sembra sbagliata la posizione dell’esponente. Forse non ho capito quello che mi dicevi?

      Prova a guardare affiancate le formule ottenute con la vecchia definizione (cambia il nome in \diffold) e la nuova. Vedrai che l’esponente è nettamente più in alto (0.84pt, per la precisione).

      confronta le due formule
      `\int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\diff x
      \int\biggl(\frac{1}{x}+\frac{1}{1-x}\biggr)\mathrm{d} x`

      (in un display, naturalmente) e scoprirai che nella prima c’è una spaziatura di troppo.

      D’accordo, la tua pars destruens ha fatto breccia. La pars costruens? Non posso mica usare sempre \mathrm{d} e ricavarmi ogni volta gli spazi a mano?

      Perché no? Si tratta di mettere (o no) un \, davanti a \mathrm{d}; con
      `\newcommand{\diff}{\mathrm{d}}`
      puoi scrivere
      `\int_{a}^{b}f(x)\,\diff x`
      Ciao
      Enrico

    • #13740
      Up
      0
      Down
      ::

      puoi scrivere`\int_{a}^{b}f(x)\,\diff x`

      Ok, grazie. Onestamente pensavo che dichiarare un operatore matematico imponesse qualcosa di un po’ più complicato della semplice equivalenza con`\,\mathrm{operatore}\,`

      Non voglio abusare della tua pazienza, ma se scrivo`\newcommand{\diff}{\mathrm{d}}`come mi suggerisci tu, e c’aggiungo le definizioni`\newcommand*{\deriv}[3][]{%
      \frac{\diff^{#1}#2}{\diff #3^{#1}}}

      \newcommand*{\pderiv}[3][]{%
      \frac{\partial^{#1}#2}%
      {\partial #3^{#1}}}
      `è tutto ok anche per l’altezza degli esponenti delle derivate n-esime?

      Perdonami, ma è difficile (almeno per me) apprezzare le frazioni di punto tipografico.

      Grazie.

    • #13741
      Up
      0
      Down
      ::

      puoi scrivere`\int_{a}^{b}f(x)\,\diff x`

      Ok, grazie. Onestamente pensavo che dichiarare un operatore matematico imponesse qualcosa di un po’ più complicato della semplice equivalenza con`\,\mathrm{operatore}\,`

      Infatti, non è così semplice. Gli spazi sottili prima o dopo ci sono solo in situazioni particolari. Per esempio, in “x+\log x” lo spazio sottile c’è solo dopo “log” e prima c’è il normale spazio dei simboli di operazione; invece in “\log(a+b)” lo spazio sottile non c’è.
      Automaticamente.

      La definizione proposta di \diff cerca di ottenere il meglio possibile automaticamente; a volte funziona, a volte no. Ma se si vuole ottenere il massimo tipograficamente, bisogna adattarsi a qualche raffinamento manuale ogni tanto: nessun sistema automatico può fare tutto.

      Per il “dx” io, sinceramente, preferisco fare a mano, ma capisco chi cerca di risparmiare “fatiche”.

      Non voglio abusare della tua pazienza, ma se scrivo`\newcommand{\diff}{\mathrm{d}}`come mi suggerisci tu, e aggiungo le definizioni`\newcommand*{\deriv}[3][]{%
      \frac{\diff^{#1}#2}{\diff #3^{#1}}}

      \newcommand*{\pderiv}[3][]{%
      \frac{\partial^{#1}#2}%
      {\partial #3^{#1}}}
      `è tutto ok anche per l’altezza degli esponenti delle derivate n-esime?

      Nessun problema. Adesso che conosci le alternative, scegli.

      Ciao
      Enrico

    • #13742
      Up
      0
      Down
      ::

      Ceterum censeo differentiale signum non esse operatorem

      😆 😆 😆 😆 😆 😆 😆

      Vis et honor tibi, saggio Catone.

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

Go to top