Differenze tra \par \@par e \newline

  • Creatore
    Topic
  • #27923
    Up
    0
    Down
    ::


    Qualcuno potrebbe cortesemente spiegarmi le differenze tra i seguenti comandi:
    \newline
    \par
    \@par

    Il mio problema è il seguente:
    se in un comando tipo \textbf{….} metto \newline, LaTeX mi dà errore;
    se uso ‘\par’, mi dà lo stesso errore, se uso ‘\@par’ non mi dà errore, il dvi viene bene ma il pdf viene pieno di ‘par’…
    Potrei fare una cosa del tipo:
    \textbf{….}\newline\textbf{….}
    ma vorrei restare su di un campo più ‘semplice’ (il codice LaTeX è prodotto da un convertitore/insaccatore che sto scrivendo).

    Andrea

Visualizzazione 10 filoni di risposte
  • Autore
    Risposte
    • #27924
      Up
      0
      Down
      ::

      Qualcuno potrebbe cortesemente spiegarmi le differenze tra i seguenti comandi:
      \newline
      \par
      \@par

      Il mio problema è il seguente:
      se in un comando tipo \textbf{….} metto \newline, LaTeX mi dà errore;
      se uso ‘\par’, mi dà lo stesso errore, se uso ‘\@par’ non mi dà errore, il dvi viene bene ma il pdf viene pieno di ‘par’…
      Potrei fare una cosa del tipo:
      \textbf{….}\newline\textbf{….}
      ma vorrei restare su di un campo più ‘semplice’ (il codice LaTeX è prodotto da un convertitore/insaccatore che sto scrivendo).

      Non senza avere esempi di questo codice che dà “errore”.

      La macro \newline è una di quelle che cambiano significato a seconda dell’ambiente in cui si trovano. Essenzialmente è equivalente a \\.

      Il comando primitivo \par termina un capoverso, ma LaTeX a volte ne cambia il significato per vari motivi. La macro \@par è una macro interna che va usata solo se si sa ciò che si sta facendo (e con questo sto dicendo che non sai ciò che fai :)); la sua azione è: (1) riassegna a \par il significato primitivo; (2) esegui il comando \par primitivo.

      Quindi, in situazioni “normali”, dare \@par o \par è equivalente, purché si sia in un ambito in cui @ è trattato come se fosse una lettera dell’alfabeto.

      Ho alcuni dubbi sull’affermazione “il dvi viene bene ma il pdf viene pieno di ‘par’”. Hai per caso un esempio?

      La tua situazione potrebbe essere risolta usando
      `{\bfseries … \par …}`
      ma occorrerebbe capire che cosa vuoi ottenere. Se sei in una cella di tabella non specificata con p{…}, né \newline né \par possono funzionare.

      Ciao
      Enrico

    • #27925
      Up
      0
      Down
      ::


      Aggiornamento:
      effettivamente adesso anche il dvi viene da schifo… Probabilmente il visualizzatore dvi non ha aggiornato la videata sino a quando non lo ho forzato a mano…
      La situazione che sto cercando di risolvere è la seguente:
      l’utonto deve riempire un form. I dati di questo form vengono passati ad un mio tritatutto che estrae dati da un database e produce delle sorte di report che tramite LaTeX può scaricare come pdf.
      Il committente vuole poter applicare della formattazione ad alcuni dati, pertanto ha a disposizione dei campi text nel form dove può immettere del testo formattato html.
      Ad esempio, il tag lo espando come \textbf{…}, ma se l’utonto mi inserisce un , il corrispondente \newline affonda la compilazione LaTeX.
      Il problema è che il committente vuole assolutamente questo : cioè vuole terminare la riga ma NON iniziare un nuovo paragrafo (diciamo che l’industria e l’università hanno notevoli divergenze sull’arte della composizione tipografica).
      Quindi ho fatto qualche imbroglio per cercare di applicare questa formattazione:
      \par, \newline, doppio con \parskip modificato, ecc.: si equivalgono, ma tutti creano problemi ‘di ritorno’. Ovvero dentro ai textbf non funzionano.
      Adesso sto provando a spezzare i \textbf quando trovo un .

      Andrea

    • #27926
      Up
      0
      Down
      ::

      Aggiornamento:
      effettivamente adesso anche il dvi viene da schifo… Probabilmente il visualizzatore dvi non ha aggiornato la videata sino a quando non lo ho forzato a mano…
      La situazione che sto cercando di risolvere è la seguente:
      l’utonto deve riempire un form. I dati di questo form vengono passati ad un mio tritatutto che estrae dati da un database e produce delle sorte di report che tramite LaTeX può scaricare come pdf.
      Il committente vuole poter applicare della formattazione ad alcuni dati, pertanto ha a disposizione dei campi text nel form dove può immettere del testo formattato html.
      Ad esempio, il tag lo espando come \textbf{…}, ma se l’utonto mi inserisce un , il corrispondente \newline affonda la compilazione LaTeX.
      Il problema è che il committente vuole assolutamente questo : cioè vuole terminare la riga ma NON iniziare un nuovo paragrafo (diciamo che l’industria e l’università hanno notevoli divergenze sull’arte della composizione tipografica).
      Quindi ho fatto qualche imbroglio per cercare di applicare questa formattazione:
      \par, \newline, doppio con \parskip modificato, ecc.: si equivalgono, ma tutti creano problemi ‘di ritorno’. Ovvero dentro ai textbf non funzionano.
      Adesso sto provando a spezzare i \textbf quando trovo un .

      Espandi il in {\bfseries …}

      Ciao
      Enrico

    • #27927
      Up
      0
      Down
      ::

      Espandi il in {\bfseries …}

      Ciao
      Enrico

      In effetti funziona, ma mi va in conflitto mortale con wrapfig! Se ho un wrapfloat con testo a fianco in grassetto con bfseries, le immagini finiscono sul margine oppure vagano nella pagina senza meta apparente…

      Andrea

    • #27928
      Up
      0
      Down
      ::

      Espandi il in {\bfseries …}

      Ciao
      Enrico

      In effetti funziona, ma mi va in conflitto mortale con wrapfig! Se ho un wrapfloat con testo a fianco in grassetto con bfseries, le immagini finiscono sul margine oppure vagano nella pagina senza meta apparente…

      Ti spiacerebbe fare un minimo di esempio REALE di quello che hai fra le mani? O vuoi sempre dare le informazioni un bit alla volta? Prova con
      `\leavevmode{\bfseries …}`
      Ciao
      Enrico

    • #27929
      Up
      0
      Down
      ::

      [quote]Espandi il in {\bfseries …}

      Ciao
      Enrico

      In effetti funziona, ma mi va in conflitto mortale con wrapfig! Se ho un wrapfloat con testo a fianco in grassetto con bfseries, le immagini finiscono sul margine oppure vagano nella pagina senza meta apparente…

      Ti spiacerebbe fare un minimo di esempio REALE di quello che hai fra le mani? O vuoi sempre dare le informazioni un bit alla volta? Prova con
      `\leavevmode{\bfseries …}`
      Ciao
      Enrico[/quote]

      \leavevmode risolve il problema, grazie!
      Non l’ho trovato da nessuna parte, a che serve?

      Comunque, il codice che risulta è questo:
      `\begin{wrapfloat}{figure}{l}{9mm}
      \vspace{-10pt}
      \includegraphics[angle=0,scale=1.0]{Importante}%
      \vspace{-10pt}
      \end{wrapfloat}

      \leavevmode{\bfseries Importante!\newline
      In generale, per tutto ciò che riguarda lo smaltimento ed il riciclaggio dei materiali, sarà necessario attenersi alle norme di legge vigenti nel paese di utilizzo.}
      \vspace{1.2em}`
      Si tratta di paragrafi di testo che vengono inseriti nel documento finale, a seconda dei flag selezionati. Nella versione senza leavevmode le immagini finiscono nel margine.

    • #27930
      Up
      0
      Down
      ::

      [quote][quote]Espandi il in {\bfseries …}

      Ciao
      Enrico

      In effetti funziona, ma mi va in conflitto mortale con wrapfig! Se ho un wrapfloat con testo a fianco in grassetto con bfseries, le immagini finiscono sul margine oppure vagano nella pagina senza meta apparente…

      Ti spiacerebbe fare un minimo di esempio REALE di quello che hai fra le mani? O vuoi sempre dare le informazioni un bit alla volta? Prova con
      `\leavevmode{\bfseries …}`
      Ciao
      Enrico[/quote]

      \leavevmode risolve il problema, grazie!
      Non l’ho trovato da nessuna parte, a che serve?

      Comunque, il codice che risulta è questo:
      `\begin{wrapfloat}{figure}{l}{9mm}
      \vspace{-10pt}
      \includegraphics[angle=0,scale=1.0]{Importante}%
      \vspace{-10pt}
      \end{wrapfloat}

      \leavevmode{\bfseries Importante!\newline
      In generale, per tutto ciò che riguarda lo smaltimento ed il riciclaggio dei materiali, sarà necessario attenersi alle norme di legge vigenti nel paese di utilizzo.}
      \vspace{1.2em}`
      Si tratta di paragrafi di testo che vengono inseriti nel documento finale, a seconda dei flag selezionati. Nella versione senza leavevmode le immagini finiscono nel margine.[/quote]
      Sei proprio sicuro di dover usare wrapfig? Che cosa c’è nel tuo file grafico?

      Ciao
      Enrico

    • #27931
      Up
      0
      Down
      ::

      Sei proprio sicuro di dover usare wrapfig? Che cosa c’è nel tuo file grafico?

      I file rappresentano icone che dovrebbero evidenziare il paragrafo.
      Sono tutti eps 9x9mm.
      Un’alternativa a wrapfig sarebbe metterle nel margine (cioè, dovrei rientrare il testo di 1 cm, in modo che le testatine rimangano larghe 18cm, e mettere le ‘icone’ in questo spazio usando l’ambiente picture).
      Altra alternativa sarebbe costruire una tabella con l’immagine in una cella ed il testo nell’altra.
      Non ho ancora trovato il metodo migliore…

      Andrea

    • #27932
      Up
      0
      Down
      ::

      Sei proprio sicuro di dover usare wrapfig? Che cosa c’è nel tuo file grafico?

      I file rappresentano icone che dovrebbero evidenziare il paragrafo.
      Sono tutti eps 9x9mm.
      Un’alternativa a wrapfig sarebbe metterle nel margine (cioè, dovrei rientrare il testo di 1 cm, in modo che le testatine rimangano larghe 18cm, e mettere le ‘icone’ in questo spazio usando l’ambiente picture).
      Altra alternativa sarebbe costruire una tabella con l’immagine in una cella ed il testo nell’altra.
      Non ho ancora trovato il metodo migliore…

      `\hangindent=12mm \hangafter=-2 \noindent
      \llap{\vtop to0pt{
      \kern-3mm\hrule height 0pt
      \hbox{\includegraphics[height=9mm,width=9mm]{Importante}}
      \vss}\kern3mm}%
      {\bfseries Importante!\newline
      In generale, per tutto ciò che riguarda lo smaltimento ed il riciclaggio dei materiali, sarà
      necessario attenersi alle norme di legge vigenti nel paese di utilizzo.}`
      Puoi usare il primo \kern nella \vtop per alzare o abbassare l’immagine a piacimento. Ovviamente ti definirai qualche macro opportuna. 🙂

      Ciao
      Enrico

    • #27933
      Up
      0
      Down
      ::

      [quote]Sei proprio sicuro di dover usare wrapfig? Che cosa c’è nel tuo file grafico?

      I file rappresentano icone che dovrebbero evidenziare il paragrafo.
      Sono tutti eps 9x9mm.
      Un’alternativa a wrapfig sarebbe metterle nel margine (cioè, dovrei rientrare il testo di 1 cm, in modo che le testatine rimangano larghe 18cm, e mettere le ‘icone’ in questo spazio usando l’ambiente picture).
      Altra alternativa sarebbe costruire una tabella con l’immagine in una cella ed il testo nell’altra.
      Non ho ancora trovato il metodo migliore…

      `\hangindent=12mm \hangafter=-2 \noindent
      \llap{\vtop to0pt{
      \kern-3mm\hrule height 0pt
      \hbox{\includegraphics[height=9mm,width=9mm]{Importante}}
      \vss}\kern3mm}%
      {\bfseries Importante!\newline
      In generale, per tutto ciò che riguarda lo smaltimento ed il riciclaggio dei materiali, sarà
      necessario attenersi alle norme di legge vigenti nel paese di utilizzo.}`
      Puoi usare il primo \kern nella \vtop per alzare o abbassare l’immagine a piacimento. Ovviamente ti definirai qualche macro opportuna. 🙂

      Ciao
      Enrico[/quote]

      Ach! Ad una soluzione del genere non ci sarei mai arrivato….
      PS: \leavevmode l’ho trovato solo nella tua “Appunti di programmazione…”.

      Andrea

    • #27934
      Up
      0
      Down
      ::

      Ach! Ad una soluzione del genere non ci sarei mai arrivato….
      PS: \leavevmode l’ho trovato solo nella tua “Appunti di programmazione…”.

      È essenzialmente quella che usa Knuth per le parti con la “curva pericolosa”. 🙂 Devi aspettarti di aver bisogno cose un po’ più complesse, se devi fare cose complicate. Questa non lo era tantissimo, ma di certo wrapfig non era una soluzione: va bene per inserire grafica che non è ancorata a un punto preciso, come invece è la tua.

      Capisci adesso perché insisto sul chiederti esempi e intenzioni?

      \leavevmode è un trucco del mestiere, non va divulgato troppo. 😀

      Ciao
      Enrico

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

Go to top