Skip to main content

Command Palette

Search for a command to run...

اولین تجربه با LaTeX (‌کتاب آموزش ‎(C‎+‎+

Published
3 min read

منبع این کتاب‌، سایت [CProgramming](http://Cprogramming.com "C Programming") است‌، که به نظرم یکی از کامل‌ترین منابع آموزش C‎+‎+‎ است که به صورت رایگان در سطح اینترنت قابل دسترسی است‌. در این PDF که با استفاده از LaTeX آماده شده‌، مجموعه پنج فصل از مطالب منتشر شده‌، روی سایت CProgramming در کنار هم قرار گرفته‌اند‌. در این پست قصد ندارم بیشتر از این به معرفی مطالب کتاب بپردازم و بیشتر به دنبال اشتراک گذاری تجربیاتم در آماده کردن این کتاب هستم‌. (‌این کتاب را می‌توانید از لینک پایان همین متن دریافت کنید‌)

اول از همه باید به ابزاری بپردازم که در آماده کردن این کتاب کمکم کرد‌! در واقع بدون این ابزار‌، کار عاقلانه‌ای به نظر نمی‌رسید که من تازه‌کار دست به آماده کردن چنین فایل بزرگی به زبان TeX بزنم. این نرم‌افزار [TeXmaker](http://www.xm1math.net/texmaker/ "texmaker official website") نام دارد و اسلکور کاران عزیز می‌توانند با این [Slackbuild](http://slackbuilds.org/repository/13.37/office/texmaker/ "texmaker slackbuild") آن را نصب کنند‌.

بحث بعدی این است که متن کتاب انگلیسی است‌، و خوب برای تازه‌کار‌ها بهترین روش همین آماده کردن متنی ساده به انگلیسی است‌. با این حساب نیاز زیادی به بسته‌های متفرقه‌ای که باید وارد می‌کردم نداشتم‌، و این باعث می‌شد که راحت‌تر بتوانم اصول پایه‌ای تک را فرا بگیرم‌، با مشکلاتش دست و پنجه نرم کنم و نرم نرمک به طرف زیبا‌سازی متنم با ابزار‌ها متفرقه گام بردارم‌.

به طور کلی چیز‌های زیادی از کار با LaTeX در این پروژه‌ی شخصی یاد گرفتم‌، اما این PDF هنوز هم مشکلاتی دارد. آن‌هایی را که شناختم در زیر لیست می‌کنم‌:

  • فایل TeX آماده شده‌، بسیار حجیم هست‌، و در واقع اگر از TeXmaker استفاده نمی‌کردم محال بود که بتوانم آن را راحت مدیریت کنم‌. با توجه به این که LaTeX قابلیت تقسیم کردن پروژه به فایل‌های کوچک‌تر را دارد‌، باید از آن بهره بگیرم‌.
  • در مثال‌های کتاب که به زبان C‎++‎ بود‌، بسیاری از علامت‌ها نظیر #, &, >, < باید با علایم ویژه‌ی TeX نگاشته می‌شد‌. با این حساب دوست نداشتم که قوانین نوشتن پاراگرف هم در این مثال‌ها لحاظ شود‌، چون جز زیاد کردن مشقت خواندنشان‌ فایده‌ی دیگری نداشتند. به همین دلیل آن‌ها را در بلوک verbatim قرار می‌دادم‌. ولی متاسفانه این بلوک خطوط را نمی‌شکست و همین باعث بی‌نظمی در بعضی مثال‌ها شده است‌! ‌(‌باید به دنبال چاره‌ای برایش باشم‌)
  • تا جایی که توانستم ارجاعات متن را به مکان مربوطه لینک کردم‌، ولی ممکن است باز جاهایی از دستم در رفته باشد‌. این مشکلات و وجود علایمی مانند «‌>‌» که در لاتک به صورت علامت سوال سر و ته چاپ می‌شوند و برای رفع ایرادشان باید به روش‌هایی متوسل شد‌، بیشتر روی این نکته تاکید دارد که کسی که با لاتک کار می‌کند باید بداند چه متنی را تایپ می‌کند و مثل من یک دفعه متنی نا آشنا و نخوانده را به لاتک فشار ندهد‌!
  • برای ایجاد لینک‌هایی که کار کنند و رنگشان متفاوت باشد‌، از بسته‌ی url استفاده کردم‌. کار با آن فوق‌العاده آسان است‌، اما باز هم متاسفانه لاتک لینک‌ها را نمی‌شکست‌! ‌(‌نمی‌دانم عبارت «‌متاسفانه‌» در اینجا درست است یا نه‌) پس باید دستی این کار را می‌کردم و باز هم ممکن است جایی در متن نا همگونی رخ داده باشد‌.

حالا باید به سراغ چالش بعدی‌ام بروم‌. در نظر دارم که متن پروژه‌ی لیسانسم را با همین لاتک آماده کنم‌. در آن‌جا بحث کمی متفاوت است‌. متن فارسی با عبارات انگلیسی‌! این در حالی است که ساختار یافتگی متن خروجی لاتک می‌تواند بسیار کمکم کند‌. سعی می‌کنم به وقایع‌نگاری این تجربیاتم در [شاهینیسم](http://shahinism.com "وبلاگ شاهینیسم") بپردازم ;-)

[دریافت بسته‌ی کامل کتاب ‌(‌فایل TeX به همراه خروجی‌ها اعم از PDF‌)](http://db.tt/M8ZdSmf "C++ book on DropBox")

More from this blog

معجون بهشتی Selenium, PhantomJS و Requests برای web scraping

این روز‌ها خودکار کردن کار‌های تکراری روزمره‌مان یک جورهایی برگ برندهٔ کاربران، توسعه‌دهندگان و یا حتی تیم‌های فعال در حوزهٔ نرم‌افزار محسوب می‌شود. از پتانسیل بالای درآمد‌زایی‌اش در بعضی شرایط اگر بگذریم‌، کاهش زمان مورد نیاز انجام کار‌ها به میزان ز...

Oct 15, 20168 min read

ورژن کنترل اختیاری نیست!

حقیقتش انتظار داشتم این موضوع خیلی وقت پیش حل شده باشد. حتی پیش خودم فکر می‌کردم که ورژن کنترل یک جورهایی جزء غرایض جامعه‌ی نرم‌افزاری است‌، آن هم با درجه‌ی اهمیتی مثل نفس کشیدن. دوستی دارم که حدوداً دو سال پیش روی دیوار فیس‌بوک‌اش از پاک شدن اتفاقی ...

Dec 27, 20154 min read

خوبی‌های جاوا اسکریپت؟

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

Jul 8, 20153 min read

کدنویسی بازی جاوااسکریپت به صورت زنده توسط Mary Rose

نمی‌دونم چقدر با جاوااسکریپت آشنایی دارین، ولی جدا زبان فوق‌العاده‌ایه. خصوصا این که پلتفرم جذابی داره‌، اصلا نیاز نیست چیزی کامپایل شه یا برنامه خاصی نصب شه‌، یه مرورگر و تموم، دیگه شمایید و خلاقیتتون. گاها آدم یه چیزایی می‌بینه که بدجوری سر شوق می‌...

Oct 8, 20141 min read

برنامه نویسی کرنل لینوکس با راهنمایی The Eudyptula Challenge

عموما کسانی که از گنو/لینوکس به عنوان سیستم‌عامل اصلی‌شان استفاده می‌کنند‌، همه‌اش به خاطر چه می‌دانم‌، فرهنگ آزاد یا روش‌های گیکانه انجام کار‌هایشان نیست. حتی برای باحال‌تر به نظر رسیدن هم نیست. حقیقت این است که ما‌، علاقه به درک بیشتر ابزار‌هایمان ...

Oct 1, 20143 min read

وبلاگ شاهین

221 posts