- Questo topic ha 17 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 10 mesi fa da
samiel.
-
CreatoreTopic
-
1 Novembre 2018 alle 0:13 #114369::
Vorrei familiarizzare con etolboox, con cui si riescono a fare cose notevoli.
Ora, partiamo da un esempio:
`\documentclass[a4paper,twoside,12pt]{report}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\PolyglossiaSetup{italian}{indentfirst=false}\usepackage{titlesec,titletoc}
\usepackage{etoolbox}\titleformat{\chapter}[display]
{\normalfont\fontsize{11pt}{12pt}\selectfont}{\thechapter}{0pt}{}\newcommand{\tocformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\filleft\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\newcommand{\bibliographyformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\itshape\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\begin{document}
\tocformat
\tableofcontents\chapter{Titolo}
\end{document}`
Ora, io vorrei “automatizzare” la macro per i capitoli “numberless”
in modo da poterli differenziare, ad es mettendo a destra in grande il titolo dell’indice
e a sinistra in corsivo quello della bibliografia.
La teoria suggerisce di modificare i comandi di base mediante \pretocmd di etoolbox,
nel caso specifico \tableofcontents (e il titolo della bibliografia).
Ho visto che la sintassi è indicata nel manuale semplicemente come
`\pretocmd{}{ }{}{ }`
e credo che a me gli ultimi due compi non interessino.
Ho aperto report.sty, ma non capisco su quale parte del codice
devo intervenire con la patch. In questo modo potrei scrivere solo
i comandi di sezionamento quale appunto \tableofcontent,
senza premettere il comando \tocformat, che peraltro vale
fino a una diversa dichiarazione.
grazie
m
-
CreatoreTopic
-
AutoreRisposte
-
-
1 Novembre 2018 alle 8:34 #114370::
Abbi pazienza, sicuramente sono io che sono “tardo”, ma non riesco a capire bene in cosa consista il vero problema. Cosa c’è che non va nell’usare semplicemente
`
\preto\tableofcontents{\tocformat}
`Esempio compilabile:
`
% !TEX TS-program = XeLaTeX
\documentclass[a4paper,twoside,12pt]{report}
\usepackage{fontspec}
% \setmainfont{EB Garamond}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\PolyglossiaSetup{italian}{indentfirst=false}\usepackage{titlesec,titletoc}
\usepackage{etoolbox}\titleformat{\chapter}[display]
{\normalfont\fontsize{11pt}{12pt}\selectfont}{\thechapter}{0pt}{}\newcommand{\tocformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\filleft\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\newcommand{\bibliographyformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\itshape\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\preto\tableofcontents{\tocformat}
\begin{document}
% \tocformat
\tableofcontents\chapter{Titolo}
\end{document}
`Un’ultima cosa: quando parli del file [tt]report.sty[/tt], ovviamente intendi [tt]report.cls[/tt], non è vero?
Ciao.
—
Gustavo
-
1 Novembre 2018 alle 13:58 #114371::
1. sì scusa, ovviamente miriferisco a report.cls2. hai capito perfettamente. sono io che in questo caso non avevo capito
e pensavo si dovessero modificare linee specifiche di codice3. per quanto riguarda \tableofcontens tutto fila liscio.
ho invece un problema con la bibliografia, che però nella classe report è cmq un \chapter*
questo codice:
`\begin{filecontents*}{\jobname.bib}
@book{ bottero:1992,
author = “Bottero, Jean and Kramer, Samuel N.”,
title = “Uomini e dèi della Mesopotamia”,
publisher = “Einaudi”,
location = “Torino”,
year = “1992”,
}
\end{filecontents*}\documentclass[a4paper,twoside,12pt]{report}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\PolyglossiaSetup{italian}{indentfirst=false}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{emptypage}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\setlength{\headheight}{14.49998pt}
\renewcommand{\chaptermark}[1]{\markboth{#1}{#1}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[LO]{\footnotesize\scshape\MakeLowercase{\rightmark}}
\fancyhead[RE]{\footnotesize\scshape\MakeLowercase{\leftmark}}
\fancyhead[LE,RO]{\thepage}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% TABLE OF CONTENTS SETTINGS
\usepackage{titlesec,titletoc}\makeatletter
\contentsmargin[-1.55em]{1.55em}
\titlecontents{chapter}
[3em]
{\vspace*{\baselineskip}\mdseries}
{\contentslabel[\hfill\thecontentslabel\phantom{.}]{3em}\enspace}
{}
{\hfill\llap{\makebox[\dimexpr\linewidth-1.3pc][l]{\thecontentspage}}}
[]\renewcommand{\thechapter}{\scshape\roman{chapter}}
\titleformat{\chapter}[display]
{\normalfont\fontsize{11pt}{12pt}\selectfont}{\thechapter}{0pt}{}\titlespacing{\chapter}{0pt}{0pt}{3cm}
\newcommand{\tocformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\filleft\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}
\preto\tableofcontents{\tocformat}\newcommand{\bibliographyformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\itshape\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}
\preto\printbibliography{\bibliographyformat}\usepackage[backend=biber,style=philosophy-verbose,scauthors=all,%
lowscauthors=true,giveninits,classical=true,volnumformat=strings,%
volumeformat=romansc,sorting=nyt,commacit=true,citepages=omit,%
editionformat=superscript,indexing]%
{biblatex}\usepackage{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}\DeclareBibliographyCategory{fonti}
\addtocategory{fonti}{bottero:1992}
\defbibheading{fonti}{\section*{Fonti}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\tableofcontents
\chapter{Brevissima storia della retorica}
\chapter{Conclusioni}
%\bibliographyformat
%\chapter*{\bibname}
%\addcontentsline{toc}{chapter}{\bibname}
%\markboth{\scshape bibliografia}{\scshape bibliografia}
\printbibliography[heading=fonti,category=fonti]\end{document}
`
mi produce:
`! LaTeX Error: Command \printbibliography already defined.
Or name \end… illegal, see p.192 of the manual.l.8166 {\blx@printbibliography[]}}
?`
e non capisco dove ho definito 2 volte \printbibliographym
PS
una banalità: dove trovo il modo di stampare testo in tt,
come hai fatto tu per i nomi dei file?
-
1 Novembre 2018 alle 16:21 #114372::
1) per scrivere in tt i nomi dei file devi racchiuderli fra i tag “tt” e “/tt” chiusi fra quadre e senza i doppi apici; qui non te li posso scrivere perché verrebbero interpretati; forse ti appaiono in questa riga di esempio[code] [tt]report.cls[/tt]/code].2) per il problema di usare i comadi di etoolbox leggi con attenzione la sua documentazione, e non confonderti nell’uso di [tt]\pretocmd[/tt] e [tt]\preto[/tt].
etoolbox mette a disposizione vari comandi che richiedono quei cinqu argomenti; gli ultimi due puoi lasciali vuoi ma sono obbligatori. Il primo è il comando da modficare, il seocndo la stringa da sostituire, il terzo la stinga sostitutiva, e gli ultimi due servono per aggiungere informazioni a seconda che la sostituzione abbia avuto successo oppure no; potrebbero servire per emettere dei messaggi d’errore o per dare conferma nel file log il messaggio di riuscita dell’operazione. È chiaro che non sono necessari, ma sono utili; se li lasci vuoti il comando di modifica non fa niente.[tt\\pretocmd[/tt] richiede solo quattro argomenti perché non richiede la stringa da sostituire e PREmette il suo secondo argomento alla definizione del comando specificato come primo argomento; [tt]\addtocmd[/tt] aggiunge in coda al comando da modificare il secodno argomento; è l’equivalente di \addto di LaTeX, arricchito con gli ultimo due comadi per eseguire qualcosa ne caso che l’aggiunta sia stata eseguita oppure che l’aggiunta non abbia avuto successo; [tt]\patchcmd[/tt] è quello che richiede la stringa da sostituire, quindi vuole 5 argomenti.
Io ho la sensazione che se usi \pretocmd aggiungi la definizione \bibliographyformat alla definizione di \printbibliography e quindi la precedente definizione rimane nel testo sostituitvo del comando modificato; Come saperlo: prima di eseguire il comando inserisci nel file sorgente l’istruzione [tt]\show\printbibliography[/tt] e poi ripeti la stessa istruzione dopo aver usato [tt]\pretocmd[/tt] in modo da poter verificare che in effetti è successo quanto ti ho descritto. Potrei farlo io, ma ti dico come fare così, facendolo, impari questi metodi di diagnosi.
Io penso che invece tu dovresti cercare la definizione originale di [tt]\printbibliography[/tt che, avendo usato il comando [tt]\show[/tt], puoi copiare direttamente dal file .log e poi usare il comando [tt]\patchcmd[/tt] per sostituire solo il comando \chapter* che probabilmente trovi nella definizione di [tt]\printbilliography[/tt]; oppure troverai dentro la definizione originale un comando [tt]\addtocontentsline{…}{…}{…}[/tt] e dovrai sostituirne il terzo argomento.
Modificare i comandi esistenti con i comandi di etoolbox richiede non poca esperienza, ma questa te la fai non solo leggendo con attenzione la documentazione ma anche provando a fare, e imparando a disgnosticare quello che non va in quello che hai fatto. Ci vuole pazienza ed esercizio.
Il vantaggio di usare i tre comandi che ti ho detto oltre agli altri di quella sezione della documentazione, è che non devi ridefinire i comandi usando \renewcommand, o simili, nel preambolo del tuo documento, perché spesso hai a che fare con definizioni che contengono macro protette con il segno @ che all’interno del nucleo di LaTeX è una lettera e non un segno analfabetico.come succede quandonoi utenti usiamo LaTeX.
-
1 Novembre 2018 alle 17:01 #114373::
ho provato a inserire la stringa nel testo ancora privo di modifiche
(senza insomma cercare di cambiare le cose con etolboox), in questo modo:
`\show\printbibliography
\printbibliography[heading=fonti,category=fonti]`
ma la compilazione fallisce:
`> \printbibliography=\protected macro:
->\begingroup \delimcontext {bib}\edef \on@line {\on@line }\@ifnextchar [{\blx@
printbibliography } {\blx@printbibliography []}.
l.105 \show\printbibliography
? `
-
1 Novembre 2018 alle 17:06 #114374::
ho provato a inserire la stringa nel testo ancora privo di modifiche
(senza insomma cercare di cambiare le cose con etolboox), in questo modo:
`\show\printbibliography[heading=fonti,category=fonti]`
ma la compilazione fallisce:
`> \printbibliography=\protected macro:
->\begingroup \delimcontext {bib}\edef \on@line {\on@line }\@ifnextchar [{\blx@
printbibliography } {\blx@printbibliography []}.
l.105 \show\printbibliography
? `
-
1 Novembre 2018 alle 21:17 #114375
-
1 Novembre 2018 alle 23:05 #114376::
Non fallisce; si ferma per dar tempo di leggere; poi se premi Enter prosegue fino allo show successivo.
caspita, mi sento proprio sveglio 🙁
cmq sto facendo delle prove in sequenza modificando gradualmente il codice
perché se cambio tutto in un colpo solo poi non capisco più cosa produce coseora, iniziando da qui
`\begin{filecontents*}{\jobname.bib}
@book{ bottero:1992,
author = “Bottero, Jean and Kramer, Samuel N.”,
title = “Uomini e dèi della Mesopotamia”,
publisher = “Einaudi”,
location = “Torino”,
year = “1992”,
}
\end{filecontents*}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,twoside,12pt]{report}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\PolyglossiaSetup{italian}{indentfirst=false}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{titlesec,titletoc}
\usepackage{etoolbox}\titleformat{\chapter}[display]
{\normalfont\fontsize{11pt}{12pt}\selectfont}{\thechapter}{0pt}{}\newcommand{\tocformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\filleft\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\newcommand{\bibliographyformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\itshape\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\pretocmd\tableofcontents{\tocformat}{}{}
\pretocmd\printbibliography{\bibliographyformat}{}{}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[backend=biber,style=philosophy-verbose,scauthors=all,%
lowscauthors=true,giveninits,classical=true,volnumformat=strings,%
volumeformat=romansc,sorting=nyt,commacit=true,citepages=omit,%
editionformat=superscript,indexing]%
{biblatex}\usepackage{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\tableofcontents
\chapter{Titolo}
\printbibliography
\end{document}`
noto che
1. [tt]\titleofcontents[/tt] prende correttamente la formattazione del comando
2. [tt]\printbibliography[/tt] invece no e anzi eredita quella di [tt]\titleofcontents[/tt]
3. se invece rinuncio a ricorrere a [tt]\pretocmd[/tt] e colloco [tt]\bibliographyformat[/tt] esattamente prima del comando [tt]\printbibliography[/tt], allora il titolo “Bibliografia” assume la formattazione giusta decisa dal comando. Non capisco perché visto che il comando di base è lo stesso…
decisamente mi sfugge qualcosa e anche altro….m
-
1 Novembre 2018 alle 23:21 #114377::
Non fallisce; si ferma per dar tempo di leggere; poi se premi Enter prosegue fino allo show successivo.
caspita, mi sento proprio sveglio 🙁
cmq sto facendo delle prove in sequenza modificando gradualmente il codice
perché se cambio tutto in un colpo solo poi non capisco più cosa produce coseora, iniziando da qui
`\begin{filecontents*}{\jobname.bib}
@book{ bottero:1992,
author = “Bottero, Jean and Kramer, Samuel N.”,
title = “Uomini e dèi della Mesopotamia”,
publisher = “Einaudi”,
location = “Torino”,
year = “1992”,
}
\end{filecontents*}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,twoside,12pt]{report}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\PolyglossiaSetup{italian}{indentfirst=false}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{titlesec,titletoc}
\usepackage{etoolbox}\titleformat{\chapter}[display]
{\normalfont\fontsize{11pt}{12pt}\selectfont}{\thechapter}{0pt}{}\newcommand{\tocformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\filleft\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\newcommand{\bibliographyformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\itshape\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\pretocmd\tableofcontents{\tocformat}{}{}
\pretocmd\printbibliography{\bibliographyformat}{}{}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[backend=biber,style=philosophy-verbose,scauthors=all,%
lowscauthors=true,giveninits,classical=true,volnumformat=strings,%
volumeformat=romansc,sorting=nyt,commacit=true,citepages=omit,%
editionformat=superscript,indexing]%
{biblatex}\usepackage{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\tableofcontents
\chapter{Titolo}
\printbibliography
\end{document}`
noto che
1. [tt]\titleofcontents[/tt] prende correttamente la formattazione del comando
2. [tt]\printbibliography[/tt] invece no e anzi eredita quella di [tt]\titleofcontents[/tt]
3. se invece rinuncio a ricorrere a [tt]\pretocmd[/tt] e colloco [tt]\bibliographyformat[/tt] esattamente prima del comando [tt]\printbibliography[/tt], allora il titolo “Bibliografia” assume la formattazione giusta decisa dal comando. Non capisco perché visto che il comando di base è lo stesso…
decisamente mi sfugge qualcosa e anche altro….m
-
2 Novembre 2018 alle 7:23 #114378::
Perché non usi i due argomenti filali per vedere che cosa è successo? per esempio`\pretocmd\printbibliography{\bibliographyformat}%
{\message{^^J**************^^JEseguito correttamente^^J******************^^J}}%
{\message{^^J**************^^JNon ci sono riuscito^^J*******************^^J}}`Il codice [tt]^^J[/tt] serve per terminare la riga. Nel file .log quelle due righe di asterischi che precedono e seguono il messaggio si individuano facilmente e ti permettono di trovare il messaggio quando vuoi.
-
2 Novembre 2018 alle 10:16 #114379::
Allora, non ho trovato la sintassi che tu mi indichi nel manuale di etoolbox.
Anche la stringa [tt]pretocmd failure message[/tt] in google non dà in pratica risultati utili.
Ora, per iniziare ho provato a inserirla tale quale
nel primo comando, quello che di fatto sembra riuscire,
ma ottengo
`Runaway argument?
{\message {
**************
Non ci sono riuscito
*******************
} \par \ETC.
! File ended while scanning use of \@firstoftwo.
\par
<*> test01.tex? `
-
2 Novembre 2018 alle 13:29 #114380
-
2 Novembre 2018 alle 14:51 #114381::
ti manca una graffa chiusa.
sto veramente dando il peggio…
in ogni caso:
`(/usr/local/texlive/2018/texmf-dist/tex/latex/titlesec/titlesec.sty
Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
\ttl@box=\box41
\beforetitleunit=\skip49
\aftertitleunit=\skip50
\ttl@plus=\dimen138
\ttl@minus=\dimen139
\ttl@toksa=\toks16
\titlewidth=\dimen140
\titlewidthlast=\dimen141
\titlewidthfirst=\dimen142
)
(/usr/local/texlive/2018/texmf-dist/tex/latex/titlesec/titletoc.sty
Package: titletoc 2011/12/15 v1.6 TOC entries
\ttl@leftsep=\dimen143
)**************
Eseguito correttamente
********************************
Non ci sono riuscito
*******************`Il che era già chiaro dal momento che il primo titolo è formattato
come da impostazioni e il secondo no. Non capisco se nel file di log
c’è da qualche parte un’indicazione più precisa sulle ragioni del fallimento
-
2 Novembre 2018 alle 15:40 #114382::
Ho preso il tuo EMC di qualche messaggio fa e ho messo i comandi \show prima e dopo \tableofcontents e \printbibliography nel preambolo e ho ottenutp questi messaggi:`l.46 \show\tableofcontents?
> \tableofcontents=macro:
->\tocformat \if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse
\fi \chapter *{\contentsname \@mkboth {\MakeUppercase \contentsname }{\MakeUppe
rcase \contentsname }}\@starttoc {toc}\if@restonecol \twocolumn \fi .
l.48 \show\tableofcontents?
> \printbibliography=undefined.
l.49 \show\printbibliography?
> \printbibliography=undefined.
l.51 \show\printbibliography?`Come vedi, prima di eseguire [tt]\begin{document}[/tt] il comando [tt]\printbibliography[/tt] non è definito, quindi non lo si può modificare.
Poi ho spostato la terna di righe`\show\printbibliography
\pretocmd\printbibliography{\bibliographyformat}{}{}
\show\printbibliography`subito prima di usare il comando [tt]\printbibliography[/tt] e, non mi pare una sorpresa, la cosa funziona perfettamente.Perché?
Be’, forse non ho mai letto con la dovuta attenzione la documentazione di biblatex, ma direi che ritardi la definizione di [tt]\printbibliography[/tt] all’esecuzione di [tt]\begin{document}[/tt].
Soluzione? be’, una è quella che ho usato io di modificare [tt]\printbibliography[/tt] subito prima di usare quel comando; ma non è elevante, sarebbe meglio che tutte le macro e le impostazioni siano eseguite nel preambolo, non durante la compilazione del documento.
Per fare questo etoolbox viene in aiuto di nuovo perché puoi usare glo “hooks”, in particolare [tt]\AfterEndPreamble[/tt]. Ecco quindi l’intero EMC`% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = XeLaTeX
% !BIB TS-program = biber
\begin{filecontents*}{\jobname.bib}
@book{ bottero:1992,
author = “Bottero, Jean and Kramer, Samuel N.”,
title = “Uomini e dèi della Mesopotamia”,
publisher = “Einaudi”,
location = “Torino”,
year = “1992”,
}
\end{filecontents*}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,twoside,12pt]{report}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\PolyglossiaSetup{italian}{indentfirst=false}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{titlesec,titletoc}
\usepackage{etoolbox}\titleformat{\chapter}[display]
{\normalfont\fontsize{11pt}{12pt}\selectfont}{\thechapter}{0pt}{}\newcommand{\tocformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\filleft\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\newcommand{\bibliographyformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\itshape\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}
\show\tableofcontents
\pretocmd\tableofcontents{\tocformat}{}{}
\show\tableofcontents\AfterEndPreamble{\show\printbibliography
\pretocmd\printbibliography{\bibliographyformat}{}{}
\show\printbibliography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[backend=biber,style=philosophy-verbose,scauthors=all,%
lowscauthors=true,giveninits,classical=true,volnumformat=strings,%
volumeformat=romansc,sorting=nyt,commacit=true,citepages=omit,%
editionformat=superscript,indexing]%
{biblatex}\usepackage{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\tableofcontents
\chapter{Titolo}
\printbibliography
\end{document}`
-
2 Novembre 2018 alle 17:25 #114383::
Per fare questo etoolbox viene in aiuto di nuovo perché puoi usare glo “hooks”, in particolare \AfterEndPreamble
Questo è interessante sempre per imparare funzioni nuove di etoolbox.
L’altra soluzione è quella di caricare prima tutti i comandi per la bibliografia
e di mettere dopo `\pretocmd\printbibliography{\bibliographyformat}{}{}`
sempre all’interno del preambolo; infatti in questo modo funziona. Mi pare che siano due modi
di fare la stessa cosa: uno usando un altro strumntno di etoolbox, l’altro semplicemente spostando
nelpreambolo l’ordine di caricamento in modo che la macro operi dopo il caricamento delle impostazioni
della bibliografia. Adesso sperimento meglio su un paio di file
Grazie mille per il lavoraccio 🙂m
-
2 Novembre 2018 alle 19:20 #114384::
il MWE funziona. purtroppo il mio codice reale è più complesso,
anche per quanto attiene ala bibliografia. ci deve essere una reimpostazione
di alcuni comandi, perché alla fine non funziona più
nel senso che l’impostazione di \printbibliography si perde
`% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = XeLaTeX
% !BIB TS-program = biber
\begin{filecontents*}{\jobname.bib}
@inbook{ boniolo:1999,
author = “Boniolo, Giovanni and Paolo Vidali”,
title = “Scienza, filosofia e argomentazione”,
booktitle = “Filosofia della scienza”,
publisher = “B. Mondadori”,
location = “Milano”,
year = “1999”,
pages = “627-708”
}@book{ calabrese:2013,
author = “Calabrese, Stefano”,
title = “Retorica e scienze neurocognitive”,
publisher = “Carocci”,
location = “Roma”,
year = “2013”,
}@book{ meyer:1991,
author = “Meyer, Michel”,
title = “Problematologia. Filosofia, scienza e linguaggio”,
publisher = “Pratiche”,
location = “Parma”,
year = “1991”,
}
\end{filecontents*}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,twoside,12pt]{report}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\PolyglossiaSetup{italian}{indentfirst=false}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{titlesec,titletoc}
\usepackage{etoolbox}\titleformat{\chapter}[display]
{\normalfont\fontsize{11pt}{12pt}\selectfont}{\thechapter}{0pt}{}\newcommand{\tocformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\filleft\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}\newcommand{\bibliographyformat}{%
\titleformat{name=\chapter,numberless}[display]
{\normalfont\itshape\fontsize{11pt}{12pt}\selectfont}
{}
{0pt}%
{}%
}
\show\tableofcontents
\pretocmd\tableofcontents{\tocformat}{}{}
\show\tableofcontents\AfterEndPreamble{\show\printbibliography
\pretocmd\printbibliography{\bibliographyformat}{}{}
\show\printbibliography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[backend=biber,style=philosophy-verbose,scauthors=all,%
lowscauthors=true,giveninits,classical=true,volnumformat=strings,%
volumeformat=romansc,sorting=nyt,commacit=true,citepages=omit,%
editionformat=superscript,indexing]%
{biblatex}\usepackage{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}\DeclareBibliographyCategory{books01}
\DeclareBibliographyCategory{books02}
\DeclareBibliographyCategory{books03}\addtocategory{books01}{boniolo:1999}
\addtocategory{books02}{calabrese:2013}
\addtocategory{books03}{meyer:1991}\defbibheading{books01}{\section*{Studi 1}}
\defbibheading{books02}{\section*{Studi 2}}
\defbibheading{books03}{\section*{Studi 3}}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\tableofcontents
\chapter{Titolo}
\chapter*{\bibname}
\addcontentsline{toc}{chapter}{\bibname}
\markboth{\scshape bibliografia}{\scshape bibliografia}
\printbibliography[heading=books01,category=books01]
\printbibliography[heading=books02,category=books02]
\printbibliography[heading=books03,category=books03]\end{document}`
o forse basta modificare qualcosa delle indicazioni finali sulla bibliografia…
-
2 Novembre 2018 alle 22:07 #114385::
Direi che la spiegazione è esattamente in quello che stai facendo; nell’indice il Nome Bibliografia viene scritto dal comando [tt]\addtocontentsline[/tt] non da [tt]\printbiliography[/tt] che lì agisce con i suoi heading come se scrivesse delle sezioni, non dei capitoli.Quindi la soluzione è la seguente`\bibliographyformat
\chapter*{\bibname}
\addcontentsline{toc}{chapter}{\bibname}
\markboth{\scshape bibliografia}{\scshape bibliografia}
\printbibliography[heading=books01,category=books01]
\printbibliography[heading=books02,category=books02]
\printbibliography[heading=books03,category=books03]`
-
3 Novembre 2018 alle 11:45 #114386::
Certo! In realtà la cosa che mi aveva mosso, scomodando un sacco di codice
e forse per sparare ai passeri col cannone, era l’idea (che credo astrattamente
valida) di impostare tutto all’interno del preambolo senza mettere codice specifico
per la formattazione nel documento. Altrimenti, una soluzione “di forza bruta”
è eliminare tutto il codice con titlesec e mettere semplicemente
`%\renewcommand*\contentsname{\hfill\mdseries\huge Contents}`
prima di \tableofcontents…
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.