- Questo topic ha 9 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 12 anni, 7 mesi fa da
OldClaudio.
-
CreatoreTopic
-
29 Gennaio 2014 alle 8:58 #91979::
`\documentclass[greekfont=porson]{suftesi}\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[polutonikogreek,italian]{babel}\begin{document}
\textgreek{sken'e}
\foreignlanguage{greek}{sken'e}
\end{document}
`
Come noterete, il comando \foreignlanguage non modifica il font impostato con l’opzione di classe (stessa cosa per greekfont=cbgreek).
Ciò è dovuto, credo, al fatto che l’ultima versione di babel ha modificato parecchie cose, soprattutto riguardo al greco.Qualcuno sa spiegarmi cosa è successo?
Ciao
Ivan
-
CreatoreTopic
-
AutoreRisposte
-
-
29 Gennaio 2014 alle 9:29 #91980::
Ivan, vai nella cartella texmf-distr/doc/latex/greek-fontenc e apri il file alphabeta-text.texQuesto file ad un certo punto contiene le righe:` \usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage{textcomp}
% \usepackage{lmodern}
% \usepackage{gfsdidot}
% \usepackage{kerkis}
\usepackage{newtxtext,newtxmath}
\usepackage{substitutefont}
\substitutefont{LGR}{\rmdefault}{artemisia}
\usepackage{isomath}`
Come vedi ci sono righe commentate per eseguire collaudi con altri font e in particolare per il greco, invece dei cbfonts viene usato artemisia; ma puoi tranquillamente cambaire quello che ti pare, provando ad usare, invece dei netxtext e newtxmath che usa Milde, gli altri font corrispondenti ai pacchetti commentati.Quanto precede nel preambolo ti da un’idea di che cosa bisogna fare per usare i font greci codificati LGR con le nuove impostazioni della lingua greca; Nota, in particolare, che i vari font LGR-encoded possono venire usati anche se si sta componendo con XeLaTeX o LuaLaTeX.
Il tutto nasce dal fatto che ora tutte le descrizioni dei font greci e dei loro simboli sono eseguite mediante le loro LICR, cioè mediante la LaTeX Internal Character Representation, in modo da poter disgiungere i caratteri greci da una possibile transcodifica in lettere latine, sempre possibile con pdfLaTeX, ma fastidiosa quando di può introdurre il greco direttamente da tastiera. In particolare ora non sono più necessari i pacchetti ucs e utf8x.Nota poi che il file che ti ho indicato no chiama nemmeno la lingua greca, ma specifica solamente la sua codifica; giusto per segnalare che i font LGR-encoded possono essere usati quando si vuole per scrive una parola o un simbolo greco, me non si desidera scrivere testo greco con parole prefissate, la cesura in fin di riga e le altre funzionalità della descrizione della lingua greca.
Ciao
Claudio
-
29 Gennaio 2014 alle 12:20 #91981::
Grazie Claudio!
Mi pare che ora la situzione per il greco si sia semplificata.
Al posto di
`
\AtBeginDocument{
\DeclareRobustCommand{\greektext}{%
\usefont{LGR}{\SUF@greekfamily}{\f@series}{\f@shape}}%
\DeclareTextFontCommand{\textgreek}{\greektext}
}`
è sufficiente
`\RequirePackage{substitutefont}
\substitutefont{LGR}{\rmdefault}{\SUF@greekfamily}
`Pare non ci sia bisogno di \AtBeginDocument…
Faccio dei test e poi carico la nuova versione di suftesi su CTAN.Ciao
Ivan
-
30 Gennaio 2014 alle 7:41 #91982::
Mah…
Ivan, vacci paino.Con \SUF@greekfamily indichi quale font greco vuoi usare per scrivere in greco. D’accordo; il vecchio comando ridefiniva la famiglia greca da usare quando eseguiva lo statement [tt]\begin{document}[/tt]; la definizione era globale e funzionava se avevi precedentemente caricato il pacchetto corrispondente ad Artemisia o a Porson, e di default venivano usati i CBfonts; questo pacchetto fa leggere al programma il file [tt]lgrartemisia.fd[/tt] oppure [tt]lgrporson.fd[/tt] che contengono le definzione delle rispettive famiglie, serie, forme, font sostitutivi e compagnia.
Invece \substitute font CREA senza registralo su disco le definizioni, i comandi, e quant’altro che sono contenuti normalmente nei file .fd, associando, quindi la famiglia greca che hai scelto alla famiglia latina che hai scelto. Non sono la stessa cosa, è vero, ma fanno anche cose diverse.
Verifica con attenzione che questi due statement che vorresti usare in sostituzione dei precedenti quattro, ottieni davvero quello che volevi. I precedenti quattro, secondo me facevano di più, anche se richiedevano un insieme più complicato di azioni. I due nuovi statemet sono più efficienti.
Tanto per provare, vedi se riesci con i due statement a ricompilare al documentazione di suftesi e vedi se i tre esempi di composizione in greco continuano a funzionare insieme nello stesso documento..
Claudio
-
30 Gennaio 2014 alle 22:53 #91983
-
31 Gennaio 2014 alle 7:04 #91984::
Ci do un occhiata.
ClaudioCi ho dato una occhiata e ho scoperto che anche prima delle modifiche di greek.ldf la cosa non poteva funzionare…:shock:
In realtà substitute font è comodo, ma…
Prima usava correttamente i font greci giusti nei tre esempi della documentazione perché vi usavi espressamente la dichiarazione esplicita della famigliadella famiglia, altrimenti, in generale avrebbe usato l’error font che è appunto quello della collezione cbgreek; se invece sostituivi \foreignlanguage{greek} con \textgreek, funzionava bene perché usavi la famiglia greca \SUF$greekfamily correttamante definita con l’opzione greekfont=… fra le opzioni della classe.Se non fai queste cose la cosa non può funzionare, in particolare se usi il font latino di default che è il Palatino. Siccome il passaggio al greco avviene solo cambiando la codicifica, è ed era evidente che se la famiglia latina era T1+pplj, la famiglia greca corrispondente sarebbe lgr+pplj; il file lgrpplj.fd non esiste, e le corrispondenti dichiarazioni non esistono, quindi bisogna crearle. Con il Porsono le ridefinizioni esplicite le hai indicate tu nel file suftesi, ma vanno bene solo per quando si usa la dichiarazione esplicita della classe, non quando il cambio di lingua avviene solo con il cambio della codifica.
In ogni caso occorrono le definizioni per per eseguire l’abbinamento del font latino con quello greco, ma bisogna farle \AtBeginDocument, perché solo allora le varie opzioni della classe sono sicuramente già state elaborate e definite.. Io quindi ti suggerirei di sostituire/modificare un pezzetto delle classe con il codice seguente:
`\RequirePackage[LGR,T1]{fontenc}
\RequirePackage{substitutefont} % <---- aggiunta \AtBeginDocument{\fontencoding{T1}\selectfont} \ifsuftesi@standardfont \RequirePackage{lmodern} \relax \else \RequirePackage[osf,sc]{mathpazo} \RequirePackage[scaled=0.8]{beramono} \renewcommand{\sfdefault}{iwona} \AtBeginDocument{% \substitutefont{LGR}{\rmdefault}{\SUF@greekfamily}% <---- aggiunta \DeclareRobustCommand{\greektext}{% \usefont{LGR}{\SUF@greekfamily}{\f@series}{\f@shape}}% \DeclareTextFontCommand{\textgreek}{\greektext} }` A questo punto mi pare che le cose funzionino correttamente sia con il comando \textgreek sia con il comando \foreignalnguae e gli altri comandi di cambiamento di lingua. Forse ci vorrebbero anche cambiamenti annaloghi per la famiglia sans serif, ma non è difficile aggiungerli; dubito che sia necessario aggiungerli per la famiglia tt. Ho provato queste due piccole modifiche con il file seguente:`% !TEX TS-program = pdflatex % !TEX encoding = UTF-8 Unicode \documentclass[documentstructure=article% %,greekfont=porson% %,greekfont=cbgreek% ]{suftesi} \usepackage[utf8]{inputenc} \usepackage[greek.polutoniko,italian]{babel} \begin{document} \foreignlanguage{greek}{% %\fontfamily{porson}\selectfont %\textgreek{% T`o g`ar kal`on >en meg'ejei ka`i t'axei >est'in.}~Il bello infatti
sta nella grandezza e nell'ordinata disposizione delle parti.\end{document}`
Mettendo, spostando o togliendo i segni di commento puoi provare le varie configurazioni per il greco.
-
31 Gennaio 2014 alle 18:20 #91985::
Considerato che la definizione di \greektext in babel-greek è\DeclareRobustCommand{\greektext}{%
\fontencoding{LGR}\selectfont
\def\encodingdefault{LGR}}Perché nella ridefinizione si sceglie di omettere
\def\encodingdefault{LGR}
?
Inoltre, perché usare
\DeclareTextFontCommand{\textgreek}{\greektext}
quando abbiamo già, sempre in babel-greek
\DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}}
?
Sono alternativi? È meglio il primo?Ciao
Ivan
-
31 Gennaio 2014 alle 22:07 #91986::
ivan” post=91600Considerato che la definizione di \greektext in babel-greek è
\DeclareRobustCommand{\greektext}{%
\fontencoding{LGR}\selectfont
\def\encodingdefault{LGR}}Perché nella ridefinizione si sceglie di omettere
\def\encodingdefault{LGR}
?
La definizione di \greektext imposta nche l’encoding di default, ma spero che lo faccia in un gruppo, altrimenti tutto il documento, dpo aver specificato quel comando viene composto in greco D’altra parte definsce anche \texlatin, che purtroppo viene inserito di default anche ogni volta che si volgiono i numeri romani; altrimenti le pagine scritte come \romannumeral mentre si sta componendo in greco vengono scritti in greco; Insomma G¨¨nter ha dovuto ricorrere a compromessi.
ivan” post=91600
Inoltre, perché usare\DeclareTextFontCommand{\textgreek}{\greektext}
quando abbiamo già, sempre in babel-greek
\DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}}
?
Sono alternativi? È meglio il primo?Ciao
IvanIl primo è migliore come prestazioni ma forse non è robusto; il secondo è robusto ma non gestisce in automatico la correzione italica che andrebbe inserita a mano, salvo che la maggior parte degli utenti non sa che cosa sia e quei pochi che lo sanno, se ne dimenticano.
Tutti i comandi textit, \textbf, eccetera, quindi anche \textgreek, devono provvedere in automatico alla correzione italica. Le dichiarazioni corrispondenti non possono falo perché non sanno su cosa operano, sono dichiarazioni incondizionate o limitate da un gruppo, i comandi sanno esattamente su cosa lavorano e possono tenerne conto.
-
1 Febbraio 2014 alle 16:21 #91987::
OldClaudio” post=91612
Considerato che la definizione di \greektext in babel-greek è
\DeclareRobustCommand{\greektext}{%
\fontencoding{LGR}\selectfont
\def\encodingdefault{LGR}}Perché nella ridefinizione si sceglie di omettere
[quote]\def\encodingdefault{LGR}?
La definizione di \greektext imposta nche l’encoding di default, ma spero che lo faccia in un gruppo, altrimenti tutto il documento, dpo aver specificato quel comando viene composto in greco D’altra parte definsce anche \texlatin, che purtroppo viene inserito di default anche ogni volta che si volgiono i numeri romani; altrimenti le pagine scritte come \romannumeral mentre si sta componendo in greco vengono scritti in greco; Insomma G¨¨nter ha dovuto ricorrere a compromessi.
ivan” post=91600
Inoltre, perché usare\DeclareTextFontCommand{\textgreek}{\greektext}
quando abbiamo già, sempre in babel-greek
\DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}}
?
Sono alternativi? È meglio il primo?Ciao
IvanIl primo è migliore come prestazioni ma forse non è robusto; il secondo è robusto ma non gestisce in automatico la correzione italica che andrebbe inserita a mano, salvo che la maggior parte degli utenti non sa che cosa sia e quei pochi che lo sanno, se ne dimenticano.
Tutti i comandi textit, \textbf, eccetera, quindi anche \textgreek, devono provvedere in automatico alla correzione italica. Le dichiarazioni corrispondenti non possono falo perché non sanno su cosa operano, sono dichiarazioni incondizionate o limitate da un gruppo, i comandi sanno esattamente su cosa lavorano e possono tenerne conto.[/quote]
Che sia il caso di segnalare la cosa ai responsabuil di babel?
Lo stesso problema si ha anche con \textlatin e, presumo, anche con gli altri \textCiao
Ivan
-
1 Febbraio 2014 alle 21:09 #91988::
Già fatto oggi pomeriggio, ma non ho ancora ricevuto risposte;In compenso prima di segnalare la stranezza di questa ridondanza, mi sono documentato e ho notato che \DeclareTextFontCommand definisce un comando robusto, quindi mi correggo sua quanto avevo scritto in precedenza. Non ha senso definire \textgreel come è stato fatto in greek.ldf.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.