[Python] Simbolo di radice

Dario Bertini berdario a gmail.com
Mer 30 Apr 2014 17:45:31 CEST


Dipende dal contesto: un Glifo (glyph) in linea di massima è un
carattere tipografico, o qualunque cosa che un utente vedendolo possa
considerarlo un carattere

dei piccoli esempietti riguardanti la codifica del testo:

>>> byte = bytes([0x41])
>>> len(byte)
1
>>> "A".encode() == byte
True
>>> len("A")
1
>>> codepoint = '𐌰'
>>> len(codepoint)
1
>>> ord(codepoint), hex(ord(codepoint)), codepoint.encode(), len(codepoint.encode())
(66352, '0x10330', b'\xf0\x90\x8c\xb0', 4)
>>> chr(ord(codepoint))
'𐌰'
>>> from unicodedata import normalize
>>> another_codepoint = chr(0x1d160)
>>> glyph = normalize('NFC', another_codepoint)
>>> len(another_codepoint), len(glyph)
(1, 3)
>>> another_glyph = normalize('NFD', 'à')
>>> len(another_glyph)
2


In pratica, un glifo può essere un carattere composto da più
codepoint... in alcune lingue (nepalese mi pare) è legale avere un
glifo che contiene fino a 7/8 simboli diacritici oltre al simbolo base

Vista l'impraticabilità di restringere/standardizzare/creare un
encoding più preciso, non c'è alcuna limitazione al numero di
composing simbols che puoi associare dentro un carattere composito

http://stackoverflow.com/questions/10414864/whats-up-with-these-unicode-combining-characters-and-how-can-we-filter-them

(Ora su Firefox vedo che non sbordano più fuori dalla loro riga, ma
caratteri di quel tipo possono/potevano "sporcare" tutto il resto
della pagina renderizzata)

Il lavoro di rendering/typesetting quindi è abbastanza complicato, e
viene fatto dalle varie librerie grafiche, da tool come latex,
etc.etc.

Ovviamente potresti fare qualcosa di sgrezzo, tipo: "\u221A1\u03053\u0305"
che stampa '√1̅3̅'

Ma se vuoi mostrare delle formule matematiche probabilmente mi
affiderei a MathJax
http://www.mathjax.org


Che ti permette di generare codice Latex o MathML per rappresentare le
tue formule


-- 
xmpp: berdario at gmail.com
bitmessage: BM-2cTYXfGiSTsnx3righ6aHcJSWe4MV17jDP
gpg fingerprint: 3F8D53518012716C4EEF7DF67B498306B3BF75A0 (used just
for signing commits)


Maggiori informazioni sulla lista Python