Fare un nuovo simbolo in latex

  • Creatore
    Topic
  • #120675
    Up
    0
    Down
    ::


    Ciao a tutti, avrei bisogno di creare un simbolo che consiste in un uguale = al cui centro vi è una perpendicolare che collega le due linee parallele dell’uguale (spero di essermi spiegato)
    Ho provato a cercare sul forum ma non ho trovato una valida soluzione, inoltre ho visto anche nell’elenco di tutti i simboli di Latex e non ho trovato ciò che cercho.
    Spulciando il forum sono arrivato a formulare queste due soluzioni:
    1) utilizzare il comando `{\footnotesize\rotatebox{90}{{\sf H}}}`, ma non ottengo comunque un simbolo allineato al testo
    2) utilizzare il comando `\makeatletter
    \newcommand{\charfusion}[3][\mathord]{%
    #1{%
    \ifx#1\mathop\vphantom{#2}\fi%
    \mathpalette\mov@rlay{#2\cr#3}}\ifx#1\mathop\displaylimits\fi}
    \def\mov@rlay#1#2{\leavevmode\vtop{%
    \baselineskip\z@skip \lineskiplimit-\maxdimen
    \ialign{\hfil$\m@th#1##$\hfil\cr#2\crcr}}}
    \makeatother
    \charfusion{=}{\ \rotatebox{90}{-}}`
    che tuttavia non dà esattamente l’effetto desiderato, in quanto il “-” ruotato esce un po’ fuori dalle stanghette dell’uguale.
    Qualcuno di voi sa aiutarmi?

Visualizzazione 12 filoni di risposte
  • Autore
    Risposte
    • #120676
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Benvenuto nel forum

        Il tuo simbolo sembra abbastanza raro; ho consultato il captalogo di tutti i simboli accessibili con LaTeX; il piò simile che ho trovato è \vBarv facente parte dei font stix; credo però che stix si possa usare solo con i programmi di composizione XeLaTeX e LuaLaTeX.

        Ti suggerisco di consultare tu stesso quel catalogo perché (confesso) non l’ho consultato per intero. Apri un terminale e dà il comando texdoc symbols-a4; nell’indice generale clicca subito simboli matematici e poi apprezza la varietà dei simboli disponibili.

        Altrimenti, sempre usando l’argomento di \mathop puoi disegnare il tuo simbolo usando l’ambiente picture; usa come unità di misura 1em e il disegno di picture cambia automaticamente dimensioni quando usi corpi di diversa grandezza, o anche semplicemente passi dal copro normale matematico a quello dei pedici o apici del rimoodel secondo livello.

        Sembra strano che tu abbia bisogno di un simbolo che non compare fra le migliaia contenute nel documeto che ti ho indicato; Sei sicuro che i matematici siano d’accordo che il tuo simbolo faccia parte della loro sterminata collezione di simboli?

      • #120677
        samiel
        Partecipante
          Up
          0
          Down
          ::


          Non potrebbe trattarsi del glifo Uni256A,
          ovvero Box Drawings Vertical Single and Horizontal Double?
          Se effettivamente non lo trovi nei simboli di LaTeX né il font che usi lo presenta,
          puoi sempre farlo tu con un programma di editing dei font.
          Si tratta di fare un semplice copia incolla fra glifi già presenti ovunque
          Che font usi?

          m

        • #120678
          Up
          0
          Down
          ::

          OldClaudio” post=121194
          Sembra strano che tu abbia bisogno di un simbolo che non compare fra le migliaia contenute nel documeto che ti ho indicato; Sei sicuro che i matematici siano d’accordo che il tuo simbolo faccia parte della loro sterminata collezione di simboli?

          Ti dico solo che ho trovato questo simbolo in un testo originario di Eulero 🙄

          OldClaudio” post=121194
          Altrimenti, sempre usando l’argomento di \mathop puoi disegnare il tuo simbolo usando l’ambiente picture; usa come unità di misura 1em e il disegno di picture cambia automaticamente dimensioni quando usi corpi di diversa grandezza, o anche semplicemente passi dal copro normale matematico a quello dei pedici o apici del rimoodel secondo livello.

          Scusami se ti scoccio, ma non sono un grande utilizzatore di latex, potresti dirmi come faccio a crearlo? (fai conto che io sia un bambino alle prime armi)

          samiel” post=121195
          Non potrebbe trattarsi del glifo Uni256A,
          ovvero Box Drawings Vertical Single and Horizontal Double?

          No samiel, non è quel simbolo in quanto quello lo potrei facilmente ottenere con un charfusion tra = e |, mentre quello che voglio io è che il pipe | non esca fuori dal simbolo di =

          samiel” post=121195 Che font usi?

          Uso il font “lucida/source code pro” di overleaf

        • #120679
          samiel
          Partecipante
            Up
            0
            Down
            ::


            [attachment=2668]Schermatadel2021-12-1114-25-37.png[/attachment]
            In attesa che gli esperti ti suggeriscano la soluzione con LaTeX,
            se sai usare anche poco un font editor (non sono certo che quel glifo esista
            nelle migliaia di Unicode) puoi fabbricartelo e collocarlo in uno slot inutilizzato.
            Si tratta di un’operazione molto semplice.
            È una cosa del genere quella che vuoi (fatta col Source Code Pro)?

            m

            Attachments:
            You must be logged in to view attached files.
          • #120680
            Up
            0
            Down
            ::


            sì samiel è esattamente questo il simbolo che cerco!
            Mi spiegheresti come fare per inserirlo in un documento latex su overleaf?

          • #120681
            samiel
            Partecipante
              Up
              0
              Down
              ::


              Ma io non l’ho fatto con LaTeX. Ho creato il glifo all’interno del font SourceCodePro-Regular
              (per la precisione con FontForge). In questo caso devi usare il tuo font “personalizzato”.
              Se su Overleaf, che non conosco, usi i font che il sito mette a disposizione
              e che non puoi modificare, in effetti la mia soluzione è inapplicabile.
              Altrimenti se ti serve posso crearti il glifo
              m

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


                Ciao.
                Una soluzione non elegante è quella di usare un pacchetto grafico per creare il disegno del simbolo.
                Per esempio, con TikZ potrebbe essere:
                `\documentclass{article}
                \usepackage{tikz}

                \begin{document}
                \begin{tikzpicture}
                \draw[line width=0.12ex] (0,0) — (1.5ex, 0);
                \draw[line width=0.12ex] (0, 0.8ex) — (1.5ex, 0.8ex);
                \draw[line width=0.12ex] (0.75ex,0.06ex) — (0.75ex,0.794ex);
                \end{tikzpicture}
                \end{document}
                `

                Usando ex come unità di misura, il simbolo (dovrebbe) adeguarsi alle dimensione del font.
                Una soluzione di questo tipo ha il vantaggio di poter disegnare cosa si vuole con alta precisione.
                Questi problemi si sono presentati altre volte sul forum. Mi piacerebbe conoscere l’opinione degli esperti in merito a una soluzione di disegno grafico, alternativa all’uso di un glifo specifico in un font.
                Alla prossima.
                R.

              • #120683
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  LE soluzioni che ti sono state proposte sono valide, ma… con la mia soluzione forse ti puoi trovare meglio Ecco l’esempio che confronta la mia soluzione con quella di @robitex;`\documentclass{article}
                  \usepackage{tikz}
                  \usepackage{pict2e}

                  \newcommand\SimboloDiEulero{\ensuremath{\mathop{%
                  \mbox{\unitlength=1em
                  \begin{picture}(1,2.5)(0,0.25)\thicklines
                  \Line(0,0.35)(1,0.35)
                  \Line(0,0.65)(1,0.65)
                  \Line(0.5,0)(0.5,1)
                  \end{picture}}}}}

                  \begin{document}

                  \[ a \SimboloDiEulero b \]

                  \bigskip

                  \[ a\begin{tikzpicture}
                  \draw[line width=0.12ex] (0,0) — (1.5ex, 0);
                  \draw[line width=0.12ex] (0, 0.8ex) — (1.5ex, 0.8ex);
                  \draw[line width=0.12ex] (0.75ex,0.06ex) — (0.75ex,0.794ex);
                  \end{tikzpicture} b \]

                  \end{document}`Il vantaggio è che il tutto è contenuto dentro la definizione del comando \SimboloDiEulero, a cui puoi cambiare il nome come ti fa comodo; non solo, ma il disegno del simbolo funziona anche in modo matematico come puoi constatare facendoil confronto conla soluzione di @robitex; Ovviamante anche questa soluzione può essere usata invece delamia, basta sostituire dentro la definizione di \SimboloDiEulero tutto l’ambiente picture con tutto l’ambiente tikzpicture,
                  Se i tratti del simbolo ti sembrano troppo neri puoi sostituire \thicklines con \thinlines o con \linethickness{…} dove al posto dei puntini ci scrivi in unità ex la dimensione che ti pare; non esagerare; 1ex dipende dal corpo, ma non credo che tu voglia ingrandire lo spessore quanto ingrandisci il corpo.

                  Seguendo la strada di picture mi sono definito simboli matematici che non fanno parte delle collezioni di default di LaTeX, come, per esempio, l’integrale principale di Cauchy (in integrale barrato).

                • #120684
                  Up
                  0
                  Down
                  ::

                  OldClaudio” post=121201LE soluzioni che ti sono state proposte sono valide, ma… con la mia soluzione forse ti puoi trovare meglio Ecco l’esempio che confronta la mia soluzione con quella di @robitex;`\documentclass{article}
                  \usepackage{tikz}
                  \usepackage{pict2e}

                  \newcommand\SimboloDiEulero{\ensuremath{\mathop{%
                  \mbox{\unitlength=1em
                  \begin{picture}(1,2.5)(0,0.25)\thicklines
                  \Line(0,0.35)(1,0.35)
                  \Line(0,0.65)(1,0.65)
                  \Line(0.5,0)(0.5,1)
                  \end{picture}}}}}

                  \begin{document}

                  \[ a \SimboloDiEulero b \]

                  \bigskip

                  \[ a\begin{tikzpicture}
                  \draw[line width=0.12ex] (0,0) — (1.5ex, 0);
                  \draw[line width=0.12ex] (0, 0.8ex) — (1.5ex, 0.8ex);
                  \draw[line width=0.12ex] (0.75ex,0.06ex) — (0.75ex,0.794ex);
                  \end{tikzpicture} b \]

                  \end{document}`Il vantaggio è che il tutto è contenuto dentro la definizione del comando \SimboloDiEulero, a cui puoi cambiare il nome come ti fa comodo; non solo, ma il disegno del simbolo funziona anche in modo matematico come puoi constatare facendoil confronto conla soluzione di @robitex; Ovviamante anche questa soluzione può essere usata invece delamia, basta sostituire dentro la definizione di \SimboloDiEulero tutto l’ambiente picture con tutto l’ambiente tikzpicture,
                  Se i tratti del simbolo ti sembrano troppo neri puoi sostituire \thicklines con \thinlines o con \linethickness{…} dove al posto dei puntini ci scrivi in unità ex la dimensione che ti pare; non esagerare; 1ex dipende dal corpo, ma non credo che tu voglia ingrandire lo spessore quanto ingrandisci il corpo.

                  Seguendo la strada di picture mi sono definito simboli matematici che non fanno parte delle collezioni di default di LaTeX, come, per esempio, l’integrale principale di Cauchy (in integrale barrato).

                  In realtà il simbolo che crei con picture non è quello che voglio, mentre quello creato con tikz è effettivamente il simbolo che voglio.
                  Grazie comunque!! Con tikz ho risolto

                • #120685
                  Up
                  0
                  Down
                  ::


                  Visto che il problema è già stato risolto è solo una curiosità: era per caso \TTsteel (marvosym) ?

                  Ciao
                  Andrea

                • #120686
                  Up
                  0
                  Down
                  ::

                  And” post=121203Visto che il problema è già stato risolto è solo una curiosità: era per caso \TTsteel (marvosym) ?

                  Ciao
                  Andrea

                  Ciao Andrea, sì il simbolo è quello, solo che \TTsteel lo dà con linee eccessivamente spesse. Ma a parte questo dettaglio, il simbolo era esattamente quello che dici tu

                • #120687
                  Up
                  0
                  Down
                  ::

                  Utente123″ post=121196
                  Ti dico solo che ho trovato questo simbolo in un testo originario di Eulero 🙄

                  Potresti per favore aggiungere un riferimento o un’immagine per vedere il simbolo e il contesto?

                  Ciao
                  Enrico

                • #120688
                  Up
                  0
                  Down
                  ::


                  Se il simbolo è un = con una linea verticale in mezzo, si può fare con metodi standard.

                  `
                  \documentclass{article}
                  \usepackage{amsmath}

                  \makeatletter
                  \newcommand{\nuovosimbolo}{\mathrel{\mathpalette\nuovosimbolo@\relax}}
                  \newcommand{\nuovosimbolo@}[2]{%
                  \vphantom{=}%
                  \begingroup
                  \sbox\z@{$\m@th#1{=}$}%
                  \ooalign{%
                  $\m@th#1{=}$\cr
                  \hidewidth\nuovosimbolo@vert{#1}\hidewidth\cr
                  }%
                  \endgroup
                  }

                  \newcommand{\nuovosimbolo@vert}[1]{%
                  \vrule height \ht\z@
                  depth -\nuovosimbolo@fix{#1}
                  width \nuovosimbolo@thickness{#1}
                  }
                  \newcommand{\nuovosimbolo@fix}[1]{%
                  \dimexpr2\nuovosimbolo@axis{#1}-\ht\z@\relax
                  }
                  \newcommand{\nuovosimbolo@axis}[1]{%
                  \fontdimen22
                  \ifx#1\displaystyle\textfont\else
                  \ifx#1\textstyle\textfont\else
                  \ifx#1\scriptstyle\scriptfont\else
                  \scriptscriptfont\fi\fi\fi 2
                  }
                  \newcommand{\nuovosimbolo@thickness}[1]{%
                  \fontdimen8
                  \ifx#1\displaystyle\textfont\else
                  \ifx#1\textstyle\textfont\else
                  \ifx#1\scriptstyle\scriptfont\else
                  \scriptscriptfont\fi\fi\fi 3
                  }
                  \makeatother

                  \begin{document}

                  $A\nuovosimbolo B$

                  $\scriptstyle A\nuovosimbolo B$

                  $\scriptscriptstyle A\nuovosimbolo B$

                  \end{document}
                  `

                  L’idea è di sovrapporre, con [tt]\ooalign[/tt] il segno di = con la linea verticale dello stesso spessore (calcolato tramite lo spessore delle linee di frazione nello stile attuale); la linea è alta quanto il segno di uguale, ma togliamo quanto starebbe sotto il segno, supponendo che = sia simmetrico rispetto all’asse delle formule.

                  Lo spessore delle linee di frazione è [tt]\fontdimen8[/tt] del font 3 nello stile attuale (large symbols), mentre l’altezza dell’asse delle formule è [tt]\fontdimen22[/tt] del font 2 nello stile attuale.

                  [attachment=2669]Screenshot2021-12-14at11.42.13.png[/attachment]

                  Ciao
                  Enrico

                  Attachments:
                  You must be logged in to view attached files.
              Visualizzazione 12 filoni di risposte
              • Devi essere connesso per rispondere a questo topic.

              Go to top