تلاش‌های من برای خروجی epub گرفتن از کتاب Competitive Programmer’s Handbook

پیش‌نوشت: این نوشته به ندرت با تلاش‌های دیگه‌ی من به‌روزرسانی می‌شه. در حال حاضر فقط لیست تلاش‌های ناموفقم رو این‌جا می‌ذارم و به زودی نوشته رو کم‌کم به روزرسانی می‌کنم.


بعد از خوندن Things to Make and Do in the Fourth Dimension تصمیم گرفتم برای بیشتر آشنا شدن با مباحث درس الگوریتم‌مون بجای خوندن کتاب مرجعش کتاب Competitive Programmer’s Handbook که جادی معرفی کرده بود رو بخونم ولی فهمیدم که نسخه‌ی epub یا mobi برای مطالعه توی کیندل نداره و فقط نسخه‌ی PDFش منتشر شده. تصمیم گرفتم تلاش کنم و از فایل‌های tex برنامه خروجی بگیرم.

اول از همه توی صفحه‌ی گیت‌هاب اون مخزن رو توی Github Desktopم باز کردم. اگه دوست ندارید با ابزار گرافیکی کار کنید این کار من با اجرای دستور git clone https://github.com/pllk/cphb.git یکیه. توی ویندوز هم می‌تونید با choco install git گیت و CLIش رو روی سیستم خودتون نصب کنید. (به این شرط که سیستم مدیریت برنامه‌ی chocolatey رو نصب داشته باشید – نصبش پیشنهاد می‌شه و برای نصب ابزارهای مورد نیاز این‌جا هم می‌شه ازش استفاده کرد)

اولین جست‌وجو منو به برنامه‌ی pandoc رسوند. بنابراین توی فولدری که کلون کرده بودم رفتم و دستور pandoc book.tex -t epub -o book.epub رو اجرا کردم (قبلش choco install pandoc) و چند صفحه‌ی اول کتاب توی calibre epub viewer به نظر خوب میومد. برای همین کامیتش کردم و پول ریکوئست رو فرستادم و فایل رو هم توی کیندلم فرستادم که بخونمش.

موقع خوندن متوجه شدم که فرمول‌های ریاضی به شکل خیلی بدی نمایش داده می‌شن. مثلن

توی فایل epub:

توی فایل PDF:

یا مثلن توی فایل epub:

 توی فایل PDF:

با توجه به این‌که با موضوعاتی که داشت می‌گفت آشنایی داشتم در فهم فرمول‌ها (بیشتر حدس زدن‌شون) مشکلی نداشتم (البته من اوایل فصل اول رو خوندم). ولی چون چنین چیزی برام قابل قبول نبود به دنبال راه‌حلش گشتم.

 چیزهایی که امتحان کردم و جواب ندادن تا الان این‌ها بودن:

  • خروجی گرفتن با epub3 با دستور pandoc book.tex -t epub3 -o book.epub و تستش توی calibre viewer که چون کالیبره از کتاب‌خونه‌ی MathJax موقع نمایش کتاب استفاده می‌کنه، خروجیش با خروجی کیندل یا Edge یکی نیست.
  • ایده‌م اینه که باید یجوری به پنداک بفهمونم که فرمول‌های ریاضی رو به عکس تبدیل کن به جای MathMl ولی موفق نشدم هنوز.
  • از --webtex هم استفاده کردم ولی به خاطر محدودیت اینترنت توی خونه خیلی کند بود و توی سرور هم به دلایل نامعلوم پروسه وسطش کیل می‌شد که هنوز فرصت نکردم بررسیش کنم ببینم چرا این‌جوری می‌شه.
  • مشکلم با خروجی html گرفتن و تبدیلش توی کالیبره اینه که مطمئن نیستم بتونه فهرست رو درست تبدیل کنه. ولی فرصت نکردم امتحانش کنم.
  • فیلتر pandoc-eqnos رو با دستور --filter pandoc-eqnos تست کردم ولی تستش بیهوده و بی‌دلیل بود 🙂 در واقع شانسمو امتحان کردم صرفن
  • یک‌سری تست بیهوده‌ی دیگه هم داشتم با دستور --mathjax و --self-contained ولی به نتیجه‌ای نرسید.

در نهایت به یک‌سری لینک رسیدم که هنوز فرصت نشده بررسی‌شون کنم و برای مراجعه‌ی آینده این‌جا می‌ذارم

اگه نظر یا راه‌حلی دارید خوشحالم می‌شم باهام در میون بذاریدش 🙂


پی‌نوشت: در حین نوشتن به تاریخچه‌ی دستوراتی که توی پاورشل اجرا کرده بودم نیاز پیدا کردم. در کمال تعجب فهمیدم دستور get-history کار نمی‌کنه. (در واقع صرفن تاریخچه‌ی دستورات همون پنجره‌ی پاورشل رو بر می‌گردونه که به دردم نمی‌خورد) ولی Arrow Keyها (کلید بالا و پایین) کار می‌کنن و دستورات قبلی رو میارن. این‌جا فهمیدم که توی ویندوز ۱۰ تاریخچه توی فایل C:\Users\username\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt ذخیره می‌شه.

داستان کیندلم و چرا امسال می‌خوام یک‌سری از کتاب‌های اشعار رو بخرم

وقتایی که توی کتاب‌فروشی از قفسه‌ی کتاب‌های شعر (مثلن اخوان) عبور می‌کنم، توی ذهنم هست که مجموعه‌ی همه‌ی این‌ها رو توی گنجینه دارم و هر وقت بخوام می‌تونم توی گنجینه برم سراغ‌شون. مشکل اینه که هیچ‌وقت این کارو نمی‌کنم.

مطمئن نیستم دلیلش چیه، شاید به این مربوطه که با یه ضربه همه‌ش رو توی گوشی یا لپتاپم میارم و تبدیل می‌شه به یه آیکون توی اپ‌لیست طولانی (یا یه کاشی توی استارت منوم) که ایگنور کردنش راحت‌تر از کتاب‌های نخونده توی کتاب‌خونه‌ست که هر از چندگاهی به آدم چشمک می‌زنن.

ولی می‌دونم تنها دلیلش این نیست چون مدت‌ها تلاش کردم با لپتاپ و گوشیم کتاب بخونم و جز در مواقع معدودی شکست خوردم. مثلن از همون موقعی که نوشته‌ی جادی در مورد کتاب «رویای برنامه‌نویسی» رو خوندم توی ذهنم بود که یه زمانی این کتاب رو شروع کنم و حتی چندباری دانلود و شروعش کردم ولی هیچ‌وقت پیشرفت نکردم.

برای همین همیشه تبلت‌ها برام جذاب بودن چون تبلت وسیله‌ایه که آدم خیلی راحت‌تر می‌تونه باهاش کتاب بخونه و می‌شه همه جا با خودش ببردش (مثلن یبار توی پایتخت با مهدی یه تبلت Dell ارزون قیمت ۸ اینچی دیدیم و تنها با همین فکر که چقدر به درد کتاب خوندن می‌خوره به فکر خریدنش بودم. با این حال این فکر یهویی خیلی زود هم ناپدید شد)

و یکی از دلایل جذابیت سرفیس برای من همین مساله بود و با این‌که توی خانواده قبل از اون یه آپید داشتیم که کتاب‌خونی توش رو امتحان کرده بودم و چندان موفقیت‌آمیز نبود، این مساله رو به اشتراکی بود آیپد ربط داده بودم و نه به این‌که همون‌طور که ویندوز و لپتاپ برای من محیط مناسبی برای کتاب‌خونی نبود، آیپد (یا تبلیت‌های اندرویدی یا ویندوزی) به خاطر محیط شلوغ و امکانات زیادی که در اختیار آدم قرار می‌دن (کافیه دکمه‌ی وسط رو بزنی و وارد یه بازی یا مرورگر بشی) محیط مناسبی نیستن.

با کتاب‌خوان‌ها از دوران دبیرستان آشنایی کوچیکی داشتم. یه متن توی یکی از کتاب‌های آموزشی کانون زبان، کتاب‌خوانی که محمد داشت، (و کتاب‌خوان دیگه‌ای که بعدش گرفت که LCD داشت و تکنولوژی E-Ink نداشت) و کتاب‌خوان فرید ولی هیچ‌وقت به عنوان یه گزینه‌ی خوب در نظر نگرفته بودم‌شون تا این‌که پارسال نوشته‌ی جادی راجع به کیندل‌ش رو خوندم و واقعن جذبش شدم. و این‌جوری شد که تقریبن هفت ماه بعدش کیندل پیپروایت سفید رنگمو خریدم 🙂 و تا الان ازش خیلی راضی بودم.

نکته‌ای که باید بهش توجه کرد اینه که من از قبلش کتاب‌های کاغذی رو می‌خوندم و کیندل باعث نشد کتاب‌خون بشم، بلکه کمکم کرد بتونم حوزه‌ی خیلی وسیع‌تری از کتاب‌ها رو بخونم و ازشون لذت ببرم و به خاطر این مساله خیلی خوشحالم.

در مورد کتاب‌های شعر هم داستان مشابه همینه. فکر کنم دو سالی می‌شه مهدی گنجینه رو نوشته و روی کامپیوترم نصبش دارم (البته نه همیشه. مثلن الان هنوز نصبش نکردم بعد از چند وقت پیش که ویندوزم رو عوض کردم ??) ولی جز «اهل کاشانم» سهراب و شاید یکی دو تا شعر دیگه سراغ چیزهای دیگه‌ای نرفتم.

برای همین توی نمایشگاه کتاب امسال احتمالن کتاب‌های شعر (شاید اخوان و سهراب و فروغ و شاهنامه به همراه جلد اول نامه‌ی باستان) سهم بیشتری توی خریدم داشته باشن و بقیه‌ش رو هم یک‌سری رمان کلاسیک مثل ابله داستایوفسکی (که ترجمه‌ی قدیمی‌ای از اون رو خوندم و برام لذت‌بخش نبود و به پیشنهاد دوست کتاب‌خونم می‌خوام ترجمه‌ی به‌روزتری ازش رو بخونم) یا جنایات و مکافات و یک‌سری رمان که اسم شناخته‌شده‌تری دارن باشه. و بخش دیگه‌ایش هم به کتاب‌هایی تعلق می‌گیره که در حین بازدید از غرفه‌ها توجهم رو به خودشون جلب می‌کنن..