2011-07-29 20 views
0

pandocを使用してepubファイルに構築したいラテックスプロジェクトがあります。私は\ input {FILE}コマンドを使って章を別々のラテックスファイルに保存しています。残念ながら、pandocは\ inputコマンドを理解していないので、私の章は決して挿入されません。テキストファイルの行を検索して既存のテキストファイルの内容に置き換えます

私は、その後、そのファイルの内容でそれと交換し、

\input{ch1.tex} 
\input{ch2.tex} 
... 

と各ラインのような行を見つけるために私のmain.texファイルを処理するスクリプトか何かを実行する必要が

オリジナルの\ inputコマンドを削除してから、結果を一時ファイルに入力するか、結果をビルドするpandocコマンドに直接パイプします。

このプロジェクトは、WinXPとDebianの両方でMikTexとTexLiveを使ってビルドされています。 Linux上で動作するソリューションが好まれます。 Perlの使用

答えて

2

あなたはgawkの持っている場合:私はエラーを取得

gawk ' 
    match($0, /\\input\{([^\}]+)/, a) { 
     system("cat " a[1]) 
     next 
    } 
    {print} 
' 
1

$ cat file1.txt 
foo 
bar 
qwe\input{file2.txt}asd\input{file3.txt}zxc 
baz 
$ cat file2.txt 
qux 
quux 
quuux 
$ cat file3.txt 
xyzzy 
xyzzzy 

$ <file1.txt perl -pe 's/\\input{([^}]*)}/open $1,"<$1";join("",<$1>)/ge' 
foo 
bar 
qwequx 
quux 
quuux 
asdxyzzy 
xyzzzy 
zxc 
baz 
+0

:-e行1で開いたため 引数が足りませんが、近くに "オープン" – Scribblemacher

関連する問題