[Risolto] Centrare una sola equazione

  • Creatore
    Topic
  • #79453
    Up
    0
    Down
    ::


    Ho un documento in cui ho specificato l’opzione di classe [tt]fleqn[/tt], quindi tutte le equazioni sono allineate a sinistra. Vorrei però centrare una sola equazione. Lo so che non è bello cambiare l’allineamento delle equazioni, ma questa è un’equazione un po’ particolare, è in realtà una figura che voglio realizzare con un codice di questo tipo:
    `\documentclass[fleqn]{article}
    \usepackage{tikz}
    % http://tex.stackexchange.com/questions/59658/use-of-tikzpicture-matrix-in-align-or-gather-environment/59660#comment126261_59660
    \newcommand\allinea{-\the\dimexpr\fontdimen22\textfont2\relax}
    \usetikzlibrary{shapes.geometric}
    \begin{document}
    \begin{figure}
    \centering
    \begin{equation*}
    \tikz[baseline=\allinea]\node[circle,draw] {} ; =
    \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=5,draw] {}; +
    \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=7,draw] {}; +
    \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=9,draw] {};
    \end{equation*}
    \end{figure}
    \end{document}`Ho visto che il pacchetto [tt]nccmath[/tt] offre l’ambiente [tt]ceqn[/tt] che fa proprio quello che serve a me. Dato che mi serve una sola volta questa singolo ambiente, senza caricare l’intero pacchetto, ho modificato l’equazione precedente prendendo spunto dal codice del pacchetto:
    ` \makeatletter
    \@fleqnfalse
    \@mathmargin\@centering \ignorespaces
    \makeatother
    \begin{equation*}
    \tikz[baseline=\allinea]\node[circle,draw] {} ; =
    \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=5,draw] {}; +
    \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=7,draw] {}; +
    \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=9,draw] {};
    \end{equation*}
    \ignorespacesafterend`È corretto un codice simile? Ci sono soluzioni migliori? Per esempio, fosse stato per me per allineare verticalmente le figure di tikz avrei usato il “banale” [tt]baseline=-0.5ex[/tt], ma qualcuno che ne capisce più di me suggerisce di usare l’artificio [tt]baseline=-\the\dimexpr\fontdimen22\textfont2\relax[/tt]

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #79454
      Up
      0
      Down
      ::

      Elrond” post=78582Ho un documento in cui ho specificato l’opzione di classe [tt]fleqn[/tt], quindi tutte le equazioni sono allineate a sinistra. Vorrei però centrare una sola equazione. Lo so che non è bello cambiare l’allineamento delle equazioni, ma questa è un’equazione un po’ particolare, è in realtà una figura che voglio realizzare con un codice di questo tipo:
      `\documentclass[fleqn]{article}
      \usepackage{tikz}
      % http://tex.stackexchange.com/questions/59658/use-of-tikzpicture-matrix-in-align-or-gather-environment/59660#comment126261_59660
      \newcommand\allinea{-\the\dimexpr\fontdimen22\textfont2\relax}
      \usetikzlibrary{shapes.geometric}
      \begin{document}
      \begin{figure}
      \centering
      \begin{equation*}
      \tikz[baseline=\allinea]\node[circle,draw] {} ; =
      \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=5,draw] {}; +
      \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=7,draw] {}; +
      \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=9,draw] {};
      \end{equation*}
      \end{figure}
      \end{document}`Ho visto che il pacchetto [tt]nccmath[/tt] offre l’ambiente [tt]ceqn[/tt] che fa proprio quello che serve a me. Dato che mi serve una sola volta questa singolo ambiente, senza caricare l’intero pacchetto, ho modificato l’equazione precedente prendendo spunto dal codice del pacchetto:
      ` \makeatletter
      \@fleqnfalse
      \@mathmargin\@centering \ignorespaces
      \makeatother
      \begin{equation*}
      \tikz[baseline=\allinea]\node[circle,draw] {} ; =
      \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=5,draw] {}; +
      \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=7,draw] {}; +
      \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=9,draw] {};
      \end{equation*}
      \ignorespacesafterend`È corretto un codice simile? Ci sono soluzioni migliori? Per esempio, fosse stato per me per allineare verticalmente le figure di tikz avrei usato il “banale” [tt]baseline=-0.5ex[/tt], ma qualcuno che ne capisce più di me suggerisce di usare l’artificio [tt]baseline=-\the\dimexpr\fontdimen22\textfont2\relax[/tt]

      Perché mai devi usare l’ambiente [tt]equation*[/tt]?

      `\documentclass[fleqn]{article}
      \usepackage{tikz}
      % http://tex.stackexchange.com/questions/59658/use-of-tikzpicture-matrix-in-align-or-gather-environment/59660#comment126261_59660
      \newcommand\allinea{-\the\dimexpr\fontdimen22\textfont2\relax}
      \usetikzlibrary{shapes.geometric}
      \begin{document}
      \begin{figure}
      \centering
      $\displaystyle
      \tikz[baseline=\allinea]\node[circle,draw] {} ; =
      \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=5,draw] {}; +
      \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=7,draw] {}; +
      \tikz[baseline=\allinea]\node[regular polygon,regular polygon sides=9,draw] {};
      $
      \end{figure}
      \end{document}`
      Ciao
      Enrico

    • #79455
      Up
      0
      Down
      ::

      egreg9″ post=78585Perché mai devi usare l’ambiente [tt]equation*[/tt]?

      Perché mi piace complicarmi la vita ignorando le vie più semplici 🙂 Grazie

Visualizzazione 1 filone di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top