טיפים באינדיזיין: חיפוש פסקאות לפי כניסה

חיפוש פסקאות לפי כניסה

כששאלו אותי האם אפשר לחפש פסקאות בעלות כניסה של 5 מ”מ, התשובה המיידית שלי היתה שאפשר בהחלט, בתחתית חלונית Find/Change ברובריקה Find Format ניתן לבחור הגדרות עיצוב, כולל כניסות.

חלונית Find/change עם הגדרת כניסה ימנית 5 מ"מ

 

אבל מסתבר שזה לא כזה פשוט. כלומר, אם נחפש פסקאות שהכניסות שלהם הוגדרו באינדיזיין זה יעבוד, אבל אם הלקוח הגדיר בקובץ ה-Word כניסה של 5 מ”מ (או כל מידה אחרת), וננסה לחפש את זה באינדזיין, התוצאה תהיה שלילית – אין פסקאות כאלה.

למה זה קורה? מסתבר שהמידות של Word לא ממש מדוייקות, ולמרות שכתוב 5 מ”מ, זה לא באמת 5.000 מ”מ אלא אחרי הנקודה העשרונית יש מספר כלשהו, גם אם ב-Word זה לא מופיע

השוואה בין הנתונים של אינדיזיין ל-Word

אז מה הבעיה? נבדוק את המידה באינדיזיין ונגדיר אותה בחיפוש, ואז זה בטח יעבוד, לא?

לא… זה לא יעבוד כי מסתבר שיש עוד בעיה. אינדיזיין מציגה לנו את המידה עם שלוש ספרות אחרי הנקודה, אבל האמת היא שאינדיזיין מאד מאד מדוייקת והמספר שמוצג הוא עיגול של הנתון האמיתי.

כלומר אם נרשום 3.00000001, המידה שתוצג באינדיזיין היא 3, אבל אם נחפש כניסה עם 3 מ”מ לא נמצא כלום, ולעומת זאת אם נחפש 3.00000001 נמצא את הפסקה שהגדרנו לה את הכניסה הזו.

 

אבל יש פתרון גם לזה, בצורת סקריפט קצרצר (שורת קוד בודדת) שמצאתי בפורום של אדובי.

app.findTextPreferences.rightIndent = app.selection[0].rightIndent

 

כדי להפעיל את הסקריפט יש לפתוח את היישום Adobe® Extendscript Toolkit CC, שמצורף לחבילת אדובי (אפשר לפתוח דרך חלונית הסקריפטים את אחד הסקריפטים עם קליק ימני, ולבחור Edit script). שם יש להדביק את הקוד הזה, כך:

adobe extend toolkit

היישום הזה לא שייך דווקא לאינדיזיין והוא מאפשר לכתוב סקריפטים לכל תוכנות אדובי, ולכן צריך להסביר לו לאיזו תוכנה הסקריפט משוייך. לשם כך ליד נלחץ בתפריט שליד השרשרת הירוקה, ונבחר את אינדיזיין.

הגדרת התוכנה אינדיזיין באקסטנד סקריפט

הסקריפט הזה אמור לאחזר לתיבת החיפוש את הערך האמיתי של הכניסה בטקסט נבחר. לכן נבחר טקסט ונריץ את הסקריפט. (לחיצה על לחצן ה-play הירוק).

התוצאה תופיע עם שלוש ספרות אחרי הנקודה בתיבת החיפוש, אבל הערך האמיתי יופיע בקונסול שבצד ימין:

חלונית JavaScript Console המציגה את הערך האמיתי של הכניסה בדיוק מירבי של ספרות אחרי הנקודה

[שימו לב שהתוצאה בתיבת החיפוש תופיע רק במצב text, בשביל שזה יעבוד במצב GREP יש להחליף את המילה Text שבקוד, במילה Grep (חשוב להקפיד על אותיות גדולות וקטנות).

בקוד המקורי כמובן הכניסה היא leftIndent ואני שיניתי את זה ל-rightIndent כדי שיתאים לעברית.

עדכון י”ד שבט תשפ”ד (24.1.24):

מכיון שהתוכנה ExtendScript כבר לא זמינה בענן של אדובי עקב המעבר ל-UXP, הפתרון שהוצע לעיל אינו יעיל יותר.
מצורף קוד סקריפט שמחזיר את הערכים של leftIndent ו-rightIndent בהודעה.

if (app.selection.length > 0 && app.selection[0].hasOwnProperty("paragraphs")) {
var selectedText = app.selection[0];
var rightIndentValue = selectedText.paragraphs[0].rightIndent;
var leftIndentValue = selectedText.paragraphs[0].leftIndent;
alert("הזחה ימנית: " + rightIndentValue + "\r\nהזחה שמאלית: " + leftIndentValue);
} else {
alert("יש לבחור טקסט");
}

אהבתם את הטיפ? שתפו עם חברים!
אפשר גם לפרגן לי בכוס קפה...

מה דעתך על הטיפ?

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

אל תפספסו טיפים חדשים

הירשמו לניוזלטר וכך תקבלו התראה במייל בכל פעם שיעלה טיפ חדש

יש לכם שאלה באינדיזיין?

מוזמנים לקבוצת הוואצאפ!

מוצרים במיוחד בשבילך

קובץ אינדיזיין – “שיר השירים” מוכן לעימוד

 150

קובץ קריאת התורה לשני וחמישי – מוכן לעימוד

 400 480

קובץ ברכת המזון מוכן לעימוד

 90

קובץ אינדיזיין – “מגילת רות” מוכן לעימוד

 350

אל תפספסו טיפים חדשים

הירשמו לניוזלטר וכך תקבלו התראה במייל בכל פעם שיעלה טיפ חדש