CommunityImagegithub.com

texte-à-notes-manuscrites

Transformez n'importe quel contenu (PDF, texte, solution, page web, photo de page ou tableau) en pages d'aspect manuscrit, soit comme une photo de cahier (papier quadrillé, ligné ou Seyès), soit comme une page iPad propre, exportées en PDF ou PNG.

Qu'est-ce que texte-à-notes-manuscrites ?

Cette compétence convertit du contenu numérique en pages manuscrites réalistes, imitant l'écriture d'un étudiant sur papier ou sur iPad. Elle prend en charge les PDF, le texte brut, les pages web, les photos de pages ou de tableaux blancs. L'utilisateur peut choisir le style (carnet photo ou iPad), le type de papier (quadrillé, ligné, Seyès, points, blanc), l'encre (bleu, noir, rouge, vert, violet, crayon) et, surtout, utiliser une écriture par défaut ou apprendre l'écriture manuscrite de l'utilisateur à partir de photos de ses notes. L'outil gère les mathématiques de manière manuscrite (fractions, sommes, intégrales, racines, intervalles, lettres grecques). Le rendu est réalisé via un script Python léger (`scripts/handnotes.py`) utilisant Pillow et numpy. La compétence suit un processus en quatre étapes : (1) demander des photos de l'écriture de l'utilisateur ou utiliser l'écriture par défaut, (2) lire le contenu source, (3) rédiger une page avec une mise en forme spécifique (titres, listes, maths, annotations) et (4) rendre le fichier final (PDF ou PNG). Une fonctionnalité avancée permet d'apprendre l'écriture manuscrite de l'utilisateur en segmentant les photos, en étiquetant les échantillons et en construisant une police personnalisée. Cette compétence est idéale pour les étudiants, les enseignants ou toute personne souhaitant produire des notes manuscrites naturelles à partir de contenu numérique, et elle fonctionne dans les environnements ChatGPT et Claude.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yahyaraissouni/text-to-handwritten-notes-skill/tree/HEAD

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Texte en notes manuscrites

Vous transformez un contenu en pages qui ressemblent à des notes écrites à la main. Le moteur de rendu est scripts/handnotes.py. Il nécessite uniquement Python avec Pillow et numpy, déjà présents dans les environnements d'exécution ChatGPT et Claude.

Résultat par défaut : une photo de téléphone d'une page de cahier à papier quadrillé, à l'encre bleue, dans l'écriture manuscrite par défaut. Si l'utilisateur ne demande rien de spécial, donnez-lui cela.

Étape 0 : quelle écriture ?

Demandez une fois, brièvement : "Envoyez-moi autant de photos de votre propre écriture que possible (toutes les pages que vous avez déjà écrites : notes, devoirs). Sinon, j'utiliserai l'écriture par défaut."

  • Pas de photos : utilisez l'écriture par défaut. Ne demandez pas à nouveau.
  • Photos : apprenez-les d'abord (voir Apprendre une écriture à partir de photos ci-dessous), puis rendez avec --hand leur-main. Plus de pages donnent plus d'échantillons par lettre et un résultat plus naturel. 3 à 6 pages sont bien.

Étape 1 : lire l'entrée

  • PDF : extrayez le texte avec pypdf, pdftotext ou votre propre lecteur. Pour un PDF scanné, regardez les images des pages.
  • Photo, capture d'écran, tableau blanc : lisez-le vous-même avec la vision. N'utilisez pas de bibliothèques OCR.
  • Texte, solution, page web : utilisez-le tel quel.

Étape 2 : écrire la page

Il y a deux cas.

  • Notes d'un cours : écrivez ce qu'un bon élève écrirait. Lignes courtes, mots-clés, structure de la source, 15 à 30 % de sa longueur.
  • Solution ou devoir donné par l'utilisateur : gardez chaque étape et chaque nombre. Écrivez-le comme un élève écrit sur papier : 1/, a) et b) comme étiquettes, une équation par ligne, => entre les étapes. N'ajoutez pas de décorations qui ressemblent à de l'IA : pas de "Conseil :", pas de surlignage partout, pas de gras. Soulignez ou mettez !! sur un résultat final uniquement si l'utilisateur le ferait.

Gardez la langue de l'utilisateur. Gardez les nombres, les noms et les formules exacts.

Balises :

# Titre                     ## Titre de section                ### Sous-titre (souligné)
- puce (2 espaces = un niveau plus profond)                1. numéroté
-> flèche               !! LIGNE IMPORTANTE (rouge)   > note marginale (encre d'accent)
[ ] à faire   [x] fait (coché)   ---  séparateur        ligne vide = sauter une ligne
en ligne : ==surbrillance==  **gras**  __souligné__  ~~barré~~  {rouge}encre colorée{/}  ->  (flèche dessinée)
\$  = un signe dollar      $...$ maths en ligne      $$...$$ seul sur une ligne = formule affichée

Maths. Mettez chaque formule dans $...$, même une courte comme $x^2$ ou $E_2$. Pris en charge : \frac{a}{b}, \sum_{k=1}^{n}, \prod, \int_a^b, \lim_{n \to +\infty}, \sqrt{x}, \sqrt[3]{x}, x^{n+1}, x_i, \left( ... \right), \binom{n}{k}, \vec{u}, \bar{x}, \mathbb{R}, \text{...}, \mid, lettres grecques, \in \subset \cup \cap \emptyset \forall \exists \leq \geq \neq \approx \pm \times \cdot \infty \to \implies \iff, et les espaces \, \; \quad.

Écrivez les décimales comme dans la source (0,81 ou 0.81), et les grands nombres comme 50\,000 dans les maths. Écrivez les intervalles tels qu'ils sont lus : $[0, 1[$. Mettez les grandes formules sur leur propre ligne $$...$$. Une formule trop large pour la page est réduite pour tenir, mais diviser une longue formule au = sur deux lignes semble plus naturel.

Enregistrez la page sous notes.md.

Étape 3 : rendu

python scripts/handnotes.py render notes.md -o notes.pdf

Cela donne le résultat par défaut : une photo de cahier, papier quadrillé, encre bleue, écriture par défaut. Modifiez uniquement ce que l'utilisateur a demandé :

optionvaleurs
--stylenotebook (photo de téléphone d'une vraie page : lumière inégale, lignes qui dérivent vers le bas, feuille inclinée, encre bille) · ipad (moteur séparé : lettres retracées en traits pleins, traits Apple Pencil réguliers sur une page propre)
--papersquared (cahier) ou grid (ipad), lines, college, seyes, dots, blank
--handdefault, ou un dossier créé par build-hand ou learn
--fontutiliser une police d'écriture manuscrite à la place : caveat, kalam, patrick, gochi, indie, playpen
--inkblue (cahier) ou black (ipad), red, green, purple, pencil
--pagea4, letter, ipad, ipad-landscape
--seed Nla même page à chaque fois ; changez N pour une autre version

Utilisez -o notes.png pour obtenir des images (notes-1.png, notes-2.png, etc.) au lieu d'un PDF.

Étape 4 : vérifier, puis livrer

Regardez la page 1 (rendez en PNG si vous ne pouvez pas visualiser les PDF). Vérifiez qu'aucune ligne ne dépasse de la page ou ne chevauche une autre, et que chaque nombre correspond à la source. Donnez ensuite le fichier.

Apprendre une écriture à partir de photos

Cela fonctionne à partir de toutes les pages que la personne a déjà écrites. Il n'est pas nécessaire qu'elle remplisse quoi que ce soit.

  1. Découper : python scripts/handnotes.py segment p1.jpg p2.jpg p3.jpg -o hand-work Cela supprime les lignes imprimées du cahier, découpe chaque morceau d'encre et écrit des feuilles numérotées hand-work/sheet-pageN-K.png.

  2. Étiqueter : regardez chaque feuille. Vous savez ce que disent les pages, car vous pouvez lire les photos originales. Écrivez hand-work/labels.json (les numéros de page suivent l'ordre des photos) :

    {"1": {"12": "a", "13": "(", "40": "the", "41": "7"}, "2": {"5": "é", "9": "dy"}}
    
    • Étiquetez uniquement les morceaux dont vous êtes sûr. Ignorez tout ce qui n'est pas clair, coupé en deux, collé à un voisin, barré, ou qui n'est qu'un fragment de ligne.
    • Un morceau contenant plusieurs lettres jointes peut être étiqueté comme ce mot ou cette paire ("the", "le", "qu"). Il sera réutilisé chaque fois que cette séquence apparaît, ce qui semble très naturel.
    • Visez au moins 2 ou 3 échantillons de chaque lettre minuscule et de chaque chiffre.
  3. Construire : python scripts/handnotes.py build-hand hand-work hand-work/labels.json -o leur-main Cela normalise les tailles et la force de l'encre, supprime les échantillons mal coupés et construit les lettres manquantes à partir des propres tracés de l'auteur (u à partir de n, m à partir de deux n, w à partir de deux v, r, q). Les accents (é è à ê ç ë) sont dessinés sur leur propre lettre simple. Cela imprime les lettres qu'une police représente encore.

  4. Vérifiez un rendu. Regardez une page et zoomez sur toute lettre qui semble cassée ou trop pâle. Trouvez ses échantillons dans les fichiers leur-main/glyphs listés dans leur-main/hand.json, supprimez la mauvaise étiquette, et reconstruisez.

Conservez le dossier leur-main : c'est leur écriture. Proposez de le zipper afin qu'ils puissent le réutiliser la prochaine fois.

Il existe également une route par modèle (template, puis learn) : la personne remplit une grille de boîtes sur 2 pages. C'est plus propre mais demande plus de travail pour elle, donc proposez-la uniquement si elle préfère.

Skills associés