CommunityImagengithub.com

texto-a-notas-escritas-a-mano

Transforma cualquier contenido (PDF, texto, solución, página web, foto de pizarra) en páginas con apariencia manuscrita: como foto de cuaderno real (papel cuadriculado, rayado o Seyès) o como página limpia de iPad, exportadas en PDF o PNG.

¿Qué es texto-a-notas-escritas-a-mano?

Este skill permite convertir texto digital en notas manuscritas realistas. Es útil para estudiantes que quieren entregar tareas escritas a mano, profesionales que desean notas personalizadas con su propia caligrafía, o cualquiera que prefiera el formato manuscrito. Soporta la plataforma Claude AI y requiere Python con las bibliotecas Pillow y numpy. El proceso consta de cuatro pasos: determinar si el usuario proporciona fotos de su letra para aprenderla (o usar la predeterminada), leer la entrada (PDF, foto, texto), redactar el contenido con formato especial (títulos, listas, fórmulas matemáticas en LaTeX) y renderizarlo con el script `scripts/handnotes.py`. Ofrece opciones como estilo (notebook o iPad), tipo de papel, color de tinta, fuente manuscrita y tamaño de página. Incluye un sistema para aprender la caligrafía del usuario a partir de fotos de sus notas, segmentando, etiquetando y construyendo un modelo de su escritura.

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

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Texto a notas escritas a mano

Conviertes contenido en páginas con apariencia manuscrita. El renderizador es scripts/handnotes.py. Solo necesita Python con Pillow y numpy, que ya están presentes en los entornos de ChatGPT y Claude.

Resultado predeterminado: una foto de teléfono de una página de cuaderno en papel cuadriculado, tinta azul, escrita con la letra predeterminada incluida. Si el usuario no pide nada especial, entrégale eso.

Paso 0: ¿de quién es la letra?

Pregunta una vez, brevemente: "Envíame tantas fotos de tu propia escritura como puedas (cualquier página que ya hayas escrito: notas, tareas). De lo contrario, usaré la letra predeterminada."

  • Sin fotos: usa la letra predeterminada. No preguntes de nuevo.
  • Con fotos: apréndelas primero (ver Aprendizaje de una escritura a partir de fotos más abajo), luego renderiza con --hand su-letra. Más páginas dan más muestras por letra y un resultado más natural. De 3 a 6 páginas es adecuado.

Paso 1: leer la entrada

  • PDF: extrae el texto con pypdf, pdftotext o tu propio lector. Para un PDF escaneado, examina las imágenes de las páginas.
  • Foto, captura de pantalla, pizarra: léelo tú mismo con visión. No ejecutes bibliotecas OCR.
  • Texto, una solución, una página web: úsalo tal cual.

Paso 2: escribir la página

Hay dos casos.

  • Notas de una lección: escribe lo que un buen estudiante escribe. Líneas cortas, palabras clave, la estructura de la fuente, entre un 15 y un 30 % de su extensión.
  • Una solución o tarea que el usuario proporciona: conserva cada paso y cada número. Escríbelo como lo haría un estudiante en papel: etiquetas 1/, a) y b), una ecuación por línea, => entre pasos. No añadas decoraciones que parezcan de IA: sin "Consejo:", sin resaltados por todas partes, sin negrita. Subraya o pon !! solo en un resultado final si el usuario lo haría.

Conserva el idioma del usuario. Mantén números, nombres y fórmulas exactas.

Formato:

# Título                     ## Encabezado                ### Subencabezado (subrayado)
- viñeta (2 espacios = un nivel más profundo)                1. numerado
-> línea de flecha               !! LÍNEA IMPORTANTE (rojo)   > nota al margen (tinta de acento)
[ ] por hacer   [x] hecho (marcado)   ---  separador        línea en blanco = saltar una línea
en línea: ==resaltado==  **negrita**  __subrayado__  ~~tachado~~  {rojo}tinta de color{/}  ->  (flecha dibujada)
\$  = un signo de dólar      $...$ matemáticas en línea      $$...$$ solo en una línea = fórmula mostrada

Matemáticas. Pon cada fórmula entre $...$, incluso una corta como $x^2$ o $E_2$. Compatible: \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, letras griegas, \in \subset \cup \cap \emptyset \forall \exists \leq \geq \neq \approx \pm \times \cdot \infty \to \implies \iff, y espacios \, \; \quad.

Escribe los decimales como en la fuente (0,81 o 0.81), y los números grandes como 50\,000 dentro de las matemáticas. Escribe los intervalos como se leen: $[0, 1[$. Pon las fórmulas grandes en su propia línea $$...$$. Una fórmula demasiado ancha para la página se reduce para que quepa, pero dividir una larga en = en dos líneas se ve más natural.

Guarda la página como notes.md.

Paso 3: renderizar

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

Esto da el resultado predeterminado: una foto de cuaderno, papel cuadriculado, tinta azul, letra predeterminada. Cambia solo lo que el usuario pidió:

opciónvalores
--stylenotebook (foto de teléfono de una página real: luz desigual, líneas que se desvían hacia abajo, hoja inclinada, tinta de bolígrafo) · ipad (motor separado: letras repasadas como trazos sólidos, trazos uniformes de Apple Pencil sobre una página limpia)
--papersquared (cuaderno) o grid (ipad), lines, college, seyes, dots, blank
--handdefault, o una carpeta creada por build-hand o learn
--fontusar una fuente manuscrita en su lugar: caveat, kalam, patrick, gochi, indie, playpen
--inkblue (cuaderno) o black (ipad), red, green, purple, pencil
--pagea4, letter, ipad, ipad-landscape
--seed Nla misma página cada vez; cambia N para otra versión

Usa -o notes.png para obtener imágenes (notes-1.png, notes-2.png, etc.) en lugar de un PDF.

Paso 4: verificar y luego entregar

Mira la página 1 (renderiza un PNG si no puedes ver PDF). Verifica que ninguna línea se salga de la página o se superponga a otra, y que cada número coincida con la fuente. Luego entrega el archivo.

Aprendizaje de una escritura a partir de fotos

Esto funciona con cualquier página que la persona ya haya escrito. No necesitan rellenar nada.

  1. Segmentar: python scripts/handnotes.py segment p1.jpg p2.jpg p3.jpg -o hand-work Esto elimina las líneas impresas del cuaderno, corta cada trozo de tinta y escribe hojas numeradas hand-work/sheet-pageN-K.png.

  2. Etiquetar: mira cada hoja. Sabes lo que dicen las páginas porque puedes leer las fotos originales. Escribe hand-work/labels.json (los números de página siguen el orden de las fotos):

    {"1": {"12": "a", "13": "(", "40": "the", "41": "7"}, "2": {"5": "é", "9": "dy"}}
    
    • Etiqueta solo las piezas de las que estés seguro. Omite cualquier cosa poco clara, cortada por la mitad, pegada a otra, tachada o solo un fragmento de línea.
    • Una pieza que contiene varias letras unidas se puede etiquetar como esa palabra o par ("the", "le", "qu"). Se reutiliza cada vez que aparece esa secuencia, lo que se ve muy natural.
    • Apunta al menos a 2 o 3 muestras de cada letra minúscula y cada dígito.
  3. Construir: python scripts/handnotes.py build-hand hand-work hand-work/labels.json -o su-letra Esto normaliza tamaños y fuerza de la tinta, descarta muestras mal cortadas y construye letras faltantes a partir de los propios trazos del escritor (u a partir de n, m a partir de dos n, w a partir de dos v, r, q). Los acentos (é è à ê ç ë) se dibujan sobre su propia letra simple. Imprime las letras que una fuente aún representa.

  4. Verificar un renderizado. Mira una página y haz zoom en cualquier letra que parezca rota o demasiado tenue. Encuentra sus muestras en los archivos su-letra/glyphs listados en su-letra/hand.json, elimina la etiqueta mala y vuelve a construir.

Conserva la carpeta su-letra: es su escritura. Ofrece comprimirla para que puedan reutilizarla la próxima vez.

También existe una ruta de plantilla (template, luego learn): la persona rellena una cuadrícula de casillas de 2 páginas. Es más limpia pero requiere más trabajo de su parte, así que ofrécela solo si la prefieren.

Skills relacionados