18/03/21 20:53:09.60 .net
>>1001
> 異なるコンパイルをしようと思ったらファイルに直接その旨を指定しないと
Makefileの中で、platexの前に、sedでソースを書き換えてる行を1行入れれば良いだけ。
例えば、
\documentsclass{beamer}
を
\documentclass[handout]{beamer}
に書き換えるとかなら、
hoge: $(src)
sed -e ’s/\documentsclass{beamer}/\documentclass[handout]{beamer}/‘ $(src) > $(hoge_src)
platex $(hoge_src)
dvipdfmx -V 4 $(basename $(hoge_src))
-rm $(hoge_src)
で、
make hoge
とする。
1034:名無しさん@お腹いっぱい。
18/03/21 20:53:53.54 .net
$ cat ./file.ltx | lualatex --jobname=file
↑こんなことして意味あんのか知らんが。
結局「file」という名前を指定する必要があるし、出力はファイル。
1035:名無しさん@お腹いっぱい。
18/03/21 21:11:10.55 .net
991でsed通す所中間ファイル作らずにすむとか
cat head. list1.tex foot.tex | latex > list1.dvi
cat head. list2.tex foot.tex | latex > list2.dvi
…
とか
1036:名無しさん@お腹いっぱい。
18/03/21 21:13:53.34 .net
>>1006
それだとそうだけど、
fileをテンポラリファイルにして、
全体として標準入出力するラッパーを書けば良いのでは。
T=$(mktemp)
cat > $T
lualatex --jobname=$T
cat $T.pdf
rm $T $T.aux $T.toc $T.log $T.pdf
こんな感じに
1037:名無しさん@お腹いっぱい。
18/03/21 21:17:16.50 .net
昔texが直接pdfを吐けなかった頃、
latex | dvipdfm
みたいにパイプで繋げたら便利かなって思ってた
1038:名無しさん@お腹いっぱい。
18/03/21 21:20:05.13 .net
パイプラインで中間ファイルが必要だなんて、DOSのなんちゃってパイプラインみたいでダサい
1039:名無しさん@お腹いっぱい。
18/03/21 21:23:12.39 .net
unix流だとパイプラインの一部として使えるように実装しそうなのに、なんでそうしなかったのか不思議です
1040:987
18/03/21 21:30:59.11 .net
>>1005
>>1006
これ見て思い付いたが
FNAME=hoge
SRC=$(FNAME).tex
とでもしておいて
other: $(SRC)
cat $(SRC) | sed -e 's/AAA/BBB/g' | platex --jobname=$(FNAME)
とやると一次ファイルを作らずにすむな
$ make other
↑これ、TeX系列だとなんかありもしないファイルを読みこもうとして失敗する。
LaTeX系列だと行ける。TeXとLaTeXでjobnameオプションの処理が違うのかな?
ちょっとその辺分からんが、とりあえずLaTeXしか使わんし、満足だ。
1041:名無しさん@お腹いっぱい。
18/03/21 22:06:58.23 .net
>>1011
派生的なファイルをいくつも作るし、\inputとかもあるし、パイプラインとは親和性低い。
そもそもUNIXとは関係ないOSで開発されたし。
1042:名無しさん@お腹いっぱい。
18/03/21 22:19:00.16 .net
>>1013
\inputこそcatにつないでもらうって言う設計ポリシーもありえたんじゃ
auxとかは、標準入力のときはベースネームをstdに決め打ちにするとか手はある
1043:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1190日 20時間 28分 47秒
1044:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています