[Risolto]Riferimenti automatici inizio-fine di un ambiente

  • Creatore
    Topic
  • #84326
    Up
    0
    Down
    ::


    [ok, l’oggetto non è chiarissimo…scusate]

    Buongiorno a tuttti,
    sono di nuovo qui per la rivista che sto contribuendo a fondare.

    Ogni saggio della rivista avrà le seguenti sezioni:
    1-titolo (con l’indicazione dell’autori/degli autori e la sua/loro afferenza)
    2-abstract su due colonne (italiano e inglese)
    3-parole chiave
    4-testo del saggio
    5-riferimenti bibliografici
    6-‘notizie dell’autore/degli autori’
    7-‘come citare questo articolo’
    8-informativa sul copyright

    Credo di avere la soluzione per i punti 1-6 e 8, anche grazie ai suggerimenti raccolti sul forum.
    Scrivo per il punto7.

    Al momento lo scheletro della rivista, semplificato, è il seguente:

    `
    % !TEX encoding = UTF-8
    % !TEX program = xelatex
    \documentclass[notitlepage,11pt,a4paper]{book}
    \usepackage[T1]{fontenc}
    \usepackage{fontspec}
    \usepackage{polyglossia}
    \setmainlanguage{italian}
    \setmainfont[Ligatures=TeX,Numbers=OldStyle]{EB Garamond}
    \usepackage{lipsum,hyperref}
    \usepackage[backend=biber,style=philosophy-verbose,indexing,backref]{biblatex}
    \usepackage[babel,italian=guillemets]{csquotes}
    \addbibresource{bibliografia.bib}

    \makeatletter
    \newenvironment{contributo}
    {\def\contrib@author{??}
    \def\contrib@title{??}
    \setcounter{footnote}{0} \setcounter{section}{0}
    \begin{refsection}}
    {\end{refsection}\cleardoublepage}

    \newcommand{\autore}[1]{\def\contrib@author{#1}}
    \newcommand{\istituzione}[1]{\def\contrib@uni{#1}}
    \newcommand{\titolo}[2][]{%
    \def\contrib@title{#2}
    \ifstrempty{#1}{\def\contribshort@title{#2}}{\def\contribshort@title{#1}}}

    \def\stampatitolo{\thispagestyle{plain}%
    \vbox to 4pc{\vspace*{0.1pc}\parindent=\z@
    {\linespread{0.73}\center\LARGE\scshape\MakeLowercase\contrib@title\par}%
    {\center{\scshape\contrib@author\ }–{ \itshape\contrib@uni\par}\vfill}}}

    \newcommand{\citasaggio}[1]{{\scshape\contrib@author}, {\itshape\contrib@title}, in <>, I (2013), pp.~#1 (reperibile all'indirizzo \href{www.prova.org}{www.prova.org}).}
    \makeatother

    \begin{document}

    \begin{contributo}
    \titolo{Il titolo del secondo intervento. Con un sottotitolo}
    \autore{Guglielmo Gorni}
    \istituzione{Università di Roma}
    \stampatitolo
    \lipsum[1]
    \section*{come citare questo articolo}
    \citasaggio{5-7}
    \end{contributo}

    \end{document}
    `

    In altre parole ho creato il comando \citasaggio con un unico argomento: l’indicazione della pagine del saggio medesimo. Questo fatto, però, obbliga a inserire manualmente tale indicazione dopo aver compilato il documento, con il rischio di commettere errori, di dimenticarsi di valorizzare il campo etc.
    Sarebbe possibile modificare il comando per ottenere l’indicazione automatica degli estremi di pagina del saggio (vale a dire gli estremi dell’ambiente contributo)?
    Io proprio non saprei come fare…basta anche un suggerimento!

    Grazie in anticipo.
    A presto,
    Matteo

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

      teomat” post=83640[ok, l’oggetto non è chiarissimo…scusate]

      Buongiorno a tuttti,
      sono di nuovo qui per la rivista che sto contribuendo a fondare.

      Ogni saggio della rivista avrà le seguenti sezioni:
      1-titolo (con l’indicazione dell’autori/degli autori e la sua/loro afferenza)
      2-abstract su due colonne (italiano e inglese)
      3-parole chiave
      4-testo del saggio
      5-riferimenti bibliografici
      6-‘notizie dell’autore/degli autori’
      7-‘come citare questo articolo’
      8-informativa sul copyright

      Credo di avere la soluzione per i punti 1-6 e 8, anche grazie ai suggerimenti raccolti sul forum.
      Scrivo per il punto7.

      Al momento lo scheletro della rivista, semplificato, è il seguente:

      `
      % !TEX encoding = UTF-8
      % !TEX program = xelatex
      \documentclass[notitlepage,11pt,a4paper]{book}
      \usepackage[T1]{fontenc}
      \usepackage{fontspec}
      \usepackage{polyglossia}
      \setmainlanguage{italian}
      \setmainfont[Ligatures=TeX,Numbers=OldStyle]{EB Garamond}
      \usepackage{lipsum,hyperref}
      \usepackage[backend=biber,style=philosophy-verbose,indexing,backref]{biblatex}
      \usepackage[babel,italian=guillemets]{csquotes}
      \addbibresource{bibliografia.bib}

      \makeatletter
      \newenvironment{contributo}
      {\def\contrib@author{??}
      \def\contrib@title{??}
      \setcounter{footnote}{0} \setcounter{section}{0}
      \begin{refsection}}
      {\end{refsection}\cleardoublepage}

      \newcommand{\autore}[1]{\def\contrib@author{#1}}
      \newcommand{\istituzione}[1]{\def\contrib@uni{#1}}
      \newcommand{\titolo}[2][]{%
      \def\contrib@title{#2}
      \ifstrempty{#1}{\def\contribshort@title{#2}}{\def\contribshort@title{#1}}}

      \def\stampatitolo{\thispagestyle{plain}%
      \vbox to 4pc{\vspace*{0.1pc}\parindent=\z@
      {\linespread{0.73}\center\LARGE\scshape\MakeLowercase\contrib@title\par}%
      {\center{\scshape\contrib@author\ }–{ \itshape\contrib@uni\par}\vfill}}}

      \newcommand{\citasaggio}[1]{{\scshape\contrib@author}, {\itshape\contrib@title}, in <>, I (2013), pp.~#1 (reperibile all'indirizzo \href{www.prova.org}{www.prova.org}).}
      \makeatother

      \begin{document}

      \begin{contributo}
      \titolo{Il titolo del secondo intervento. Con un sottotitolo}
      \autore{Guglielmo Gorni}
      \istituzione{Università di Roma}
      \stampatitolo
      \lipsum[1]
      \section*{come citare questo articolo}
      \citasaggio{5-7}
      \end{contributo}

      \end{document}
      `

      In altre parole ho creato il comando \citasaggio con un unico argomento: l’indicazione della pagine del saggio medesimo. Questo fatto, però, obbliga a inserire manualmente tale indicazione dopo aver compilato il documento, con il rischio di commettere errori, di dimenticarsi di valorizzare il campo etc.
      Sarebbe possibile modificare il comando per ottenere l’indicazione automatica degli estremi di pagina del saggio (vale a dire gli estremi dell’ambiente contributo)?
      Io proprio non saprei come fare…basta anche un suggerimento!

      Grazie in anticipo.
      A presto,
      Matteo

      Ti suggerirei di dare a [tt]contributo[/tt] un argomento “simbolico”: [tt]\begin{contributo}{gorni2013}[/tt]. All’inizio del saggio emetterai [tt]\label{gorni2013-start}[/tt] e alla fine [tt]\label{gorni2013-end}[/tt] e potrai usare in [tt]\citasaggio[/tt] (senza argomenti), [tt]\pageref{gorni2013-start}–\pageref{gorni2013-end}[/tt].

      Nella parte “inizio” della definizione di [tt]contributo[/tt] dirai anche [tt]\def\contrib@label{#1}[/tt] e potrai usare
      `\label{\contrib@label-start}`
      come parte di [tt]\stampatitolo[/tt]. Analogamente per la parte “fine”.

      Ciao
      Enrico

    • #84328
      Up
      0
      Down
      ::

      egreg9″ post=83641
      Ti suggerirei di dare a [tt]contributo[/tt] un argomento “simbolico”: [tt]\begin{contributo}{gorni2013}[/tt]. All’inizio del saggio emetterai [tt]\label{gorni2013-start}[/tt] e alla fine [tt]\label{gorni2013-end}[/tt] e potrai usare in [tt]\citasaggio[/tt] (senza argomenti), [tt]\pageref{gorni2013-start}–\pageref{gorni2013-end}[/tt].

      Nella parte “inizio” della definizione di [tt]contributo[/tt] dirai anche [tt]\def\contrib@label{#1}[/tt] e potrai usare
      `\label{\contrib@label-start}`
      come parte di [tt]\stampatitolo[/tt]. Analogamente per la parte “fine”.

      Ciao
      Enrico

      Temo di non aver capito: mi stai suggerendo una o due soluzioni?
      Certo, potrei inserire all’inizio di ogni saggio una etichetta del tipo \label{chiave-start} e alla fine \label{chiave-end} e poi citare con \citasaggio, \pageref{chiave-start}–\pageref{chiave-end}; però mi piacerebbe poter avere un automatismo.
      In particolare temo di non aver capito bene cosa intendi nella seconda parte della tua risposta.

      Grazie ancora.
      Matteo

    • #84329
      Up
      0
      Down
      ::

      teomat” post=83642Temo di non aver capito: mi stai suggerendo una o due soluzioni?
      Certo, potrei inserire all’inizio di ogni saggio una etichetta del tipo \label{chiave-start} e alla fine \label{chiave-end} e poi citare con \citasaggio, \pageref{chiave-start}–\pageref{chiave-end}; però mi piacerebbe poter avere un automatismo.
      In particolare temo di non aver capito bene cosa intendi nella seconda parte della tua risposta.

      Era uno schema di soluzione. Assegnare un’etichetta simbolica a ciascun contributo può essere molto utile in varie situazioni.

      Ciao
      Enrico

    • #84330
      Up
      0
      Down
      ::


      Ho fatto un po’ di prove e credo di aver capito il tuo suggerimento.

      Questo codice funziona alla perfezione:

      `
      % !TEX encoding = UTF-8
      % !TEX program = xelatex
      \documentclass[notitlepage,11pt,a4paper]{book}
      \usepackage[T1]{fontenc}
      \usepackage{fontspec}
      \usepackage{polyglossia}
      \setmainlanguage{italian}
      \setmainfont[Ligatures=TeX,Numbers=OldStyle]{EB Garamond}
      \usepackage{lipsum,hyperref}
      \usepackage[backend=biber,style=philosophy-verbose,indexing,backref]{biblatex}
      \usepackage[babel,italian=guillemets]{csquotes}
      \addbibresource{bibliografia.bib}

      \makeatletter
      \newenvironment{contributo}[1]
      {\def\contrib@author{??}
      \def\contrib@title{??}
      \setcounter{footnote}{0} \setcounter{section}{0}
      \begin{refsection}\def\contrib@label{#1}\label{\contrib@label-start}} %%MODIFICATO
      {\label{\contrib@label-end}\end{refsection}\cleardoublepage}%%MODIFICATO

      \newcommand{\autore}[1]{\def\contrib@author{#1}}

      \newcommand{\istituzione}[1]{\def\contrib@uni{#1}}
      \newcommand{\titolo}[2][]{%
      \def\contrib@title{#2}
      \ifstrempty{#1}{\def\contribshort@title{#2}}{\def\contribshort@title{#1}}}

      \def\stampatitolo{\thispagestyle{plain}%
      \vbox to 4pc{\vspace*{0.1pc}\parindent=\z@
      {\linespread{0.73}\center\LARGE\scshape\MakeLowercase\contrib@title\par}%
      {\center{\scshape\contrib@author\ }–{ \itshape\contrib@uni\par}\vfill}}}

      \newcommand{\citasaggio}{{\scshape\contrib@author}, {\itshape\contrib@title}, in <>, I (2013), pp.~\pageref{\contrib@label-start}–\pageref{\contrib@label-end}(reperibile all'indirizzo \href{www.prova.org}{www.prova.org}).}%%MODIFICATO
      \makeatother

      \begin{document}

      \begin{contributo}{a}
      \titolo{Il titolo del secondo intervento. Con un sottotitolo}
      \autore{Guglielmo Gorni}
      \istituzione{Università di Roma}
      \stampatitolo
      \lipsum[1-15]
      \section*{come citare questo articolo}
      \citasaggio
      \end{contributo}

      \end{document}`

      Grazie mille!
      A presto,
      Matteo

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

Go to top