Esta librería actúa como un puente entre la estructura de datos interna de Kara Effector y las funcionalidades principales de Aegisub. Su propósito es proporcionar herramientas para medir texto y, lo más importante, para pre-procesar y analizar la línea de subtítulos en sus diferentes componentes (palabras, sílabas, caracteres).
Las funciones con 2 en su nombre (ej. word2s) son funciones de "mapeo" que ayudan a relacionar un componente con otro (ej. "de palabra a sílaba"). Las funciones como line2W son funciones de "configuración" que procesan una unidad de texto grande (como una línea entera) y la dividen en una tabla estructurada de unidades más pequeñas (palabras), haciéndolas accesibles para bucles y efectos complejos.
aegisub.word( line_text, line_dur, ci_ )Descripción: Una función de utilidad que analiza una línea de texto completa y puebla la variable global word con los datos detallados de una palabra específica, identificada por su índice.
Argumentos:
line_text (string): El texto completo de la línea.line_dur (number): La duración total de la línea.ci_ (number): El índice de la palabra de la que se quiere obtener la información.Uso: Principalmente para uso interno o en funciones muy específicas donde se necesita acceder a los datos de una palabra fuera del bucle normal.
aegisub.word2s( )Descripción: Word to Syllable. Determina el índice de la palabra a la que pertenece la sílaba actual (syl.i).
Argumentos: Ninguno (utiliza el contexto global de la sílaba actual).
Devuelve: Un número que representa el índice de la palabra (word.i).
Ejemplo de Uso: local indice_palabra = aegisub.word2s()
aegisub.wordsi( ws_ )Descripción: Word Syllable Index. Dada una sílaba (por su índice global), devuelve su índice local dentro de su palabra y el número total de sílabas en esa misma palabra.
Argumentos:
ws_ (number): El índice global de la sílaba (normalmente syl.i).Devuelve: indice_local_silaba, total_silabas_en_palabra.
Ejemplo de Uso: local i, n = aegisub.wordsi(syl.i)
aegisub.syls2c( )Descripción: Syllable to Characters. Analiza la sílaba actual (syl) y la descompone en sus caracteres individuales, creando una nueva tabla global char con información detallada de tiempo y posición para cada caracter dentro de la sílaba.
Argumentos: Ninguno.
Uso: Se llama en la casilla "Variables [fx]:" (_ = aegisub.syls2c()) para poder iterar sobre los caracteres de la sílaba actual en un bucle (for j=1, char.n do ...).
aegisub.line2W( ), aegisub.line2S( ), aegisub.line2C( )Descripción: Line to Word/Syllable/Character. Son potentes funciones de configuración que analizan la línea de subtítulos actual completa (linefx[ii]) y la pre-procesan en una tabla estructurada de palabras (word), sílabas (syl) o caracteres (char), respectivamente. Esto permite acceder a los datos de cualquier componente de la línea, no solo el que está siendo procesado por el template.
Argumentos: Ninguno.
Uso: Se llaman en "Variables [fx]:" (ej. _ = aegisub.line2W()) para poblar la tabla correspondiente, que luego puede ser usada en "Return [fx]:" (ej. return "\\pos("..word[3].center..","..word[3].middle..")" .. word[3].text).
aegisub.word2S( ), aegisub.word2C( )Descripción: Word to Syllables/Characters. Similares a las funciones line2*, pero operan sobre la palabra actual (word). Descomponen la palabra actual en sus sílabas (syl) o caracteres (char) constituyentes.
Argumentos: Ninguno (requiere que la variable word ya esté poblada).
Uso: Ideal para efectos anidados, por ejemplo, iterar sobre las palabras de una línea con line2W y luego, dentro de ese bucle, usar word2S para iterar sobre las sílabas de cada palabra.
aegisub.word2c( )Descripción: Word to character (index mapping). Determina a qué palabra pertenece el caracter actual (char.i).
Argumentos: Ninguno (utiliza el contexto global del caracter actual).
Devuelve: El índice de la palabra que contiene al caracter actual.
aegisub.wordci( wc_ )Descripción: Word Character Index. Similar a wordsi. Dado un caracter (por su índice global), devuelve su índice local dentro de su palabra y el número total de caracteres en esa palabra.
Argumentos:
wc_ (number): El índice global del caracter (normalmente char.i).Devuelve: indice_local_caracter, total_caracteres_en_palabra.
aegisub.width( string_txt ) y aegisub.height( string_txt )Descripción: Funciones de utilidad que actúan como envoltorios directos de la función text_extents de Aegisub. Calculan el ancho o el alto en píxeles de un texto, utilizando el estilo de la línea actual para la medición.
Argumentos:
string_txt (string): El texto a medir.Ejemplo de Uso:
-- Obtiene el ancho exacto de una sílaba
local ancho = aegisub.width(syl.text)