Risposte nei forum create
-
AutoreRisposte
-
::
zippo” post=64664Vorrei chiedervi se è necessario conoscere il TeX. Se sì, getto la spugna. Se no, cosa consigliate di leggere? (quando apro una classe, ci capisco ben poco)
Devi leggere bene il Companion, l’appendice A è da imparare praticamente a memoria. Ma se non conosci TeX sarai sempre limitato a pacchetti molto semplici, banali lavori di configurazione di altre classi.
Ciao.
::egreg9″ post=64517
Salve a tutti.
Ho scritto il codice per gli accenti di un font opentype da usare con XeTeX. Il codice è il seguente:
…
Come si fa a settare l’accento grave?
Grazie, ciao.
Per esempio, “è” (U+00E8) può essere ottenuto come U+0065/U+0300, dove U+0300 si chiama COMBINING GRAVE ACCENT. …
Ciao
EnricoGrazie infinite per la risposta, ma purtroppo non su tutti i fonts è presente il carattere U+0300. La tabella caratteri di ubutu non è affidabile da questo punto di vista, i caratteri effettivamente presenti li mostra FontMatrix. Il Minion Pro sembra avere un unico accento grave, il carattere U+0060.
Tra l’altro sembra che il problema sia parecchio complicato: Jonathan Kew sostiene che dipende dal “tex-text” font mapping, il quale converte il carattere U+0060 (`) con U+2018 (l’ogonek). Le soluzioni proposte in quel post sono tutte impraticabili: rinunciare a “tex-text”, dovendo così anche rinunciare agli apici e ai trattini in stile TeX, o addirittura mettere mani nei files della mappatura, perdendo così la compatibilità con altre macchine o con altre versioni del TeXLive.
Ho la sensazione di essermi scontrato, come a volte succede, con uno dei limiti del sistema.
Come workaround credo si possa usare qualcosa del genere:
`% grave
\def\`#1{%
\if#1a\char224\fi
\if#1A\char192\fi
\if#1e\char232\fi
\if#1E\char200\fi
\if#1i\char236\fi
\if#1I\char204\fi
\if#1o\char242\fi
\if#1O\char210\fi
\if#1u\char249\fi
\if#1U\char217\fi}
`(edit. Mi accorgo solo ora che questo codice è una versione “povera” di quello proposto da Enrico. A essere sincero non avevo mai visto prima il comando \ifcsname 😳 )
Certo è poco elegante e limitato (ad esempio credo che non funzioni con gli small-caps, ma non ho fatto prove al riguardo), ma sembra essere la cosa più vicina ad una soluzione.
Grazie, ciao.
30 Ottobre 2011 alle 18:56 in risposta a: plain – espansione – una macro ben scritta (apparentemente) #65421::egreg9″ post=64471
Il “%” dopo “`@” è ridondante; lo stesso è ridondante il “\relax%” dopo 11. Naturalmente è ridondante anche dopo “\endcsname\relax”. Non serve a nulla definire \@@endinput.Ciao
EnricoCirca i “%” ridondanti hai sicuramente ragione: ancora non ricordo a memoria tutti i casi in cui salva dalla presenza di spazi spuri e i casi in cui è inutile.
Circa invece \@@endinput. Magari è inutile, ma come `seconda scelta’ rispetto a \expandafter\endinput\fi (che, come ho detto prima, a me sembrava dare problemi), a me sembra una gran figata. Ha il suo fascino. Anche su CTAN si trova codice scritto in modo molto peggiore.
Ma queste sono tutte opinioni, è meglio piantarla qui.
Grazie per l’aiuto, ciao.
30 Ottobre 2011 alle 17:20 in risposta a: plain – espansione – una macro ben scritta (apparentemente) #65419::
ARGH!!!!!!!!! Ho trovato l’errore!!!!
Lo \XeTeXinputencoding che pdfTeX non riesce a leggere non è quello nel pacchetto di stile modernb, ma quello nel mio pacchetto lipsum, richiamato al secondo rigo, come ESPLICITAMENTE riportato nel messaggio di errore.Scusate la figura di tolla, sarete sicuramente anche voi impazziti su errori del genere quando iniziavate a usare TeX.
Ciao.
30 Ottobre 2011 alle 17:10 in risposta a: plain – espansione – una macro ben scritta (apparentemente) #65418::egreg9″ post=64468
…
ho inserito il seguente controllo sul motore in uso:`
\expandafter\ifx\csname XeTeXrevision\endcsname\relax%
\let\@@endinput\endinput%
\errmessage{Ahi ahi, nothing to do.}\fi%
\csname @@endinput\endcsname%
…
`
Dove cavolo sbaglio?Se prima non dichiari “\catcode`@=11”, stai semplicemende dicendo “\let\@=@”, che non è molto utile …
\catode’@ l’ho settato prima di quel chunk di codice, lo davo per scontato.
egreg9″ post=64468
Il metodo corretto è
`\expandafter\ifx\csname XeTeXrevision\endcsname\relax
\errmessage{Ahi ahi, nothing to do.}%
\expandafter\endinput\fi`Quello è esattamente il codice che avevo scritto prima di quello copiato nel primo post, con il \fi sullo steso rigo. Ma siccome dava problemi (lo stesso problema, il motore non ferma la lettura, arriva all’istruzione successiva e restituisce un errore) avevo pensato di evitare l’expandafter con il meccanismo del \let … e \csname.
Per maggiore chiarezza riporto un pezzo un pò più ampio del codice e il messaggio di errore che restituisce:
`
\chardef\atcatcode=\the\catcode`@%
\catcode`@=11\relax%
% …
% a me i messaggi servono sempre su una nuova riga
\def\@errmessage#1{\immediate\write16{!! ERR !! >>>\space#1}}
% …
\expandafter\ifx\csname XeTeXrevision\endcsname\relax%
\@errmessage{Why are you here again?}%
\let\@@endinput\endinput\fi
\csname @@endinput\endcsname%
%
\XeTeXinputencoding bytes%
% …
``
This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011)
restricted \write18 enabled.
entering extended mode
(./09semantics.tex (./modernb.tex
!! ERR !! >>> Why are you here again?
) (./lipsum.tex
! Undefined control sequence.
l.2 \XeTeXinputencoding
bytes
?
Processo interrotto dall'utente
`Il lipsum.tex presente nel messaggio di errore è una mia versione del pacchetto lipsum, lo uso da molto tempo e sono sicuro che lì dentro errori non ce ne sono.
Grazie per ogni aiuto, ciao.
::zippo” post=64192Scusate la richiesta da niubbo. Vorrei che mi consigliaste (se esiste) della documentazione (tutorial, guide,ecc.) per capire come cambiare font (da utilizzare con pdftex).
Fermo restando quanto ti hanno già detto Claudio e Lorenzo –e che ti consiglio di seguire–, i font in TeX e LaTeX sono davvero MOLTO difficili da gestire. Prima di impazzirci dai una occhiata a questo noto sito, poi studiati XeTeX
`texdoc xetex`
ciao.
::OldClaudio” post=64060La risposta che ti ha dato Enrica non fa una grinza, ci mancherebbe altro, ma secondo me non risponde alla tua domanda, ma alla domanda: Quanto vale l’accostamento fra due lettere dello stesso font?
E’ vero, la mia domanda, espressa con altre parole, era esattamente: è possibile misurare lo spazio di spalla di un certo carattere?
Ciò non toglie che, a mio parere, Enrico abbia comunque risposto alla mia domanda, seppure per vie `laterali’. E, come al solito, la sua risposta è stata in grado di mostrare orizzonti inaspettati.OldClaudio” post=64060
Il tuo coalcolo non può misurare questo spazio, perché, senza crenatura, tra la s e la a dello stesso font lo psazio fra le due lettere non è inserito da qualche programma, ma fa parte della scatola che contiene ciscuna lettera.Questo lo sospettavo, ma speravo in qualche risorsa sorprendente scovata da qualche stregone del TeX.
Ti ringrazio molto per la risposta distesa ed esaustiva. Ho un ultimo dubbio: il codice che ho riportato nel primo post (e che ho un pò ottimizzato per ridurre l’allocazione a due soli registri) se applicato al cmr10 restituisce in \dimen0 0.0pt; se invece uso un certo font commerciale opentype a circa 12 pt restituisce in \dimen0 0.036pt (compilato con XeTeX).
Questo dovrebbe significare che la somma della singola `s’ e della singola `a’ è maggiore della sillaba `sa’ appunto di 0.036pt. Peraltro questo valore è lo stesso di quello che ottengo con il codice di Enrico
`\setbox0=\hbox{sa}
\dimen0=\wd0
\setbox0=\hbox{s\kern0pt a}
\advance\dimen0 by-\wd0
Il registro \string\dimen0 contiene \the\dimen0
# Il registro \dimen0 contiene -0.036pt`Questa crenatura `automatica’ è imposta dal disegnatore del font o viene applicata da XeTeX per un qualche motivo tipografico?
Grazie, ciao.
::
p.s. — Prima che mi si dica “fai delle prove”, ne ho fatta una, la seguente:`
\setbox0=\hbox{s}
\dimen0=\wd0
\setbox0=\hbox{a}
\advance\dimen0 by\wd0
\setbox0=\hbox{sa}
\advance\dimen0 by-\wd0
Il registro \string\dimen0 contiene \the\dimen0
\bye`dal quale sembra che si possa evincere che due lettere contigue hanno una distanza di 0pt; resta però il fatto che fonts diversi sembrano `staccare’ tra di loro.
Ciao.
::illinguista1972″ post=63729Ciao.
La domanda è semplice: le porzioni di testo in lingua straniera all’interno di un documento devono sempre essere in corsivo, per voi? Io dico di no.Mi spiego: singole parole in un’altra lingua vanno o meno in corsivo a seconda che siano o meno conosciute o di uso frequente per il lettore di quel particolare documento (in un articolo di cronaca calcistica, corner non va certo in corsivo).
Ma se il testo straniero è più consistente? In particolare, mi riferisco a testo in latino. I libri di scuola hanno l’abitudine di metterlo in corsivo sempre. A me non piace moltissimo, ma vorrei sapere la vostra idea.
Ciao
TommasoIo, absit iniuria verbis, farei una distinzione tra la parola o la frase straniera usata come citazione, ovvero come corpus linguistico estraneo incapsulato in una frase di un’altra lingua a scopo estetico, che va in corsivo, dalle parole straniere appartenenti ad una sintassi specialistica o settoriale, che in genere non hanno un adeguato corrispondente nella nostra lingua, che non vanno in corsivo. Se si dovessero mettere in corsivo tutte le parole straniere in un testo italiano di informatica le pagine, più che illeggibili, sarebbero proprio inguardabili.
Oviamente imho.
Ciao, Sam Qasbah.
::OldClaudio” post=63617
Poi c’è anche il XeTeX Companion (http://xml.web.cern.ch/XML/lgc2/xetexmain.pdf) …Il XeTeX Companion mi era sfuggito, ti ringrazio per avermelo segnalato.
egreg9″ post=63622
e con pdffonts ottengo le seguenti informazioni … Risponde alla tua domanda? Mi pare di sì.Non conoscevo pdffonts; si, anche a me sembra rispondente.
Grazie, ciao.
::egreg9″ post=63610No, sinceramente non so…
Il problema è meno semplice di quel che sembra: la reference di XeTeX recita:
1.1 Font options
‹Font options› are only applicable when the font is selected through the operating system:
[…]
/S=x Use the version of the selected font corresponding to the optical size x pt.più avanti, tra le font features elenca:
optical size=x
Selects the optical size, x pt. Note the difference between the /S font option,
which selects discrete fonts.Non una parola in più, neanche per spiegare che cappero sono i “discrete fonts”. Forse la feature “optical size=x” si limita ad ingrandire l’immagine dei glifi mentre “/S=x” carica un diverso file?
Farò dei test.
Grazie e ciao.
::martjan” post=61109pensavo il pacchetto biblatex avrebbe dovuto essere installato di default in texlive, versione linux…e invece mi sono accorto di no…
a me sembra di si. biblatex è un package, non un programma. Come hai installato la texlive? Dal dvd, con tlmgr o da synaptic? Nel terminale digita `texdoc biblatex` e fammi sapere.
Ciao.
::illinguista1972″ post=61270
Compilando un documento, che fino a ieri non mi dava problemi, oggi ottengo improvvisamente questo messaggio:`! LaTeX Error: \clearpage undefined.
`E’ il bello di TeX: riserva sorprese.
Generalmente in questi casi il problema è una stupidata da risolvere (tipo una graffa in più o in meno) ma è complicato da individuare, Io cercherei di isolare il bug per passi successivi, partendo, per esempio, dal modulo che usa \clearpage, poi da lì cercando di capire in quale punto si interrompe la sequenza di chiamate che va dal package che definisce \clearpage fino al punto in cui non viene più riconosciuto, poi da lì seguendo la logica del documento fino alla fine del capitolo 1 e all’inizio del capitolo 2, ecc.
In questi casi io pianto tutto, mi faccio un caffè, contemplo le grazie della mia prosperosa dirimpettaia che stende le lenzuola ad asciugare, poi comincio a mente fresca a spulciare il codice fino a che non trovo l’“errorino” che impediva la compilazione.
Ciao.
-
AutoreRisposte