필요한 무료 도구
- Sigil (맥용, 윈도우용; 오픈소스) : 비주얼 .epub 편집기
- TextWrangler (맥용; 무료) : 규칙 표현식으로 찾기/바꾸기가 되는 소스 편집기
- ePub Zip/Unzip 2.0.1 (맥용, 오픈소스) : .epub 파일로 묶기/압축 풀기
- TextWrangler를 실행한 다음, [Help – User Manual]을 클릭하여, PDF로 된 사용 설명서를 내려받습니다.
설명은 천천히 하고, 핵심 부분만 요약하면,
.epub 파일은 zip 압축 파일이며, 압축을 풀면 .xhtml이나 .html 파일들로 구성되어 있습니다.
.txt 파일은 모든 줄 끝이 잘려 있으므로, 하나의 문단이 여러 줄로 되어 있지만,
.html 파일은 하나의 문단이 하나의 줄로 되어 있어야 합니다.이 말은,
.txt 파일을 .epub 파일로 변환하려면, 먼저 줄마다 하나씩 잘려 있는 문단을, 한 문단을 한 줄로 이어서 붙여줘야 한다는 뜻입니다.그런데 .txt 파일에 따라서,
(1) 줄 끝을 단어(어절) 단위로 끊은 텍스트 파일이 있지만,
(2) 줄 끝을 글자(음절) 단위로 끊은 텍스트 파일이 있으므로,
문단을 하나의 줄로 이어 붙일 때 주의해야 하며, 수백 수천 개의 줄로 된 책 한 권의 줄 끝의 끊어진 부분을 이어주려면 사람이 할 짓은 못된다는 점입니다.이런 단순 반복 작업을 좀더 수월하게 하려면, 찾기/바꾸기를 할 때에 규칙 표현(regular expression)을 사용할 수 있는 텍스트 에디터가 필요한데, 그 중에서 무료이면서도 강력한 규칙 표현을 사용할 수 있는 TextWrangler 프로그램을 사용하면 무척 편리하다는 점입니다.
실제 변환 순서
- 본문 포매팅은 TextWrangler를 이용하고,
- 차례 구성은 Sigil을 이용합니다.
이렇게 하면, 200~300쪽 분량의 .txt 파일도 한두 시간이면 파일을 .epub 파일로 변환할 수 있습니다.
변환을 위해 꼭 숙지할 내용: TextWrangler의 사용 설명서 제8장 “Searching with Grep”.
제8장을 보면, 표현식(regular expression)을 써서 찾기/바꾸기를 할 수 있는 방법에 대하여 자세하게 설명하고 있는데, 본문과 줄바꾸기만 되어 있는 text 파일을 제목과 소제목, 본문, 들여쓰기, 가운데 정렬 등을 사용한 HTML 파일로 바꾸려면, TextWrangler의 표현식만큼 요긴한 기능이 또 없습니다. 게다가 무료로 이용할 수 있는 응용 프로그램입니다.
- 찾기/바꾸기 단축 키: command+f (이하 command는 cmd로 줄여씁니다.)
- 찾기/바꾸기 대화 상자에서 “Grep”을 체크하면, 표현식이 적용됩니다.
- 줄 시작: ^
- 줄 끝: $
- 화이트스페이스 문자: \s (space, tab, carriage return, line feed, form feed)
- 비화이트스페이스 문자: \S (any character not included by \s)
- 문자: \w (a-z, A-Z, 0-9, _, and some 8-bit characters)
HTML로 변환할 때는 태그 부호(< >)가 없는 내용을 찾을 때 사용할 수 있다. - 비문자: \W (all characters not included by \w, including carriage returns)
HTML로 변환할 때는 태그 부호(< >)를 찾을 때 사용할 수 있다. - 숫자: \d (0~9)
- p*: 아무 글자도 없거나 p로 시작하는 많은 글자를 찾을 때
- p+: p로 시작하는 하나 이상의 글자를 찾을 때
- p?: 아무 글자도 없거나 하나의 p를 찾을 때
- \: 다음에 오는 글자를 단순한 글자로 인식하게 할 때 사용
- ( ): 찾는 묶음의 단위.
가령 ( ) ( )… 라는 찾기 표현식이 있으면, 첫번째 묶음, 두번째 묶음과 같이 순서대로 인식한다. - \1 \2: 바꾸는 묶음의 단위.
가령 \2 \1과 같이 바꾸는 표현식을 사용하면, 찾은 내용 중에서 첫번째 묶음과 두번째 묶음의 순서를 바꾼다.
몇 가지 표현식 보기
- 챕터 제목이 들어갈 줄(제1장, 제2장,…)을 찾아서 헤딩 태그로 감싸기:
- 찾기: ^(제\d.*)$ => “제몇장 제목”만 찾는다. 시작부터 끝까지가 한 묶음( )이다.
- 바꾸기: <h2>\1<h2> => \1는 첫번째 묶음이란 뜻이고 앞뒤로 h2 시작과 끝 태그를 붙인다는 뜻
- 모두 바꾸기를 하면, 제몇장이라는 줄은 모두 h2 제목줄이 된다.
- 연속된 빈 줄 두 개를 찾아서 문단 시작과 끝 태그를 넣을 때:
- 찾기: 줄 끝에서 세번째 줄 시작까지를 복사하여 찾기에 붙여넣는다.
- 바꾸기: </p> <p>를 넣는다.
- 모두 바꾸기 또는 하나씩 찾아서 바꾸기 반복~
- 헤딩 태그로 끝나고 다음 줄이 태그 없이 시작하는 줄을 찾아서 문단 시작 태그 넣기:
- 찾기: (</h2>)$
^(\w) => h2 태그로 끝나고, 다음 줄에 <와 같은 시작 태그가 없는 곳을 찾는다. 찾기/바꾸기 상자 안에서 줄바꾸기는 option+enter 키를 누른다. - 바꾸기: \1
<p>\2 => 첫번째 묶음(\1)은 그대로 넣고, 다음 줄 시작(\2)을 문단 시작 태그인 <p>를 넣고 시작하게 한다. - 모두 바꾸기 또는 찾아서 바꾸기를 한다.
- 찾기: (</h2>)$
- <SPAN STYLE=로 시작해서 ‘>로 끝나는 태그를 찾아서 제거하기:
- 찾기: \<SPAN STYLE=.+’\>
- 바꾸기:
- 모두 바꾸기 또는 찾아서 바꾸기를 한다.
- <P CLASS=로 시작해서 ‘>로 끝나는 태그를 찾아서 <P>만 남기고 CLASS= 부분은 제거하기:
- 찾기: (\<P) CLASS=.+'(\>)
- 바꾸기:\1\2
- 모두 바꾸기 또는 찾아서 바꾸기를 한다.
이런 식으로 TextWrangler의 표현식을 이용하여 찾기/바꾸기를 하면, 짧은 시간 안에 많은 내용을 HTML 형식으로 바꿀 수 있습니다.
EPUB으로 만들기
본문 내용과 줄바꾸기만 있는 텍스트 파일을 HTML 태그를 사용하는 이펍 본문 포맷으로 만들었으면, 마지막으로 스타일을 지정하고, 차례를 만들어 주면, 이펍 변환 작업이 끝납니다.
- Sigil을 실행하면, 빈 이펍 파일이 열립니다.
- “Styles” 폴더에서 마우스 오른쪽 단추를 눌러, “빈 스타일 추가”(Add Blank Stylesheet)를 선택합니다.
- “Style0001.css”가 생겼으면, 내용에 다음 내용을 복사해 넣습니다.
body {line-height:1.5em;font-family:serif;}
h1,h2,h3,h4,dt {font-family:sans-serif;}
h2 {page-break-before: always; margin-bottom: -10px; text-indent: 1em;}
p {text-indent: 1em;} - TextWrangler에서 텍스트를 HTML 포맷으로 변경한 내용을 전체 또는 제1장에 해당하는 본문 내용을 복사하여 “Section0001.xhtml”의 <body> 다음 줄에 붙여넣습니다.
- 본문 내용이 길면, 챕터별로 나누어 복사하여 붙여넣기를 하는 것이 좋습니다.
이때는 Sigil의 “Text” 폴더에서 마우스 오른쪽 단추를 눌러, “빈 HTML 파일 추가”(Add Blank HTML file)를 하면 “Section0002.xhtml”, “Section0003.xhtml” 등이 순서대로 생깁니다. - 제1장, 제2장, 제3장이 각각 생겼다고 가정하고, 차례 만드는 과정을 설명하겠습니다.
- Sigil 메뉴에서 [Tools – Table of Contents – Generate Table of Contents]를 선택합니다.
- 헤딩 태그들이 차례 항목으로 자동 생성됩니다.
- 생성된 차례에서 불필요한 항목은 체크 박스를 해제하고, 차례에 표시될 제목을 바꾸거나(rename 버튼)들여쓰기/내여쓰기 버튼으로 단계를 조절한 다음, [OK] 버튼을 클릭하면, EPUB 변환 작업이 끝납니다.
- 저장한 다음, [깃든 리더]와 같은 이펍 뷰어에서 열면, 멋진 전자책이 스마트폰이나 태블릿에 생겨납니다.
[깃든 리더]로 .epub 파일을 가져오는 방법은 깃든 리더 설명서 “13. 책 가져오기”를 보고 따라하면 되겠죠.