- Questo topic ha 30 risposte, 6 partecipanti ed è stato aggiornato l'ultima volta 12 anni, 11 mesi fa da
Elrond.
-
CreatoreTopic
-
2 Ottobre 2013 alle 14:14 #89332::
Il sorgente (vi chiedo scusa per il fatto che non è minimale):
`\documentclass[10pt,a4paper,twoside,openright,titlepage,%
headinclude,footinclude,BCOR5mm,%
cleardoublepage=empty]{scrbook}\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[polutonikogreek,english,italian]{babel}
\usepackage[italian]{varioref}
\usepackage[style=philosophy-modern,hyperref,backref,natbib]{biblatex}
\usepackage[babel]{csquotes}
\usepackage{indentfirst}
\usepackage{graphicx}
\usepackage{chngpage,calc}
\usepackage{makeidx,multicol}
\usepackage[font=small]{quoting}
\usepackage[dvipsnames]{xcolor}
\usepackage{fixltx2e,relsize}
\usepackage{wasysym,pifont}
\usepackage[pdfspacing,beramono,eulerchapternumbers,parts]{classicthesis}
\usepackage{bookmark}\addbibresource{Biblio.bib}
\defbibheading{bibliography}{%
\cleardoublepage
\manualmark
\phantomsection
\addcontentsline{toc}{chapter}{\tocEntry{\bibname}}
\chapter*{\bibname\markboth{\spacedlowsmallcaps{\bibname}}
{\spacedlowsmallcaps{\bibname}}}}\DeclareCiteCommand{\citeyearpar}[\mkbibparens]
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\printtext[bibhyperref]{\printfield{year}}}
{\multicitedelim}
{\usebibmacro{postnote}}\makeatletter
\DeclareCiteCommand{\citetalias}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\bibhyperref{\@citealias{\thefield{entrykey}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\makeatother\appto\biburlsetup{\Urlmuskip=0mu plus 3mu\relax}
\begin{document}
\frontmatter
\cite{guerri:italiani}
\mainmatter
\cite{valentini:confessionale}
\printbibliography
\end{document}`
Il file Biblio.bib
`@book{guerri:italiani,
author = {Guerri, Giordano Bruno},
title = {Gli italiani sotto la Chiesa. Da San Pietro a Mussolini},
publisher = {Mondadori},
year = {1995},
location = {Milano}
}@book{valentini:confessionale,
author = {Valentini, Norberto},
title = {La politica in confessionale},
publisher = {Bompiani},
year = {1974},
location = {Milano}
}
`
L’errore:
`./Prova.aux:37: LaTeX Error: Missing \begin{document}.See the LaTeX manual or LaTeX Companion for explanation.
Type Hfor immediate help.
…l.37 …1}{guerri:italiani}{0}{\textlatin {i}}{1}
? `
Il codice (gli incantesimi nel preambolo sono di Enrico) funzionava perfettamente, ma dopo aver aggiornato all’ultima MacTeX ora non funziona più.Grazie anticipate a chi mi risolverà il problema.
-
CreatoreTopic
-
AutoreRisposte
-
-
2 Ottobre 2013 alle 17:14 #89333::
lorenzo.pantieri” post=88846Il sorgente (vi chiedo scusa per il fatto che non è minimale):
`\documentclass[10pt,a4paper,twoside,openright,titlepage,%
headinclude,footinclude,BCOR5mm,%
cleardoublepage=empty]{scrbook}\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[polutonikogreek,english,italian]{babel}
\usepackage[italian]{varioref}
\usepackage[style=philosophy-modern,hyperref,backref,natbib]{biblatex}
\usepackage[babel]{csquotes}
\usepackage{indentfirst}
\usepackage{graphicx}
\usepackage{chngpage,calc}
\usepackage{makeidx,multicol}
\usepackage[font=small]{quoting}
\usepackage[dvipsnames]{xcolor}
\usepackage{fixltx2e,relsize}
\usepackage{wasysym,pifont}
\usepackage[pdfspacing,beramono,eulerchapternumbers,parts]{classicthesis}
\usepackage{bookmark}\addbibresource{Biblio.bib}
\defbibheading{bibliography}{%
\cleardoublepage
\manualmark
\phantomsection
\addcontentsline{toc}{chapter}{\tocEntry{\bibname}}
\chapter*{\bibname\markboth{\spacedlowsmallcaps{\bibname}}
{\spacedlowsmallcaps{\bibname}}}}\DeclareCiteCommand{\citeyearpar}[\mkbibparens]
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\printtext[bibhyperref]{\printfield{year}}}
{\multicitedelim}
{\usebibmacro{postnote}}\makeatletter
\DeclareCiteCommand{\citetalias}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\bibhyperref{\@citealias{\thefield{entrykey}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\makeatother\appto\biburlsetup{\Urlmuskip=0mu plus 3mu\relax}
\begin{document}
\frontmatter
\cite{guerri:italiani}
\mainmatter
\cite{valentini:confessionale}
\printbibliography
\end{document}`
Il file Biblio.bib
`@book{guerri:italiani,
author = {Guerri, Giordano Bruno},
title = {Gli italiani sotto la Chiesa. Da San Pietro a Mussolini},
publisher = {Mondadori},
year = {1995},
location = {Milano}
}@book{valentini:confessionale,
author = {Valentini, Norberto},
title = {La politica in confessionale},
publisher = {Bompiani},
year = {1974},
location = {Milano}
}
`
L’errore:
`./Prova.aux:37: LaTeX Error: Missing \begin{document}.See the LaTeX manual or LaTeX Companion for explanation.
Type Hfor immediate help.
…l.37 …1}{guerri:italiani}{0}{\textlatin {i}}{1}
? `
Il codice (gli incantesimi nel preambolo sono di Enrico) funzionava perfettamente, ma dopo aver aggiornato all’ultima MacTeX ora non funziona più.Grazie anticipate a chi mi risolverà il problema.
Sembra che da qualche parte ci sia un carattere nascosto che dà qualche problema. Se elimino le parti di codice superflue non ho alcun errore.
L’errore è indipendente da philosophy-modern. C’è anche con style=authoryear. Cercherò di creare un esempio minimale per capirne di più.Ciao
Ivan
-
2 Ottobre 2013 alle 17:51 #89334::
Babel polutonigreek sembra dia fastidioEdit: anzi, babel+polutonikogreek e biblatex+backref
Edit 2: ma non l’avevi già chiesto? http://www.guitex.org/home/it/forum/5-tex-e-latex/77714-classicthesis-e-numeri-romani-maiuscoli-nel-frontmatter
-
2 Ottobre 2013 alle 21:04 #89335::
Lorenzo, ho dovuto risolvere questo problema con al Guida GuIT, come ti hao già scritto quando avevi aperto l’altro filone.Come ti ho detto, tutto si può fare, pur di volersi sporcare le mani. Avevi detto che se avevi una front matter di 40 pagine ti sarebbe spiaciuto di avere il primo capitolo che comincia nella pagina 41. Dipende dal libro che si ha sottomano e dai gusti personali, ma nel caso specifico di avere una frontmatter in numeri romani che permettano anche di eseeguire i collegamenti a ritroso (back ref) quando ci sono di mezzo i numeri romani dipende da un mucchio di cose, alcune delle quali fanno riferimento a comandi primitivi, ed altra a idiosincrasie di hyperref, da come sono composte le classi, eccetera.
Ci sono diversi punti in cui si incontrano numeri romani minuscoli:
a) nella numerazione delle pagine,
b) nell’indice e anche negli indici analitici
c) nei file aux che contengono le informazioni che usa hyperref per disporre delle ancore e dei bersagli giusti1) Negli indici generali bisogna ridefinire il modo di scrivere al rigaa che riporta l’informazione che riguarda i capitolli; direi che i pacchetto tocloft dovrebbe permetterti di specificare il maiuscoletto simulato senza problemi (simulato, perché generalmente il maiscoletto non disponde altro che della seria chiara, quindi bisogna simulare un maiuscoletto della serie nera rimpicciolendo al 70% il corpo normale)
2) per i numeri delle pagine bisogna specificare la dichiarazione \scshape oppure il comando dem maiuscoletto simulato a seocnda dei font in uso, ma è una scelta a livelo di classe, a livello generale, cioè, perché non è che si cambi stile nello scrivere i numeri delle pagine da una pagina all’altra. Cose come fancyhdr o classi come scrbook o memoir che consteno di personalizzare i numeri delle pagine permettono di risolvere questo problema senza sporxarsi le mani.
c) bisogna sporcarsi le mani invece con l’argomento di hyerref che contiene la dichiarazione \textlatin o \doscroman, quella che mostri nel tuo messaggio d’errore.In questo ultimo caso bisogna sporcarsi le mani perché bisogna creare un comando che elimini \textlatin o \doscroman; allora io mi sono sporcato le mani in questo modo: ho creato due macro, una che determini se almeno la stringa da concvertire si scritta in lettere minuscole — non sono stato a badare se sian lettere della numerazione latina o lettere qualsiasi. Una seocnda macro, dentro un ambiente, elimina il comando \docsroman eseguendolo. poi per il resto non ci sono particolari problemi, salvo che non bisogna avere paura a scrivere in modo da sporcarsi le mani.
La prima macro è ad argomenti delimitati:`\newif\iflettere\letterefalse
\def\testlettere#1#2!{\count256=`#1 \ifnum\count256<`a \letterefalse\else \ifnum\count256>`z \letterefalse\else\letteretrue\fi\fi}`
La seconda è quella più sporca:`\DeclareRobustCommand*{\simulatedSC}[1]{{\def\textlatin##1{##1}\relax\edef\@tempA{#1}%
\expandafter\testlettere\@tempA!\iflettere\textormath{%
\hbox{\check@mathfonts
\fontsize{\sf@size}{\f@baselineskip}\selectfont\uppercase\expandafter{\@tempA}}%
}{%
\scriptsize\mathrm{\@tempA}}\else#1\fi}}`Come vedi il trucco sporchissimo è contenuto nelle prime due righe di questa definzione; il paramentro #1 arriva dal file .aux scritto come tu hai mostrato: [tt]\textlatin {i}[/tt], quindi quando \@tempA viene definito mediante l’espansione dell’argomento \textlatin {i} si ritrova solamente i e non più la macro \textlatin. Dopo il resto è normale amministrazione \textormath è la solita macro definita da babel per comporre qualcosa indifferentemente (o differentemente) in modo matematico o in modo testo..
Ben con queste due macro messe nel preambolo (magari con un bel \makeatletter prima e un bel \makeother dopo) e dopo aver modificato la riga di scrittura dei capitoli nell’indice generale e lo stile dei numeri di pagina nelle testatine, mi consente di avere la parte preliminare con la numerazione delle pagine in maiuscoletto vero, di avere le righe dell’indice relativi ai capitoli i nero maiuscolo ridotto di corpo; mi permette di avere i riferimenti incrociati alle pagine in numeri romani in modo corretto senza l’errore di “missing \begin{document}”.
Per gli indici analitici per essere sicuro ho sempre scritto l’argomento del comando \index con l’appendice |textsc, che è la sintassi giusta per per i numeri di pagina in maiuscoletto medio, tanto i numeri del maiuscoletto e quelli del tondo sono gli stessi (nel senso che vengono da font diversi, ma hanno la stessa forma).
Naturalmente usando il linguaggio L3 si potrebbe fare di meglio, ma per imbracciare quel fucile di precisione bisogna avere il porto d’armi che io non ho. Però bisogna sporcarsi le mani — non conosco nessun pacchetto che faccia tutte queste cose, comprese quelle delicate per mettere a posto questa insufficienza di comandi appositi e questa limitazione sui font di forma maiuscoletta, ma dotati solo della serie media, che non dispongono né di neretto né di “corsivo/inclinato”, tanto meno del corsivo nero.
😉
-
3 Ottobre 2013 alle 2:40 #89336::
Elrond” post=88849
ma non l’avevi già chiesto?Sbaglierò, ma mi pare che il problema sia completamente diverso: in precedenza avevo chiesto come ottenere nel frontmatter i numeri romani in maiuscoletto e non in minuscolo. Qui invece mi vanno benissimo i numeri romani in minuscolo, e vorrei solo far funzionare quel codice.
Insisto: il codice, esattamente come l’ho scritto, \emph{funzionava perfettamente} con la MacTeX 2012, ma ora che ho aggiornato non funziona più.
-
3 Ottobre 2013 alle 2:45 #89337::
Elrond” post=88849Babel polutonigreek sembra dia fastidio
Bravo. Ho provato, se elimino “pulutonikogreek” il codice funziona perfettamente.
Il motivo per cui scrivere nel testo una parola in greco antico influenzi la composizione della bibliografia finale (interamente in italiano!) è uno di quegli arcani misteri di LaTeX che mi gettano nello sconforto…
Soluzioni?
(L’esempio che ho proposto non contiene parole greche, ma il mio libro sì e quindi non posso rinunciare a “polutonikogreek”).
-
3 Ottobre 2013 alle 2:53 #89338::
P.S. Ho appena visto che se lascio “polutonikogreek” in babel e tolgo “backref” da biblatex, tutto funziona. Insomma, pare ci sia un conflitto tra “polutonikogreek” di babel e “backref” di biblatex (che per me è come dire che c’è un conflitto tra il mio spremiagrumi e la chiusura della lampo dei mie jeans… mah!).Ovviamente, in mancanza di altre soluzioni, rinuncerò ad avere i riferimenti finali nella bibliografia… ma preferirei averli: li trovo molto comodi, e poi con la “vecchia” versione li avevo!!
P.S. Ho provato a mettere le due soluzioni proposte da OldClaudio, ma l’errore si ripresenta.
-
3 Ottobre 2013 alle 8:25 #89339::
Non direi che le due cose siano slegate come lo spremiagrumi e i jeans.Il file per il greco sta dando diversi piccoli fastidi e uno di questi è quello che lamenti, la la colpa è tutta di hyperref e, volendo è di backref. Le ancore e i bersagli di hyperref richiedono quel particolare argomento del label e quel dannato \textlatin dà fastidio; ora la soluzione che ti avevo inviato ieri era quella che mi permetteva di liberarmi di quel fastidio quando facevo riferimento a pagine della front matter, e quindi quando hyperref doveva gestire l’ancora e il target da usare. è chiaro che la backref agisce sostanzialmente nello stesso modo. ma le mie macro servivano per inserire anche i maiuscoletti nei vari punti odve servivano; per tes la cosa non serve, ma devi liberarti di quel \textlatin e il trucco sporco che ho indicato lo fa benissimo.
Purtroppo il greco deve inserire quel comando proprio per quando ci sono le pagine in maiuscoletto, altrimenti se la pagina viene emessa quando è in vigore il greco, invece di lxvii in latino minuscolo, otterresti λξιι (senza il corrispondente della v, che con la codifica LGR è un carattere invisibile).
Vedi quindi che le cose sono legate.
Siccome non uso mai backref, non ho idea di come sia implementato, quindi non ho idea di come modificare le macro di servizio a cui huperref fa riferimento per gestire la questione.
Esiste un altro modo per scrivere qualche parola isolata in greco: basta usare i font greci senza cambiare lingua; fra le opzioni di fontenc metti anche LGR, (non in ultima posizione, che diventerebbe quella di default) poi ti definisci un comando per scrivere in greco specificandone il font, o meglio la codifica ([tt]\fontencoding{LGR}\selectfont[/tt; e poi mettendoci l’argomento che inserirai sotto forma di greco traslitterato in lettere latine come al solito; se usi font particolari, specifica anche la famiglia dei font greci, non solo la codifica. Capisco che così si tratta di scopra la spazzatura sotto il tappeto, ma di solito funziona, anche se la sillabazione, se occorresse, non viene bene.
-
3 Ottobre 2013 alle 8:30 #89340::
In ogni caso, se le cose stanno come ho detto, ovvero se l’opzione “polutonikogreek” di babel entra in conflitto con “backref” di biblatex, non è una buona cosa: in un documento umanistico, infatti, capita spesso di scrivere in greco, e si hanno esigenze bibliografiche sofisticate per cui biblatex è consigliato.
-
3 Ottobre 2013 alle 8:37 #89341::
OldClaudio” post=88862Vedi quindi che le cose sono legate.
A un livello TeXnico, sicuramente.
Ma mettiti nelle mani di un povero utente umanista, che ha la sua brava bibliografia (scritta in italiano), desidera i riferimenti finali, e gli tocca scrivere qualche parola in greco nel suo documento. Al che noi gli diciamo: “spiacente: o rinunci al greco e hai i tuoi riferimenti finali, o hai i riferimenti ma niente greco (a meno di non fare i contorsionismi)”.
Non va bene. Si tratta di un bug piuttosto rilevante, a mio giudizio. Qui infatti non si tratta di un conflitto come quello tra teubner e amsmath, che non verranno usati insieme praticamente mai, ma tra il greco antico e biblatex, che invece verranno usati quasi sempre dagli utenti umanisti.
Che dici, Claudio, segnali tu questo bug?
Intanto, nell’attesa che venga risolto, rinuncio a backref. Ovviamente incantesimi per mettere una pezza alla cosa sono più che benvenuti!
Grazie mille,
L.
-
3 Ottobre 2013 alle 12:35 #89342::
lorenzo.pantieri” post=88865
Vedi quindi che le cose sono legate.
A un livello TeXnico, sicuramente.
Ma mettiti nelle mani di un povero utente umanista, che ha la sua brava bibliografia (scritta in italiano), desidera i riferimenti finali, e gli tocca scrivere qualche parola in greco nel suo documento. Al che noi gli diciamo: “spiacente: o rinunci al greco e hai i tuoi riferimenti finali, o hai i riferimenti ma niente greco (a meno di non fare i contorsionismi)”.
Non va bene. Si tratta di un bug piuttosto rilevante, a mio giudizio. Qui infatti non si tratta di un conflitto come quello tra teubner e amsmath, che non verranno usati insieme praticamente mai, ma tra il greco antico e biblatex, che invece verranno usati quasi sempre dagli utenti umanisti.
Che dici, Claudio, segnali tu questo bug?
Intanto, nell’attesa che venga risolto, rinuncio a backref. Ovviamente incantesimi per mettere una pezza alla cosa sono più che benvenuti!
Grazie mille,
L.Ho fatto qualche prova. Non me ne intendo, ma da quanto ho potuto vedere, il problema è quel [tt]\frontmatter[/tt].
Questo codice:
`\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[polutonikogreek,english,italian]{babel}\usepackage[style=philosophy-modern,hyperref,backref,natbib,backend=biber]{biblatex}
\usepackage[babel]{csquotes}
\addbibresource{Biblio.bib}\usepackage{hyperref}
\begin{document}
%\frontmatter
Testo in italiano.
La prossima parola è in greco: \textgreek{ψιαο}.
\cite{guerri:italiani}
\mainmatter
\cite{valentini:confessionale}
\printbibliography
\end{document}`
ripulito dai fronzoli di classicthesis e degli incantesimi vari, funziona sempre, e il greco non dà nessun tipo di problema. Funziona anche se metto la riga in cui si carica classicthesis. Funziona anche con l’opzione [tt]backref[/tt], ovviamente. Funziona anche con le classi della suite KOMA-Script.Se metto [tt]\frontmatter[/tt] accade questo: la prima compilazione va bene, la seconda si blocca con quell’errore. Probabilmente durante la prima compilazione viene scritto qualcosa che non va in qualche file ausiliario. Si può risolvere la faccenda eliminando i file ausiliari prima di ogni compilazione, ma non è questa la strada.
Almeno, però, Lorenzo non deve rinunciare a [tt]backref[/tt] 🙂
L’unica cosa a cui deve rinunciare, datemene atto, è la codifica Applemac.
Ciao
Tommaso
-
3 Ottobre 2013 alle 14:19 #89343::
Confermo che io ho problemi con [tt]\frontmatter[/tt]. Questo codice, preso di peso da quello di Lorenzo, al quale ho semplicemente sostituito la codifica, funziona perfettamente e sempre senza [tt]\frontmatter[/tt], mentre mettendocelo devo eliminare i file ausiliari ogni volta.`% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode\documentclass[10pt,a4paper,twoside,openright,titlepage,%
headinclude,footinclude,BCOR5mm,%
cleardoublepage=empty]{scrbook}\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[polutonikogreek,english,italian]{babel}
\usepackage[italian]{varioref}
\usepackage[style=philosophy-modern,hyperref,backref,natbib]{biblatex}
\usepackage[babel]{csquotes}
\usepackage{indentfirst}
\usepackage{graphicx}
\usepackage{chngpage,calc}
\usepackage{makeidx,multicol}
\usepackage[font=small]{quoting}
\usepackage[dvipsnames]{xcolor}
\usepackage{fixltx2e,relsize}
\usepackage{wasysym,pifont}
\usepackage[pdfspacing,beramono,eulerchapternumbers,parts]{classicthesis}
\usepackage{bookmark}\addbibresource{Biblio.bib}
\defbibheading{bibliography}{%
\cleardoublepage
\manualmark
\phantomsection
\addcontentsline{toc}{chapter}{\tocEntry{\bibname}}
\chapter*{\bibname\markboth{\spacedlowsmallcaps{\bibname}}
{\spacedlowsmallcaps{\bibname}}}}\DeclareCiteCommand{\citeyearpar}[\mkbibparens]
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\printtext[bibhyperref]{\printfield{year}}}
{\multicitedelim}
{\usebibmacro{postnote}}\makeatletter
\DeclareCiteCommand{\citetalias}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\bibhyperref{\@citealias{\thefield{entrykey}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\makeatother\appto\biburlsetup{\Urlmuskip=0mu plus 3mu\relax}
\begin{document}
\frontmatter
Testo in italiano.
La prossima parola è in greco politonico: \textgreek{φιλοσοφία}.
\cite{guerri:italiani}
\mainmatter
\cite{valentini:confessionale}
\printbibliography
\end{document}`
Ciao
Tommaso
-
3 Ottobre 2013 alle 14:55 #89344::
Sì, Tommaso, e credevo di averlo spiegato; il problema nasce dai numeri romani nella numerazione delle pagine quando è in vigore la dichiarazione \frontmatter che richiede al greco di inserire \textlatin per non avere, talvolta, i numeri delle pagine in lettere greche invece che in lettere latine.
Ora Lorenzo ha spiegato che non rinuncerebbe alla frontmatter con le pagine numerate con numeri romani minuscoli (o maiuscoletti o maiuscoli); quindi la tua soluzione va benissimo, ma non è quello che Lorenzo vuole fare.
Ho spiegato come fare per scrivere parole isolate o frasi brevissime in greco, senza invocare la lingua greca che interferisce con i numeri romani. Ho spiegato come ho fatto io in un caso diverso da quello di Lorenzo per liberarmi di quel \textlatin. Ma ha ragione Lorenzo che bisogna segnalare il bug.
@Lorenzo: ci penso io.Ciao
Claudio
-
3 Ottobre 2013 alle 16:44 #89345::
Con suftesi questo baco non c’è :D, perché \frontmatter non produce i numeri di pagina in cifre romane.
A mio modesto parere, la numerazione romana al giorno d’oggi è solo un vezzo.
Nei pdf che si consultano su monitor, poi, è anche dannosa.
Volendo forzare la cosa, avrebbe ancora senso in un testo stampato,
per distinguere il materiale principale, la vera opera dell’autore,
da tutto il resto. Questa necessità nasce però da un presupposto sbagliato,
ovvero che un testo si misuri dalla mole. Purtroppo questo presupposto
è anche alla base della valutazione dei prodotti della ricerca accademica (almeno in campo umanistico).
Ecco infatti che in quel caso la numerazione romana è deprecata proprio perché fa apparire il testo più breve.
In fondo chi valuta la mole di un libro guarda il numero dell’ultima pagina, o no?Ciao
Ivan
-
3 Ottobre 2013 alle 17:18 #89346::
Il problema è sottile, ma risolvibile almeno con una pezza temporanea: aggiungi prima dell’ultimo [tt]\makeatother[/tt]
`\let\original@abx@aux@backref\abx@aux@backref
\def\abx@aux@backref#1#2#3#4#5{%
\begingroup\let\textlatin\@firstofone
\edef\x{\endgroup
\noexpand\original@abx@aux@backref{#1}{#2}{#3}{#4}{#5}}\x}`Ciao
Enrico
-
3 Ottobre 2013 alle 17:35 #89347
-
3 Ottobre 2013 alle 20:50 #89348::
egreg9″ post=88877Il problema è sottile, ma risolvibile almeno con una pezza temporanea: aggiungi prima dell’ultimo [tt]\makeatother[/tt]
`\let\original@abx@aux@backref\abx@aux@backref
\def\abx@aux@backref#1#2#3#4#5{%
\begingroup\let\textlatin\@firstofone
\edef\x{\endgroup
\noexpand\original@abx@aux@backref{#1}{#2}{#3}{#4}{#5}}\x}`Ciao
EnricoEccellente! ottima soluzione; se la vuoi chiamare pezza temporanea, ne sei l’autore e quindi sei padrone di chiamarla come vuoi, ma questo è un capolavoro d’artista.
Questo però significa che la pezza/correzione dovrebbe essere introdotta non nel file per il greco ma in biblatex o in hyperref.
-
3 Ottobre 2013 alle 21:49 #89349::
OldClaudio” post=88882
Il problema è sottile, ma risolvibile almeno con una pezza temporanea: aggiungi prima dell’ultimo [tt]\makeatother[/tt]
`\let\original@abx@aux@backref\abx@aux@backref
\def\abx@aux@backref#1#2#3#4#5{%
\begingroup\let\textlatin\@firstofone
\edef\x{\endgroup
\noexpand\original@abx@aux@backref{#1}{#2}{#3}{#4}{#5}}\x}`Ciao
EnricoEccellente! ottima soluzione; se la vuoi chiamare pezza temporanea, ne sei l’autore e quindi sei padrone di chiamarla come vuoi, ma questo è un capolavoro d’artista.
Questo però significa che la pezza/correzione dovrebbe essere introdotta non nel file per il greco ma in biblatex o in hyperref.
Il problema è molto sottile, perché non si può eliminare [tt]\textlatin[/tt] al momento del comando [tt]\write[/tt] per la scrittura del file .aux, in quanto proviene da [tt]\thepage[/tt] che deve essere espanso solo durante [tt]\shipout[/tt]. Quindi un [tt]\let\textlatin\@firstofone[/tt] nel secondo argomento di [tt]\protected@write[/tt] (che si usa per neutralizzare comandi “pericolosi” o indesiderati) non serve a niente.
Il problema fondamentale è capire come [tt]\abx@aux@backref[/tt] adopera il suo quarto argomento, dove c’è il numero di pagina effettivo, quello in cui finisce [tt]\textlatin[/tt]. Il motivo per il quale avviene l’errore mi è chiaro, non so se nel caso in cui il documento è in greco l’eliminazione di [tt]\textlatin[/tt] sarebbe dannosa.
Ciao
Enrico
-
4 Ottobre 2013 alle 2:12 #89350::
OldClaudio” post=88874Ora Lorenzo ha spiegato che non rinuncerebbe alla frontmatter con le pagine numerate con numeri romani minuscoli (o maiuscoletti o maiuscoli); quindi la tua soluzione va benissimo, ma non è quello che Lorenzo vuole fare.
Il problema non è solo quello che voglio fare io: \frontmatter è un comando standard, non è un mio comando personale! Quindi l’incompatibilità tra \frontmatter, biblatex e babel è un problema oggettivo, un bug.
La soluzione di Enrico è quasi perfetta. Infatti con il suo codice i riferimenti finali vengono bene, ma la numerazione delle parti nell’indice generale è in numeri minuscoli (i, ii, iii) e non maiuscoli (I, II, III). Senza il codice di Enrico questo effetto collaterale non c’è.
Grazie a tutti,
Lorenzo
-
4 Ottobre 2013 alle 4:02 #89351::
Elrond” post=88878
Nei pdf che si consultano su monitor, poi, è anche dannosa.
Perché?
Perché il contatore delle pagine del visualizzatore pdf non è coerente con la pagina visualizzata.
Chi consulta spesso testi “antichi” in pdf, ovvero semplici scansioni dell’originale, si imbatte di frequente in questo problema.
Vai alla pagina dell’indice e scopri che c’è una sezione che ti interessa e che questa sezione è a pagina 135.
Quindi scrivi 135 e premi invio e ti trovi di fronte la pagina 102. Perché, naturalmente, quella non è la pagina con il numero 135,
ma semplicemente la centotrentacinquesima pagina del pdf, in quanto ci sono all’inizio 33 pagine con numeri romani.Ciao
Ivan
-
4 Ottobre 2013 alle 4:24 #89352::
ivan” post=88890
[quote=”ivan” post=88876]Nei pdf che si consultano su monitor, poi, è anche dannosa.
Perché?
Perché il contatore delle pagine del visualizzatore pdf non è coerente con la pagina visualizzata.
Chi consulta spesso testi “antichi” in pdf, ovvero semplici scansioni dell’originale, si imbatte di frequente in questo problema.
Vai alla pagina dell’indice e scopri che c’è una sezione che ti interessa e che questa sezione è a pagina 135.
Quindi scrivi 135 e premi invio e ti trovi di fronte la pagina 102. Perché, naturalmente, quella non è la pagina con il numero 135,
ma semplicemente la centotrentacinquesima pagina del pdf, in quanto ci sono all’inizio 33 pagine con numeri romani.Ciao
Ivan[/quote]
Mi hai preceduto di poco. La cosa è particolarmente fastidiosa quando devi stampare. Bisogna fare sempre una sottrazione prima di autorizzare la stampa.Ciao
Tommaso
-
4 Ottobre 2013 alle 4:42 #89353::
ivan” post=88890
[quote=”ivan” post=88876]Nei pdf che si consultano su monitor, poi, è anche dannosa.
Perché?
Perché il contatore delle pagine del visualizzatore pdf non è coerente con la pagina visualizzata.
Chi consulta spesso testi “antichi” in pdf, ovvero semplici scansioni dell’originale, si imbatte di frequente in questo problema.
Vai alla pagina dell’indice e scopri che c’è una sezione che ti interessa e che questa sezione è a pagina 135.
Quindi scrivi 135 e premi invio e ti trovi di fronte la pagina 102. Perché, naturalmente, quella non è la pagina con il numero 135,
ma semplicemente la centotrentacinquesima pagina del pdf, in quanto ci sono all’inizio 33 pagine con numeri romani.Ciao
Ivan[/quote]
Forse succede con Adobe Reader, invece con Evince e Okular (sono i visualizzatori che uso io, ma magari anche altri hanno questa caratteristica) se chiedi di andare a pagina 135 ti manda a pagina 135 del documento, non alla 135esima pagina del file.illinguista1972″ post=88892Mi hai preceduto di poco. La cosa è particolarmente fastidiosa quando devi stampare. Bisogna fare sempre una sottrazione prima di autorizzare la stampa.
Ciao
TommasoEvince e Okular mostrano accanto al numero di pagina del documento anche il numero della pagina del file, che è quella utilizzata per la stampa, basta guardare quel numero senza dover fare sottrazioni
-
4 Ottobre 2013 alle 5:13 #89354::
Elrond” post=88893
[quote=”Elrond” post=88878][quote=”ivan” post=88876]Nei pdf che si consultano su monitor, poi, è anche dannosa.
Perché?
Perché il contatore delle pagine del visualizzatore pdf non è coerente con la pagina visualizzata.
Chi consulta spesso testi “antichi” in pdf, ovvero semplici scansioni dell’originale, si imbatte di frequente in questo problema.
Vai alla pagina dell’indice e scopri che c’è una sezione che ti interessa e che questa sezione è a pagina 135.
Quindi scrivi 135 e premi invio e ti trovi di fronte la pagina 102. Perché, naturalmente, quella non è la pagina con il numero 135,
ma semplicemente la centotrentacinquesima pagina del pdf, in quanto ci sono all’inizio 33 pagine con numeri romani.Ciao
Ivan[/quote]
Forse succede con Adobe Reader, invece con Evince e Okular (sono i visualizzatori che uso io, ma magari anche altri hanno questa caratteristica) se chiedi di andare a pagina 135 ti manda a pagina 135 del documento, non alla 135esima pagina del file.illinguista1972″ post=88892Mi hai preceduto di poco. La cosa è particolarmente fastidiosa quando devi stampare. Bisogna fare sempre una sottrazione prima di autorizzare la stampa.
Ciao
TommasoEvince e Okular mostrano accanto al numero di pagina del documento anche il numero della pagina del file, che è quella utilizzata per la stampa, basta guardare quel numero senza dover fare sottrazioni[/quote]
Sono sicuro che è così. Rimane il fatto, secondo la mia opinione, che i numeri romani oggi non servono più e sono solo un vezzo anacronistico. Poi, chi li vuole usare, li usi. LaTeX permette di farlo.Ciao
Tommaso
-
4 Ottobre 2013 alle 5:20 #89355::
Il problema è molto sottile, perché non si può eliminare \textlatin al momento del comando \write per la scrittura del file .aux, in quanto proviene da \thepage che deve essere espanso solo durante \shipout. Quindi un \let\textlatin\@firstofone nel secondo argomento di \protected@write (che si usa per neutralizzare comandi “pericolosi” o indesiderati) non serve a niente.
Il problema fondamentale è capire come \abx@aux@backref adopera il suo quarto argomento, dove c’è il numero di pagina effettivo, quello in cui finisce \textlatin. Il motivo per il quale avviene l’errore mi è chiaro, non so se nel caso in cui il documento è in greco l’eliminazione di \textlatin sarebbe dannosa.
Non c’è dubbio che il problema sia sottile, infatti \abx@aux@backref viene reso equivalente a \blx@aux@backref se è stata espressa a biblatex l’opzione backref; e viene reso equivalente ad altre cose in altre circostanze.
Tuttavia mi pare che \blx@aux@backref usi il suo quarto argomento (quello che contiene \textlatin e il numero romano) per aggiungerlo ad una lista di prefissi, e usi il quinto, che contiene il valore numerico del contatore \c@page, per fare una somma aritmetica.Solo che è difficilissimo (per me) capire come agisca il gioco di rendere \abx@aux@backref equivalente a cose diverse in momenti diversi; però il tuo patch funziona benissimo; quindi mi pare la soluzione giusta, almeno per il momento. Certo ci vorrebbe un minimo di coordinamento fra Günter Milde e Philip Lehman.
Ciao
Claudio
-
4 Ottobre 2013 alle 6:33 #89356::
OldClaudio” post=88895
[…]
Certo ci vorrebbe un minimo di coordinamento fra Günter Milde e Philip Lehman.Da qualche anno, purtroppo, non si hanno notizie di Philipp Lehman. 🙁 Lo sviluppo di biblatex è opera di Philip Kime, Audrey Boruvka e Joseph Wright.
Il quarto argomento è aggiunto a una lista, purché non sia già inserito (nel caso di due citazioni nella stessa pagina). Purtroppo il test per la duplicazione usa [tt]\ifinlistcs[/tt] che si appoggia a un meccanismo di macro con argomenti delimitati che pare non funzionare nel caso specifico.
Con il greco come lingua principale non funziona; a parte che occorrerebbe definire la traduzione corrispondente a backrefpage, i riferimenti a ciò che c’è nel frontmatter sono in forma greca, cioè invece di una “i” appare una “iota”.
Ciao
Enrico
-
4 Ottobre 2013 alle 10:48 #89357::
OldClaudio” post=88874
@Lorenzo: ci penso io.Grazie mille, Claudio. Bisognerebbe che la magia di Enrico (che ringrazio: funziona perfettamente) venisse integrata direttamente in babel o in biblatex o in hyperref.
Che poi sia opportuno o no usare i numeri romani di pagina è un altro discorso, su cui si può discutere all’infinito: sta di fatto che \frontmatter, che è un comando standard di LaTeX (non mio personale), produce quella numerazione. Inoltre i pacchetti babel, biblatex e hyperref (i “responsabili” del problema, da quanto ho capito) sono molto diffusi e sono spesso usati insieme.
Insomma, il bug che ho segnalato va corretto.
Grazie a tutti.
-
4 Ottobre 2013 alle 15:05 #89358
-
4 Ottobre 2013 alle 16:36 #89359::
illinguista1972″ post=88916
[…]
sta di fatto che \frontmatter, che è un comando standard di LaTeX (non mio personale), produce quella numerazione.Che vuoi dire?
Voglio dire che il problema nasce dall’uso combinato di \frontmatter (che nella classe book dà pagine numerate con numeri romani minuscoli), dell’opzione polutonikogreek di balel e dell’opzione backref di biblatex: l’utente, se lo desidera, deve poter usare queste cose senza incappare in fastidiosi bug.
-
5 Ottobre 2013 alle 6:42 #89360::
Lorenzo, come hai visto le modifiche al greco sono numerose; per la verità il comando \textlatin nella numerazione delle paigne, nelle testaine, c’era anche prima, ma forse vienva realizzato in modo diverso. Ora però, per il tuo problema di scrivere qualche parola isolata in greco, non hai biaosogno dell’intero armamentario epr il greco, politonico o normale non è importante;Non specificare fra le lingue polutonikogreek; sia perché caso mai (oggi) devi usare greek e poi specificare che vuoi l’attributo politonico, altrimenti quendo vuoi scrivere in greco docresti sempre usare il nome polutonikogreek e non semplicemente greek; anche nei comandi che eventualmente ti sei definito da solo; questo è quanto si legge nella nuova documentazione del greco con texdoc greek.
Ma leggendo accuratamente la documentazione, si scpre che ci sono altri file da usare per la composizione in greco; in particolare, senza invocare la lingua greca, puoi caricare il pacchetto textalpha; nella cartella doc/latex/greek-encoding c’è non solo il file textalpha.pdf con la sua documentazione, ma anche con il suo sorgente; c’è anche textalpha-test.pdf con il suo sorgente; dalla lettura di questo sorgente si vede bene come usare il nuovo comando [tt]\ensuregreek[/tt] che consente la traslitterazione latina che già stai usando, e usa il font greco con tute le sue “meravigliose” legature e i suoi “meravigliosi” accostamenti con qualunque font greco codificato LGR (quindi non solo i CBfonts, ma gli artemisia, i didot, i porson, ti tsfontsb, eccetera), usando i CB di default, oppre gli altri se ne chiami i rispettivi pacchetti. e tutto questo senza invocare la lingua greca, e quindi senza incorrere nei fastidi che ti ha dato backref.
E tutto questo è ufficiale, quindi non c’è da arrampicarsi sui vetri con toppe di vario genere, che tu giustamente stigmatizzi, e anche se Enrico crea delle toppe meravigliose.
Il problema effettivamente resta; Günter Milde lo sa, e sa anche che quel \textlatin può dare problemi quando la macro deve venire sviluppata. Invece è impossibile comunicare con il manutentore di biblatex, se non attraverso sourceforge e l’apposita pagina di segnalazioni di bug e feature requests, al quale si può accedere solo iscrivendosi; io sono contrario a queste iscrizioni, e non lo faccio.
Ciao
Claudio
-
5 Ottobre 2013 alle 7:01 #89361::
OldClaudio” post=88930Invece è impossibile comunicare con il manutentore di biblatex, se non attraverso sourceforge e l’apposita pagina di segnalazioni di bug e feature requests, al quale si può accedere solo iscrivendosi; io sono contrario a queste iscrizioni, e non lo faccio.
Da quando Philip Kime & Co. hanno preso in mano lo sviluppo di biblatex l’hanno trasferito su Github: https://github.com/plk/biblatex A me piacciono le pagine di segnalazione dei bug pubbliche, permettono di seguire l’evoluzione dei programmi. Capisco però che qualcuno possa non avere voglia di iscriversi a tutti i siti simili, ma qualcuno (come SourceForge) usa l’OpenID proprio per evitare problemi simili. Qualche altro sito permette anche di inviare segnalazioni di bug anche via email (su Github sicuramente si può rispondere via email a una discussione, non ho però mai verificato se sia possibile aprire una segnalazione via email)
-
5 Ottobre 2013 alle 15:08 #89362::
Elrond” post=88893Forse succede con Adobe Reader, invece con Evince e Okular (sono i visualizzatori che uso io, ma magari anche altri hanno questa caratteristica) se chiedi di andare a pagina 135 ti manda a pagina 135 del documento, non alla 135esima pagina del file.
Rettifico: Adobe Reader (almeno la versione su cui ho almeno svolto le prove) si comporta come sopra descritto.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.