% (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}