一个标准的 UN*X 工具来在 filecontents 环境中打包一堆文件?

一个标准的 UN*X 工具来在 filecontents 环境中打包一堆文件?

我正在寻找类似的东西:

 filecontents *.sty | cat - main.tex > newmain.tex

编写一个脚本来迭代其参数并将它们包装在环境中应该很容易filecontents。我想知道是否有这样的标准工具。

这是一个可以完成这个工作的简单脚本:

#!/bin/sh -f
for f in $* ;  do
  echo \\\\begin{filecontents}{$f} 
  cat $f 
  echo \\\\end{filecontents}
done

如果没有这样的标准工具,您希望在其中看到什么?

答案1

这是一个稍微改进的脚本:

#!/bin/bash -f
function bundle {
  echo "\\begin{filecontents*}{$1} % Begin: '$1' $2"
  cat $1 
  echo "\\end{filecontents*}       % End: '$1' $2"
}

me=`basename "$0"`
case $# in 
  0) 
    echo "Usage: $me file(s)" 
    ;;
  1) 
    bundle $1
    ;;
  *) 
    i=1
    echo "% BEGIN: bundle $# files ($*) `date`"
    for f in $*;  do
      bundle $f "\#$i/$#: `date`"
      [ $i -ge $# ] || echo 
      let i=$i+1
    done
    echo "% END: bundle $# files ($*) `date`"
    ;;
esac

改进包括:

  • 生成更详细的 LaTeX 注释,包括日期、文件数量等。
  • 使用filecontents*环境

如果有人对变体感兴趣,请告诉我。也许有一天我会把它做成一个更标准化的工具。即使不是,满足人们真正需要的东西也很好。

相关内容