summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/iexec
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-07-10 03:00:58 +0000
committerNorbert Preining <norbert@preining.info>2021-07-10 03:00:58 +0000
commita429edf534c5a39d3dc3112b4ef98d0c2cfb9e76 (patch)
treef350aec8eb09b69d3a1f1875382a98219321ba8c /macros/latex/contrib/iexec
parent86f3f0ba5c374ad17aaefc15e92e4ab47edf821e (diff)
CTAN sync 202107100300
Diffstat (limited to 'macros/latex/contrib/iexec')
-rw-r--r--macros/latex/contrib/iexec/README.md26
-rw-r--r--macros/latex/contrib/iexec/iexec.pdfbin0 -> 103987 bytes
-rw-r--r--macros/latex/contrib/iexec/iexec.sty42
-rw-r--r--macros/latex/contrib/iexec/iexec.tex69
4 files changed, 137 insertions, 0 deletions
diff --git a/macros/latex/contrib/iexec/README.md b/macros/latex/contrib/iexec/README.md
new file mode 100644
index 0000000000..2025d21ebd
--- /dev/null
+++ b/macros/latex/contrib/iexec/README.md
@@ -0,0 +1,26 @@
+[![make](https://github.com/yegor256/iexec/actions/workflows/latexmk.yml/badge.svg)](https://github.com/yegor256/iexec/actions/workflows/latexmk.yml)
+[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/iexec/blob/master/LICENSE.txt)
+
+This LaTeX package helps you execute commands from the document and then input
+their output. The package uses [`ShellEscape`](https://ctan.org/pkg/ShellEscape) package.
+
+First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
+from [CTAN](https://ctan.org/pkg/iexec)
+and then use in the preamble:
+
+```tex
+\documentclass{article}
+\usepackage{iexec}
+\begin{document}
+Today is \iexec{date +\%e-\%b-\%Y}.
+\end{document}
+```
+
+The full example and all commands are available in the
+[`iexec.tex`](https://github.com/yegor256/exec/blob/master/iexec.tex) file.
+
+If you want to contribute yourself, make a fork, then create a branch,
+then run `make` in the root directory.
+It should compile everything without errors. If not, submit an issue and wait.
+Otherwise, make your changes and then run `make` again. If the build is
+still clean, submit a pull request.
diff --git a/macros/latex/contrib/iexec/iexec.pdf b/macros/latex/contrib/iexec/iexec.pdf
new file mode 100644
index 0000000000..a12a6b9d2b
--- /dev/null
+++ b/macros/latex/contrib/iexec/iexec.pdf
Binary files differ
diff --git a/macros/latex/contrib/iexec/iexec.sty b/macros/latex/contrib/iexec/iexec.sty
new file mode 100644
index 0000000000..a84c53e458
--- /dev/null
+++ b/macros/latex/contrib/iexec/iexec.sty
@@ -0,0 +1,42 @@
+% (The MIT License)
+%
+% Copyright (c) 2021 Yegor Bugayenko
+%
+% 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.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{iexec}[2021/07/08 0.1.0 Inputable Shell Executions]
+
+\makeatletter\newcommand\exec[1]{%
+ \begingroup%
+ \let\%\@percentchar%
+ \let\{\@charlb%
+ \let\}\@charrb%
+ \ShellEscape{#1}%
+ \endgroup%
+}\makeatother
+
+\newcommand\iexec[1]{%
+ \exec{#1 > iexec.tmp}%
+ \exec{echo >> iexec.tmp}%
+ \input{iexec.tmp}\unskip%
+ \exec{rm iexec.tmp}%
+}\makeatother
+
+\endinput
diff --git a/macros/latex/contrib/iexec/iexec.tex b/macros/latex/contrib/iexec/iexec.tex
new file mode 100644
index 0000000000..a61b55178b
--- /dev/null
+++ b/macros/latex/contrib/iexec/iexec.tex
@@ -0,0 +1,69 @@
+% (The MIT License)
+%
+% Copyright (c) 2021 Yegor Bugayenko
+%
+% 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.
+
+\documentclass[12pt]{article}
+\usepackage[tt=false,type1=true]{libertine}
+\usepackage{multicol}
+\usepackage{ffcode}
+\usepackage{iexec}
+\title{\ff{iexec}: \LaTeX{} Package \\ for Inputable Shell Executions}
+\author{Yegor Bugayenko}
+\date{0.1.0 2021/07/08}
+\begin{document}
+\pagenumbering{gobble}
+\raggedbottom
+\setlength{\parindent}{0pt}
+\setlength{\columnsep}{32pt}
+\setlength{\parskip}{6pt}
+\maketitle
+
+This package helps you execute shell commands right from the
+document and then put their output to the document:
+
+\begin{multicols}{2}
+\setlength{\parskip}{0pt}
+\scriptsize
+\raggedcolumns
+\begin{verbatim}
+\documentclass{article}
+\usepackage{iexec}
+\begin{document}
+Today is \iexec{date +\%e-\%b-\%Y}.
+\end{document}
+\end{verbatim}
+
+\columnbreak
+
+Today is \iexec{date +\%e-\%b-\%Y}.
+\end{multicols}
+
+You have to run \ff{pdflatex} with the \ff{--shell-escape} flag
+in order to let \ff{ShellEscape} (the package we use) to run shell.
+
+There are two commands: \ff{\char`\\exec} and \ff{\char`\\iexec}.
+The first one executes, while the second one also inputs the output
+of the execution.
+
+More details about this package you can find
+in the \ff{yegor256/iexec} GitHub repository.
+
+\end{document} \ No newline at end of file