המטלה מוכנה ב-Jupyter, ומערכת ההגשה דורשת PDF. אתם בוחרים „הורדה כ-PDF” או מריצים jupyter nbconvert --to pdf, ומקבלים שגיאה: xelatex לא נמצא, או ש-pandoc חסר. nbconvert מפיק קובצי PDF דרך LaTeX, ולכן הוא צריך הפצת TeX מלאה מותקנת לפני שהוא מוציא משהו.

עכשיו Look Scanned יכול לפתוח קובצי .ipynb ישירות. בחרו את המחברת שלכם בדף המרת Jupyter Notebook ל-PDF במראה סרוק, והיא מעומדת ישר בדפדפן: תאי ה-Markdown, הקוד והפלטים שנשמרו יחד איתה. בדקו את העמודים בתצוגה המקדימה והורידו PDF. אין מה להתקין, והמחברת לא מועלית לשום מקום.

דבר אחד כבר בהתחלה: Look Scanned גורם למסמכים להיראות סרוקים, וכך גם נראה ה-PDF. זה מתאים למחברת שצריך להגיש כעותק מודפס וסרוק, או כזו שפשוט צריכה להיראות כמו נייר. אפשר להוריד את הסיבוב, הטשטוש והרעש עד אפס כדי לקבל עמוד נקי יותר, אבל כל עמוד נשאר תמונה, ולכן אי אפשר לסמן את הטקסט ב-PDF או לחפש בו.

איך ממירים קובץ .ipynb ל-PDF במראה סרוק

  1. הריצו את המחברת ושמרו אותה ב-Jupyter, ב-JupyterLab, ב-VS Code או ב-Google Colab, כדי שהפלטים יישמרו בקובץ. ב-Colab השתמשו בקובץ ← הורדה ← הורדת ‎.ipynb.
  2. פתחו את המרת Jupyter Notebook ל-PDF במראה סרוק ובחרו את קובץ ה-.ipynb.
  3. עברו על התצוגה המקדימה עמוד אחר עמוד. בדקו את הקוד, הטבלאות והגרפים, וקבעו גודל נייר ושוליים.
  4. כווננו את אפקט הסריקה. השאירו את הטשטוש והרעש נמוכים כדי שקוד באותיות קטנות יישאר קריא. כברירת מחדל העמודים יוצאים בגווני אפור; בחרו „צבעוני” אם הגרפים צריכים לשמור על הצבעים שלהם.
  5. צרו את ה-PDF הסרוק והורידו אותו.

אם אתם מעדיפים תמונות, אפשר לייצא כל עמוד כ-JPG או כ-PNG במקום. המדריך ל-PDF, JPG ו-PNG מסביר מתי כל אחד מהם מתאים. עם Pro, סריקה בכמות גדולה מטפלת בכמה קובצי .ipynb בבת אחת.

מה מופיע בעמוד

  • תאי Markdown: כותרות, רשימות, טבלאות, קישורים ותמונות, כולל תמונות שהודבקו ישירות לתוך תא.
  • תאי קוד, עם הדגשת תחביר לפי שפת המחברת והסימונים In [1]: שלהם. שורות ארוכות נשברות לשורה הבאה במקום לחרוג מהעמוד.
  • פלטים שמורים, מתחת לסימונים Out[1]:: טקסט מודפס, ערכי החזרה, טבלאות HTML כמו DataFrame של pandas, ותמונות, כך שגרפים מ-matplotlib או מ-seaborn מופיעים.
  • שגיאות, עם ה-traceback המלא.
  • פלט מסוף כפי שמסוף מציג אותו. קודי הצבע מוסרים, ופס התקדמות כמו של tqdm שומר רק את המצב הסופי שלו במקום כל עדכון.

מה כדאי לדעת לפני שמתחילים

  • התאים לא מורצים. Look Scanned קורא את מה שנשמר בקובץ; אין ליבה (kernel). תא שמעולם לא הרצתם, או מחברת שנשמרה אחרי ניקוי הפלטים, מציגים קוד בלי שום דבר מתחתיו. הריצו את כל התאים ושמרו לפני שאתם בוחרים את הקובץ.
  • נוסחאות נשארות כקוד מקור של TeX. נוסחאות שנכתבו כ-$…$ או כ-$$…$$ בתאי Markdown מופיעות בדיוק כפי שהוקלדו, למשל $\alpha + \beta$, ולא כמתמטיקה מעומדת.
  • פלט אינטראקטיבי לא מוצג. Plotly, ‏Bokeh ו-ipywidgets מציירים באמצעות JavaScript, שלא מורץ. תקבלו את הגרסה הסטטית שהמחברת שמרה לצידו, שלרוב היא רק שורת טקסט קצרה, או כלום. גרפים שנשמרים כתמונות, כמו אלה של matplotlib, מוצגים בלי בעיה.
  • המחברת צריכה להיות ב-nbformat 4. זה מה שכותבות הגרסאות הנוכחיות של Jupyter, ‏JupyterLab, ‏VS Code ו-Colab. מחברת ישנה מאוד ב-nbformat 3 נדחית; פתחו אותה ב-Jupyter עדכני ושמרו שוב כדי לשדרג אותה.
  • טבלאות רחבות נדחסות. הטבלאות מותאמות לרוחב העמוד, כך ש-DataFrame עם הרבה עמודות מקבל עמודות צרות עם טקסט שנשבר לשורות.
  • שמרו את המחברת שלכם. בדיוק כמו סריקה אמיתית, ה-PDF בנוי מתמונות של עמודים. שמרו את קובץ ה-.ipynb כדי להריץ ולערוך את הקוד.

המחברת נקראת ומעומדת במכשיר שלכם ולא מועלית לשום שרת. החריג היחיד הוא תא Markdown שמציג תמונה לפי כתובת האינטרנט שלה: הדפדפן שלכם מוריד את התמונה מהאתר שמארח אותה, בדיוק כמו ש-Jupyter היה עושה.

מתי עדיף להשתמש ב-nbconvert

אם אתם צריכים טקסט שאפשר לסמן, נוסחאות מעומדות או PDF זהה לייצוא של Jupyter עצמו, nbconvert הוא עדיין הכלי הנכון. התקינו הפצת TeX והריצו jupyter nbconvert --to pdf, או השתמשו ב---to webpdf, שמדפיס דרך דפדפן Chromium ללא ממשק (headless) ומוותר לגמרי על LaTeX. בשני המקרים, אחר כך אפשר להוסיף ל-PDF הזה אפקט סריקה ב-Look Scanned.

העבודה שלכם היא קובץ Markdown או LaTeX ולא מחברת? גם אותם אפשר לפתוח: ראו המרת Markdown ו-HTML ל-PDF סרוק והמרת LaTeX ל-PDF סרוק.

יש לכם מחברת שצריך להגיש כ-PDF? נסו עכשיו.