格式化 bashful 的内联结果

格式化 bashful 的内联结果

我发现了这个包裹bashful在文档中打印 shell 命令的结果。我们可以使用命令在当前行(不带回车符)打印结果\bashStdout。下面是一个应该写入编译日期的示例。例如,我尝试使用以下命令在文档中插入日期:

\bash
date +"%b %d %Y"
\END

Compilation of this document completed on \bashStdout

问题是,在生成的pdf中,结果是:

    Compilation of this document completed on Jul_15_2021

用特殊字符代替空格(此处用 代替_)。我在文档中看到可以使用 自定义结果的显示,但此命令似乎仅在我使用命令的lstdefinestyle选项时才有效。[stdout]\bash

但是使用这个选项,代码

Compilation of this document completed on 
\bash[stdout]
date +"%b %d %Y"
\END

将打印

    Compilation of this document completed on
Jul 15 2021

在许多方面

有没有办法自定义显示方式bashStdout?我在文档中没有找到。

以下是完整的 ECM:

\documentclass{article}
\usepackage{bashful}

\begin{document}

\bash
date +"%b %d %Y"
\END

Compilation of this document completed on \bashStdout

Compilation of this document completed on 
\bash[stdout]
date +"%b %d %Y"
\END

\end{document}

有办法解决我的问题吗?

谢谢

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{bashful}

\begin{document}

\bash
date +"%b %d %Y"
\END

Compilation of this document completed on \scantokens\expandafter{\bashStdout}

Compilation of this document completed on 
\bash[stdout]
date +"%b %d %Y"
\END

\end{document}

或者更简单地在这种情况下不使用任何包:

\documentclass{article}


\begin{document}

\makeatletter
\let\%\@percentchar
\makeatother

Compilation of this document completed on \input{|date +'\%b \%d \%Y'}.

Compilation of this document completed on 

\input{|date +'\%b \%d \%Y' }.

\end{document}

相关内容