summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/iexec/iexec.tex
blob: 4929b996313538422234528d075d2d98cb94fdff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
% (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[trace]{iexec}
\usepackage[tt=false,type1=true]{libertine}
\usepackage{multicol}
\usepackage{ffcode}
\title{\ff{iexec}: \LaTeX{} Package \\ for Inputable Shell Executions}
\author{Yegor Bugayenko}
\date{0.4.0 2021/08/01}
\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{ffcode}
\documentclass{article}
\usepackage{iexec}
\begin{document}
Today is \iexec{date +\%e-\%b-\%Y}
\end{document}
\end{ffcode}

\columnbreak

Today is \iexec{date +\%e-\%b-\%Y | tr -d '\\n'}
\end{multicols}

You have to run \ff{pdflatex} (or just \ff{latex}) with the \ff{--shell-escape} flag
in order to let \ff{shellesc} (the package we use) to run shell.

If you don't want the output to be visible,
use \ff{\char`\\phantom\char`\{\char`\\iexec\char`\{...\char`\}\char`\}}.

The output of your code is saved into the file provided as the
second optional argument of \ff{\char`\\iexec} (the default value is \ff{iexec.tmp}):

\begin{ffcode}
Today is \iexec[date.txt]{date +\%e-\%b-\%Y | tr -d '\\n'}.
\end{ffcode}

The tailing part of the command here removes all ends-of-line.

The file specified will be deleted right after its usage. If you don't
want this to happen, use \ff{trace} package option: all files will remain
in the directory.

More details about this package you can find
in the \ff{yegor256/iexec} GitHub repository.

\end{document}