due (semplici) domande sull’ambiente theorem

  • Creatore
    Topic
  • #13955
    Up
    0
    Down
    ::


    Salve a tutti. Di recente mi è stato commissionato un regolamento calcistico da trascrivere con LaTeX. La mia scelta (anche perchè non conoscevo altri mezzi) è stata di scrivere ogni articolo nell’ambiente theorem (o meglio in un ambiente theorem risistemato) in modo che, capitolo per capitolo, mi mantenesse la numerazione automatica degli articoli. Ora mi trovo davanti a due problemi:
    1- l’ambiente da me definito (grazie all’aiuto di un testo di un amico) è questo:
    `
    \newtheoremstyle{nome}% name
    {3pt}% Space above
    {8pt}% Space below
    {}% Body font
    {}% Indent amount (empty = no indent, \parindent = para indent)
    {\bf}% Thm head font
    {.}% Punctuation after thm head
    {.5em}% Space after thm head: ” ” = normal interword space;
    % \newline = linebreak
    {}% Thm head spec (can be left empty meaning `normal')
    \theoremstyle{nome}
    \newtheorem{nome}{Articolo}[chapter]`
    Il mio problema è con questa linea ` % \newline = linebreak` in quanto, guarda caso, a me servirebbe proprio che, dopo “Articolo X.YY” il testo vada a capo. Il problema è che inserendo il comando `\newline` non mi appare proprio l’intestazione “Articolo X.YY” ma solo degli spazi.
    2- questo è un po’ + strano e difficile: mi è stato esplicitamente chiesto che il testo degli articoli non venga a trovarsi a cavallo tra due pagine: mi chiedevo se ci fosse un modo, un comando, un qualcosa di automatico (o semi-automatico) per fare ciò: altrimenti capirete la frustrazione nel dover spulciare pagina per pagina gli articoli e inserire, solo dove serve, l’interruzione di pagina.
    Grazie 1000 a chi sa rispondermi. ciao

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

      Salve a tutti. Di recente mi è stato commissionato un regolamento calcistico da trascrivere con LaTeX. La mia scelta (anche perchè non conoscevo altri mezzi) è stata di scrivere ogni articolo nell’ambiente theorem (o meglio in un ambiente theorem risistemato) in modo che, capitolo per capitolo, mi mantenesse la numerazione automatica degli articoli. Ora mi trovo davanti a due problemi:
      1- l’ambiente da me definito (grazie all’aiuto di un testo di un amico) è questo:
      `\newtheoremstyle{nome}% name
      {3pt}% Space above
      {8pt}% Space below
      {}% Body font
      {}% Indent amount (empty = no indent, \parindent = para indent)
      {\bf}% Thm head font
      {.}% Punctuation after thm head
      {.5em}% Space after thm head: ” ” = normal interword space;
      % \newline = linebreak
      {}% Thm head spec (can be left empty meaning `normal')
      \theoremstyle{nome}
      \newtheorem{nome}{Articolo}[chapter]`
      Il mio problema è con questa linea ` % \newline = linebreak` in quanto, guarda caso, a me servirebbe proprio che, dopo “Articolo X.YY” il testo vada a capo. Il problema è che inserendo il comando `\newline` non mi appare proprio l’intestazione “Articolo X.YY” ma solo degli spazi.
      2- questo è un po’ + strano e difficile: mi è stato esplicitamente chiesto che il testo degli articoli non venga a trovarsi a cavallo tra due pagine: mi chiedevo se ci fosse un modo, un comando, un qualcosa di automatico (o semi-automatico) per fare ciò: altrimenti capirete la frustrazione nel dover spulciare pagina per pagina gli articoli e inserire, solo dove serve, l’interruzione di pagina.

      Devi mettere \newline al posto di quel .5em:
      `\newtheoremstyle{nome}% name
      {3pt}% Space above
      {8pt}% Space below
      {}% Body font
      {}% Indent amount (empty = no indent, \parindent = para indent)
      {\bfseries}% Thm head font
      {.}% Punctuation after thm head
      {\newline}% Space after thm head: ” ” = normal interword space;
      {}% Thm head spec (can be left empty meaning `normal')
      \theoremstyle{nome}
      \newtheorem{nome}{Articolo}[chapter]`
      Ho corretto anche \bf in \bfseries; il comando \bf è obsoleto e mantenuto solo per compatibilità. Toglierei il punto dopo il numero, lasciando vuoto il campo indicato con “punctuation after thm head”.

      Quanto al secondo problema, dovresti intanto dare \raggedbottom, in modo da evitare l’ampliamento dello spazio fra un articolo e l’altro per riempire la pagina. Un modo potrebbe essere:
      `\newenvironment{articolo}
      {\interlinepenalty=10000 \begin{nome}}
      {\end{nome}}`
      e scrivere \begin{articolo}…\end{articolo} per i tuoi articoli. Prova, vediamo se funziona.

      Ciao
      Enrico

    • #13957
      Up
      0
      Down
      ::


      che dire? grazie 1000!!! funziona tutto benissimo! L’unica cosa che mi può dividere l’articolo su due pagine sono gli elenchi che alcuni articoli hanno. Però, in quel caso, la cosa va generalmente bene, altrimenti perderei alcune pagine inutilmente a causa di elenchi lunghissimi. C’è solo un articolo dove questa cosa dà un po’ fastidio, ma neanche troppo.
      Grazie ancora, anche per le dritte 😀
      ciao a tutti

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

Go to top