Creare un nuovo fattore di misura

  • Creatore
    Topic
  • #73537
    Up
    0
    Down
    ::


    Ciao,

    vorrei sapere se è possibile creare un nuovo “fattore di misura” in LaTeX (perdonatemi ma, in questo momento, non mi viene una definizione migliore). Mi spiego meglio: nel preambolo mi piacerebbe poter scrivere qualcosa del genere:
    `\newunit{\fm}{.5\textwidth}`
    per poi scrivere nel documento qualcosa del genere:
    `…
    \begin{tikzpicture}
    \draw (0,0) — (5\fm,7\fm);
    \end{tikzpicture}
    …`
    Questo in modo che, una volta finito il documento, se volessi scalare tutti i miei disegni, mi basterebbe cambiare la riga nel preambolo in:
    `\newunit{\fm}{15cm}`
    E quindi, per esempio, la linea sopra finirebbe nel punto [tt](75cm,105cm).[/tt]
    È possibile far questo? Trovate che sia una cosa senza senso?

    Grazie e buona serata,
    Marco.

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #73538
      admin
      Amministratore del forum
        Up
        0
        Down
        ::

        Marco87″ post=72642Ciao,

        vorrei sapere se è possibile creare un nuovo “fattore di misura” in LaTeX (perdonatemi ma, in questo momento, non mi viene una definizione migliore). Mi spiego meglio: nel preambolo mi piacerebbe poter scrivere qualcosa del genere:
        `\newunit{\fm}{.5\textwidth}`
        per poi scrivere nel documento qualcosa del genere:
        `…
        \begin{tikzpicture}
        \draw (0,0) — (5\fm,7\fm);
        \end{tikzpicture}
        …`
        Questo in modo che, una volta finito il documento, se volessi scalare tutti i miei disegni, mi basterebbe cambiare la riga nel preambolo in:
        `\newunit{\fm}{15cm}`
        E quindi, per esempio, la linea sopra finirebbe nel punto [tt](75cm,105cm).[/tt]
        È possibile far questo? Trovate che sia una cosa senza senso?

        Grazie e buona serata,
        Marco.

        Se abbia senso o meno non lo so, forse puoi scrivere

        `\newlength{\myFm}
        \setlength{\myFm}{0.5\textwidth}`
        e provare. Il nome è meglio modificarlo, corri il rischio di ridefinire dei comandi (comunque otteresti un messaggio di errore).

        Ciao
        Orlando

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

          Marco87″ post=72642Ciao,

          vorrei sapere se è possibile creare un nuovo “fattore di misura” in LaTeX (perdonatemi ma, in questo momento, non mi viene una definizione migliore). Mi spiego meglio: nel preambolo mi piacerebbe poter scrivere qualcosa del genere:
          `\newunit{\fm}{.5\textwidth}`
          per poi scrivere nel documento qualcosa del genere:
          `…
          \begin{tikzpicture}
          \draw (0,0) — (5\fm,7\fm);
          \end{tikzpicture}
          …`
          Questo in modo che, una volta finito il documento, se volessi scalare tutti i miei disegni, mi basterebbe cambiare la riga nel preambolo in:
          `\newunit{\fm}{15cm}`
          E quindi, per esempio, la linea sopra finirebbe nel punto [tt](75cm,105cm).[/tt]
          È possibile far questo? Trovate che sia una cosa senza senso?

          Grazie e buona serata,
          Marco.

          Con Metapost questo modo di passare le unità è lo standard.
          Penso comunque che in TikZ sia sufficiente definire una macro piuttosto che una dimensione:
          `\def\fm{*.5\textwidth}`

          Ciao

        • #73540
          Up
          0
          Down
          ::


          Ciao,

          ringrazio molto sia Roberto che Orlando. Sia in un modo che nell’altro le cose funzionano come desideravo! 😀

          Grazie mille e buona giornata,
          Marco.

        • #73541
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Dove hai pescato \newunit?

            Io non l’ho trovato nel nucleo di LaTeX né in altri pacchetti.

            Non me ne stupisco perché in tex qualunque grandezza dimensionale può essere usata come unità di misura e le soluzioni che ti sono state segnalate da Roberto e Orlando si basano proprio su questa proprietà.

          • #73542
            Up
            0
            Down
            ::


            Ciao Claudio,

            mi sono spiegato male nel primo messaggio: quello era un nome inventato da me per mostrare di che tipo di comando mi sarebbe piaciuto disporre.

            Marco87… nel preambolo mi piacerebbe poter scrivere qualcosa del genere…

            Volevo intendere quello che ho spiegato sopra. Dalle risposte di Roberto e Orlando mi sembrava che si fosse capito. Effettivamente, comunque, non mi era spiegato molto bene; chiedo scusa.

            Ciao,
            Marco.

          • #73543
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Non hai bisogno di chiedere scusa, figuriamoci!

              Io ho preso alla lettera quel che avevi scritto e pensavo che ci fosse un pacchetto che io non conosco che definisse quel comando, magari per altri scopi e che forse tu l’avessi usato in modo improprio.

              Il concetto è che non c’è bisogno di definire nuove unità di misura che il sistema tex possa usare alla stessa stregua di pt, mm, in, em, eccetera. Invece ogni lunghezza può essere usata come “metro” per usare delle lunghezze, alla stessa maniera con cui si specifica [width=0.75\columnwidth] quando si usa \includegraphics, o quando si definisce la giustezza di una minibox o la larghezza di una scatola, o la larghezza di una colonna in una tabella, o un “pilastrino” per distanziare oggetti di vario genere. Ecco, questo è quello che volevo sottolineare, ma ero curioso di sapere se esistesse davvero un pacchetto che definisse una nuova unità di misura come se si trattasse di quelle che si usano abitualmente.:smile:

            • #73544
              Up
              0
              Down
              ::


              Ciao Claudio,

              grazie della risposta e delle spiegazioni. 🙂

              In realtà quello che volevo era un fattore moltiplicativo delle misure che inserisco nei disegni fatti con [tt]TikZ,[/tt] da cambiare a mio piacimento per scalare i disegni.

              • Se usassi cm, pt, … il disegno avrebbe dimensioni assolute e questo non mi va molto bene;
              • Se usassi misure come [tt].5\textwidth,[/tt] sarei limitato alla dimensione della gabbia testo.

              Volendo slegarmi da questi limiti, cercavo come scalare le misure con un fattore moltiplicativo definito da me. Alla fine è probabile che leghi le misure che inserisco dei disegni fatti con [tt]TikZ[/tt] a [tt]\textwidth,[/tt] ma non voglio essere limitato da questa scelta, anche perché se volessi scalare il disegno mantenendo le dimensioni della gabbia del testo, dovrei riscrivere tutte le dimensioni del disegno.

              Ciao,
              Marco.

            • #73545
              Up
              0
              Down
              ::


              Il pacchetto Tikz fornisce anche l’opzione [tt]scale=fattore[/tt] che scala a piacere tutta la figura. Non so se può essere applicato a tutto il documento (fai una prova), però forse è più comodo che scrivere [tt]\fm[/tt] vicino ogni coordinata.

              Ciao
              Fra

            • #73546
              Up
              0
              Down
              ::


              Ho una domanda, si può utilizzare al posto di setlength un banale \newcommand{\lunghezza}{2pt}?

              Ciao,
              Roberto

            • #73547
              Up
              0
              Down
              ::


              Ciao,


              @Spike
              : molto utile quell’opzione! Ho provato a darla come opzione al pacchetto [tt]TikZ,[/tt] ma mi da errore in fase di compilazione. In ogni caso, ne terrò conto. Grazie!


              @maumau
              : ho fatto una prova, e ti rispondo in base a quello che ho ottenuto io. Se usi il comando che hai scritto tu, non ti viene dato errore alla compilazione, ma (almeno a me) non funziona, nel senso che non viene rispettata la reale dimensione della misura (nel tuo caso, se scrivi [tt]\draw (0,0) — (0\lunghezza,2\lunghezza),[/tt] il segmento disegnato non è lungo 4 pt). Se usi la macro fornita da robitex, invece, funziona tutto alla perfezione.

              Ciao,
              Marco.

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

          Go to top