Thu, 6 Jan 2022 13:02:03 +0000
|
(creo que se me perdió este mensaje al enviarlo a la lista: disculpas si
al final llega duplicado).
Hola a todos:
Sigo trasteando con esto de dibujar rejillas base y Lua, en este caso
explorando la posibilidad de añadir también una línea para la altura x y
otra para la de las mayúsculas. He robado algunas ideas de aquí
https://tex.stackexchange.com/questions/140514/handwriting-drill-sheets,
pero a ninguno de este hilo se le ha ocurrido hacerlo mediante Lua, que
me parece mucho más sencillo.
La cosa quedaría así. Primero definimos estas dos alturas:
\newcommand{\alturax}{1ex}
% esta habrá que ajustarla según el caso:
\newcommand{\alturamay}{1.6ex}
Una caja:
\newbox\rejillas
La consabida funcioncilla en Lua:
\directlua{
rejilla = function(head)
for linea in node.traverse_id(node.id("hlist"), head) do
node.insert_after(linea.list, node.tail(linea.list),node.copy(tex.box.rejillas))
end
return head
end
}
Y con xparse este entorno, que toma tres argumentos: el primero opcional
es el nombre de la fuente, los otros dos obligatorios son el tamaño y el
interlineado:
\usepackage{xparse}
\usepackage{tikz}
\NewDocumentEnvironment{rejilla}{o m m}{%
\IfNoValueF{#1}{\fontspec{#1}}
\fontsize{#2}{#3}\selectfont
\setbox\rejillas=\hbox{%
\fontsize{#2}{#3}\selectfont
\begin{tikzpicture}[overlay]
\draw[green!60] ((-\textwidth,\alturamay) -- ++(\textwidth,0);
\draw[red!60] ((-\textwidth,\alturax) -- ++(\textwidth,0);
\draw[black!35] ((-\textwidth,0) -- ++(\textwidth,0);
\end{tikzpicture}}
\directlua{luatexbase.add_to_callback("post_linebreak_filter", rejilla, "rejilla")}
}
{%
\normalfont\par%
\directlua{luatexbase.remove_from_callback("post_linebreak_filter", "rejilla")}
}
Un pantallazo de ejemplo: https://i.imgur.com/8z6GqOB.png
Saludos,
Juan Manuel
----------------------------------------------------
Los artículos de ES-TEX son distribuidos gracias al apoyo y colaboración
técnica de RedIRIS - Red Académica española - (http://www.rediris.es)
------------------------------------------------------
|
|
|