인디자인에서 텍스트 프레임 속 글귀를 수정하려면 마우스로 해당 프레임을 더블클릭 하거나, ‘문자 도구(단축키: T)’가 활성화된 상태에서 프레임을 클릭해야 한다. 그런데 책의 본문을 다루는 등 텍스트를 수정/입력하는 작업을 많이 해야할 때는 마우스로 요소를 건드리는 게 귀찮아지고, 계속 키보드로만 작업을 이어가고 싶은 일종의 관성(?)에 사로잡힌다. 각종 단축키에 익숙하다면 그런 관성은 더 심해진다. 예를 들어 어떤 이미지를 만드는 데 텍스트 프레임이 수십개나 된다면 그것들을 일일이 더블클릭하는 건 생각 이상으로 성가신 일이다.
특정 텍스트 프레임을 키보드로 선택하는 건 애초에 불가능하므로, 어떤 텍스트 프레임을 마우스로 선택했을 때 그걸 수정할 수 있게 활성화 해주는 단축키가 있는지 찾아봤다. 공식적으로 제공된 기능은 없었다. 하지만 크리에이티브프로(CreativePro) 포럼이나 어도비 커뮤니티(Adobe Community)에서 글을 쓰는 고인물(?) 유저들은 언제나 답을 찾는다. 이번에도 내 의문을 먼저 공유하고 있던 사람들이 있었다(원문 링크).
터위니스 더 용(Theunis De Jong)이라는 네덜란드 유저1가 다소 간단해보이는 스크립트 식을 올렸는데, 해당 스크립트에 단축키만 달면 딱 내가 원하는 기능을 구현한다. 데 용은 두 가지 방향으로 스크립트 식을 공유했다.
(1) 텍스트 프레임 시작 부분에 커서를 두게 하는 식
try {
app.selection[0].texts[0].insertionPoints[0].select();
} catch (_)
{
/* beep beep */
}
(2) 텍스트 프레임 속 모든 텍스트를 선택하게 하는 식
try {
app.selection[0].texts[0].select();
} catch (_)
{
/* beep beep */
}
인디자인 스크립트는 애플스크립트와 자바스크립트를 주요하게 사용하는데, 위의 식은 자바스크립트를 활용한 경우다. 그 중에서 try/catch 문을 사용했는데, try/catch 문은 자바스크립트에서 예외 처리 메커니즘이다. try 절에서 직접적으로 처리하고자 하는 무언가를 두고 그걸 실행했을 때, 예외가 일어나면 catch 절에 있는 걸 실행하는 식이다.
try 절에 있는 걸 보자면, 인디자인 문서 안에서 선택된 것(app.selection[0])의 텍스트(texts[0])가 공통으로 있다. 거기서 첫 번째 경우처럼 삽입점을 선택하라(insertionPoints[0].select())는 명령을 내리면 1번처럼 텍스트 프레임 시작 부분에 커서를 두게 하고, 두 번째 경우처럼 텍스트 자체를 선택하게 하면 모든 텍스트가 선택되는 것이다.
그리고 catch 절에 다소 장난스런 주석(/* beep beep */)만 달아놓음으로써 아무 일도 일어나지 않게 했다. 애초에 주석에는 기능이 없기 때문이다. 그래서 이 스크립트는 try 절에 오류(예외)가 발생해도 별다른 경고가 없다. 아무 일도 안 일어나면 ‘뭔가 선택되지 않았거나 잘못됐구나’하고 넘어가면 되는 것이다. 마구 클릭해도 경고 없이 반응/반응 없음만 알 수 있게 한 이러한 선택이 오히려 스크립트를 더 간편하게 만들어주는 것 같다. 매우 간단한 연계를 위해 만들었는데, ‘뭔가 선택되지 않았다’고 경고가 뜨면 그거야 말로 더 귀찮아지는 일이다. 귀찮음을 이기기 위해 만든 게 오히려 또 다른 귀찮음을 낳는 결과가 초래되는 것이다.
이 스크립트는 당연히 단축키와 함께 효율성이 극대화된다. [개체] → [선택] → [위쪽 다음 개체](맥 기준 단축키:cmd + opt +]) 또는 [아래쪽 다음 개체](맥 기준 단축키: cmd + opt + [)를 조합해 사용하면 꽤나 유용하다. 인디자인 스크립트 단축키는 [편집] → [단축키]에서 제품 영역 목록 하단부에 있는 ‘스크립트’ 항목에서 설정할 수 있다. 앞서 살펴본 스크립트 식은 '프레임_내_텍스트수정'이라는 제목으로 .jsx파일을 만들었다. 식의 순서대로 넘버링을 해 아래에 첨부했다.
1 터위니스 더 용은 ‘Jongware’라는 필명으로 더 유명한데, 꽤 오래전부터 인디자인 스크립트 관련한 질문들에 자기만의 코딩을 공유해온 노련하고 유능한 해결사였다. 정말 안타깝게도 2020년, 54세를 일기로 작고하셨다.