Ridefinire le varianti asterisco delle sezioni in amsproc

  • Creatore
    Topic
  • #119261
    Up
    0
    Down
    ::


    Ciao. Sto cercando di imitare nei mie appunti in LaTeX lo stile di certi vecchi testi di area scientifica. Uso amsproc e utilizzo LaTeX essenzialmente per scrivere note a discreto contenuto matematico.

    Finora, ho ridefinito i comandi \(sub)section e \paragraph così:
    `
    \makeatletter

    \renewcommand\section{\@startsection{section}
    {1}
    {\normalparindent}
    {.7\linespacing\@plus\linespacing}
    {.1\linespacing}
    {\Large\bfseries}
    }

    \renewcommand\subsection{\@startsection{subsection}
    {2}
    {\normalparindent}
    {.5\linespacing\@plus.7\linespacing}
    {-.5em}
    {\large\scshape}
    }

    \renewcommand\subsubsection{\@startsection{subsubsection}
    {3}
    {\z@} % non indentato
    {.3\linespacing\@plus.7\linespacing} % più spazio tra una sezione e l'altra
    {-.5em}
    {\normalfont\scshape}
    }

    \renewcommand\paragraph{\@startsection{paragraph}
    {4}
    {\normalparindent}
    {\z@}
    {-\fontdimen2\font}
    {\normalfont\itshape}
    }

    \makeatother
    `
    Inoltre, ho modificato lo stile dei teoremi:
    `
    \newcommand\namefont{\normalfont\scshape}
    \newcommand\numberfont{\normalfont\bfseries}
    \newcommand\notefont{\normalfont\scshape}

    \makeatletter

    \newtheoremstyle{theo}%
    {.3\linespacing\@plus.7\linespacing}
    {-.5em}
    {}
    {\z@}
    {}
    {.}
    {.5em}
    {{\numberfont\thmnumber{#2.}}~{\namefont\thmname{#1}}~\notefont{\thmnote{(#3)}}}

    \newtheoremstyle{defn}%
    {.3\linespacing\@plus.7\linespacing}
    {-.5em}
    {}
    {\z@}
    {}
    {.}
    {.5em}
    {{\numberfont\thmnumber{#2.}}~{\namefont\thmname{#1}}~\notefont{\thmnote{(#3)}}}

    \newtheoremstyle{remrk}%
    {.3\linespacing\@plus.7\linespacing}
    {-.5em}
    {}
    {\z@}
    {}
    {.}
    {.5em}
    {{\numberfont\thmnumber{#2.}}~{\namefont\thmname{#1}}~\notefont{\thmnote{(#3)}}}

    \makeatother
    `

    Il risultato mi sembra davvero soddisfacente, ma ci sono alcuni problemi. Il primo che mi viene in mente, e che non sono riuscito a risolvere, è questo: i comandi \(sub)section* e \paragraph* parsano la stellina come argomento, producendo un risultato sgradevole. Ciò significa che i pacchetti come bibtex che a loro si appoggiano per stampare l’indice bibliografico “non funzionano”.

    Spero di riuscire a risolvere in qualche modo. 😀

    P.s. Non sono stato in grado di evidenziare in monospaziato in comandi in testo, come \section. C’è un modo di farlo, su questo forum?

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #119262
      Up
      0
      Down
      ::


      Prova ad aggiungere un [tt]%[/tt] subito dopo [tt]{\Large\bfseries}[/tt], così:
      `{\Large\bfseries}%`
      (non devono esserci spazi fra la graffa di chiusura e l’asterisco)… 😉

      Più in generale, io evito sempre di memorizzare spazi inutili nelle macro, anche quando non sono dannosi:
      `
      \documentclass[a4paper]{amsproc}
      \usepackage[T1]{fontenc}
      \usepackage[italian]{babel}

      \makeatletter

      % \show\section

      \renewcommand*\section{%
      \@startsection{section}%
      {1}%
      {\normalparindent}%
      {.7\linespacing\@plus\linespacing}%
      {.1\linespacing}%
      {\Large\bfseries}%
      }

      % \show\section

      % \renewcommand\subsection{\@startsection{subsection}
      % {2}
      % {\normalparindent}
      % {.5\linespacing\@plus.7\linespacing}
      % {-.5em}
      % {\large\scshape}
      % }
      %
      % \renewcommand\subsubsection{\@startsection{subsubsection}
      % {3}
      % {\z@} % non indentato
      % {.3\linespacing\@plus.7\linespacing} % più spazio tra una sezione e l'altra
      % {-.5em}
      % {\normalfont\scshape}
      % }
      %
      % \renewcommand\paragraph{\@startsection{paragraph}
      % {4}
      % {\normalparindent}
      % {\z@}
      % {-\fontdimen2\font}
      % {\normalfont\itshape}
      % }

      \makeatother

      \begin{document}

      \tableofcontents

      \section{Un paragrafo numerato}
      Il titolo di questo paragrafo comparir\`{a} nell'indice.

      \section*{Un paragrafo \emph{non} numerato}
      Nella classe \textsf{amsproc}, anche i titoli delle unit\`{a} di
      sezionamento non numerate vengono inclusi automaticamente nell'indice:
      \emph{non} \`{e} necessario inserire manualmente il comando
      \verb|\addcontentsline|.

      \end{document}
      `
      Questo perché provengo da un’epoca nella quale lo spazio in memoria era ancora prezioso.

      La spiegazione del perché questo avvenga è una storia un po’ lunga… Essenzialmente, i pacchetti e le classi dell’AMS impongono che l’asterisco segua immediatamente il comando a cui si riferisce, senza spazi in mezzo. Ciò viene fatto per ottime ragioni, che adesso non ho il tempo di spiegare. Si veda la definizione di [tt]\new@ifnextchar[/tt] nel pacchetto amsgen, dopo aver dato da terminale il comando
      `texdoc amsgen`

      Ciao.


      Gustavo

    • #119263
      Up
      0
      Down
      ::


      Ciao. Grazie mille per l’aiuto: funziona!

      Già che ci sono, faccio un altro paio di domande.

      Come si può vedere, ho essenzialmente copincollato gli argomenti dati a \@startsection{\(sub)section} come compaiono qui dentro \newtheoremstyle; ovviamente non ho la minima idea riguardo il significato esatto di .7\linespacing\@plus\linespacing, o degli altri. Siccome c’è una @ (e siccome non saprei in che modo toglierla e ottenere un risultato equivalente), ho aggiunto \makeatletter e \makeatother prima e dopo \newtheoremstyle 😀 Questo si può fare? È pericoloso?

      Poi, se aggiungo una \subsubsection{} (cioè, una sottosottosezione senza titolo), lo spazio tra il numero che le corrisponde e il testo normale è leggermente maggiore rispetto a quello che ci sarebbe tra il testo e un eventuale titolo. È normale? o è tipograficamente “brutto”?

    • #119264
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Secondo me è tipograficamente brutto comporre una sotto sottosezione, o qualunque sezionamento, omettendo il titolo; che senso ha di avere solo il numero senza sapere di che cosa tratta quel sezionamento?

      • #119265
        Up
        0
        Down
        ::


        Scusatemi, mi ero perso la risposta!

        Diciamo che il progetto originale era, come dico su, imitare il design di alcuni libri di matematica piuttosto vecchi, nei quali la trattazione è divisa in “punti”. In realtà a me piace come idea: un libro (o una dispensa, ecc.) di matematica è qualcosa di diverso da un romanzo, può far comodo segnare graficamente (e magari numerare) le nozioni mano a mano presentate.

        Comunque, non sono ancora riuscito a ottenere dei risultati ottimali (per colpa della mia ignoranza, ovviamente 😀 ). La soluzione migliore mi sembrava quella di 1) spostare a sinistra del nome la numerazione dei teoremi, in modo da farla graficamente coincidere con quella delle sezioni; 2) far condividere ai teoremi lo stesso contatore delle ([sotto]sotto)sezioni. Il problema con questo approccio però è che il testo inserito immediatamente dopo un teorema è testo che logicamente appartiene alla sottosottosezione che il teorema istanzia, ma la cosa non ha senso (e in più i vari \cref e \vfer smattano).

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

    Go to top