- Questo topic ha 18 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 8 mesi fa da
samiel.
-
CreatoreTopic
-
1 Gennaio 2019 alle 17:58 #115015::
Poiché, dopo un mio errore causa lettura file vecchio, è stato determinato oltre ogni ragionevole dubbio
che OldClaudio è l’attuale mantainer di babel per la lingua italiana,
gli segnalo un problema che ho incontrato e già segnalato su Tex Exchange:
Hyphenation with Babel and Polyglossia
In attesa di aggiornamenti, auguro a tutti buon anno nuovom
-
CreatoreTopic
-
AutoreRisposte
-
-
1 Gennaio 2019 alle 22:07 #115016::
Non mi meraviglio, anche se la gestione dell’apostrofo riguarda più il TeX-hyphen group che non il modulo italian.ldf o gloss-italian.ldf.
Non ho difficoltà ad aggiungere il codice per l’apostrofo anche per la versione di language.ldf per l’uso, secondo me improprio, di babel con xelatex e lualatex.Perché secondo me è improprio? perché potendo usare polyglossia con xelatex e lualatex, sembra volersi far male da soli ad usare un altro pacchetto che soffre dell’eredità della sua nascita agli inizi degli anni 90; ho proposto a Javier Bezos, l’attuale curatore di babel, di trasformarlo in modo che abbia le stesse proprietà di polyglossia, ma mi ha risposto sostanzialmente picche, pur apprezzando l’idea, perché ci sarebbero da rifare quasi tutti i file di descrizione delle lingue, e molti non hanno curatori o o i curatori iniziali sono spariti e nessuno li ha sostituiti..
La questione, secondo me è semplice; aggiornare italian.ldf per adattarlo a {xe|lua}latex richiede una riga di codice; quindi mi propongo di farlo al più presto, ma il mio consiglio rimane quello di usare babel solo quando si lavora con font codificati a 8 bit, e non font unicode codificati con codifiche fino a 4 byte. r
Finora non mi è mai venuto in mente che qualcuno potesse usare babel con xelatex o lualatex e nessuno prima di questo mail mi ha segnalato questo problemino, anche se questi programmi sono in uso da una dozzina di anni; io d’altronde, pur usando xelatex e lualatex non mi sono mai sognato di usare babel predisposto per lavorare con font codificati a 8 bit, con programmi che lavorano con codifiche multibyte.Precisazione: io non sono l’attuale maintainer di babel per la lingua italiana; solo il maintaner del supporto a babel per la lingua italiana; babel è fuori delle mie competenze; il file italian.ldf è quello che ho creato e di cui curo la manutenzione. Non è la stessa cosa. Il mio indirizzo di posta elettronica compare in quel file, non nei file di babel né nella sua documentazione. Scusami queste precisazioni, ma non è una pignoleria; non voglio essere considerato responsabile di cose che non mi competono..
-
2 Gennaio 2019 alle 0:25 #115017::
Il ricorso a babel invece che a polyglossia con XeTeX (non lo avevo mai provato in precedenza)
è dovuto al fatto che polyglossia non applica alcune caratteristiche tipiche degli opentype
relativi alle lingue quando si cambia lingua. Ora, in alcuni font (ad es. il GaramondPremierPro) è presente una sostituzione via locl
(Localized Forms) per cui in italiano e in francese non si ricorre all’apostrofo tradizionale (glifo: [tt]quoteright[/tt]),
ma a un apostrofo con diverso bearing (glifo: [tt]quoteright.fr[/tt]. In un font a cui sto lavorando io ho fatto invece ricorso
a una Contextual Alternate (calt) per francese e italiano legata a un Simple Substitution Lookup.
Compilando con polyglossia la cosa è totalmente ignorata in entrambi i casi proprio per via della localizzazione
(curioso invece che la caratteristica sia rilevata da LibreOffice e stringhe in italiano o in inglese sono trattate adeguatamente)
e si è costretti a ricorrere a babel e \babelfont. Ma in questo caso viene inibita la sillabazione alle parole contenenti un apostrofo.
Solo con babel infatti si può fare uso delle caratteristiche degli opentype relative al linguaggio.
Peccato assai che con polyglossia non si possa fare, visto che queste (calt e locl) sono caratteristiche tipiche degli opentype.m
-
2 Gennaio 2019 alle 6:52 #115018::
@samiel, grazie della spiegazione che però solleva un altro problema.
Il tuo esempio minimo compilabile che hai inviato a Stackexchange fa riferimento a un font che non è quello che usi tu; magari ha lo stesso nome, ma non le stesse caratteristiche.
Ho ripreso il tuo EMC e da me senza assegnare all’apostrofo il codice lccode,, quindi senza sillabazione delle stringhe che lo contengono, babel+italian mi da una formattazione completamente diverse da quella che hi postato su stackexchange.
Ora sto lavorando su italian.ldf e sto incontrando delle difficoltà perché da un file che rappresenta un’opzione per un pacchetto non si possono caricare altri pacchetti, e mi tocca cercare dei trucchi di livello nativo di TeX, di quellli che non si sa mai come inventare e che sono sempre operazioni di dubbia efficacia anche se lì per lì sembrano funzionare.
Ma appena ho sistemato italian.ldf bisogna collaudare con il tuo font modificato, quindi sarà importante che tu lo metta a disposizione per scaricarlo, e con un nome assolutamente diverso da quello standard, altrimenti non c’è collaudo che tenga. Naturalmente io ti metterò a disposizione il file italian.ldf prima di caricarlo su CTAN, così puoi cominciare tu i collaudi.
Resta il fatto che se, anche assegnando il codice lccode al code point “2019 dell’apostrofo standard, babel+italian icontui a funzionare correttamente quando usi pdflatex (ovviamente con font non unicode), si riesce a curare un aspetto che fontspec e polyglossia non riescono a gestire, mi pare un miracolo estremo; in sostanza mi pare di essere di fronte a uno di quei trucchi da McGiver che con un coltellino svizzero riusciva a fare cose inimmaginabili anche con gli strumenti più avanzati.
Se guardi come la sillabazione venga caricata nel file di formato con il codice contenuto in language.dat e language.def, vedi che il codice per gestire la sillabazione per i programmi unicode-aware è diverso da quello per gestire i programmi one-byte-aware. a parte l’apostrofo, la sillabazione dell’italiano è una delle poche, che lo fa con un file che usa solamente caratteri ASCII (a 7 bit).
-
2 Gennaio 2019 alle 7:27 #115019::
Perché tu possa testare il nuovo file italian.ldf ti allego il file di test e il file italian.ldf. Mettili in una cartella a se stante e lavora dentro quella cartella.
Ecco il file di test:`% !TEX TS-program = pdfLaTeX
% !TEX encoding = UTF-8 Unicode
% Test babel+italian.ldf under xelatex, lualatex, pdflatex\documentclass{article}\errorcontextlines=100
\usepackage{iftex}
\ifPDFTeX
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\else
\usepackage{fontspec}
\setmainfont[Ligatures=TeX,Numbers=OldStyle]{Garamond Premier Pro}
\fi
\usepackage[italian]{babel}\begin{document}
%\textbf{Polyglossia}
\textbf{Babel}Lingua \languagename\ sillabazione \the\language
l'avvedutezza avanti l'articolo away ayo abaco l'accidente acerrimo l'adirato aedo
un'affranta afisico afoso l'agone ahhhh l'aiuto ajta alternativa ambedue ancora
annichilire l'aorta l'appurare acqua Aristarco artistica L'albero l'alternativa
l'enfasi l'eccezionalità l'altra l'ircocervo l'Illiria l'omeopatia l'astrattismo atroce
un'automobile avere avicola awak ayno l'azalea l'uguaglianza un'umanità l'abecedario
accolito un'acqua l'addomesticare l'aereoplano affidare l'agone l'aiuto l'assurdo l'abaco
un elemento un'eccezionalità un'inedia un'aorta un'occasione l'Occitania l'allampanato
ampolla annoso l'inutilità l'artatamente l'astrologia l'attenzione autore avanti avventure
away ayo azzardo L'Australia L'Europa l'uguaglianza l'umanità
\end{document}`Ed ecco il nuovo file italian.ldf`%%
%% This is file `italian.ldf',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% italian.dtx (with options: `code')
%%
%% This is a generated file.
%%
%% Copyright (C) 2013 Claudio Beccari.
%%
%% This file is part of the babel-italian bundle release 1.3.
%% ————————————————–
%%
%% It may be distributed under the terms of the LaTeX Project Public
%% License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.3 or, at your option, any later version.
\ProvidesLanguage{italian}
[2019/01/02 v1.4.00 Italian support from the babel system]
%%
%% Please report errors to: claudio dot beccari at gmail dot com
%%\LdfInit{italian}{captionsitalian}%
\ifx\l@italian\@undefined
\@nopatterns{Italian}%
\adddialect\l@italian0\fi
\addto\captionsitalian{%
\def\prefacename{Prefazione}%
\def\refname{Riferimenti bibliografici}%
\def\abstractname{Sommario}%
\def\bibname{Bibliografia}%
\def\chaptername{Capitolo}%
\def\appendixname{Appendice}%
\def\contentsname{Indice}%
\def\listfigurename{Elenco delle figure}%
\def\listtablename{Elenco delle tabelle}%
\def\indexname{Indice analitico}%
\def\figurename{Figura}%
\def\tablename{Tabella}%
\def\partname{Parte}%
\def\enclname{Allegati}%
\def\ccname{e~p.~c.}%
\def\headtoname{Per}%
\def\pagename{Pag.}%
\def\seename{vedi}%
\def\alsoname{vedi anche}%
\def\proofname{Dimostrazione}%
\def\glossaryname{Glossario}%
}%
\def\dateitalian{%
\def\today{\number\day~\ifcase\month\or
gennaio\or febbraio\or marzo\or aprile\or maggio\or giugno\or
luglio\or agosto\or settembre\or ottobre\or novembre\or
dicembre\fi\space \number\year}}%
\providehyphenmins{\CurrentOption}{\tw@\tw@}
\addto\extrasitalian{%
\babel@savevariable\clubpenalty
\babel@savevariable\widowpenalty
\babel@savevariable\@clubpenalty
\clubpenalty3000\widowpenalty3000\@clubpenalty\clubpenalty}%
\addto\extrasitalian{%
\babel@savevariable\finalhyphendemerits
\finalhyphendemerits50000000}%
\ifcsname pdfmatch\endcsname
\addto\extrasitalian{%
\lccode`'=`'}%
\else
\addto\extrasitalian{%
\lccode\string”2019=\string”2019}%
\fi
\addto\noextrasitalian{%
\lccode`'=0}%
\newcount\it@lettering \it@lettering=\@ne
\newcommand*\XXIletters{\it@lettering=\z@}
\newcommand*\XXVIletters{\it@lettering=\@ne}
\let\bbl@alph\@alph \let\bbl@Alph\@Alph
\addto\extrasitalian{\babel@savevariable\it@lettering
\let\@alph\it@alph \let\@Alph\it@Alph}
\addto\noextrasitalian{\let\@alph\bbl@alph\let\@Alph\bbl@Alph}
\def\it@alph#1{%
\ifcase\it@lettering
\ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or
l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or
z\else\@ctrerr\fi
\or
\ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or
j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or
w\or x\or y\or z\else\@ctrerr\fi
\fi}%
\def\it@Alph#1{%
\ifcase\it@lettering
\ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or
L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or
Z\else\@ctrerr\fi
\or
\ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or
J\or K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or
W\or X\or Y\or Z\else\@ctrerr\fi
\fi}%\newcount\it@doublequoteactive \it@doublequoteactive=\z@
\def\setactivedoublequote{\it@doublequoteactive=\@ne}
{\catcode`”=12 \global\let\it@doublequote”}
{\catcode`”=13 \global\let\it@@dqactive”}
\AtBeginDocument{%
\unless\ifnum\it@doublequoteactive=\z@
\initiate@active@char{“}%
\addto\extrasitalian{\bbl@activate{“}\languageshorthands{italian}}%
\declare@shorthand{italian}{“}{%
\ifmmode
\def\it@next{''}%
\else
\def\it@next{\futurelet\it@temp\it@cwm}%
\fi
\it@next
}%
\fi
\ifdefstring{\languagename}{italian}{\selectlanguage{italian}}{\relax}
}%
\def\it@@cwm{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}%
\def\it@@slash{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}%
\def\it@@trattino{\bbl@allowhyphens\discretionary{-}{}{-}\bbl@allowhyphens}%
\def\it@@ocap#1{\it@ocap}\def\it@@ccap#1{\it@ccap}%
\DeclareRobustCommand*{\it@cwm}{\let\it@@next\it@doublequote
\ifcat\noexpand\it@temp a%
\def\it@@next{\it@@cwm}%
\else
\if\noexpand\it@temp \string|%
\def\it@@next{\it@@cwm\@gobble}%
\else
\if\noexpand\it@temp \string<% \def\it@@next{\it@@ocap}% \else \if\noexpand\it@temp \string>%
\def\it@@next{\it@@ccap}%
\else
\if\noexpand\it@temp\string/%
\def\it@@next{\it@@slash\@gobble}%
\else
\ifcat\noexpand\it@temp\noexpand\it@@dqactive
\def\it@@next{“\@gobble}%
\else
\if\noexpand\it@temp\string-%
\def\it@@next{\it@@trattino\@gobble}%
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\it@@next}%
\newcount\it@ISOcompliance \it@ISOcompliance=\z@
\def\setISOcompliance{\it@ISOcompliance=\@ne}
\AtBeginDocument{\unless\ifnum\it@ISOcompliance=\z@%
\def\activate@it@unit{\DeclareRobustCommand*{\bbl@it@unit}[1]{%
\textormath{\,\textup{##1}}{\,\mathrm{##1}}}}
\@ifpackageloaded{units}{}{\@ifpackageloaded{siunitx}{}{%
\@ifpackageloaded{SIunits}{}{%
\activate@it@unit\addto\extrasitalian{%
\babel@save\unit\let\unit\bbl@it@unit}%
}}}\ifcsstring{bbl@main@language}{italian}{\selectlanguage{italian}}{}%
\fi}
\DeclareRobustCommand*{\bbl@it@ap}[1]{%
\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}%
\DeclareRobustCommand*{\bbl@it@ped}[1]{%
\textormath{$_{\mbox{\fontsize\sf@size\z@
\selectfont#1}}$}{_\mathrm{#1}}}%
\addto\extrasitalian{%
\babel@save\ap\let\ap\bbl@it@ap
\babel@save\ped\let\ped\bbl@it@ped
}%
\AtEndOfPackage{\RequirePackage{etoolbox}}
\AtEndOfPackage{\AtEndPreamble{%
\newcommand*\IntelligentComma{\mathcode`\,=\string”8000}% Active comma
\newcommand*\NoIntelligentComma{\mathcode`\,=\string”613B}% Punctuation comma
\@ifpackageloaded{icomma}{\let\IntelligentComma\relax
\let\NoIntelligentComma\relax}{%
\@ifpackageloaded{ncccomma}{\let\IntelligentComma\relax
\let\NoIntelligentComma\relax}{%
\@ifpackageloaded{dcolumn}{\let\IntelligentComma\relax
\let\NoIntelligentComma\relax}{%
\@ifpackageloaded{polyglossia}{%
\ifcsstring{xpg@main@language}{english}{\relax}{%
\mathcode`\,=\string”613B}
}{%
\ifcsstring{languagename}{english}{\relax}{%
\mathcode`\,=\string”613B}
}%
}}}%
}}
\DeclareMathSymbol{\virgola}{\mathpunct}{letters}{“3B}
\DeclareMathSymbol{\virgoladecimale}{\mathord}{letters}{“3B}
\DeclareRobustCommand*\it@comma@def{\futurelet\let@token\@@math@comma}%
{\catcode `,=\active \gdef,{\it@comma@def}}%
\DeclareRobustCommand*\@math@comma{%
\ifcat\noexpand\let@token*%
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi{% \let@token is of category 12
\@math@@comma
}{% test if \let@token is a macro
\ifcat\noexpand\let@token\noexpand\relax
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi{% it is a macro
\@@math@@comma
}{% it is something else.
\virgola
}
}
}
\DeclareRobustCommand*\@math@@comma[1]{% argument is certainly of category 12
\ifcsundef{\expandafter\@gobble\string #1}{% test if it is a real digit
\ifnumless{`#1}{`0}{\virgola}%
{\ifnumgreater{`#1}{`9}{\virgola}%
{\virgoladecimale}}%
}{% it's an implicit character of category 12
\let\@tempVirgola\virgola
\@tfor\@tempCifra:=0123456789\do{%
\expandafter\if\@tempCifra#1\let\@tempVirgola\virgoladecimale
\@break@tfor\fi}\@tempVirgola
}#1}\DeclareRobustCommand*\@@math@@comma[1]{% argument is a macro
\let\@tempVirgola\virgola
\@tfor\@tempCifra:=0123456789\do{%
\if\@tempCifra#1\let\@tempVirgola\virgoladecimale
\@break@tfor\fi}\@tempVirgola#1
}
\AtEndOfPackage{\AtEndPreamble{\let\@@math@comma\@math@comma}}
\def\LtxSymbCaporali{%
\DeclareRobustCommand*{\it@ocap}{\mbox{%
\fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
\ignorespaces}%
\DeclareRobustCommand*{\it@ccap}{\ifdim\lastskip>\z@\unskip\fi
\mbox{%
\fontencoding{U}\fontfamily{lasy}\selectfont)\kern-0.20em)}}%
}%
\def\T@unoCaporali{\DeclareRobustCommand*{\it@ocap}{<<\ignorespaces}% \DeclareRobustCommand*{\it@ccap}{\ifdim\lastskip>\z@\unskip\fi>>}}%
\T@unoCaporali
\def\CaporaliFrom#1#2#3#4{%
\DeclareFontEncoding{#1}{}{}%
\DeclareTextCommand{\it@ocap}{T1}{%
{\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
\DeclareTextCommand{\it@ccap}{T1}{\ifdim\lastskip>\z@\unskip\fi%
{\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}%
\DeclareTextCommand{\it@ocap}{OT1}{%
{\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
\DeclareTextCommand{\it@ccap}{OT1}{\ifdim\lastskip>\z@\unskip\fi%
{\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}}\def\get@ae#1#2#3!{\def\bbl@ae{#1#2}}%
\def\@ifT@one@noCap{\expandafter\get@ae\f@family!%
\def\bbl@temp{ae}\ifx\bbl@ae\bbl@temp\expandafter\@firstoftwo\else
\expandafter\@secondoftwo\fi}%
\AtBeginDocument{\normalfont\def\bbl@temp{OT1}%
\ifx\cf@encoding\bbl@temp
\LtxSymbCaporali
\GenericWarning{italian.ldf\space}{%
File italian.ldf warning: \MessageBreak\space\space\space
With OT1 encoding guillemets are poorly faked\MessageBreak
\space\space\space
Use T1 encoding\MessageBreak\space\space\space
or specify a font with command \string\CaporaliFrom\MessageBreak
\space\space\space
See the documentation concerning the babel-italian typesetting
\MessageBreak\space\space}%
\else
\ifx\cf@encoding\bbl@t@one
\@ifT@one@noCap{%
\LtxSymbCaporali
\GenericWarning{italian.ldf\space}{%
File italian.ldf warning: \MessageBreak\space\space\space
The AE font collection does not contain the guillemets
\MessageBreak\space\space\space
Use the Latin Modern font collection instead
\MessageBreak\space}
}%
{\T@unoCaporali}\fi
\fi
}
\ldf@finish{italian}%
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \” Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
%% \endinput
\endinput
%%
%% End of file `italian.ldf'.`
-
2 Gennaio 2019 alle 11:15 #115020::
Ho provato il tuo esempio e funziona.
Per le mie “strane” necessità, tuttavia con babel devo impostare diversamente i font
(ovverosia non con [tt]\setmainfont[/tt] bensì con [tt]\babelfont[/tt] )
oppure (col tuo codice) continua a non riconoscere l’impostazione calt e perciò posto il mio codice
opportunamente modificato per XeTeX:`\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage[english,italian]{babel}
\babelfont{rm}[Ligatures=TeX,Numbers={Proportional,OldStyle}]{MyFontPro}\begin{document}
\textbf{Babel}l'avvedutezza avanti l'articolo away ayo abaco l'accidente acerrimo l'adirato aedo
un'affranta afisico afoso l'agone ahhhh l'aiuto ajta alternativa ambedue ancora
annichilire l'aorta l'appurare acqua Aristarco artistica L'albero l'alternativa
l'enfasi l'eccezionalità l'altra l'ircocervo l'Illiria l'omeopatia l'astrattismo atroce
un'automobile avere avicola awak ayno l'azalea l'uguaglianza un'umanità l'abecedario
accolito un'acqua l'addomesticare l'aereoplano affidare l'agone l'aiuto l'assurdo l'abaco
un elemento un'eccezionalità un'inedia un'aorta un'occasione l'Occitania l'allampanato
ampolla annoso l'inutilità l'artatamente l'astrologia l'attenzione autore avanti avventure
away ayo azzardo L'Australia L'Europa l'uguaglianza l'umanitàI'I N'P H'E I'F U'P
\selectlanguage{english}
I'I N'P H'E I'F U'P\end{document}`
In questo caso calt viene riconosciuto
e si nota nei due casi il diverso bearing di [tt]quoteright.fr[/tt] (per l’italiano) e di [tt]quoteright[/tt] per l’inglese:[attachment=2183]Schermatadel2019-01-0213-18-50.png[/attachment]
Peraltro con LuaTeX c’è un’ulteriore trucchetto, perché è necessario
impostare direttamente il calt con:`\babelfont[italian]{rm}[RawFeature=+calt,Ligatures=TeX]{MyFontPro}`
Fermo restando che non so perché con Polyglossia
non sia possibile accedere, come dicevo sopra, a calt e locl localizzati,
il che risolverebbe tutti i problemiPer esemplificare, se metto nelle caratteristiche del Lookup del font (cioè nei metadata)
`DFLT{dflt} grek{dflt} latn{dflt}`
tutto viene riconosciuto anche da otfinfo -f
Se invece localizzo mettendo solo:
`latn{FRA ,ITA}`
nulla viene riconosciuto nemmeno da otfinfo -fMa indipendentemente dalle mie particolari esigenze,
in tutti questi casi ho riscontrato che ora la sillabazione viene compiuta correttamente.m
Attachments:
You must be logged in to view attached files. -
2 Gennaio 2019 alle 13:34 #115021::
Bene, tutto è bene quel che finisce bene.Ritornando a stackexchange ho avuto la conferma che gli smanettoni che riescono a inserire i messaggi (io non ci riesco, pur avendo username e password) molta gente scrive per il gusto di scrivere e non legge quello che scrivono gli altri. Succede anche nel nostro forum GuIT, ma per fortuna, tolti i rari casi in cui due rispondenti si sovrappongono, per cui uno non sa che cosa sta scrivendo l’altro, il traffico è minore per cui succede più raramente.
-
2 Gennaio 2019 alle 16:14 #115022
-
2 Gennaio 2019 alle 22:39 #115023::
samiel” post=115419
ma la possibilità che Polyglossia acceda , come dicevo sopra, a calt e locl localizzati,
essite o è strutturalmente incompatibile con Polyglossia stessa?Ti confesso che non lo so; credo che la responsabilità maggiore si da attribuire a fonstspec e al diverso modo di caricare i font che fontspec usa per XeLaTeX rispetto a LuaLaTeX. Ma non ho abbastanza esperienza su queste cose.
Ora la curatrice dei pacchetti che presidono al caricamanto dei font con LuaTeX (e quindi Lualatex) è Ulrike Fisher. Non so se Will Robertson, che cura fontspec, curi anche i moduli per l’accesso ai font (credo di si, ma non ne sono certo). Direi che la domanda dovrebbe essere posta a loro.
-
2 Gennaio 2019 alle 23:21 #115024::
Scrisse perentoriamente la Fischer:polyglossia doesn’t apply the open type language setting to the font when switching languages. If you want language dependant open type features you must use babel .
Poi però scrive anche, in modo possibilista:
Well one could something similar with polyglossia perhaps too – but babel has the better interface, and it is better maintained, so I would recommend it anyway
Cosa ci riserverà il futuro io non so…
Non vorrei aprire il flame fra i sostenutori di babel e quelli di polyglossia….m
-
3 Gennaio 2019 alle 8:37 #115025::
Sì, lo so; polyglossia non è mantenuto bene; Se ne occupa Arthur Reutenauer, il coordinatore del gruppo TeX-hyphen, ma lui è ufficialmente il curatore di polyglossia dopo che il creatore Charette, ha lasciato dal curatela della sua creazione. Non mi dici niente di nuovo; gli ho gia mandato due mie versioni di gloss-greek.ldf; la prima era poco collaudata e non faceva quello che credevo di aver fatto; la seocnda è quasi perfetta, nel senso che passa tutti i miei test, ma i test non sono mai completi, c’è sempre qualcosa che non viene controllato; quindi il quasi è fin troppo ottimista. Arthur non mi ha nemmeno risposto. Eppure gli ho dimostrato che attualmente LaLaTeX non riconosce le varianti, quindi attualmente polyglossia non funziona con il greco; con il mio file funziona. Quindi perché tergiversare? Credo che Ulrike si riferisse a questo.
Non capisco, invece, perché dica che babel gestisce le lingue meglio di polyglossia, in particolare ne gestisce meglio i font; babel di per sé non ha niente che abbia a che fare con i font; sono i vari moduli per implementare le opzioni delle lingue che provvedono a impostare i font specifici per ogni lingua. Ma babel è rigido; una volta scelta una lingua e i font a lei associati, non puoi cambiare impostazioni se non con comandi che non hanno nulla a che vedere con la lingua e con babel in generale.
Un esempio? Vuoi scrivere in greco e vuoi confrontare le differenze fra il greco moderno e quello antico; hai i due testi ma con banel non puoi cambiare sillabazione per l’una o l’altra lingua quando componi i due testi. Con polyglossia lo puoi fare e puoi impostare una lingua nuova anche nel corpo del documento, mentre con babel non lo puoi fare. Insomma la gestione delle lingue e dei relativi font è decisamente migliore con polyglossia che con babel.
Naturalmente dipende dall’uso che se ne fa. Può darsi che esistano delle circostanze in cui babel sia più versatile di polyglossia. Io non ne conosco. Tu evidentemente hai trovato un caso in cui babel funziona e poluglossia apparentemente non lo fa (anche se io continuo a ensare che sia una questione di comesi imposti il font da usare per l’italiano, per esempio con \newfontfamily{italianfont}{\fontspec{….}[…]}. In questo modo quando scrivi in italiano si usa quel font e non quello indicato con \setmainfont.
Comunque sono cose delicate ed estremamente complesse, per cui è difficilissimo metterci il naso dentro. Inoltre polyglossia è scritto quasi esclusivamente in L3, che sarà anche versatilissimo, ma (almeno per me) è difficilissimo.Ho appena ricevuto un messaggio da JavierBezos, il curaore di babel, che mi scrive:
Currently, the babel support for OpenType fonts is, imho, better
than with polyglossia. An effort has been made to update babel
(and LaTeX itself, for that matter) to Unicode. For example, babel
switches automatically the OpenType ‘language system’ (with
polyglossia it must be done by hand).[Regarding the papostrophe settings] This is language dependent and should be set by the language
(as French does). Babel provides \SetHyphenMap for this, which
is the proper way, among other reasons because in a future release
very likely it will be based on \hjcode in luatex, to decouple case
mapping and hyphenation altogether.Bisogna che mi studi meglio babel.
-
3 Gennaio 2019 alle 17:47 #115026::
da quello che capisco dalle frasi di Bezos che riporti potrebbe (forse) sussistere la possibilità
di risolvere il mio problema anche con polyglossiababel switches automatically the OpenType ‘language system’ (with
polyglossia it must be done by hand).,
ma chissà come…il codice
\newfontfamily{italianfont}{\fontspec{….}[…]}non so cosa risolverebbe, perché il riconoscimento delle caratteristiche localizzate degli opentype
nel mio caso non dipende da un cambio di font rispetto a quello indicato con \setmainfont.rimaniamo inattesa dell’inserimento nel CTAN del nuovo italian.ldf
m
-
3 Gennaio 2019 alle 22:57 #115027
-
4 Gennaio 2019 alle 11:10 #115028
-
4 Gennaio 2019 alle 11:28 #115029
-
4 Gennaio 2019 alle 14:25 #115030
-
4 Gennaio 2019 alle 15:49 #115031::
Per chiudere il discorso al di là dei tecnicismi,
quello che ho imparato e forse non tutti sanno è che:alcuni font hanno delle caratteristiche come le opzioni
locl e calt a cui con polyglossia non si può accedere
(e che invece sono rilevate direttamente da LibreOffice).
Per fruirne con LaTeX è necessario usare impostazioni
particolari. Altrimenti, non sfruttando tali caratteristiche,
il font non risulta alla fine nel pdf e nella stampa
esattamente com’era stato concepito e realizzatom
-
5 Gennaio 2019 alle 13:43 #115032::
Non chiuderei ancora questo filone per due motivi.
1) L’avevo già notato prima, ma ora che ho leggermente modificato il file del tuo primo esempio minimo, e guardando meglio il log del tuo secondo esempio minimo, noto un Warning nel file log:Package fontspec Warning: Language ‘English’ not available for font
(fontspec) ‘GaramondPremierPro’ with script ‘Latin’.
(fontspec) ‘Default’ language used instead.In effetti \babelfont chiama fontspec anche se l’utente non lo specifica; evidentemente vi specifica anche delle cose che a te e a me non sembrano importanti, ma che \babelfont+fontspec richiedono. Mi domando anche se non sia questo il motivo per il quale non vengono riconosciute le specifiche varianti che hai specificato per il tuo font modificato.
2) Ho leggermente modificato la specificazione degli lccode, per cui ora esiste la versione 1.4.01 con la data di oggi. Ne faccio subito l’upolad su CTAN, senza passare per il TeX-hyphen group e spero che nessuno si offenda.:sad: La modifica riguarda il fatto che quando si usano xe- o lua-latex non è vietato usare anche o solo i font codificati a 8 bit, quindi bisogna trattare anche l’apostrofo della codifica T1 e OT1 anche quando si usano questi due programmi unicode aware.Se mi rimandi il tuo email (il mio sai bene quale sia), ti invio il file dtx che sto per spedire a CTAN, se non altro perché compilandolo hai oltre al nuovo file italian.ldf, anche la documentazione con qualche noterella anche sull’ordine di caricamento dei pacchetti babel e fontspec.
-
5 Gennaio 2019 alle 18:57 #115033::
Prova a vedere se il warning persiste usando, invece dell’unica stringa di babel, queste due differenti:
`\babelfont[italian]{rm}[Language=Default,Ligatures=TeX,Numbers={Proportional,OldStyle}]{}
\babelfont[english]{rm}[Language=English,Ligatures=TeX,Numbers={Proportional,OldStyle}]{}`
Credo che il warning compaia perché nel file del font non esistono specifiche per la lingua inglese,
lingua che si limita a seguire le generali impostazioni date da [tt]DFLT {Dflt}[/tt]
stringa presente nei metadata dei lookup del font.
Se il font contiene specifiche di localizzazione, ad es per il francese, non dovresti riceve quell’avviso
anche senza la doppia stringa per babel, se invece del’inglese carichi appunto li francese.
Come saprai certo, puoi verificare quali lingue sono supportate specificamente con
`otfinfo -s`
Ad es:
`samiel@darkstar:~/fonts/myopentype/GaramondPremierePro$ otfinfo -s GaramondPremrPro.otf
DFLT Default
cyrl Cyrillic
cyrl.SRB Cyrillic/Serbian
grek Greek
latn Latin
latn.AZE Latin/Azeri
latn.CRT Latin/Crimean Tatar
latn.DEU Latin/German
latn.FRA Latin/French
latn.ITA Latin/Italian
latn.MOL Latin/Moldavian
latn.ROM Latin/Romanian
latn.TRK Latin/Turkish`Infatti se nei metadata per il greco, ad esempio, c’è solo
`grek{dflt}`
si riceve lo stesso avviso (ovviamente relativo al greco), se invece c’è
`grek{ELL ,dflt}`
l’avviso non compare.m
PS
grazie per il file
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.