4. Texto
Casi todo bordado lleva letras: el nombre del club, la promoción, las
iniciales de una toalla. Las letras son lo más difícil de bordar bien, porque
tienen detalles chicos (el hueco de una "e", el punto de una "i") y porque
todo el mundo nota cuando una letra está mal. HoopLang te da una primitiva,
text, que hace el trabajo fino por ti: convierte cada letra en columnas de
satín o en relleno, ordena las letras y cuida los mínimos legibles de cada
fuente.
La primera línea#
text negro {
value: "CLUB ANDES", font: ArialBold, height: 7mm,
at: (45mm, 32mm), align: center
}value: el texto, entre comillas dobles. Admite tildes y eñes, y los escapes\"(comilla),\\(barra) y\n(salto de línea).font: la fuente (ver más abajo).height: el alto de las mayúsculas, en mm (de 3 a 300 mm).at: un punto de la línea base, la línea sobre la que se apoyan las letras.align: qué punto de la línea base esat:left(el comienzo, por defecto),centeroright.
Para centrar un texto en el lienzo, entonces, escribe align: center y pon
at en el centro horizontal. Si olvidas align, at es el comienzo del
texto, y el texto se va hacia la derecha:
t.hoop:4:11: error E006: text overflows the canvas by 11.0 mm on the rightCuidado también con olvidar at: el texto va a (0mm, 0mm), con la línea
base en el borde superior del lienzo, y las letras se salen por arriba:
t.hoop:4:3: error E006: text overflows the canvas by 8.9 mm at the topY un texto necesita saber de qué tamaño es:
t.hoop:4:3: error E007: text needs height, or a box to fit intoFuentes#
font es un nombre de un catálogo cerrado (un enum): no hay que instalar
nada, y el mismo archivo da las mismas letras en cualquier computador. Cada
fuente tiene una altura mínima bajo la cual sus huecos y uniones son más
chicos de lo que el hilo resuelve.
| Fuente | Estilo | Mínimo |
|---|---|---|
Stroke | un solo trazo (por defecto) | 4 mm |
Arial, ArialBold | de palo, tipo Arial; la negrita es la más común en insignias | 6 mm |
Montserrat, Poppins, Roboto, Futura | geométricas y modernas | 6 mm |
Serif, Times | con remates | 6 mm |
Block, MontserratBlack, RobotoBlack, FuturaBlack | extra negras | 7 mm |
Bebas, Oswald | condensadas de títulos | 8 mm |
Varsity, Slab, Playfair | universitaria, egipcia, de revista | 8 mm |
Condensed | condensada de camiseta | 10 mm |
Script, Lobster, Elegant | manuscritas | 10 mm |
Brush, Gothic | de pincel, gótica | 12 mm |
El nombre se revisa, con sugerencia si te equivocaste por poco:
t.hoop:4:62: error E002: `Montserat` is not valid for font; did you mean `Montserrat`?y la lista completa si no hay ninguna parecida:
t.hoop:4:62: error E002: `Comic` is not valid for font (Stroke, Block, Condensed, Serif, Script, Arial, ArialBold, Times, Futura, Montserrat, Poppins, Roboto, Bebas, Oswald, Varsity, Slab, Lobster, Elegant, Brush, Gothic, Playfair, MontserratBlack, RobotoBlack, FuturaBlack)Por qué hay mínimos: el hilo de bordado tiene grosor. Una "a" de 4 mm en
una fuente manuscrita tiene un hueco más chico que 0.5 mm, y el hilo lo tapa.
Las fuentes gruesas y simples aguantan más chico; las finas y adornadas
necesitan tamaño. Si tu texto debe ir chico, elige ArialBold o Montserrat.
Si debe ir manuscrito, dale al menos 10 mm.
Satín o relleno: style#
Cada letra se borda como satín o como relleno:
style: auto(por defecto): satín en letras de menos de 20 mm de alto, relleno desde ahí. Bajo 20 mm los palos de las letras miden lo que un satín cubre bien; más grandes, el satín sería demasiado ancho.style: satinostyle: fillfuerzan una u otra.
Espacio entre letras: spacing#
spacing agrega (o quita, si es negativo) espacio entre letras, de −5 a
50 mm. Unas décimas (spacing: 0.6mm) ayudan a que las letras gruesas no se
toquen en tamaños chicos, como en galeria/parche.hoop.
Texto en arco: arc#
arc curva la línea base en un arco del radio que digas (al menos 10 mm):
- positivo: el arco va hacia arriba, el texto sobre un círculo (el nombre arriba de una insignia);
- negativo: hacia abajo, como una sonrisa (el texto de abajo).
text negro {
value: "CLUB ANDES", font: ArialBold, height: 7mm,
at: (45mm, 32mm), align: center, arc: 30mm
}En arco el texto siempre se centra en at, que es el punto más alto (o más
bajo) de la línea base. galeria/sol.hoop pone "ANDES" bajo el sol con
arc: -40mm.
Un consejo de bordado: en un arco hacia arriba las letras se abren por
arriba y se juntan por la base; si se tocan, dales algo de spacing.
Texto en una caja: box#
A menudo no sabes qué tan largo va a ser el texto: el nombre de cada alumno en
una plancha de parches, por ejemplo. En vez de at, dale una caja con box,
y el texto se encaja solo:
text blanco {
value: nombre, font: Montserrat, spacing: 0.6mm,
box: rect(at: (9mm, 7mm), size: (72mm, 16mm)), height: 9.5mm
}- Busca el mayor alto que cabe en la caja, hasta
height(o el alto de la caja si no escribesheight). - No baja del mínimo legible de la fuente, o de
min_heightsi lo escribes. - Va centrado en la caja (o según
align). En vertical se centra la altura de las mayúsculas, así que los nombres de una plancha comparten línea base, con o sin tildes.
Si ni al mínimo cabe, el error te da las dos medidas:
t.hoop:4:3: error E006: text does not fit its box: at the minimum height (6.0 mm) it measures 52.9 × 7.8 mm, the box is 40.0 × 10.0 mmTienes tres salidas: una caja más grande, una fuente más angosta (Bebas,
Oswald), o bajar el mínimo con min_height: 4mm sabiendo que es un riesgo.
Con \n el texto va en varias líneas, también dentro de una caja.
Una caja no se combina con at (la caja ya dice dónde va) ni con arc.
Todo junto#
design "Texto" { canvas: rect(size: (90mm, 80mm)) }
thread negro = #1c1616 "Negro"
thread rojo = #cc3f24 "Rojo"
layer letras {
// En arco: `at` es el centro de la línea base, `arc` el radio.
text negro {
value: "CLUB ANDES", font: ArialBold, height: 7mm,
at: (45mm, 32mm), align: center, arc: 30mm
}
// Manuscrita, a su altura mínima legible (10 mm).
text rojo {
value: "desde 1987", font: Script, height: 10mm,
at: (45mm, 50mm), align: center
}
// Dos líneas encajadas en una caja.
text negro {
value: "SANTIAGO\nCHILE", font: Montserrat,
box: rect(at: (17mm, 55mm), size: (56mm, 22mm)), height: 8mm
}
}texto.hoop: 63.9 × 51.0 mm, 4991 stitches, 2 threads, 25 trims, 207 msFíjate en los 25 cortes: entre letras que no se tocan, la máquina corta el hilo para no dejar una hebra cruzando. Es normal en un texto. El compilador esconde los tránsitos cortos bajo las letras cuando puede, para cortar menos.
Resumen#
text hilo { value:, height:, at:, align: }borda una línea;ates un punto de la línea base, yalign(por defectoleft) dice cuál.fontes un catálogo cerrado; cada fuente tiene un mínimo legible.style: autousa satín bajo 20 mm y relleno desde ahí.arc: 30mmcurva hacia arriba;arc: -30mm, hacia abajo.box:encaja el texto en una forma, hastaheighty sin bajar del mínimo.
Referencia: texto · primitivas · catálogos · diagnósticos