diff --git a/fonttest.tex b/fonttest.tex new file mode 100644 index 0000000..9a897ad --- /dev/null +++ b/fonttest.tex @@ -0,0 +1,60 @@ +\documentclass[a4paper,12pt]{scrartcl} +\usepackage{luacode} +\usepackage{fontspec} +\usepackage{xcolor} +\begin{document} +\setmainfont{Recursive}[ + Renderer=HarfBuzz, + ItalicFont=Recursive, + BoldFont=Recursive, + BoldItalicFont=Recursive, + UprightFeatures={ + RawFeature={+ss01,+ss02,+ss08,+case}, + }, + BoldFeatures={RawFeature={+axis={wght=700}}}, + BoldItalicFeatures={RawFeature={+axis={wght=700,slnt=-15,CRSV=1}}}, + ItalicFeatures={RawFeature={+axis={slnt=-15,CRSV=1}}} +] +\begin{luacode*} +local vft = + [[\addfontfeatures{RawFeature={+axis={MONO=%.2f,CASL=%.2f,slnt=%.2f,CRSV=%d,wght=%.0f}}}]] +function vf( MONO, CASL, slnt, CRSV, wght ) + local s = vft:format( MONO, CASL, slnt, CRSV, wght ) + return s +end +local N, buf = 3, { } +function c( v ) + if type( v ) == "number" then return { v, v } end + if not v[2] then v[2] = v[1] end + return v +end +function lerp( MONO, CASL, slnt, CRSV, wght, C,M,Y,J,F ) + F = F or 1 + local B = { c(MONO), c(CASL), c(slnt), c(CRSV), c(wght) } + local color = { C,M,Y } + local params = { } + for k = 0, N do + local t = k/N + color[J] = (F<0) and (1+(F*t)) or (F*t) + for i = 1, #B do + params[i] = B[i][1] + (B[i][2] - B[i][1])*t + end + local s = vf( table.unpack( params ) ) + --[[ texio.write_nl( s ) ]] + buf[#buf+1] = s + local C = ("%.2f,%.2f,%.2f,0.65"):format( table.unpack( color ) ) + buf[#buf+1] = "\\textcolor[cmyk]{"..C.."}{Test?} " + end + buf[#buf+1] = "\\par " +end +lerp( 0, {0,1}, 0, 0, 300, 0,0,0,2 ) +lerp( 0, 1, {-15,0}, 0, 300, 0,1,0,3 ) +lerp( 0, {1,0}, -15, 0, 300, 0,1,1,2,-1 ) +lerp( 0, 0, -15, 0, {800,300}, 0,0,1,1 ) +lerp( 0, {0,1}, -15, 0, 800, 1,0,1,2 ) +lerp( 0, 1, {0,-15}, 0, 800, 1,1,1,3,-1 ) +lerp( 0, {1,0}, 0, 0, 800, 1,1,0,2,-1 ) +lerp( 0, 0, 0, 0, {300,800}, 1,0,0,1,-1 ) +tex.print( table.concat( buf, "" ) ) +\end{luacode*} +\end{document}