algebre
Thème
des notations en UTF8
Cette page est consacrée à des explications dédiées à une bureautique d'ordinateur Microsoft.
(présentation mise à jour en déc 2016)
Sommaire :
1. Introduction à quelques notations
2. Ecriture de fichiers txt en format UTF8
3. Création de doc html/utf8 en langage PYTHON

1. Introduction à quelques notations
π désigne pi
∫ sin(x) dx : intégrale de sin(x)
√ 2 est la racine de 2
√ 2 ≈ 1,414 ≤ 2
∑ : sigma ou signe somme
∞ désigne l'infini
x → y = x^2 désigne l'idée que y dépend de x au carré

2. Ecriture de fichiers txt en format UTF8
On peut saisir, d’un copier-coller, le chapitre précédent, pour en faire la création d’un nouveau fichier txt dans l’outil Microsoft Bloc-Notes
Pour conserver l’exactitude des notations du chapitre précédent, il est indispensable de préciser le format approprié dans la fenêtre Enregistrer : UTF8
Cette précision est d’importance, car le format par défaut est l’habituel ANSI

Notons que les affichages qui pourront être produits sous une fenêtre Console resteront du codage ANSI et ne fourniront pas l’interprétation UTF8. Cette interprétation UTF8 sera prioritairement réservée à des applications pour fichiers html

3. Création de doc html/utf8 en langage PYTHON
On suppose avoir créé un fichier txt en format UTF8
On considère un procédé de transformation de ce fichier en un fichier html/utf8
On propose l’illustration suivante, d’un fichier txt et de sa transformation html, qu’on désignera par algeb3.txt et algeb3.htm

Introduction à quelques notations :
√ 2 ≈ 1,414 ≤ 2
symbole ∞ qui désigne l'infini

<HTML>
<HEAD>
<TITLE>Fiche</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</HEAD>
<BODY>
<span style="FONT-SIZE: 14px"><span style="FONT-FAMILY: Arial">
<br>Introduction à quelques notations :
<br>√ 2 ≈ 1,414 ≤ 2
<br>symbole ∞ qui désigne l'infini
</span></span>
</BODY>
</HTML>

Le procédé qui est décrit ici consiste à encapsuler le fichier txt d’origine dans un habillage, constitué d’une entête de début de fichier, d’une fin de page, et d’un petit préfixe de début de ligne.
Afin de paramétrer cet habillage avec un minimum de souplesse, on propose de définir 3 fichiers, d’un genre txt/utf8 à partir de l’outil Microsoft Bloc-Notes ; ces 3 fichiers seront nommés respectivement htm14.deb, htm14.lin & htm14.fin ; ils correspondent aux 3 représentations suivantes :

<HTML>
<HEAD>
<TITLE>Fiche</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</HEAD>
<BODY>
<span style="FONT-SIZE: 14px"><span style="FONT-FAMILY: Arial">

<br>
Cette seconde ligne pourrait être inutile

</span></span>
</BODY>
</HTML>

La création faite en langage Python peut correspondre à un script hyhtm.py ; on en propose le contenu suivant, puis l’affichage de son utilisation, valable autant en Python 2.7 qu’en Python 3.4 :

# -*- coding: utf8 -*-
def help() :
print("fonction prgm14(nom_fich_in,prefix_par)")
class ParamClass:
def __init__(self):
self.prefix_par = "htm14"
self.marqueur = "<>"
self.lign_pr = ""
self.ligne = " \n"
self.fichier_out = " "
# -----------------------------------
def EtapFich( HyParam, Suffix ) :
nom = HyParam.prefix_par
nom = nom + Suffix
fichier_par = open(nom,"r")
eofichier_par = ( not fichier_par)
while ( not eofichier_par ):
ligne1 = fichier_par.readline()
klen = len(ligne1)
if ( klen > 0 ) :
HyParam.fichier_out.write(ligne1)
eofichier_par = ( klen == 0 )
fichier_par.close()
return
# -----------------------------------
def EtBoucle14( HyParam ) :
ligne0 = HyParam.marqueur
ligne1 = HyParam.lign_pr
ligne2 = HyParam.ligne
kl0 = len( ligne0 )
kl2 = len( ligne2 )
if ( kl2 + 1 > kl0 ) :
if (ligne2[0:kl0-1]==ligne0[0:kl0-1]) :
kl0 = -1
if ( kl0 > -1 ) :
ligne1=ligne1+ligne2
HyParam.fichier_out.write(ligne1)
return
# -----------------------------------
def prgm14(nom_fich_in,prefix_par) :
# ------------ Etape_debut
HyParam = ParamClass()
print( " ")
print( " ecriture output fichier htm")
kpos = nom_fich_in.find(".")
if ( kpos < 1 ) :
kpos = 1
nom_out = nom_fich_in[0:kpos]
nom_out = nom_out+".htm"
ligne1 = " fichier output = " + nom_out
fichier_in = open(nom_fich_in,"r")
HyParam.fichier_out = open(nom_out,"w")
print(ligne1)
# ------------ Etape_principale
klen = len( prefix_par )
if ( klen > 0 ) :
HyParam.prefix_par = prefix_par
ligne1=" Parametrage prefixe = "
ligne1=ligne1+HyParam.prefix_par
print( ligne1 )
EtapFich( HyParam, ".deb" )
print(" Ecriture entete : OK")
nom = HyParam.prefix_par
nom = nom + ".lin"
fichier_par = open(nom,"r")
ligne1 = fichier_par.readline()
klen = len(ligne1)
fichier_par.close()
if ( klen > 0 ) :
HyParam.lign_pr = ligne1[0:klen-1]
ligne1 = " Contenu du prefixe = "
ligne1 = ligne1 + HyParam.lign_pr
print(ligne1)
eof_in = ( not fichier_in )
NbLignes = 0
while ( not eof_in ):
HyParam.ligne = fichier_in.readline()
klen = len(HyParam.ligne)
if ( klen > 0 ) :
NbLignes = NbLignes + 1
EtBoucle14( HyParam )
eof_in = ( klen == 0 )
EtapFich( HyParam, ".fin" )
print(" Ecriture bas de page : OK")
# ------------ Etape_fin
HyParam.fichier_out.close()
fichier_in.close()
ligne1 = " nb de lignes ecrites = "+str(NbLignes)
print(ligne1)
print( " " )
return

>>>
>>>
>>> import hyhtm
>>>
>>> hyhtm.prgm14("algeb3.txt","")
ecriture output fichier htm
fichier output = algeb3.htm
Parametrage prefixe = htm14
Ecriture entete : OK
Contenu du prefixe = <br>
Ecriture bas de page : OK
nb de lignes ecrites = 3
>>>
>>>

Pour l’utilisation du fichier algeb3.htm par un outil d’affichage html, il reviendra au même que le fichier algeb3.txt comporte le symbole « √ » ou la séquence « √ » : l’un est la traduction de l’autre en html/utf8
Eventuellement, on peut restreindre la création du fichier htm14.lin à un fichier txt en format ANSI ; par contre, il est largement souhaitable que la création du fichier htm14.deb soit un fichier txt en format UTF8
D’une manière générale, l’affichage html des symboles tels que « < » et « & » s'obtient à partir de séquences ANSI spécifiques :
« < » et « & »
D’autre part, la création de certains affichages html très particuliers est effectivement réalisable à partir du script hyhtm ; ainsi, en spécifiant la caractéristique « <span style="FONT-FAMILY: Courier"> » dans le fichier htm14.deb, on obtient l’exemple d’affichage html suivant et l’exemple de fichier txt qui lui correspond :

symboles utilisables
disposition vectorielle :
⎧ 1... ⎫
⎪ 2... ⎪
⎩ 3... ⎭
disposition petites boites
┌──┬──┐
│ 1│ │
├──┼──┤
│ │ 2│
└──┴──┘
de même pour des grandes boites...

symboles utilisables
<>
disposition vectorielle :
⎧ 1... ⎫
⎪ 2... ⎪
⎩ 3... ⎭
<>
disposition petites boites
┌──┬──┐
│ 1│ │
├──┼──┤
│ │ 2│
└──┴──┘
<>
de même pour des grandes boites...

On notera d'ailleurs l'avantage de la spécification « » pour gérer chaque espace blanc
En définitive et à ce stade des explications, on dispose de quoi présenter l'affichage suivant en style courier

en lien avec l'ArcTan
on considère :
⎧+∞ dx π
⎪ ────── = ─
⎭x=0 1+ x^2 2

"That's it !"