summaryrefslogtreecommitdiff
path: root/macros/luatex/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/latex')
-rw-r--r--macros/luatex/latex/autopuncitems/autopuncitems.lua15
-rw-r--r--macros/luatex/latex/autopuncitems/autopuncitems.pdfbin38603 -> 42099 bytes
-rw-r--r--macros/luatex/latex/autopuncitems/autopuncitems.sty7
-rw-r--r--macros/luatex/latex/autopuncitems/autopuncitems.tex55
-rw-r--r--macros/luatex/latex/yamlvars/yamlvars.lua68
-rw-r--r--macros/luatex/latex/yamlvars/yamlvars.pdfbin71526 -> 82908 bytes
-rw-r--r--macros/luatex/latex/yamlvars/yamlvars.sty4
-rw-r--r--macros/luatex/latex/yamlvars/yamlvars.tex10
8 files changed, 114 insertions, 45 deletions
diff --git a/macros/luatex/latex/autopuncitems/autopuncitems.lua b/macros/luatex/latex/autopuncitems/autopuncitems.lua
index 07b68e3ed4..4eabc5868d 100644
--- a/macros/luatex/latex/autopuncitems/autopuncitems.lua
+++ b/macros/luatex/latex/autopuncitems/autopuncitems.lua
@@ -1,5 +1,5 @@
--% Kale Ewasiuk (kalekje@gmail.com)
---% 2022-01-30
+--% 2022-04-16
--% Copyright (C) 2021-2022 Kale Ewasiuk
--%
--% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -110,4 +110,17 @@ function ap.go(s)
return s
end
+function ap.gotab(s)
+ -- very simple, does not work if \\ in tabular, doesn't factor in header or footer
+ local s, c = s:gsub('%s*\\\\', '\0')
+ if c > 2 then
+ s = s:gsub('\0', ap.punc[0]..'\\\\', c-2)
+ end
+ if c > 1 then
+ s = s:gsub('\0', ap.punc[2]..'\\\\', 1)
+ end
+ s = s:gsub('\0', ap.punc[1]..'\\\\', 1)
+ return s
+end
+
return ap \ No newline at end of file
diff --git a/macros/luatex/latex/autopuncitems/autopuncitems.pdf b/macros/luatex/latex/autopuncitems/autopuncitems.pdf
index c377b41f50..29b5f6d627 100644
--- a/macros/luatex/latex/autopuncitems/autopuncitems.pdf
+++ b/macros/luatex/latex/autopuncitems/autopuncitems.pdf
Binary files differ
diff --git a/macros/luatex/latex/autopuncitems/autopuncitems.sty b/macros/luatex/latex/autopuncitems/autopuncitems.sty
index 11a4c66f69..e444adf0d5 100644
--- a/macros/luatex/latex/autopuncitems/autopuncitems.sty
+++ b/macros/luatex/latex/autopuncitems/autopuncitems.sty
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2022-01-30
+% 2022-04-16
% Copyright (C) 2021-2022 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -23,7 +23,7 @@
% OR OTHER DEALINGS IN THE SOFTWARE.
-\ProvidesPackage{autopuncitems}[2022-01-30]
+\ProvidesPackage{autopuncitems}[2022-04-16]
\RequirePackage{luacode}
\RequirePackage{etoolbox}
@@ -68,3 +68,6 @@
after=\endAutoPuncItemsE,
}
}
+
+\NewDocumentEnvironment{AutoPuncTabular}{ +b }{\luadirect{tex.print(autopuncitems.gotab(\luastringN{#1}))}}{} % does not expand
+
diff --git a/macros/luatex/latex/autopuncitems/autopuncitems.tex b/macros/luatex/latex/autopuncitems/autopuncitems.tex
index e30c85e26f..89552c0db5 100644
--- a/macros/luatex/latex/autopuncitems/autopuncitems.tex
+++ b/macros/luatex/latex/autopuncitems/autopuncitems.tex
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2022-01-30
+% 2022-04-16
% Copyright (C) 2021-2022 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -208,24 +208,36 @@ If you disable auto-pass nested lists, and don't use \cmd{\APpass}, here is what
\end{itemize}
\end{LTXexample}
-You may want to use the \cmd{AutoPuncItems} environment outside a list environment instead,
-say perhaps if you're using the \cmd{beamer}.
-Note that nested lists are normally not punctuated, and since the first-level list is inside the environment, it's considered nested.
-If you would like to disable the prevention of auto-punctuating all nested lists, use the \cmd{\disableAPprotectnest}.
-Note that nested lists will cause an error to occur.
-
+\subsection{Expanding list contents}
\begin{LTXexample}
-\disableAPprotectnest
-\begin{AutoPuncItems}
-\begin{itemize}
+\def\listexample{
\item one
\item two
\item three
\item four
+}
+--will work fine (expand once)
+\begin{itemize}[autopuncO]
+ \listexample
\end{itemize}
-\end{AutoPuncItems}
+
+--will throw error
+ (author to fix this)
+%\begin{itemize}[autopuncE]
+% \listexample
+%\end{itemize}
+
+--does not give desired result
+ (no items found)
+\begin{itemize}[autopunc]
+ \listexample
+\end{itemize}
+
\end{LTXexample}
+
+\subsection{Using the environment}
+
The normal way to use the environment should be inside the first list, like so.
\begin{LTXexample}
@@ -240,6 +252,27 @@ The normal way to use the environment should be inside the first list, like so.
\end{itemize}
\end{LTXexample}
+You may want to use the \cmd{AutoPuncItems} environment outside a list environment instead,
+say perhaps if you're using the \cmd{beamer}.
+Note that nested lists are normally not punctuated, and since the first-level list is inside the environment, it's considered nested.
+If you would like to disable the prevention of auto-punctuating all nested lists, use the \cmd{\disableAPprotectnest}.
+Note that nested lists will cause an error to occur.
+
+\begin{LTXexample}
+\disableAPprotectnest
+\begin{AutoPuncItems}
+\begin{itemize}
+ \item one
+ \item two
+ \item three
+ \item four
+\end{itemize}
+\end{AutoPuncItems}
+\end{LTXexample}
+
+
+
+
\end{document}
diff --git a/macros/luatex/latex/yamlvars/yamlvars.lua b/macros/luatex/latex/yamlvars/yamlvars.lua
index b485236d10..a46b47e725 100644
--- a/macros/luatex/latex/yamlvars/yamlvars.lua
+++ b/macros/luatex/latex/yamlvars/yamlvars.lua
@@ -1,5 +1,5 @@
--% Kale Ewasiuk (kalekje@gmail.com)
---% 2022-03-15
+--% 2022-04-16
--% Copyright (C) 2021-2022 Kale Ewasiuk
--%
--% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -92,6 +92,24 @@ function YAMLvars.pkgerr(m)
end
+
+
+-- todo need distinction beyyween table and penlight list ???
+ --val = pl.array2d.map_slice1(_1..'\\\\', val, 1,-2)
+ --return val:join('')
+ --return pl.tablex.reduce(_1.._2, val, '')
+
+function YAMLvars.xfm.markdown(var, val)
+ --return '\\begin{markdown} '..val..'\n \\end{markdown}'
+ pl.tex.help_wrt(val, md)
+ return [[begin markdown ..val..
+
+ par end markdown]]
+end
+
+
+
+
-- xfm functions (transforms) -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function YAMLvars.xfm.addxspace(var, val)
return val .. '\\xspace'
@@ -106,15 +124,14 @@ function YAMLvars.xfm.arrsort2ZA(var, val)
end
function YAMLvars.xfm.addrule2arr(var, val)
- return pl.array2d.map_slice2(_1..'\\\\\\'.. YAMLvars.tabmidrule..' ', val, 1,-1,-2,-1) -- todo make gmidrule
+ return pl.array2d.map_slice2(_1..'\\\\\\'.. YAMLvars.tabmidrule..' ', val, 1,-1,-2,-1)
end
function YAMLvars.xfm.arr2tabular(var, val)
return pl.array2d.toTeX(val)..'\\\\'
end
-
-function YAMLvars.xfm.list2items(var, val) -- todo should be list2item
+function YAMLvars.xfm.list2items(var, val)
return pl.List(val):map('\\item '.._1):join(' ')
end
YAMLvars.xfm.arr2itemize = YAMLvars.xfm.list2items
@@ -140,7 +157,6 @@ function YAMLvars.xfm.arrsortlastnameAZ(var, val)
return val
end
--- todo need distinction beyyween table and penlight list ???
function YAMLvars.xfm.list2nl(var, val)
if type(val) == 'string' then
return val
@@ -155,29 +171,25 @@ function YAMLvars.xfm.list2and(var, val) -- for doc vars like author, publisher
return pl.List(val):join('\\and ')
end
- --val = pl.array2d.map_slice1(_1..'\\\\', val, 1,-2)
- --return val:join('')
- --return pl.tablex.reduce(_1.._2, val, '')
-
-function YAMLvars.xfm.lb2nl(var, val) --linebreak in text 2 new line
+function YAMLvars.xfm.lb2nl(var, val) --linebreak in text 2 newline \\
val, _ = val:gsub('\n','\\\\ ')
return val
end
-function YAMLvars.xfm.lowercase(var, val)
- return val:lower()
+function YAMLvars.xfm.lb2newline(var, val) --linebreak in text 2 newline \\
+ val, _ = val:gsub('\n','\\newline ')
+ return val
end
-
-function YAMLvars.xfm.markdown(var, val)
- --return '\\begin{markdown} '..val..'\n \\end{markdown}'
- pl.tex.help_wrt(val, md)
- return [[begin markdown ..val..
-
- par end markdown]]
+function YAMLvars.xfm.lb2par(var, val) --linebreak in text 2 new l
+ val, _ = val:gsub('\n%s*\n','\\par ')
+ return val
end
+function YAMLvars.xfm.lowercase(var, val)
+ return val:lower()
+end
-- dec laration functions, -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@@ -211,7 +223,6 @@ function YAMLvars.prc.gdef(var, val)
end
function YAMLvars.prc.yvdef(var, val)
- --token.set_macro('yv--'..var, val, 'global') -- todo fix with csname hack?
pl.tex.defmacro('yv--'..var, val)
YAMLvars.debugtalk('yv--'..var..' = '..val, 'prc yvdef')
end
@@ -236,13 +247,11 @@ end
-
function YAMLvars.prc.setATvar(var, val) -- set a @var directly: eg \gdef\@title{val}
pl.tex.defcmdAT('@'..var, val)
end
-
function YAMLvars.prc.setdocvar(var, val) -- call a document var \var{val} = \title{val}
-- YAML syntax options
-- k: v -> \k{v}
@@ -264,10 +273,9 @@ function YAMLvars.prc.setdocvar(var, val) -- call a document var \var{val} = \ti
end
-
function YAMLvars.prc.setPDFdata(var, val)
- --update pdf metat data table
- -- requires a table
+ --update pdf meta data table (via penlight), uses pdfx xmpdata
+ -- requires a table input
for k, v in pairs(val) do
if type(v) == 'table' then
v = pl.List(v):join('\\sep ')
@@ -276,9 +284,6 @@ function YAMLvars.prc.setPDFdata(var, val)
end
end
-
-
-
-- with hyperref package
function YAMLvars.prc.PDFtitle(var, val)
tex.print('\\hypersetup{pdftitle={'..val..'}}')
@@ -288,6 +293,13 @@ function YAMLvars.prc.PDFauthor(var, val)
tex.print('\\hypersetup{pdfauthor={'..val..'}}')
end
+-- --
+
+
+-- ??
+--token.set_macro('yv--'..var, val, 'global') -- todo fix with csname hack?
+
+
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
diff --git a/macros/luatex/latex/yamlvars/yamlvars.pdf b/macros/luatex/latex/yamlvars/yamlvars.pdf
index 6fc0c5ce7e..58f7899f5f 100644
--- a/macros/luatex/latex/yamlvars/yamlvars.pdf
+++ b/macros/luatex/latex/yamlvars/yamlvars.pdf
Binary files differ
diff --git a/macros/luatex/latex/yamlvars/yamlvars.sty b/macros/luatex/latex/yamlvars/yamlvars.sty
index 852b0de8cc..92d5fbef2e 100644
--- a/macros/luatex/latex/yamlvars/yamlvars.sty
+++ b/macros/luatex/latex/yamlvars/yamlvars.sty
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2022-03-15
+% 2022-04-16
% Copyright (C) 2021-2022 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -25,7 +25,7 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{YAMLvars}[2022-03-15]
+\ProvidesPackage{YAMLvars}[2022-04-16]
\IfFileExists{markdown-tinyyaml.lua}{}{\PackageError{YAMLvars}{This package requires installation of the 'markdown' package, please install it and try again}{}}
diff --git a/macros/luatex/latex/yamlvars/yamlvars.tex b/macros/luatex/latex/yamlvars/yamlvars.tex
index 344185dd5f..f6aa0893fb 100644
--- a/macros/luatex/latex/yamlvars/yamlvars.tex
+++ b/macros/luatex/latex/yamlvars/yamlvars.tex
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2022-03-15
+% 2022-04-16
% Copyright (C) 2021-2022 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -385,5 +385,13 @@ Items:
Sunscreen: 5
Hat: 12
\end{verbatim}
+
+
+
+\clearpage
+\section{xfm, dec, prc functions (from yamlvars.lua)}
+
+\lstinputlisting[linerange=113-296]{yamlvars.lua}
+
\end{document}