% Kale Ewasiuk (kalekje@gmail.com) % 2022-04-16 % Copyright (C) 2021-2022 Kale Ewasiuk % % Permission is hereby granted, free of charge, to any person obtaining a copy % of this software and associated documentation files (the "Software"), to deal % in the Software without restriction, including without limitation the rights % to use, copy, modify, merge, publish, distribute, sublicense, and/or sell % copies of the Software, and to permit persons to whom the Software is % furnished to do so, subject to the following conditions: % % The above copyright notice and this permission notice shall be included in % all copies or substantial portions of the Software. % % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF % ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED % TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A % PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT % SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR % ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN % ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE % OR OTHER DEALINGS IN THE SOFTWARE. \ProvidesPackage{penlight}[2022-04-16] \RequirePackage{luacode} \DeclareOption{pl}{\luadirect{ pl = require('penlight') __PENLIGHT__ = 'pl' }} \DeclareOption{penlight}{\luadirect{ penlight = require('penlight') __PENLIGHT__ = 'penlight' }} \DeclareOption{stringx}{\luadirect{_G[__PENLIGHT__].stringx.import()}} \DeclareOption{format}{\luadirect{_G[__PENLIGHT__].stringx.format_operator()}} \DeclareOption{func}{\luadirect{_G[__PENLIGHT__].utils.import(__PENLIGHT__..'.func')}} \DeclareOption{extras}{\luadirect{require'penlightextras'}} \DeclareOption{extrasnoglobals}{\luadirect{ __PL_NO_GLOBALS__ = true require'penlightextras' }} \ProcessOptions*\relax \luadirect{ if __PENLIGHT__ == nil then tex.print('\\PackageError{penlight}{penlight or pl option must be passed to penlight as the first option}{}') end } \newcommand{\writePDFmetadata}{\luadirect{writePDFmetadata()}} \NewDocumentCommand{\writePDFmetadatakv}{ s m }{ \IfBooleanTF{#1}{% if *, overwrite everything \luadirect{ __PDFmetadata__ = luakeys.parse(\luastring{#2}) writePDFmetadata() }}{ \luadirect{ __PDFmetadata__ = __PDFmetadata__ or {} table.update(__PDFmetadata__, luakeys.parse(\luastring{#2})) writePDFmetadata() }} }