Aller au contenu

« Texte brut » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Dedalya (discuter | contributions)
m wikification
Balises : Révocation manuelle Éditeur visuel
 
(45 versions intermédiaires par 37 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{ébauche|informatique}}
* Voir aussi [[Fichier texte]]
Le '''texte brut,''' ou '''pur''' ou '''simple''', traduction de l'anglais ''{{lang|en|plain text}}''<ref name="www.cairn.info">http://www.cairn.info/article.php?ID_ARTICLE=DN_063_0013&DocId=43450&Index=%2Fcairn2Idx%2Fcairn&TypeID=226&BAL=ancgQnI99ifLI&HitCount=9&hits=31af+2d8e+2a02+1b0e+1989+11e3+942+90b+25a+0&fileext=html</ref>, est une notion liée à la représentation du [[texte]] utilisée entre dispositifs électroniques.


== Texte brut Unicode (Unicode plain text) ==
{{ébauche}}
Le '''texte brut''' traduction de l'anglais ''plain text'' est une notion liée à la représentation de texte utilisée entre dispositifs électroniques.


[[Image:Vim-(logiciel)-utf-8-explorateur.png|vignette|right|upright=2|Visualisation de texte brut unicode à traverse l'éditeur de texte Vim, avec l’explorateur de fichiers (à gauche) et l’édition d’un fichier Unicode (à droite)]]
==Texte brut==
{{loupe|Texte brut}}
===Texte brut Unicode (Unicode plain text)===


La notion de fichier texte se rapproche des propriétés que le standard Unicode attribue au format nommé ''plain text'' en langue anglaise et signifiant texte brut :
[[Image:Vim-(logiciel)-utf-8-explorateur.png|thumb|right|600px|Visualisation de texte brut unicode à traverse l'éditeur de texte Vim, avec l’explorateur de fichiers (à gauche) et l’édition d’un fichier Unicode (à droite)]]
* le texte brut représente le contenu basique et échangeable et inter-opérable du texte ;
* le texte brut représente seulement les caractères contenus, sans leur apparence (ceci signifie que seule une numérotation des caractères est utilisée, la [[police de caractères]] étant fournie par un mécanisme indépendant) ;
* le texte brut peut être affiché de diverses façons et nécessite un processus de rendu pour le rendre visible ;
* si la séquence de texte brut est donnée à des processus de rendu divers rien ne garantit que le texte aura la même apparence (la police de caractères ou la couleur par exemple peuvent varier) ;
* les différents processus de rendu du texte doivent rendre le code lisible dans une intention de lecture (ceci revient à éviter le problème des [[mojibake]]) ;
* la contrainte de lisibilité contraint les apparences possibles ;
* le standard Unicode définit le texte brut ;
* la distinction entre le texte brut et d'autres [[Format de données|formats de données]] dans le même flux est du ressort de protocoles supérieurs et n'est pas spécifié par le standard Unicode lui-même.


== Généralités et controverses ==
La notion de fichier texte se rapproche donc des propriétés que Le Standard Unicode attribue au format nommé ''plain text'' en langue anglaise et signifiant texte brut:
On peut trouver du texte brut, par exemple, dans un [[Fichier informatique|fichier]] ou dans un [[courriel]].
* Le ''plain text'' représente le contenu basic et échangeable et inter-opérable du texte
* Le ''plain text'' représente seulement les caractères contenus, sans leur apparence. (Ceci signifie que seule un numérotation des caractère est utilisée, la police d'affichage étant fournie par un mécanisme indépendant)
* Le ''plain text'' peut être affiché de diverses façons et nécessite un processus de rendu pour le rendre visible.
* Si la séquence de ''plain text'' est données à des processus de rendu divers rien ne garanti que le texte aura la même apparence (la taille des caracatères, la police, par exemple peuvent varier).
* Les différents processus de rendu du texte doivent rendre le code lisible dans une intention de lecture (ceci revient à éviter le problème des [[mojibake]])
* La contrainte de lisibilité contraint les apparences possibles.
* Le Standard Unicode définit du ''plain text''.
* La distinction entre du ''plain text'' et d'autres formats de données dans le même flux est du ressort de protocoles supérieurs et n'est pas spécifié par Le Standard Unicode lui-même.


La notion de texte brut (''plain text'') a comme la notion de texte enrichi (''fancy text'') été introduite par Unicode<ref name="www.cairn.info"/>.
====Texte brut approché en mathématiques====
La note technique 28 de l'Unicode traite de la problématique de la représentation des symboles mathématiques sous forme de texte brut approché et aborde des notions techniques dépassant les limites de la définition du texte brut<ref>
{{ouvrage
|titre=Unicode Technical Note #28
|titre=Unicode Nearly Plain-Text Encoding of Mathematics
|version=Version 3
|autheur=Murray Sargent III
|date=12 mars 2010
|lire en ligne=http://www.unicode.org/notes/tn28/tn28-3.html
|présentation en ligne=http://www.unicode.org/notes/tn28/tn28-3.html
}} Dernière Version: http://unicode.org/notes/tn28/
</ref>.


Linux Information Project en donne une vision plus restrictive dans laquelle seuls les 96 caractères américains de l'[[ASCII]] peuvent faire partie du texte brut, la limite à la seule langue anglaise excluant de ce fait les caractères accentués des langues étrangères<ref>{{lien web |titre=What is plain text? -- introduction by The Linux Information Project (LINFO)<!-- Vérifiez ce titre --> |url=http://www.linfo.org/plain_text.html |site=linfo.org |consulté le=21-04-2023}}.</ref>.
Alors que les mathématiques sont un langage international, en tout ou partie, leur représentation informatique a pu être négligée lors de la création de différents systèmes de codage des caractères.
Toutefois, ces symboles ont bénéficié d'une forte prise en charge par l'Unicode <ref>
Barbara Beeton, Asmus Freytag, Murray Sargent III, Unicode Technical Report
#25 “Unicode Support for Mathematics”, http://www.unicode.org/reports/tr25</ref>, éventuellement à partir de la version 3 et de l'an 2000<ref>
http://www.cairn.info/revue-document-numerique-2002-3-page-51.htm
</ref>.


En pratique, on peut avoir généralement à préciser, d'une manière ou d'une autre, le répertoire de caractères ou l'encodage associé à un format texte brut. En anglais, on peut donc dire ''plain ASCII text'' ou ''plain UTF-8 text''. En français on dira plus facilement ''texte brut UTF-8'' ou ''texte brut ISO-8859-1 ''pour du texte en français, ou ''texte brut ASCII'' dans des contextes en langue anglaise ou protocolaires. En effet, si l'encodage est inconnu, un texte brut quelconque est inexploitable.
Les mathématiques posent la question de l'expression non linéaire, c'est-à-dire des expressions pouvant nécessiter un format particulier dans l'espace de la page, comme les fractions ou les matrices. Des systèmes de codages comme ISO-8859-1 et Windows 1252 se limitaient à des caractères limités relatifs aux quarts et à leur multiples (¼,½,¾). Tous ceci a conduit les scientifiques )à utiliser des outils tels que [[LaTeX]] ou [[MathML]].
Unicode permet d'exprimer de nombreuses expressions mathématiques avec du texte pratiquement brut et lisible.
D'un point de vue technique ce format serait légèrement formaté par des balises, éventuellement. Ce format est un format linéaire mais peut aussi être affiché sous forme formatée éventuellement. Dans la note «Unicode Nearly Plain-Text Encoding of Mathematics» Version 3 <ref>
{{ouvrage
|titre=Plain-Text Encoding of Mathematics
|revision=Version 3
|auteur=Murray Sargent III|
|éditeur=Publisher Text Services, Microsoft Corporation
|date=10 mars 2010
}}</ref>, ces deux variantes sont nommées ''linear format'' format linéaire, pour un affichage sous forme de texte brut, et ''built-up presentation format'' pour un affichage bénéficiant d'un affichage complexe.


== Histoire ==


La notion de texte brut est implicitement assez ancienne puisque vraisemblablement elle remonte au moins, si ce n'est à la notion de machine à écrire, aux premiers langages de programmation utilisant cette technologie.


Dès 1958 et 1961, le fait de concevoir des programmes en [[Algol (langage)|Algol]] n'a vraisemblablement pas pu être réalisé sans avoir recours à la notion de texte brut, tout comme le langage DEL en 1969 ({{RFC|5|titre=DEL|date=2 juin 1969}}).
Exemple de programmation de formules mathématiques en C++
{{Multicol}}
''C++ en texte brut ASCII'':
«
'''1''' void IHBMWM(void)
'''2''' {
'''3''' gammap = gamma*sqrt(1 + I2);
'''4''' upsilon = cmplx(gamma+gamma1, Delta);
'''5''' alphainc = alpha0*(1-(gamma*gamma*I2/gammap)/(gammap + upsilon));
'''6''' if (!gamma1 && fabs(Delta*T1) < 0.01)
'''7''' alphacoh = -half*alpha0*I2*pow(gamma/gammap, 3);
'''8''' else
'''9''' {
'''10''' Gamma = 1/T1 + gamma1;
'''11''' I2sF = (I2/T1)/cmplx(Gamma, Delta);
'''12''' betap2 = upsilon*(upsilon + gamma*I2sF);
'''13''' beta = sqrt(betap2);
'''14''' alphacoh = 0.5*gamma*alpha0*(I2sF*(gamma + upsilon)
'''15''' /(gammap*gammap – betap2))
'''16''' *((1+gamma/beta)*(beta – upsilon)/(beta + upsilon)
'''17''' - (1+gamma/gammap)*(gammap – upsilon)/
'''18''' (gammap + upsilon));
'''19''' }
'''20''' alpha1 = alphainc + alphacoh;
'''21''' }
»
{{Multicol-break}}
''C++ en texte brut Unicode'':
«
'''1''' void IHBMWM(void)
'''2''' {
'''3''' γ = γ • √(1 + I2 );
'''4''' υ = γ + γ1 + i • Δ;
'''5''' α_inc = α0 • (1 − (γ • γ • I2 /γ’)/(γ’ + υ));
'''6''' if (! γ1 || fabs(Δ • T1 ) < 0.01)
'''7''' α_coh = −.5 • α0 • I2 • pow(γ/γ’, 3);
'''8''' else
'''9''' {
'''10''' Γ = 1/T1 + γ1;
'''11''' I2 F = (I2 /T1 )/(Γ + i • Δ);
'''12''' β 2 = υ • (υ + γ • I2 F);
'''13''' β = √β 2;
'''14''' α_coh = .5 • γ • α0 • (I2 F(γ + υ)/(γ’ • γ’ − β 2 ))
'''15''' ((1 + γ/β) • (β − υ)/(β + υ) − (1 + γ/γ’) • (γ’ − υ)/(γ’ + υ));
'''16''' }
'''17''' α1 = α_inc + α_coh;
'''18''' }
»
{{Multicol-end}}


Le {{date-|30 avril 1975}}, la {{RFC|680|titre=Message Transmission Protocol|date=30 avril 1975}} fait déjà référence à la notion de texte brut, sans pour autant le définir.
La version en format linéaire afficherait les indes 1 et coh sous forme d'indice, àalors qu'une version purement formatée afficherait également les fractions sous forme de fraction.


Le {{date-|21 novembre 1977}}, un effort de la [[DARPA]] aboutit à la {{RFC|733|titre=STANDARD FOR THE FORMAT OF ARPA NETWORK TEXT MESSAGES(1)|date=21 novembre 1977}}, ''Standard for the Format of Arpa Network Text Messages'', qui définit un standard de protocole pour les messages texte.
===Généralités===
La notion de texte brut peut se retrouver dans un fichier ou dans un courriel (courrier électronique).


Le 13 aout 1982, la {{RFC|822|titre=STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES|date=13 août 1982}}, ''Standard for the Format of Arpa Network Internet Messages'' définit un format de texte brut particulier, limité aux seuls caractères de l'ASCII, en en excluant certains des caractères de contrôle et en introduisant des séquences d'échappement multi-octet (''quoted printable'').
La notion de texte brut (plain text) a comme la notion de texte enrichi (fancy text) été introduite par Unicode <ref>http://www.cairn.info/article.php?ID_ARTICLE=DN_063_0013&DocId=43450&Index=%2Fcairn2Idx%2Fcairn&TypeID=226&BAL=ancgQnI99ifLI&HitCount=9&hits=31af+2d8e+2a02+1b0e+1989+11e3+942+90b+25a+0&fileext=html</ref>.


En {{date-|septembre 1993}}, la {{RFC|1951|titre=DEFLATE Compressed Data Format Specification version 1.3|date=mai 1996}} introduit la notion de texte brut (''plain text'')<ref>[[:rfc:1521|RFC 1521]]
La notion de ''plain text'' peut être traduite par texte en claire, pur texte, texte pur, ou texte brut <ref>
Network Working Group</ref>.
http://www.cairn.info/article.php?ID_ARTICLE=DN_063_0013&DocId=43450&Index=%2Fcairn2Idx%2Fcairn&TypeID=226&BAL=ancgQnI99ifLI&HitCount=9&hits=31af+2d8e+2a02+1b0e+1989+11e3+942+90b+25a+0&fileext=html</ref>.


La notion de texte brut est par la suite clarifiée par d'autres RFC, notamment en 1999.
Linux Information Project en donne une vision plus restrictive dans laquelle seuls les quatre-vingt seize caractères américains de l'ASCII peuvent faire parti du plain text, la limite à la seule langue anglaise excluant de ce fait les caractères accentués des langues étrangères<ref>http://www.linfo.org/plain_text.html</ref>.


La notion de texte brut a également été clarifiée par le standard Unicode entre {{quand|1992 et 2012}}.
En pratique, on peut avoir généralement à préciser, d'une manière ou d'une autre, le répertoire de caractères ou l'encodage associé à un format plain text. En anglais, on peut donc dire ''plain ASCII text'' ou ''plain Unicode text''. En français on dira plus facilement ''texte brut Unicode'' pour du texte en français ou ''texte brut ASCII'' dans des contextes en langue anglaise ou protocolaires. En effet, si l'encodage est inconnu, un texte brut quelconque est inexploitable.


===Histoire===
== Protocoles ==


L'usage du texte brut peut varier entre protocole et fichier. Le protocole spécifie généralement l'encodage utilisé et selon le protocole la longueur du texte peut ne pas être limitée.
La notion de texte brut est implicitement assez ancienne puisque vraisemblablement elle remonte sans doute au moins si ce n'est à la notion de machine à écrire, aux premiers langages de programmation utilisant cette technologie.


=== Fichier texte ===
Dès 1958 et 1961, le fait de concevoir des programmes en [[Algol (langage)|Algol]] n'a vraisemblablement pas pu être réalisé sans avoir recours à la notion de texte brut.
{{loupe|fichier texte}}
Tout comme la langage DEL en 1969 (RFC 5).
Un fichier a généralement une taille limitée, alors qu'un protocole peut transférer un flot de données virtuellement infini. Il est généralement admis qu'un [[Système de fichiers|système de fichier]] ne fournit pas d'information sur l'encodage utilisé pour encoder un texte brut donné. Cette information essentielle est alors déterminée à travers un ensemble d'heuristiques.
{{...}}


=== Texte brut dans un courriel ===
Le 30 avril 1975, le RFC 680 fait déjà référence à la notion de plain text, sans pour autant le définir.
{{loupe|Courriel et Unicode}}


La notion de standardisation du texte brut dans les courriel est abordée par la {{RFC|2646|titre=The Text/Plain Format Parameter|date=août 1999}}, ''The Text/Plain Format Parameter'', de 1999 et la {{RFC|3676|titre=The Text/Plain Format and DelSp Parameters|date=février 2004}}, ''The Text/Plain Format and DelSp Parameters''.
Le 21 novembre 1977, un effort de la «Defense Advanced Research Projects Agency of the Department of Defense» aboutit au RFC 733, «STANDARD FOR THE FORMAT OF ARPA NETWORK TEXT MESSAGES», qui définit un standard de protocole pour les messages texte.


La notion de texte brut est également abordée dans la {{RFC|2046|titre=Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types|date=novembre 1996}}. Cette RFC précise que la notion de texte brut s'accompagne de la définition d'un encodage des caractères. Toutefois, il se peut que cette RFC ne traite que des problématiques de longueur des lignes, sans définir exactement ce qu'est le texte brut.
Le 13 aout 1982, l'obsolète RFC 822 «STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES» définit un format de texte brut particulier, limité aux seuls caractères de l'ASCII, en en excluant certains des caractères de contrôle, et en introduisant des séquences d'échapement multi-octet (quoted printable).


== Évolutions et perspectives ==
En Septembre 1993, le RFC 1951 introduit la notion de ''plain text'' (texte brut)<ref>RFC 1521
Network Working Group
http://tools.ietf.org/html/rfc1521</ref>


=== Balisage ===
La notion de texte brut a été clarifiée par des RFC notamment en 1999.
La {{RFC|2482|titre=Language Tagging in Unicode Plain Text|date=janvier 1999}}, ''Language Tagging in Unicode Plain Text'', discute des perspectives de balisages du texte brut Unicode<ref>
{{Ouvrage
|titre=Language Tagging in Unicode Plain Text
|sous-titre=Request for Comments: 2482
|éditeur=
|date=janvier 1999
|isbn=
}}</ref>.


=== Texte brut approché en mathématiques ===
La notion de texte brut a également été clarifiée par Le Standard Unicode entre {{quand|1992 et 2012}}.
La note technique 28 de l'Unicode traite de la problématique de la représentation des symboles mathématiques sous forme de texte brut approché et aborde des notions techniques dépassant les limites de la définition du texte brut<ref>
{{Ouvrage
|auteur1=Murray Sargent III
|titre=Unicode Nearly Plain-Text Encoding of Mathematics
|éditeur=
|date=12 mars 2010
|isbn=
|présentation en ligne=https://www.unicode.org/notes/tn28/tn28-3.html
|lire en ligne=https://www.unicode.org/notes/tn28/tn28-3.html
|champ libre=Version 3
}} Dernière Version: http://unicode.org/notes/tn28/
</ref>.


Alors que les mathématiques sont un langage international, en tout ou partie, leur représentation informatique a pu être négligée lors de la création de différents systèmes de codage des caractères. Toutefois, ces symboles ont bénéficié d'une forte prise en charge par l'Unicode <ref>
===Protocole et fichier===
Barbara Beeton, Asmus Freytag, Murray Sargent III, Unicode Technical Report

#25 “Unicode Support for Mathematics”, https://www.unicode.org/reports/tr25</ref>, à partir de la version 3 et de l'an 2000<ref>
L'usage du texte brut peut varier entre protocole et fichier.
http://www.cairn.info/revue-document-numerique-2002-3-page-51.htm

Dans un protocole, le protocole spécifie généralement l'encodage utilisé, d'une manière ou d'une autre; la longueur du texte peut ne pas être limité, en fonction du protocole.

Un fichier a généralement une taille limité, il est généralement admis qu'un système de fichier ne fournit pas d'information sur l'encodage utilisé pour encoder un texte brut donné. Cette information essentielle est alors déterminée à travers un ensemble d'heuristiques. (voir [[fichier texte]])

===Texte brut dans un courriel===
{{loupe|Courriel et Unicode}}

La notion de standardisation du texte brut dans les courriel est abordée par le RFC 2646 «The Text/Plain Format Parameter» de 1999<ref>
http://www.ietf.org/rfc/rfc2646.txt
</ref> et la Request for Comments: 3676, sous le titre ''«The Text/Plain Format and DelSp Parameters»''<ref>
http://www.ietf.org/rfc/rfc3676.txt
</ref>.
</ref>.


Les mathématiques posent la question de l'expression non linéaire, c'est-à-dire des expressions pouvant nécessiter un format particulier dans l'espace de la page, comme les fractions ou les matrices. Des systèmes de codage comme [[ISO/CEI 8859-1]] et [[Windows 1252]] se limitaient à des caractères limités relatifs aux quarts et à leur multiples (¼, ½, ¾). Ceci a conduit les scientifiques à utiliser des outils tels que [[LaTeX]] ou [[MathML]].
La notion de ''plain texte'' est également abordée dans le RFC 2046<ref>
http://www.ietf.org/rfc/rfc2046.txt
Unicode permet d'exprimer de nombreuses expressions mathématiques avec du texte pratiquement brut et lisible. D'un point de vue technique ce format serait légèrement formaté par des balises, éventuellement. Ce format est un format linéaire mais peut aussi être affiché sous forme formatée éventuellement. Dans la note ''Unicode Nearly Plain-Text Encoding of Mathematics'' ''Version 3''<ref>
</ref>. Ce RFC précise que la notion de ''plain text'' s'accompagne de la définition d'un encodage des caractères.
{{Ouvrage
|auteur1=Murray Sargent III
|titre=Plain-Text Encoding of Mathematics
|éditeur=Publisher Text Services, Microsoft Corporation
|date=10 mars 2010
|numéro d'édition=Version 3
|isbn=
}}</ref>, ces deux variantes sont nommées ''linear format'' (format linéaire), pour un affichage sous forme de texte brut, et ''built-up presentation format'' (format visuel) pour un affichage bénéficiant d'un affichage complexe.


Exemple de programmation de formules mathématiques en [[C++]] en texte brut ASCII :
Toutefois, il se peut que ce RFC ancien ne traite que des problématiques de longueur des lignes, sans définir exactement ce qu'est le texte brut.
'''1 '''void IHBMWM(void)
'''2 '''{
'''3 '''gammap = gamma * sqrt(1 + I2);
'''4 '''upsilon = cmplx(gamma + gamma1, Delta);
'''5 '''alphainc = alpha0 * (1 - (gamma * gamma * I2/gammap)/(gammap + upsilon));
'''6 '''if (!gamma1 && fabs(Delta * T1) < 0.01)
'''7 '''alphacoh = -half * alpha0 * I2 * pow(gamma/gammap, 3);
'''8 '''else
'''9 '''{
'''10 '''Gamma = 1/T1 + gamma1;
'''11 '''I2sF = (I2/T1)/cmplx(Gamma, Delta);
'''12 '''betap2 = upsilon * (upsilon + gamma * I2sF);
'''13 '''beta = sqrt(betap2);
'''14 '''alphacoh = 0.5 * gamma * alpha0 * (I2sF * (gamma + upsilon)/(gammap * gammap - betap2))
'''15 '''* ((1 + gamma/beta) * (beta - upsilon)/(beta + upsilon)
'''16 '''- (1 + gamma/gammap) * (gammap - upsilon)/(gammap + upsilon));
'''17 '''}
'''18 '''alpha1 = alphainc + alphacoh;
'''19 '''}
et en texte brut Unicode en format linéaire :
'''1 '''void IHBMWM(void)
'''2 '''{
'''3 '''γ’ = γ • √(1 + I_2);
'''4 '''υ = γ + γ_1 + i • Δ;
'''5 '''α_inc = α_0 • (1 − (γ • γ • I_2/γ’)/(γ’ + υ));
'''6 '''if (!γ_1 || fabs(Δ • T1 ) < 0.01)
'''7 '''α_coh = −0.5 • α0 • I2 • pow(γ/γ’, 3);
'''8 '''else
'''9 '''{
'''10 '''Γ = 1/T_1 + γ_1;
'''11 '''I_2sF = (I_2/T_1)/(Γ + i • Δ);
'''12 '''β’_2 = υ • (υ + γ • I_2sF);
'''13 '''β = √β’_2;
'''14 '''α_coh = 0.5 • γ • α0 • (I_2sF • (γ + υ)/(γ’ • γ’ − β’_2))
'''15 '''• ((1 + γ/β) • (β − υ)/(β + υ)
'''16''' − (1 + γ/γ’) • (γ’ − υ)/(γ’ + υ));
'''17 '''}
'''18 '''α_1 = α_inc + α_coh;
'''19 '''}


Le format linéaire Unicode affiche les indices sous forme d'indices, tandis que le format visuel Unicode afficherait également les fractions sous forme de fractions.


== Notes et références ==
== Notes et références ==
{{Références}}
<references />


== Voir aussi ==
== Voir aussi ==
=== Articles connexes ===

* [[Texte enrichi]]
=== Liens internes ===
* [[Fichier texte]]
* [[Fichier texte]]
* [[ASCII]]
* [[Unicode]]


{{Portail|Informatique|Écriture}}
{{Portail|informatique|écriture}}


[[Catégorie:Format de données numériques]]
[[Catégorie:Codage du texte]]
[[Catégorie:Codage du texte]]
[[Catégorie:Format ouvert]]
[[Catégorie:Format ouvert]]
[[Catégorie:Format de données numériques]]

{{Lien BA|de}}

[[zh-min-nan:Kng-bé]]
[[cs:Prostý text]]
[[de:Plain text]]
[[el:Απλό κείμενο]]
[[fa:نوشته ساده]]
[[fr:texte brut]]
[[id:Teks biasa]]
[[nl:Platte tekst]]
[[ja:プレーンテキスト]]
[[no:Ren tekst]]
[[pl:Tekst jawny]]
[[pt:Texto plano]]
[[ru:Текстовые данные]]
[[th:เพลนเท็กซ์]]
[[vi:Plain text]]

Dernière version du 17 mars 2024 à 15:11

Le texte brut, ou pur ou simple, traduction de l'anglais plain text[1], est une notion liée à la représentation du texte utilisée entre dispositifs électroniques.

Texte brut Unicode (Unicode plain text)[modifier | modifier le code]

Visualisation de texte brut unicode à traverse l'éditeur de texte Vim, avec l’explorateur de fichiers (à gauche) et l’édition d’un fichier Unicode (à droite)

La notion de fichier texte se rapproche des propriétés que le standard Unicode attribue au format nommé plain text en langue anglaise et signifiant texte brut :

  • le texte brut représente le contenu basique et échangeable et inter-opérable du texte ;
  • le texte brut représente seulement les caractères contenus, sans leur apparence (ceci signifie que seule une numérotation des caractères est utilisée, la police de caractères étant fournie par un mécanisme indépendant) ;
  • le texte brut peut être affiché de diverses façons et nécessite un processus de rendu pour le rendre visible ;
  • si la séquence de texte brut est donnée à des processus de rendu divers rien ne garantit que le texte aura la même apparence (la police de caractères ou la couleur par exemple peuvent varier) ;
  • les différents processus de rendu du texte doivent rendre le code lisible dans une intention de lecture (ceci revient à éviter le problème des mojibake) ;
  • la contrainte de lisibilité contraint les apparences possibles ;
  • le standard Unicode définit le texte brut ;
  • la distinction entre le texte brut et d'autres formats de données dans le même flux est du ressort de protocoles supérieurs et n'est pas spécifié par le standard Unicode lui-même.

Généralités et controverses[modifier | modifier le code]

On peut trouver du texte brut, par exemple, dans un fichier ou dans un courriel.

La notion de texte brut (plain text) a comme la notion de texte enrichi (fancy text) été introduite par Unicode[1].

Linux Information Project en donne une vision plus restrictive dans laquelle seuls les 96 caractères américains de l'ASCII peuvent faire partie du texte brut, la limite à la seule langue anglaise excluant de ce fait les caractères accentués des langues étrangères[2].

En pratique, on peut avoir généralement à préciser, d'une manière ou d'une autre, le répertoire de caractères ou l'encodage associé à un format texte brut. En anglais, on peut donc dire plain ASCII text ou plain UTF-8 text. En français on dira plus facilement texte brut UTF-8 ou texte brut ISO-8859-1 pour du texte en français, ou texte brut ASCII dans des contextes en langue anglaise ou protocolaires. En effet, si l'encodage est inconnu, un texte brut quelconque est inexploitable.

Histoire[modifier | modifier le code]

La notion de texte brut est implicitement assez ancienne puisque vraisemblablement elle remonte au moins, si ce n'est à la notion de machine à écrire, aux premiers langages de programmation utilisant cette technologie.

Dès 1958 et 1961, le fait de concevoir des programmes en Algol n'a vraisemblablement pas pu être réalisé sans avoir recours à la notion de texte brut, tout comme le langage DEL en 1969 (RFC 5[3]).

Le , la RFC 680[4] fait déjà référence à la notion de texte brut, sans pour autant le définir.

Le , un effort de la DARPA aboutit à la RFC 733[5], Standard for the Format of Arpa Network Text Messages, qui définit un standard de protocole pour les messages texte.

Le 13 aout 1982, la RFC 822[6], Standard for the Format of Arpa Network Internet Messages définit un format de texte brut particulier, limité aux seuls caractères de l'ASCII, en en excluant certains des caractères de contrôle et en introduisant des séquences d'échappement multi-octet (quoted printable).

En , la RFC 1951[7] introduit la notion de texte brut (plain text)[8].

La notion de texte brut est par la suite clarifiée par d'autres RFC, notamment en 1999.

La notion de texte brut a également été clarifiée par le standard Unicode entre 1992 et 2012[Quand ?].

Protocoles[modifier | modifier le code]

L'usage du texte brut peut varier entre protocole et fichier. Le protocole spécifie généralement l'encodage utilisé et selon le protocole la longueur du texte peut ne pas être limitée.

Fichier texte[modifier | modifier le code]

Un fichier a généralement une taille limitée, alors qu'un protocole peut transférer un flot de données virtuellement infini. Il est généralement admis qu'un système de fichier ne fournit pas d'information sur l'encodage utilisé pour encoder un texte brut donné. Cette information essentielle est alors déterminée à travers un ensemble d'heuristiques.

Texte brut dans un courriel[modifier | modifier le code]

La notion de standardisation du texte brut dans les courriel est abordée par la RFC 2646[9], The Text/Plain Format Parameter, de 1999 et la RFC 3676[10], The Text/Plain Format and DelSp Parameters.

La notion de texte brut est également abordée dans la RFC 2046[11]. Cette RFC précise que la notion de texte brut s'accompagne de la définition d'un encodage des caractères. Toutefois, il se peut que cette RFC ne traite que des problématiques de longueur des lignes, sans définir exactement ce qu'est le texte brut.

Évolutions et perspectives[modifier | modifier le code]

Balisage[modifier | modifier le code]

La RFC 2482[12], Language Tagging in Unicode Plain Text, discute des perspectives de balisages du texte brut Unicode[13].

Texte brut approché en mathématiques[modifier | modifier le code]

La note technique 28 de l'Unicode traite de la problématique de la représentation des symboles mathématiques sous forme de texte brut approché et aborde des notions techniques dépassant les limites de la définition du texte brut[14].

Alors que les mathématiques sont un langage international, en tout ou partie, leur représentation informatique a pu être négligée lors de la création de différents systèmes de codage des caractères. Toutefois, ces symboles ont bénéficié d'une forte prise en charge par l'Unicode [15], à partir de la version 3 et de l'an 2000[16].

Les mathématiques posent la question de l'expression non linéaire, c'est-à-dire des expressions pouvant nécessiter un format particulier dans l'espace de la page, comme les fractions ou les matrices. Des systèmes de codage comme ISO/CEI 8859-1 et Windows 1252 se limitaient à des caractères limités relatifs aux quarts et à leur multiples (¼, ½, ¾). Ceci a conduit les scientifiques à utiliser des outils tels que LaTeX ou MathML.

Unicode permet d'exprimer de nombreuses expressions mathématiques avec du texte pratiquement brut et lisible. D'un point de vue technique ce format serait légèrement formaté par des balises, éventuellement. Ce format est un format linéaire mais peut aussi être affiché sous forme formatée éventuellement. Dans la note Unicode Nearly Plain-Text Encoding of Mathematics Version 3[17], ces deux variantes sont nommées linear format (format linéaire), pour un affichage sous forme de texte brut, et built-up presentation format (format visuel) pour un affichage bénéficiant d'un affichage complexe.

Exemple de programmation de formules mathématiques en C++ en texte brut ASCII :

    1  void IHBMWM(void)
    2  {
    3      gammap = gamma * sqrt(1 + I2);
    4      upsilon = cmplx(gamma + gamma1, Delta);
    5      alphainc = alpha0 * (1 - (gamma * gamma * I2/gammap)/(gammap + upsilon));
    6      if (!gamma1 && fabs(Delta * T1) < 0.01)
    7          alphacoh = -half * alpha0 * I2 * pow(gamma/gammap, 3);
    8      else
    9      {
   10          Gamma = 1/T1 + gamma1;
   11          I2sF = (I2/T1)/cmplx(Gamma, Delta);
   12          betap2 = upsilon * (upsilon + gamma * I2sF);
   13          beta = sqrt(betap2);
   14          alphacoh = 0.5 * gamma * alpha0 * (I2sF * (gamma + upsilon)/(gammap * gammap - betap2))
   15                     * ((1 + gamma/beta) * (beta - upsilon)/(beta + upsilon)
   16                     - (1 + gamma/gammap) * (gammap - upsilon)/(gammap + upsilon));
   17      }
   18      alpha1 = alphainc + alphacoh;
   19  }

et en texte brut Unicode en format linéaire :

    1  void IHBMWM(void)
    2  {
    3      γ’ = γ • √(1 + I_2);
    4      υ = γ + γ_1 + i • Δ;
    5      α_inc = α_0 • (1 − (γ • γ • I_2/γ’)/(γ’ + υ));
    6      if (!γ_1 || fabs(Δ • T1 ) < 0.01)
    7          α_coh = −0.5 • α0 • I2 • pow(γ/γ’, 3);
    8      else
    9      {
   10          Γ = 1/T_1 + γ_1;
   11          I_2sF = (I_2/T_1)/(Γ + i • Δ);
   12          β’_2 = υ • (υ + γ • I_2sF);
   13          β = √β’_2;
   14          α_coh = 0.5 • γ • α0 • (I_2sF • (γ + υ)/(γ’ • γ’ − β’_2))
   15                  • ((1 + γ/β) • (β − υ)/(β + υ)
   16	               − (1 + γ/γ’) • (γ’ − υ)/(γ’ + υ));
   17      }
   18      α_1 = α_inc + α_coh;
   19  }

Le format linéaire Unicode affiche les indices sous forme d'indices, tandis que le format visuel Unicode afficherait également les fractions sous forme de fractions.

Notes et références[modifier | modifier le code]

  1. a et b http://www.cairn.info/article.php?ID_ARTICLE=DN_063_0013&DocId=43450&Index=%2Fcairn2Idx%2Fcairn&TypeID=226&BAL=ancgQnI99ifLI&HitCount=9&hits=31af+2d8e+2a02+1b0e+1989+11e3+942+90b+25a+0&fileext=html
  2. « What is plain text? -- introduction by The Linux Information Project (LINFO) », sur linfo.org (consulté le ).
  3. (en) « DEL », Request for comments no 5,
  4. (en) « Message Transmission Protocol », Request for comments no 680,
  5. (en) « STANDARD FOR THE FORMAT OF ARPA NETWORK TEXT MESSAGES(1) », Request for comments no 733,
  6. (en) « STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES », Request for comments no 822,
  7. (en) « DEFLATE Compressed Data Format Specification version 1.3 », Request for comments no 1951,
  8. RFC 1521 Network Working Group
  9. (en) « The Text/Plain Format Parameter », Request for comments no 2646,
  10. (en) « The Text/Plain Format and DelSp Parameters », Request for comments no 3676,
  11. (en) « Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types », Request for comments no 2046,
  12. (en) « Language Tagging in Unicode Plain Text », Request for comments no 2482,
  13. Language Tagging in Unicode Plain Text : Request for Comments: 2482,
  14. Murray Sargent III (Version 3), Unicode Nearly Plain-Text Encoding of Mathematics, (présentation en ligne, lire en ligne) Dernière Version: http://unicode.org/notes/tn28/
  15. Barbara Beeton, Asmus Freytag, Murray Sargent III, Unicode Technical Report
    1. 25 “Unicode Support for Mathematics”, https://www.unicode.org/reports/tr25
  16. http://www.cairn.info/revue-document-numerique-2002-3-page-51.htm
  17. Murray Sargent III, Plain-Text Encoding of Mathematics, Publisher Text Services, Microsoft Corporation, , Version 3 éd.

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]