Definizione nuovo comando sensibile alla modalità

  • Creatore
    Topic
  • #14349
    Liverpool
    Partecipante
      Up
      0
      Down
      ::


      Salve a tutti,
      ho la necessità di usare spesso in un documento il carattere calligrafico E del pacchetto eucal, sia in modo testo, sia in quello matematico. Per questo, ho pensato di definire un nuovo comando \E che sostituisca $\mathcal{E}$ nel primo caso e \mathcal{E} nel secondo, in base all’ambiente in cui viene istanziato, attraverso un costrutto del tipo:

      `\newcommand{\E}%
      {“se siamo in modo testo”$\mathcal{E}$
      “se siamo in modo matematico”\mathcal{E}}`
      Non so come tradurlo opportunamente in codice…
      Grazie per l’aiuto.

      Liverpool

      P.S. Qualcuno potrebbe suggerirmi di digitare direttamente il comando. In realtà dovrei definire anche un altro comando che sostituisca \vec{\mathcal{E}} in entrambe le modalità. In tal caso certamente si nota il vantaggio.

    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #14350
        Up
        0
        Down
        ::

        Salve a tutti,
        ho la necessità di usare spesso in un documento il carattere calligrafico E del pacchetto eucal, sia in modo testo, sia in quello matematico. Per questo, ho pensato di definire un nuovo comando \E che sostituisca $\mathcal{E}$ nel primo caso e \mathcal{E} nel secondo, in base all’ambiente in cui viene istanziato, attraverso un costrutto del tipo:

        `\newcommand{\E}%
        {“se siamo in modo testo”$\mathcal{E}$
        “se siamo in modo matematico”\mathcal{E}}`
        Non so come tradurlo opportunamente in codice…

        `\newcommand{\E}{\ensuremath{\mathcal{E}}`
        Ma, detto come si fa, dico anche che sconsiglio l’uso di questa costruzione. I simboli matematici vanno messi dentro a $…$, per obbedire al principio di marcare logicamente il proprio documento.

        Più in generale, se si vuole definire un comando che faccia cose diverse in ambienti diversi, una strada è di procurarsi uno “switch”:
        `\usepackage{ifthen}
        \newboolean{mioswitch}
        \newcommand{\miocomando}{%
        \ifthenelse{\boolean{mioswitch}}
        {codice 1}{codice 0}}
        \newenvironment{mioambiente}
        {\setboolean{mioswitch}{true} …}
        {…}`
        Il comando \miocomando userà ovunque (i condizionali sono falsi, di default) tranne che in “mioambiente” dove userà .

        Ci sono già alcuni “switch” disponibili, fra questi “mmode” (vero in modo matematico, falso altrove).

        L’uso del pacchetto ifthen non è obbligatorio, si può ottenere lo stesso risultato con sintassi diversa:
        `\newif\ifmioswitch
        \newcommand{\miocomando}{%
        \ifmioswitch
        codice 1%
        \else
        codice 0%
        \fi}
        \newenvironment{mioambiente}
        {\mioswitchtrue …}
        {…}`
        Il comando \ensuremath{\mathcal{E}} è equivalente a
        `\relax\ifmmode\mathcal{E}\else$\mathcal{E}$\fi`
        Ciao
        Enrico

      • #14351
        Liverpool
        Partecipante
          Up
          0
          Down
          ::

          [`\newcommand{\E}{\ensuremath{\mathcal{E}}`
          Ma, detto come si fa, dico anche che sconsiglio l’uso di questa costruzione. I simboli matematici vanno messi dentro a $…$, per obbedire al principio di marcare logicamente il proprio documento.

          Problema risolto con il metodo citato (e l’aggiunta di una graffa in coda).
          Riguardo alla marcatura logica, il discorso è ineccepibile, pertanto ho pensato di definire il comando \E solo in modo matematico e di utilizzare $\E$ in modo testo. Così sarebbe più corretto?

          Grazie mille,

          Liverpool

        • #14352
          lorenzo.pantieri
          Partecipante
            Up
            0
            Down
            ::


            Personalmente, definirei nel preambolo un semplice
            `\newcommand{\E}{\mathcal{E}}`
            e lo userei esclusivamente in modo matematico.

            Ciao,
            L.

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

        Go to top