علی شکیبا

دفتر یادداشت دیجیتال برای هر چیز مفید!

برای تایپ از TeX Studio استفاده می‌کنم، اما تایپ متن فارسی با آن زجرآور است! به همین دلیل، ترجیح می‌دهم تا متن فارسی را در gedit تایپ کنم و خروجی آن را هم در evince ببینم. اما اجرای دستی xelatex زجرآور است، گرچه خیلی کمتر از زجر تایپ فارسی در TeX Studio است! اولین تلاش برای خودکار کردن به صورت زیر بود که هر دقیقه یکبار xelatex را اجرا می‌کرد!

while $( sleep 60s )
do
xelatex -synctex=-1 -interaction=nonstopmode report.tex
   bibtex report
   xelatex -synctex=-1 -interaction=nonstopmode report.tex
   xelatex -synctex=-1 -interaction=nonstopmode report.tex
done

این موضوع خوب بود تا اینکه زمان پایان اجرای xelatex کمی بیش از یک دقیقه شد! این بار دست به دامن اینترنت شدم! بسته inotify-tools دقیقا این کار را انجام می‌دهد!

while inotifywait -e close_write report.tex
do
xelatex -synctex=-1 -interaction=nonstopmode report.tex
   bibtex report
   xelatex -synctex=-1 -interaction=nonstopmode report.tex
   xelatex -synctex=-1 -interaction=nonstopmode report.tex
done

البته طبق آنچه که در اینجا آمده است، در صورتی که ویرایشگر شما به جای تغییر فایل، کل فایل را بازنویسی کند، gedit این گونه نیست!، باید از راهکار زیر استفاده کنید و پوشه را تحت مانیتور قرار دهید.

while true
do
change = $( inotifywait -e close_write,moved_to,create . )
change = ${change#./ *}
if [ "$change" = "report.tex" ]
then
xelatex -synctex=-1 -interaction=nonstopmode report.tex
    bibtex report
   xelatex -synctex=-1 -interaction=nonstopmode report.tex
   xelatex -synctex=-1 -interaction=nonstopmode report.tex
fi
done
موافقین ۰ مخالفین ۰ ۹۴/۰۲/۰۱
علی شکیبا

bash

latex

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی