diff options
Diffstat (limited to 'macros/luatex/latex/linebreaker/linebreaker.sty')
-rw-r--r-- | macros/luatex/latex/linebreaker/linebreaker.sty | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/macros/luatex/latex/linebreaker/linebreaker.sty b/macros/luatex/latex/linebreaker/linebreaker.sty new file mode 100644 index 0000000000..2804f4bbe6 --- /dev/null +++ b/macros/luatex/latex/linebreaker/linebreaker.sty @@ -0,0 +1,31 @@ +\ProvidesPackage{linebreaker} + +\RequirePackage{luatexbase} +\directlua{% +linebreaker = require "linebreaker" +luatexbase.add_to_callback("linebreak_filter", linebreaker.linebreak, "new linebreak callback") +luatexbase.add_to_callback("post_linebreak_filter", linebreaker.post_linebreak, "new linebreak callback") +luatexbase.add_to_callback("hpack_quality", linebreaker.hpack_quality, "Our overfull box reporting function") +} + + +% linebreaker setup +\ExplSyntaxOn +\keys_define:nn{linebreaker}{ + debug .code:n = \directlua{linebreaker.debug=true}, + maxtolerance .code:n = \directlua{linebreaker.max_tolerance = tonumber("#1")}, + maxemergencystretch .code:n = \directlua{linebreaker.max_emergencystretch = tex.sp("#1")}, + maxcycles .code:n = \directlua{linebreaker.max_cycles = tonumber("#1")}, +} +\NewDocumentCommand{\linebreakersetup}{m}{ +\keys_set:nn {linebreaker} {#1} +} +\ExplSyntaxOff + +% enable/disable linebreaker +\NewDocumentCommand{\linebreakerenable}{}{\directlua{linebreaker.active=true}} +\NewDocumentCommand{\linebreakerdisable}{}{\directlua{linebreaker.active=false}} + + + +\endinput |