Centratura senza spazi verticali

  • Creatore
    Topic
  • #91380
    Up
    0
    Down
    ::


    Ciao a tutti,

    scusate se la domanda è banale o addirittura sciocca. Vorrei realizzare quanto segue: una riga centrata appena al di sopra di un paragrafo, senza alcuno spazio verticale aggiuntivo. Ho provato così:
    `\documentclass{memoir}

    \usepackage{lipsum}

    \begin{document}

    {\centering Testo centrato}\par
    \lipsum[1]

    \end{document}`
    ma la dichiarazione [tt]\centering[/tt] non funziona, o almeno non funziona come mi sarei aspettato (chissà perché ho avuto questa convinzione sbagliata fino a oggi). Come posso ottenere quello che otterrei con [tt]\begin{center}[/tt] [tt]…[/tt] [tt]\end{center},[/tt] ma senza l’aggiunta degli spazi verticali?

    Grazie e buona giornata,
    Marco.

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #91381
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        Marco87″ post=90907Ciao a tutti,

        scusate se la domanda è banale o addirittura sciocca. Vorrei realizzare quanto segue: una riga centrata appena al di sopra di un paragrafo, senza alcuno spazio verticale aggiuntivo. Ho provato così:
        `\documentclass{memoir}

        \usepackage{lipsum}

        \begin{document}

        {\centering Testo centrato}\par
        \lipsum[1]

        \end{document}`

        ma la dichiarazione [tt]\centering[/tt] non funziona, o almeno non funziona come mi sarei aspettato (chissà perché ho avuto questa convinzione sbagliata fino a oggi). Come posso ottenere quello che otterrei con [tt]\begin{center}[/tt] [tt]…[/tt] [tt]\end{center},[/tt] ma senza l’aggiunta degli spazi verticali?

        Grazie e buona giornata,
        Marco.

        Una cosa del genere?
        `\documentclass{memoir}
        \usepackage{lipsum}

        \newcommand\cen[1]{\noindent\hfill#1\hfill}

        \begin{document}
        \cen{Testo centrato}

        \lipsum[1]
        \end{document}`

        R.

      • #91382
        Up
        0
        Down
        ::


        Ciao Roberto,

        è esattamente quello che desideravo ottenere. Grazie mille!

        Mi piacerebbe sapere se c’è un motivo particolare/tipografico per cui non esiste un comando predefinito di LaTeX che esegua quello che fa il tuo comando [tt]\cen.[/tt]

        Grazie ancora e buon proseguimento,
        Marco.

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


          Credo che \centering abba bisogno di \\
          Questa definizione funziona (il gruppo interno serve per non propagare l’effetto):
          `\newcommand\cen[1]{{\centering#1\\}}`

          Ciao.
          R.

        • #91384
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Il comando è \centering ma il \par va messo dentro il gruppo`{\centering Testo Centrato\par}` È bene meditare su l’esperienza che ti sei fatto con \centering; infatti \centering è una dichiarazione che reata in vigore per sempre o finché non viene chius il gruppo o l’ambente nel quale si trova. \par è un comando che termia esplicitamente un capoverso; il motore di composizione, per esempio pdftex (quello che fa andare pdflatex) compone il capoverso con lo stiel che è in vigore al momento in cui \par viene eseguito. Se \centering è dentro il gruppo e \par è fuori, questo compone il capoverso con lo sticle in vigure fuori dal gruppo, visto che il gruppo è già chiuso e la dichiarazione \centering non è più in vigore.

            \centering NON ha bsigono di \\ alla luce di quanto detto sopra.

            Un altro metodo per avere una riga centrata è quello di usare \makebox, comando utilissimo e poco descritto i diverse guide (descritto nella guida tematica Il LaTeX Reference Manual commentato e la Guida GuIT. questo comando, originario di LaTeX fin dalla sua nascita, crea una scatola contenete una riga il cui testo è centrato dentro una giustezza specificata “facoltativamante” (nel senso che se non è spacificata la scatola ha una larghezza pari al testo che contiene; la sintassi è

            [tt]\malebox[][]{}[/tt]

            dove è la larghezza specificata, dentro la scatola: l significa a sinistra (left), r significa a destra (right), c significa al centro (center; impostazione di default). Nel caso particolare proposto in questo filone basterebbe scrivere`\noindent\makebox[\textwidth]{TestoCentrato}`Il \noindent serve per poter essere sicuri che la scatola, larga quanto la giustezza non sia spostata del rientro di capoverso se si trova come prima riga di un capoverso.

            Come vedi esistono diversi modi per centrare del testo. \makebox dovrebbe sostituire completamante il comando di Plain TeX \centerbox, perché questo comando è deprecato quando si scrive con LaTeX. Te ne potrei citare altri, ma [tt]{\centering … \par}[/tt] e [tt]\noindent\makebox[\textwidth]{…}[/tt] sono più che sufficienti.

          • #91385
            Up
            0
            Down
            ::


            Ciao,

            grazie a tutti e due! Alla fine ho usato la soluzione che prevede l’uso di [tt]{\centering … \par}.[/tt] Tuttavia le spiegazioni di Claudio sono state preziose e utili; ne farò tesoro.

            Grazie mille e buona serata,
            Marco.

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

        Go to top