summaryrefslogtreecommitdiff
path: root/macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.tex')
-rw-r--r--macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.tex225
1 files changed, 225 insertions, 0 deletions
diff --git a/macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.tex b/macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.tex
new file mode 100644
index 0000000000..805dd2469c
--- /dev/null
+++ b/macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.tex
@@ -0,0 +1,225 @@
+%% example.tex
+%% Copyright 2024 E. Nijenhuis
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status ‘maintained’.
+%
+% The Current Maintainer of this work is E. Nijenhuis.
+%
+% This work consists of the files lua-placeholders.sty lua-placeholders-manual.pdf
+% lua-placeholders.lua lua-placeholders-common.lua lua-placeholders-namespace.lua lua-placeholders-parser.lua
+% and lua-placeholders-types.lua
+
+\documentclass{article}
+\usepackage{gitinfo-lua}
+\usepackage{lua-placeholders}
+\usepackage{listings}
+\usepackage{amsmath}
+\usepackage{calc}
+
+\loadrecipe[\jobname]{example-specification.yaml}
+
+\setlength{\parindent}{0pt}
+
+\begin{document}
+ \title{Lua \paramplaceholder{placeholders} Example\thanks{This example corresponds to \texttt{lua-placeholders} version \gitversion{} written on \gitdate.}}
+ \author{\dogitauthors[\\]}
+ \maketitle
+
+ \section*{Basics}
+ Wrong parameter:\\
+
+ \lstinline[style=TeX,morekeywords={param}]|\param{non existing}|
+ $\implies$
+ \param{non existing}\\
+
+ Conditional Parameter:\\
+
+ \lstinline[style=TeX,morekeywords={hasparam}]|\hasparam{list example}{is set}{is not set}|
+ $\implies$
+ \hasparam{list example}{is set}{is not set}
+
+ \section*{Before values loaded}
+
+ Boolean example:\\
+
+ \lstinline[style=TeX,morekeywords={param}]|\param{bool example}|
+ $\implies$
+ \param{bool example}\\
+
+ \lstinline[style=TeX,morekeywords={ifparam}]|\ifparam{bool example}{TRUE}{FALSE}|
+ $\implies$
+ \ifparam{bool example}{TRUE}{FALSE}\\
+
+ String example:\\
+
+ \lstinline[style=TeX,morekeywords={param}]|\param{string example}|
+ $\implies$
+ ``\param{string example}''\\
+
+ Number example:\\
+
+ \lstinline[style=TeX,morekeywords={param}]|\param{number example}|
+ $\implies$
+ \param{number example}\\
+
+ List example:\\
+
+ \lstinline[style=TeX,morekeywords={param}]|\param{list example}|
+ $\implies$
+ \param{list example}\\
+
+ \begin{lstlisting}[language={[LaTeX]TeX},morekeywords={formatitem,forlistitem}]
+\begin{enumerate}
+ \newcommand\formatitem[1]{\item #1}
+ \forlistitem{list example}{formatitem}
+\end{enumerate}
+ \end{lstlisting}
+ $\implies$
+ \begin{enumerate}
+ \newcommand\formatitem[1]{\item #1}
+ \forlistitem{list example}{formatitem}
+ \end{enumerate}
+
+ Object example:\\
+
+ \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{name}|\\
+ \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{email}|\\
+ $\implies$
+ \paramfield{object example}{name}
+ \paramfield{object example}{email}\\
+
+ \begin{lstlisting}[style=TeX,morekeywords={name,email}]
+\newcommand\name{...}
+\begin{paramobject}{object example}
+ \name \email
+\end{paramobject}
+% And here it works again
+\name
+ \end{lstlisting}
+ $\implies$
+ \newcommand\name{...}%
+ \parbox{\linewidth}{
+ \begin{paramobject}{object example}
+ \name \email
+ \end{paramobject}
+ \name
+ }\\
+
+ Table example:\\
+
+ \begin{lstlisting}[style=TeX,morekeywords={formatrow,fortablerow,description,price}]
+\newcommand\formatrow{\description & \price \\}%
+\begin{tabular}{l | l}
+ \textbf{Description} & \textbf{Price} \\ \hline
+ \fortablerow{table example}{formatrow}
+\end{tabular}
+ \end{lstlisting}
+ $\implies$
+ \newcommand\formatrow{\description & \price \\}%
+ \begin{tabular}{l | l}
+ \textbf{Description} & \textbf{Price} \\ \hline
+ \fortablerow{table example}{formatrow}
+ \end{tabular}
+
+
+ \section*{After values loaded}
+ \loadpayload[\jobname]{example.yaml}
+
+ Boolean example:\\
+
+ \lstinline[style=TeX,morekeywords={param}]|\param{bool example}|
+ $\implies$
+ \param{bool example}\\
+
+ \lstinline[style=TeX,morekeywords={ifparam}]|\ifparam{bool example}{TRUE}{FALSE}|
+ $\implies$
+ \ifparam{bool example}{TRUE}{FALSE}\\
+
+ String example:\\
+
+ \lstinline[style=TeX,morekeywords={param}]|\param{string example}|
+ $\implies$
+ ``\param{string example}''\\
+
+ Number example:\\
+
+ \lstinline[style=TeX,morekeywords={param}]|\param{number example}|
+ $\implies$
+ \param{number example}\\
+
+ List example:\\
+
+ \lstinline[style=TeX,morekeywords={param}]|\param{list example}|
+ $\implies$
+ \param{list example}\\
+
+ \begin{lstlisting}[language={[LaTeX]TeX},morekeywords={formatitem,forlistitem}]
+\begin{enumerate}
+ \newcommand\formatitem[1]{\item #1}
+ \forlistitem{list example}{formatitem}
+\end{enumerate}
+ \end{lstlisting}
+ $\implies$
+ \begin{enumerate}
+ \newcommand\formatitem[1]{\item #1}
+ \forlistitem{list example}{formatitem}
+ \end{enumerate}
+
+ Object example:\\
+
+ \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{name}|\\
+ \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{email}|\\
+ $\implies$
+ \paramfield{object example}{name}
+ \paramfield{object example}{email}\\
+
+ \begin{lstlisting}[style=TeX,morekeywords={name,email}]
+\newcommand\name{...}
+\begin{paramobject}{object example}
+ \name \email
+\end{paramobject}
+% And here it works again
+\name
+ \end{lstlisting}
+ $\implies$
+ \parbox{\linewidth}{
+ \begin{paramobject}{object example}
+ \name \email
+ \end{paramobject}
+ \name
+ }\\
+
+ Table example:\\
+
+ \begin{lstlisting}[style=TeX,morekeywords={formatrow,fortablerow,description,price}]
+\newcommand\formatrow{\description & \price \\}%
+\begin{tabular}{l | l}
+ \textbf{Description} & \textbf{Price} \\ \hline
+ \fortablerow{table example}{formatrow}
+\end{tabular}
+ \end{lstlisting}
+ $\implies$
+ \begin{tabular}{l | l}
+ \textbf{Description} & \textbf{Price} \\ \hline
+ \fortablerow{table example}{formatrow}
+ \end{tabular}
+
+ \section*{Specification File}
+ \lstinputlisting[language=YAML,numbers=left,xleftmargin=15pt,caption={example-specification.yaml},columns=fullflexible]{example-specification.yaml}
+
+ \clearpage
+
+ \section*{Payload File}
+ \lstinputlisting[language=YAML,numbers=left,xleftmargin={15pt},caption={example.yaml},columns=fullflexible]{example.yaml}
+
+ \section*{Fallback Payload}
+ \lstinputlisting[language=JSON,numbers=left,xleftmargin={15pt},caption={example.json},columns=fullflexible]{example.json}
+\end{document}