posted by 내.맘.대.로 2017. 6. 2. 14:47

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

-내용 추가-
이 글은 2017년 작성되었습니다.

EPUB3 변환 플러그인을 이용하면 아래 설명처럼 복잡한 방법을 사용하지 않아도 됩니다.

https://www.mobileread.com/forums/showthread.php?p=2973066

이제 플러그인으로 클릭 한번이면 EPUB2 파일을 EPUB3로 변환할 수 있습니다.

 

앞 글(http://epubguide.net/224)에서 EPUB2를 EPUB3로 변환해야 하는 상황을 설명드렸습니다. 사족이 너무 길어져 글을 나누게 됐지만, 전자책을 만들다 보면 EPUB2를 EPUB3파일로 변환해야 하는 일이 생길 수 있습니다.

 

이번 글은 Sigil에서 EPUB2를 EPUB3로 변환하는 방법을 설명드리려고 합니다. 

 

EPUB2에서 epub:type 속성을 사용하거나 aside 등의 태그를 쓰면 아래처럼 오류가 발생합니다. 

 

 

 

뷰어에서 보면 아무 문제도 없지만, 유통사에 등록할 때 오류 때문에 등록이 안된다고 할 수 있어요.

오류를 없애는 방법은 2가지. 

 

1. 팝업 주석을 없애고 링크로 연결하거나 미주 처리 한다.

2. EPUB3로 바꾼다.

 

1번은 고려 대상이 아니기 때문에 EPUB3로 바꿔야 합니다. EPUB2를 EPUB3로 바꾸는 방법은 생각보다 간단해요.

 

 

 

1단계. 파일의 패키지 버전을 3.0으로 바꾼다

 

 

OPF 파일의 package version="2.0" 을 version="3.0"으로 수정합니다.

하지만 Sigil에서 수정을 하면 지원하지 않는 버전이라면서 2.0으로 바뀝니다. 

그래서 압축파일을 풀고(EPUB이 zip 압축 파일이라는건 설명 안하겠습니다.) 메모장이나 텍스트 에디터로 version="3.0"으로 수정을 합니다.

 

수정을 하면 다시 압축을 하고 확장자를 epub으로 수정합니다.

 

 

 

Sigil의 '기본설정'에서 파일 버전을 3.0으로 수정합니다.(안해도 될 것 같은데 확인해 보지는 않았어요)

그리고 파일을 Sigil에서 불러옵니다. 그럼 Sigil 상단 제목창에 EPUB3.0으로 표시됩니다.

 

여기까지 했다면 50%는 성공한거예요.

 

 

 

 

2단계. 목차를 생성한다.

 

EPUB2를 EPUB3 로 변환했기 때문에 NCX파일의 목차는 그대로 있습니다. 하지만 '차례' 창에 목차가 나타나지 않습니다. EPUB3 파일은 목차정보를 XHTML로 만들기 때문에 NCX파일이 필요 없습니다. NCX파일이 있으면 EPUB2 뷰어와 호환성을 유지할 수 있으니 EPUB2용 NCX 목차는 그대로 두고, EPUB3를 위한 nav.xhtml 파일로 목차를 새로 생성합니다. 

 

패키지 버전을 EPUB3로 변경하고 Sigil에서 불러오면 nav.xhtml이 하나 만들어집니다. 이게 EPUB3의 목차 파일입니다.

 

 

여기에 목차를 넣게 되는데, 목차를 만드는 방법은 EPUB2와 동일합니다.

메뉴의 [도구 > 차례 > Generate Table of Contents]로 생성합니다.

 

 

 

 

 

 

제목이 생성되면 오른쪽에 있는 '차례' 창에 목차가 표시됩니다.

 

 

 

 

3단계. 메타데이터를 수정합니다.

 

2단계까지 하고 EPUBCheck를 실행하면 오류가 몇개 나옵니다. 

그런데 오류를 보면 전부 OPF파일에서 발생한거예요.

아랫쪽에 toc.ncx 파일 오류가 있지만 이건 샘플파일 만들면서 NCX 파일을 정리하지 않아 그런거고, 정상적인 EPUB2파일이라면 2단계까지 했을 때 epub:type, aside, ruby 등의 오류는 사라지고 opf파일 오류만 남습니다. 

 

 

그리고 하늘색으로 폰트에 관한 INFO가 뜨는데 이건 오류가 아니라 신경쓰지 않아도 됩니다. (이렇게 쓰면 '몰라서 그러는거 아냐?' 라는 의심의 눈초리를 보내는 분이 계신데 ㅎㅎ, EPUB Publications 3.0.1에 있는 EPUB Core Media Types에 폰트는 OpenType, Woff를 지원하고 TTF는 없습니다. 그래서 TTF 폰트를 non-standard font type으로 인식하는 것 같아요^^)

 

 

opf파일 오류는 모두 메타데이터 때문입니다. EPUB2에서 EPUB3로 넘어가면서 메타데이터 정의가 많이 변경됐습니다. 그래서 EPUB2의 OPF파일에 있는 메타정보의 속성과 값을 변경해 줘야합니다.

 

EPUB3에서 필수로 요구하는 메타정보는 아래와 같습니다.

 

1. unique-identifier : <dc:identifier id=”pub-id”>urn:uuid:A1B0D67E-2E81-4DF5-9E67-A64CBE366809</dc:identifier>

2. 책 제목 : <dc:title>책 제목</dc:title>

3. 언어 : <dc:language>ko</dc:language>

4. 수정일 : <meta property=”dcterms:modified”>2011-01-01T12:00:00Z</meta>

 

여기에 추가로 '성실한' 편집자라면 ISBN, 출판사명(Publisher), 저자명 등의 추가 정보를 입력하면 됩니다.

 

Sigil의 메타데이터 편집기를 열고, 입력되어 있는 정보를 수정하면 되는데, 반드시 수정해야 하는 정보가 있고 EPUB2에 있는 정보를 그대로 사용할 수 있는 데이터도 있습니다.

 

메타 정보는 책마다 다르기 때문에 하나씩 설명하기는 어렵고 예로 보여드릴게요.

 

EPUB3 메타정보   EPUB2 메타정보


<dc:title>거울 나라의 앨리스</dc:title>


<dc:language>ko</dc:language>


<dc:identifier>urn:isbn:979-11-000000</dc:identifier>


<dc:publisher>심야책방</dc:publisher>


<dc:creator id="cre">루이스 캐럴</dc:creator>


<meta scheme="marc:relators" refines="#cre" property="role">aut</meta>


<dc:identifier id="BookId">urn:uuid:e0d7dc1c-afa9-49ba-9d25-1fce2f4857b1</dc:identifier>


<meta property="dcterms:modified">2017-06-02T14:30:40Z</meta>
<dc:title>거울 나라의 앨리스</dc:title> 


<dc:language>ko</dc:language>


<dc:identifier opf:scheme="ISBN">979-11-00000000</dc:identifier>


<dc:publisher>심야책방</dc:publisher>


<dc:creator opf:role="aut">루이스 캐럴</dc:creator>


<dc:identifier opf:scheme="UUID" id="BookId">urn:uuid:e0d7dc1c-afa9-49ba-9d25-1fce2f4857b1</dc:identifier>


<dc:date opf:event="modification">2017-06-02</dc:date>

 

 

빨간 색으로 표시된 부분이 수정되야 하는 메타데이터입니다. EPUB3에서는 opf:scheme, opf:role 등의 형식을 사용하지 않기 때문에 이 부분을 EPUB3에 맞게 수정을 합니다. 수정 방법은 간단합니다. 메타데이터 편집기에서 오류가 있는 정보를 삭제하고 다시 입력하면 되요.

 

이렇게 수정을 하고 EPUBCheck로 적합성 검증을 하면 오류가 사라집니다.

 

 

참고로, nav.xhtml은 전자책 뷰어에서 보이지 않습니다. 뷰어의 [목차] 메뉴에서 보는 정보여서 스타일로 편집을 하지 않아도 되지만, 그래도 스타일을 넣고싶다면 아래 두 태그의 스타일을 적용하면 됩니다.

 

/*목차*/ ol { margin-bottom : 1em; } li { font-size : 1em; margin-left : 1em; margin-bottom : 1em; list-style-type: none; }

 

제가 임의로 잡은거라, ol, li 태그의 스타일을 원하는 형태로 수정해 주면 됩니다.

 

그리고 이 목차 파일을 뷰어에서 볼 수 있게 하려면 opf 파일을 수정해 주세요.

<itemref idref="nav.xhtml" /> /*목차가 뷰어에 표시되고 [목차] 메뉴로 볼 수 있음*/

<itemref idref="nav.xhtml" linear="no"/> /*목차가 뷰어에 표시되지 않고 [목차] 메뉴로 볼 수 있음*/

 

 

여기까지 하고 저장을 하면 EPUB2 파일이 EPUB3 파일이 됩니다.

동영상, MP3 이런거 없어도 package version="3.0", nav.xhtml, 그리고 일부 메타정보가 수정되면 EPUB2와 똑같아 보여도 EPUB3 파일이에요.

 

오늘은 여기까지...

 

 

 

 

반응형
posted by 내.맘.대.로 2017. 6. 2. 13:03

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

아래의 긴 내용을 간단히 요약하면....

국내 유통사는 EPUB2에서 ruby, aside, mark 등의 태그를 허용합니다. 하지만 이 태그는 EPUBCheck로 검사하면 오류가 나기 때문에 구글 플레이북 같은 곳에 등록하려면 EPUB3로 변환을 해야합니다. 

 

아래 내용은 2017년 기준입니다. sigil 플러그인 epub3-itizer를 사용하면 클릭 한번으로 변환할 수 있습니다.

 

 

 

EPUB2, EPUB3의 차이를 알고 계신가요?

 

많은 분들이 'EPUB3는 멀티미디어를 포함한 콘텐츠' 정도로 막연히 알고 있습니다. 동영상이나 MP3가 포함되면 EPUB3고 그렇지 않으면 EPUB2라는 정도로 알고 있습니다. 이렇게 알고 있다면 '완전히' 잘못 알고 있는 것입니다.

 

EPUB2와 EPUB3를 구분할 때 멀티미디어(동영상, MP3등)의 포함 여부는 '전혀' 중요하지 않습니다. 

 

정확히 EPUB2와 EPUB3의 차이를 구분하기는 어렵습니다. 너무 많은 요소들이 섞여있기 때문에 몇줄로 이 둘을 규정할만한 설명을 하는건 불가능합니다. 이 둘의 차이를 가장 명확히 설명해 놓은 문서가 IDPF에서 관리하고 있는 EPUB2.0.1EPUB3.0.1 표준 명세서인데 이 내용을 제대로 읽고 이해하기는 어렵지요. 그리고 전자책 편집자라 해도 이 내용을 알 필요는 없습니다.

 

어렵긴 하지만, EPUB2와 EPUB3의 차이를 정리해 보면 이렇습니다.

구분   EPUB2(2.0.1) EPUB3(3.0.1)
 HTML  XHTML 1.1 사용   HTML5 사용(하위 버전 포함)
 CSS  CSS2.0   CSS2.1, CSS3 (하위 버전 포함)
 스크립트 등  미지원   지원(스크립트, MathML, 미디어오버레이 등)
 목차  NCX 파일   XHTML 파일 
 뷰어  네트워크에 연결되지 않은 흑백 디스플레이를 고려함 - 외부 링크, 멀티미디어, 색상 등에 제한이 있음.  EPUB2이전 버전을 지원(을 권장)하고 광범위한 콘텐츠 유형을 지원할 수 있다.

 

이렇게 정리를 해도 복잡하지요? XHTML은 뭐고 HTML5는 뭔지, CSS2는 뭐고, CSS3 는 뭔지, 이런 것들이 외계어처럼 해석이 안되는 분들이 많을거예요. 오늘 설명드리려는 내용은 사실 이런 내용과 별 상관 없습니다. 

 

그렇다면 왜 이런 내용을...?

EPUB2와 EPUB3를 잘 비교해보세요. MP3, 동영상이 둘의 구분하지 않습니다. 비교표를 잘 보시면 EPUB3는 EPUB2를 모두 포함하고 있다는 것을 알 수 있습니다. 이해하기 쉽게 설명하자면 이렇습니다.

 

MS-DOS 시절 사용하던 HWP2.0 프로그램은 HWP2012로 만든 한글 문서를 읽을 수 없습니다. 그런데 HWP2012프로그램은 HWP2.0 문서를 읽을 수 있지요. 

 

EPUB3도 마찬가지예요. EPUB2로 만든 전자책은 EPUB3로 만들 수 있습니다.

EPUB2는 텍스트와 이미지, EPUB3는 MP3, 동영상이 포함된 콘텐츠로 둘을 구분하는 것이 아니고, 파일의 구조 차이입니다. 그러니 EPUB2로 된 파일은 EPUB3로 변환이 가능한 것이지요.

 

이게 왜 필요할까요?

어차피 EPUB3 뷰어에서 EPUB2 파일도 볼 수 있게 되어 있는데 왜 변환할 일이 있을까요?

 

제작 작업을 하다 보니 이런 일이 필요할 때가 생기더라구요.

 

왜 변환이 필요한지 설명을 하려면 또다시 기술적인 내용이 조금 들어가야 되는데... ㅜ.ㅜ

 

EPUB2는 아주 오래된 버전이에요. 그래서 요즘 나오는 스마트폰서 구현 가능한데 표준이 따르지 못하는 부분이 있습니다. 예를 들면 ruby, mark, aside 등의 태그처럼이요.

 

 

루비ruby

태그는

***

를 위해 만들졌는데 활용도가 다양해요.  루비, 일본어 라는 단어 위에 영문 표기와 *표를 붙인게 보이지요? 시중에 나온 책중에 이런 편집이 많이 있습니다. 이걸 해주는게 ruby 태그예요.

 

mark

는 형광펜 스타일을 쉽게 표현해 줍니다. mark라는 단어에 적용된 노란색 바탕을 표현하려면 CSS로 배경색 스타일을 지정하고 span 태그로 스타일을 적용해 줘야 하는데, mark 태그를 사용하면 <mark>mark</mark> 이렇게 간단히 표현할 수 있습니다. 

 

aside는 주석을 표현하면서 설명을 한 적이 있습니다.(http://epubguide.net/135) aside가 주석을 위한 태그는 아니예요. 의미적 마크업(Semantic Markup)이라고 해서 section, nav, aside 등의 태그가 새로 추가됐는데 aside가 주석을 표현할 때 유용해서 다른 태그보다 사용을 많이 합니다.

 

이런 태그는 EPUB2에서 사용하면 오류가 납니다. 원칙을 철저히 지키면 사용할 수 없는 태그예요. 그런데 전자책을 제작하다 보면 이 태그들이 꼭 필요합니다. mark 태그는 스타일로 대체할 수 있다 해도, ruby와 aside는 대체가 어렵거나 대체하려면 코드가 엄청 복잡해지거든요.


그러다 보니 EPUB2 파일로 제작을 할 때 이런 태그를 쓰게 됐고, 국내 유통사들은 출판사의 요청을 받아서 이런 태그가 문제 없이 뷰어에서 표현되도록 해놨습니다.

 

여기엔 논란의 소지가 조금 있어요. EPUB2 표준을 위반해서 이런 태그를 사용해도 되는가 하는 문제입니다.

그런데 엄밀히 말하면 표준 위반이라고 할 수도 없습니다. 설명하자면 표준문서 항목까지 열거하며 must, should, recommand 등의 단어 의미까지 따져야 하니 간단히 설명을 드릴게요.

 

법에 보면 상위법과 하위법이 있잖아요. 전자책을 만드는 표준에도 상위, 하위 법이 있어요. EPUB은 W3C라는 단체가 만든 웹표준을 지키고 있습니다. W3C의 웹 표준이 '헌법' 같은 상위법이에요. 그리고 EPUB 표준은 민법, 상법 같은 하위법입니다. 민법, 상법에 구체적으로 명시되지 않은 내용이 있다면 상위법인 헌법을 따르지요? 

 

EPUB2는 웹 표준의 하위법입니다. 하위법에 포함되지 않은 내용인데 시대가 변하면서 필요해 졌고, 그게 상위법에 나와있다면 하위법(EPUB2)에는 나와있지 않지만 상위법(웹표준)을 따르는게 맞겠지요.

 

EPUB2 표준에서는  ruby, aside, mark 같은 태그에 대해 명확히 명시하지 않았습니다. 물론 XHTML1.1을 따른다고 했으니 문제의 소지는 있지만 뷰어가 이런 태그들을 표현하면 안된다는 내용은 없습니다. 그러니 국내 유통사가 EPUB2에서 지원하지 않는 ruby, aside, mark 등의 태그를 지원해도 표준에 위배되는 것은 아닙니다. 

 

사족이 정말 길어졌는데, 중요한건 여기부터!!!

 

EPUB2에 ruby나 aside 태그를 사용하면 EPUBCheck에서 오류가 납니다. 국내 유통사는 문제되지 않아요. 오류가 나도 이런 태그들은 허용을 하거든요. 그런데 구글 플레이북 같은 플랫폼에서는 EPUBCheck에서 오류가 나는 콘텐츠를 허용하지 않습니다. 

 

IDPF의 표준을 따라 ruby 태그로 글자 위에 점이나 영문설명을 넣거나, 팝업 주석을 넣으려면 EPUB3로 만들어야 하는데 국내 유통사 중 EPUB3 파일을 받지 않는 곳이 많아요. EPUB2로 팝업 주석을 넣고 ruby 태그를 쓰면 구글 플레이북에는 유통을 할 수 없습니다. 그러니 국내 유통을 위해서는 EPUB2로, 구글에 등록하려면 EPUB3로 파일을 만들어야 하는거지요. 

 

그럼 시길에서 EPUB2 파일을 EPUB3로 어떻게 변환을 할까요?

 

궁금하면 다음편을 봐주세요 ^^

 

 

 

 

 

반응형