Risposte nei forum create
-
AutoreRisposte
-
::
Grazie mille!Non riesco ancora a capire perché mai si è voluto che le opzioni globali venissero passate ai pacchetti.
Ammesso che ciò non abbia controindicazioni, qualcosa di simile potrebbe servire ad eliminare tutte le opzioni da \XKV@classoptionslist?
`\regex_replace_all:nnN { [^,]*? \s* = [^,]*? (,|\Z) } { } \XKV@classoptionslist
\regex_replace_all:nnN { [^,]*? \s* (,|\Z) } { } \XKV@classoptionslist
`
La prima riga dovrebbe eliminare le opzioni chiave=valore; la seconda quelle semplici.
Io l’ho provato e sembra funzionare.Quando viene letto il file di classe, le opzioni hanno già fatto il loro lavoro, o no?
E allora, perché conservarle in una lista e addirittura passarle ad ogni pacchetto?Ciao
Ivan
31 Marzo 2013 alle 17:19 in risposta a: Inserimento immagine eps e creazione del PDF con Kile #81729::
Ho riscontrato un problemino nella soluzione di Enrico data qui sopra,
nel caso in cui l’opzione da cancellare dalla \XKV@classoptionslist sia l’ultima (o l’unica) passata alla classe:
Questo esempio produce infatti un errore:
`\documentclass[style=FSPLa]{suftesi}\usepackage{mdframed}
\begin{document}
\chapter{Titolo}
\begin{mdframed}
ciao
\end{mdframed}
\end{document}`Aggiungendo una virgola dopo l’opzione:
`\documentclass[style=FSPLa,]{suftesi}
`
funziona correttamente, ma è poco elegante.
In pratica lo si illude che ci sia un’altra opzione e poi non la si dichiara.
Ho provato a modificare il codice sopra:
`\regex_replace_all:nnN { style \s* = [^,]*? , } { , } \XKV@classoptionslist`
nel seguente, togliendo la seconda occorrenza della virgola:
`\regex_replace_all:nnN { style \s* = [^,]*? } { , } \XKV@classoptionslist`
e in questo modo l’esempio minimale in alto non produce errori.
Da quello che ho capito, il primo codice sostituisce la stringa “style=,” con “,”.
Quindi se c’è una sola opzione non trova la stringa, in quanto manca la virgola finale.
E questo spiega anche il fatto che aggiungendo la virgola non si hanno errori.La mia perplessità è questa? La virgola che ho eliminato serve a qualcosa che ignoro?
Ciao
Ivan
::Doc” post=83707
Nell’originale (il mio libro) uso infatti [tt]proceedings[/tt] e [tt]inproceedings[/tt], ma avevo modificato il codice ad hoc per il motivo che tu stesso indichi!
Cf. http://www.guitex.org/home/forum/5-tex-e-latex/42559-stili-biblatex-philosophy?limit=15&start=135&lang=it#83686 (in fondo)E chi se lo ricordava? 😀
Doc” post=83707Scusami se faccio il troll, ma oggi ho bevuto un pochino! 😀 😀 😀
Figurati.
Comunque ti posso dire che puoi ripristinare il codice precedente, perché la prossima versione
avrà il supporto per il meccanismo crossref anche per le voci @inproceedings.Intanto puoi aggiungere questo (poi ricordati di togliere tutti questi codici temporanei):
`\DeclareBibliographyDriver{inproceedings}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\iffieldundef{xref}%
{\iffieldundef{crossref}{\usebibmacro{inproceedings:full}}%
{\bbx@crossref@incollection{\thefield{crossref}}%
\newunit\newblock
\usebibmacro{crossrefdata}}}%
{\bbx@crossref@incollection{\thefield{xref}}%
\newunit\newblock
\usebibmacro{xrefdata}}}\newbibmacro*{inproceedings:full}{%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{event+venue+date}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\printlist{organization}%
\newunit
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate:article-inbook-incoll}%
\setunit{\addsemicolon\space}\newblock
\usebibmacro{related}%
\newunit\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}`Ciao
Ivan
::
In questi casi usi una entry type sbagliata. Ma in ogni caso ci sono due errori:
@BOOKS{Harlfinger1991,
@BOOKS{DAncona2007,Cambiando in @BOOK risolvi, ma non è questa la soluzione, almeno per il primo caso (Harlfinger1991).
Ecco la soluzione per quel caso:
@COLLECTION{Harlfinger1991,
@INCOLLECTION{Agati1991,
@INCOLLECTION{Alpers1991,Si tratta di una soluzione che aggira il problema, perché la vera
soluzione sarebbe questa:
@PROCEEDINGS{Harlfinger1991,
@INPROCEEDINGS{Agati1991,
@INPROCEEDINGS{Alpers1991,Ma attualmente gli stili philosophy supportano il crossreferencing
solo per le voci @inbook e @incollection.
Non è difficile implementare anche questo e infatti mi accingo a farlo 🙂Ciao
Ivan
::Doc” post=83680
Una sola cosa non capisco: ora (ma anche ieri), quando i [tt]crossref[/tt] rimandano ad una sezione bibliografica “contigua”, si ottiene la citazione per esteso, ma non la citazione con link, come invece succedeva prima che avvenissero tutti questi cambiamenti.OT
Aggiungo tra l’altro che quella sezione contigua è organizzata tramite [tt]shorthands[/tt]: in questi casi, mi piacerebbe che il rimando del [tt]crossref[/tt] avvenisse tramite gli [tt]shorthands[/tt] e non tramite la normale citazione autore-anno. Sai se è possibile fare una cosa del genere?Ho provato il codice che mi hai mandato e ho il riferimento a PCG, cliccabile,
sia nelle sigle sia nella bibliografia. Quindi non riesco ancora a capire 🙁“Erbse 1950” appare così perché non viene definita la sigla relativa.
Non escludo tuttavia che le cose appaiano diverse sul mio computer, visto
tutti i maneggiamenti che sto facendo ai codici.Ciao
Ivanp.s.
Purtroppo c’è un errore nei file che ho caricato. Pertanto il prossimo aggiornamento avrà un piccolo baco nuovo 🙁 , che ho già corretto.
Dovevo aggiungere:
`\newbibmacro*{date+extrayear}{}%`
dentro \AtBeginShorthands.
È veramente un’impresa aver tutto sotto controllo. Ma ormai siamo alla fine del lavoro. Almeno spero.
::Alb” post=83696Ciao Ivan,
qualche post fa ti avevo segnalato che quando ci sono due \ccite uno dopo l’altro, l’abbreviazione “cit.” viene usata anche per la prima citazione. Mi pare che il problema non si limiti ai \ccite. Il problema sorge anche quando si ha una citazione in note a pié di una @incollection, seguita da una citazione dell’intera @collection in philosophy-verbose. L’abbreviazione “cit.” viene usata anche per la prima citazione:
Grazie anche per questa segnalazione. Si tratta di un vero e proprio baco.
Questo lo risolve:
`\DeclareCiteCommand{\bbx@crossref@inbook}
{}%
{\ifciteseen{%
\ifthenelse{\value{listtotal}=2}%
{\printnames[][-\value{maxnamesincross}]{labelname}}%
{\printnames[][-\value{minnamesincross}]{labelname}}%
\setunit*{\addcomma\space}\printtext[bibhyperlink]{%
\printfield[citetitle]{labeltitle}%
\iftoggle{cbx:commacit}{\setunit{\addcomma\space}}%
{\setunit{\addspace\midsentence}}%
\bibstring{cited}}}%
{\usedriver{%
\DeclareNameAlias{sortname}{default}}%
{\thefield{entrytype}}}}%
{}%
{}%
\DeclareCiteCommand{\bbx@crossref@incollection}
{}%
{\ifciteseen{%
\ifthenelse{\value{listtotal}=2}%
{\printnames[][-\value{maxnamesincross}]{labelname}}%
{\printnames[][-\value{minnamesincross}]{labelname}}%
\setunit{\addspace}%
\usebibmacro{editorstrg}%
\setunit*{\addcomma\space}\printtext[bibhyperlink]{%
\printfield[citetitle]{labeltitle}%
\iftoggle{cbx:commacit}{\setunit{\addcomma\space}}%
{\setunit{\addspace\midsentence}}%
\bibstring{cited}}}%
{\usedriver{%
\DeclareNameAlias{sortname}{default}}%
{\thefield{entrytype}}}}%
{}%
{}%`
ma c’è un limite. Nel testo, se la citazione della @collection viene dopo della @incollection che vi si riferisce, la prima
viene abbreviata comunque, perché la @collection di fatto è già stata citata. Lo stile quindi è coerente,
ma potrebbe non dare il risultato voluto. Bisognerebbe aggiungere un condizionale che valuta se
la voce è già stata citata in una @incollection (o anche @inbook). Ci penso, ma non la vedo semplice.
In mancanza d’altro bisogna risolvere con:
`\mancite\fullcite{Fattori1984}`Ciao
Ivanp.s. ieri ho inviato gli stili su CTAN,
quindi per questa modifica dovrai attendere una/due settimane
::Doc” post=83680Grazie, Ivan!
Non ho alcuna fretta e, pur avendo altre cose da fare, non esito a contribuire con i test che mi suggerisci.Ho provato il fix sia sul codice di esempio sopra postato sia sul mio libro e, ad occhio e croce, direi che va benone.
Tuttavia, ti confesso che ieri, pensando che non fosse un baco, ma proprio una nuova feature di [tt]biber[/tt], ho cambiato la mia bibliografia in modo da evitare i [tt]crossref[/tt]. Tra l’altro, la nuova situazione è forse preferibile, visto che le sezioni della bibliografia, per motivi che ti risparmio, sono anche mooooooooooolto lontane fra di loro.
Comunque, aggiungendo un [tt]crossref[/tt] ad una voce che rimanda ad una sezione bibliografica lontana, tutto funziona a dovere.
Una sola cosa non capisco: ora (ma anche ieri), quando i [tt]crossref[/tt] rimandano ad una sezione bibliografica “contigua”, si ottiene la citazione per esteso, ma non la citazione con link, come invece succedeva prima che avvenissero tutti questi cambiamenti.
OT
Aggiungo tra l’altro che quella sezione contigua è organizzata tramite [tt]shorthands[/tt]: in questi casi, mi piacerebbe che il rimando del [tt]crossref[/tt] avvenisse tramite gli [tt]shorthands[/tt] e non tramite la normale citazione autore-anno. Sai se è possibile fare una cosa del genere?Se ho capito bene, dovrebbe bastare questo:
`
\makeatletter
\DeclareCiteCommand{\bbx@crossref@inbook}
{}%
{\iffieldundef{shorthand}{%
\usebibmacro{citeindex}%
\ifuseeditor{%
\ifthenelse{\value{listtotal}=2}%
{\printnames[][-\value{maxnamesincross}]{labelname}}%
{\printnames[][-\value{minnamesincross}]{labelname}}}%
{\usebibmacro{labeltitle}}%
\setunit*{\addspace}%
\usebibmacro{date+extrayear}}%
{\usebibmacro{cite:shorthand}}}%
{}%
{}%
\DeclareCiteCommand{\bbx@crossref@incollection}
{}%
{\iffieldundef{shorthand}{%
\usebibmacro{citeindex}%
\ifuseeditor{%
\ifthenelse{\value{listtotal}=2}%
{\printnames[][-\value{maxnamesincross}]{labelname}}%
{\printnames[][-\value{minnamesincross}]{labelname}}}%
{\usebibmacro{labeltitle}}%
\setunit*{\addspace}%
\usebibmacro{date+extrayear}}%
{\usebibmacro{cite:shorthand}}}%
{}%
{}%
\makeatother
`La situazione è contorta e non saprei cosa scegliere. Con questo codice, nella bibliografia si
fa riferimento alla sigla, qualora presente, della voce collegata con crossref. tuttavia la voce madre
viene stampata comunque nella bibliografia, se ci sono almeno due voci figlio che vi si riferiscono tramite crossref.
Quindi il lettore si troverebbe a leggere la voce nella bibliografia, che rimanda alle sigle, le quali riportano la
voce madre integralmente; quest’ultima, poi, è ripetuta anche nella bibliografia.
E se non si inserisce una lista delle sigle? Avremmo una voce in bibliografia che rimanda a una sigla,
la quale però è da qualche parte nel testo. Troppo rischioso. Si potrebbe pensare a un’opzione
per casi simili al tuo: shorthandinbib ?Ciao
Ivan
::Doc” post=83630Intanto, grazie mille! Con questa soluzione ho risolto i problemi suddetti.
Tuttavia, ora ho notato altre magagne, che non so quando sono apparse.Il problema è legato al campo [tt]crossref[/tt]. Ebbene, sembra che questo non riesca ad essere operativo quando gli item bibliografici sono in diverse sezioni della bibliografia.
Sono assolutamente certo del fatto che prima tutto funzionava alla perfezione, ma non posso dire se il problema è nato oggi o…. boh!Grazie mille e scusami se ti secco!
DomenicoCorretto anche questo. Se hai fretta, aggiungi questo nel preambolo:
`
\makeatletter
\AtBeginShorthands{
\DeclareCiteCommand{\bbx@crossref@inbook}
{}%
{\iffieldundef{shorthand}{%
\usebibmacro{citeindex}%
\ifuseeditor{%
\ifthenelse{\value{listtotal}=2}%
{\printnames[][-\value{maxnamesincross}]{labelname}}%
{\printnames[][-\value{minnamesincross}]{labelname}}}%
{\usebibmacro{labeltitle}}%
\setunit*{\addspace}%
\usebibmacro{date+extrayear:crossref}}%
{\usebibmacro{cite:shorthand}}}%
{}%
{}%\DeclareCiteCommand{\bbx@crossref@incollection}
{}%
{\iffieldundef{shorthand}{%
\usebibmacro{citeindex}%
\ifuseeditor{%
\ifthenelse{\value{listtotal}=2}%
{\printnames[][-\value{maxnamesincross}]{labelname}}%
{\printnames[][-\value{minnamesincross}]{labelname}}}%
{\usebibmacro{labeltitle}}%
\setunit*{\addspace}%
\usebibmacro{date+extrayear:crossref}}%
{\usebibmacro{cite:shorthand}}}%
{}%
{}%
\newbibmacro*{date+extrayear:crossref}{%
\begingroup%
\clearfield{month}%
\iffieldundef{labelyear}
{\printtext[parens]{\midsentence\bibstring{nodate}}}
{\printtext[parens]{\printdateextra}}%
\endgroup}%
}
\makeatother
`Se non avete fretta, aspetto i vostri responsi prima di caricare gli stili.
Soprattutto per quest’ultima aggiunta, c’è bisogno di qualche test in più.Ciao
Ivan
::Alb” post=83662
La doc dice che “journal” è un alias di “journaltitle”, fornito per compatibilità con bibtex,
quindi presumo che con biber non funzioni. Mi pare comunque strano e in ogni caso non ho fatto prove.Ciao,
ho notato anch’io che con la nuova versione degli stili il campo “journal” non viene più stampato (journaltitle invece sì). Nemmeno il campo “address” viene stampato (location invece sì). Ma non penso che sia un problema di Biber perché, se uso Biber con lo stile verbose o con la penultima versione degli stili philosophy (prima dell’aggiornamento di un paio di giorni fa), quei campi vengono stampati. Ma se uso la nuova versione degli stili philosophy non vengono più stampati.
Se sostituisco “style=verbose” con “style=philosophy-verbose”, “Kant-Studien” e “Oxford” spariscono dal pdf.
Alberto, hai ragione. Correggo subito e carico quanto prima la versione aggiornata.
@Doc Il problema è più serio. Vedrò se e come si può risolvere.Ciao
Ivan
::Doc” post=83611Ciao a tutti, mi intrometto in questa discussione, poiché oggi ho notato un aggiornamento del pacchetto [tt]biblatex-philosophy[/tt] e sto ricevendo una miriade di errori di compilazione di questo tipo:
`! Undefined control sequence.
\blx@hook@lositem -> \clearlt
{publisher}
l.251 ^^Ikeyword=scholia`
Nelle righe in questione io ho cose di questo genere:
`\printshorthands[
heading=scholia,
keyword=scholia]`
Insomma, gli stanno antipatici, a quanto pare i campi [tt]keyword[/tt].
Fino a ieri sera, andava tutto benissimo.Spero che queste info bastino.
Ciao e grazie mille,
DomenicoEDIT
Ho individuato il problema!
Gli danno fastidio le stringhe
`\AtEveryBibitem{
\clearlist{publisher}
}
\AtEveryLositem{
\clearlt{publisher}
}`
che avevo inserito nel preambolo.Domanda: come fare quindi a eliminare completamente il campo [tt]publisher[/tt] nella bibliografia?
EDIT 2
Qui i problemi sono molto più grossi! La bibliografia non genera più il campo [tt]journal[/tt] degli articoli!!!!!!!!!Allego un esempio minimo:
`% !TeX TS-program = XeLaTeX
% !TeX encoding = UTF-8 Unicode
% !TeX spellcheck = it_IT
%—————————————————————————————
% PACKAGES
%—————————————————————————————
\documentclass[11pt,a4paper]{book}\usepackage{fontspec} % FONT ENCODING
\setmainfont[Ligatures=TeX,Numbers=OldStyle,Scale=0.95]{Linux Libertine O}\usepackage{polyglossia} % LANGUAGE SUPPORT
\setmainlanguage[babelshorthands=true]{italian}
\setotherlanguage{latin}
\setotherlanguage[variant=polytonic]{greek}\usepackage[
style=italian%
]{csquotes} % Per citare in altre lingue\usepackage[%
style=philosophy-classic,%
dashed=true,%
url = false,%
isbn = false,%
firstinits=true%
]{biblatex}\usepackage{filecontents}
\begin{filecontents*}{biblio.bib}
@BOOK{Adam1902,
title = {The Republic of Plato},
publisher = {University Press},
location = {Cambridge},
year = {1902},
author = {Adam, J.},
keywords = {studi},
titleaddon = {edited with critical Notes, Commentary and Appendices},
volumes = {II}
}@ARTICLE{Alpers2008,
author = {Alpers, Klaus},
title = {Beobachtungen zur Überlieferung und zum Text des Platonlexikons des
Timaios},
journal = {Zeitschrift für Papyrologie und Epigraphik},
year = {2008},
volume = {166},
pages = {85–99},
keywords = {studi}
}\end{filecontents*}
\addbibresource{biblio.bib}
\usepackage{lipsum}
\begin{document}
\lipsum\nocite{*}
\printbibliography
\end{document}`Rcapitolando, ci sono due problemi:
- Non capisco più come far scomparire sistematicamente una particolare voce della bibliografia, ovvero il [tt]publisher[/tt]
- Non si genera più la voce [tt]journal[/tt] nella bibliografia
La soluzione è simile a quella data qui per un caso analogo, ma più complicato.
`\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldset=publisher, null]
\step[fieldsource=journal,fieldtarget=journaltitle]
}
}
}`
Questa soluzione richiede biber.
Il primo \step elimina il campo publisher.
Il secondo \step fa in modo che il campo “journal” venga letto come “journaltitle”.
Però ti consiglio di sostituire direttamente nel file .bib ed elimiare il secondo \step.
La doc dice che “journal” è un alias di “journaltitle”, fornito per compatibilità con bibtex,
quindi presumo che con biber non funzioni. Mi pare comunque strano e in ogni caso non ho fatto prove.Ciao
Ivan
::Alb” post=83587Ciao Ivan,
grazie. Ora @review funziona perfettamente. Mi pare che ci sia ancora un problema con \ccite. Applicando il codice che mi hai fornito, in un documento con due \ccite, il secondo \ccite funziona bene, ma il primo \ccite si comporta come se fosse un \cite: stampa anche il nome dell’autore.
Per forza. C’era un condizionale di troppo:
`\renewbibmacro*{cite:ccite}{%
\usebibmacro{cite:citepages}%
\global\togglefalse{cbx:fullcite}%
\global\togglefalse{cbx:loccit}%
\bibhypertarget{cite\the\value{instcount}}{%
\iffieldundef{shorthand}
{\usebibmacro{cite:title}%
\usebibmacro{cite:save}}%
{\usebibmacro{cite:shorthand}}}}`Ciao
Ivan
::dr.slump” post=83577grazie mille. proverò…anche se mi sembra un po’ problematico :/
magari opterò per il formato A4…vi farò sapere! 😉
Ti ho dato un esempio vicino alla tua richiesta.
La soluzione migliore, secondo me, per una tesi di dottorato
è il formato che si ottiene con l’opzione pagelayout=periodicalaureo.Ciao
Ivan
27 Marzo 2013 alle 21:50 in risposta a: Inserimento immagine eps e creazione del PDF con Kile #81725::
Calma e sangue freddo. Tutto si può risolvere.
Kile, come ti è già stato detto, non ha niente a che fare con il tuo problema.
Inoltre dubito che la tua distribuzione sia veramente aggiornata.
Io su TeX Live 2012 compilo tranquillamente questo:
`\documentclass{article}\usepackage{graphicx}
\begin{document}
\includegraphics{file}
\end{document}`
E ti assicuro che “file” è un .eps.
Detto questo, vediamo di risolvere il tuo problema. Anche se non sappiamo ancora su che piattaforma sei,
visto che Kile non è solo per Linux. Ci sono tre soluzioni:
1) [consigliatissima] Fai l’installazione come indicato nella guida di Enrico Gregorio sull’installazione di TeX Live su Ubuntu e altre dstro Linux (ammesso che tu sia su Linux)
2) [consigliata] Scarica un convertitore di immagini e trasforma le immagini .eps in.pdf
3) [sconsigliata]Compila con latex invece che pdflatex. Dovrai poi convertire l’output in pdf.
È una cosa che non si fa più da qualche anno, in quanto oggi si possono usare
immagini eps ps ecc. anche con pdflatex.Già che ci sei, togli \DeclareGraphicsExtensions e cambia subfigure in subfig.
Togli anche l’opzione passata hyperref.Ciao
Ivan
-
AutoreRisposte