posted by 내.맘.대.로 2024. 9. 4. 09:31

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

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

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

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

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

링크(팝업) 주석, 또는 내부 링크를 연결한 책에서 이런 오류가 생길 수 있습니다.

인디자인 같은 조판 프로그램에서 EPUB으로 추출한 후 파일을 합치거나 해도 이런 오류가 생길 수 있지요.

 

Col: 18: ERROR(RSC-005): Duplicate "IDname" 파일을 분석하는 동안 "오류"가 발견되었습니다.

 

이 오류는 HTML의 ID 생성 규칙을 알아야 해결 할 수 있습니다.

 

ID는 프래그먼트 식별자를 이용해 다른 위치를 가리키기 위한 고유 식별자입니다.

말이 어렵지요?

 

프래그먼트 식별자는 URL 또는 소스의 경로(파일 위치 표시할 때 src="../path/file.xhtml"로 쓰는)를 지정할 때 사용하는 규칙이에요. html 파일은 수백 줄 이상 내용이 들어갈 때가 많습니다. 링크를 걸면서 특정 위치, 예를 들어 특정 소제목이나 본문 중간 어디쯤에 있는 단어나 이미지를 가리키고 싶을 때 쓰는 것이지요.

홈페이지 주소라면 이렇게 표시합니다.

 

https://example.com/content.html#fragmentID

 

EPUB에서 내부 링크를 걸었다면 이렇게 되지요.

 

<a href="../Content/Conteht.xhtml#fragmentID">

 

경로 뒤에 붙은 #fragmentID를 프래그먼트 식별자라고 합니다.

그리고 프래그먼트 식별자가 가리키는 곳에 고유 식별자, ID가 있습니다.

'고유'란 단어의 뜻을 아시지요? 국어시간이 아니니 설명은 넘어가고...

 

고유식별자는 HTML 태그에 id="fragmentID" 처럼 붙입니다.

 

<p id="fragmentID ">.....</p>

 

만약 content.xhtml 파일에 fragmentID가 두개라면 어떻게 될까요?

 

<p id="fragmentID">여기에 링크를 걸어야 합니다.</p>

....

<p>id="fragmentID">여기에도 링크를 걸어야 합니다.</p>

 

이렇게 되어 있다면 <a href="../Content/Conteht.xhtml#fragmentID">이 링크는 어디로 이동할까요?

같은 파일 안에 동일한 ID가 두개 이상 있을 경우 링크로 연결을 할 수 없습니다. 둘 중 어디를 가리키는지 확인할 수 없으니까요.

그래서 같은 파일 안에 ID 이름은 반드시 하나만 존재해야 합니다.

fragmentID01, fragmentID02, fragmentID03...이렇게요.

 

그런데 편집을 하다 몇 번까지 만들었는지 잊고 같은 ID를 썼다면

fragmentID01, fragmentID02, fragmentID03, fragmentID03, fragmentID04

 

EPUBCheck가

Duplicate "fragmentID03" 파일을 분석하는 동안 "오류"가 발견되었습니다.

Duplicate "fragmentID03" 파일을 분석하는 동안 "오류"가 발견되었습니다.

라는 오류를 표시합니다.

이 오류는 항상 2개 이상 표시가 됩니다. fragmentID03이 최소 2개가 있는데 둘 중 어느 ID가 제대로 된 값인지 EPUBCheck는 알 수 없거든요. 그래서 두개(혹은 그 이상) 위치를 모두 오류메시지에 표시를 합니다. 

 

수정 방법은 간단합니다. ID 이름을 바꾸면 돼요.

단, ID 이름을 바꾼 후 프래그먼트 식별자의 ID도 함께 수정을 해 줘야돼요.

그렇지 않으면 Col: 37: ERROR(RSC-012): Fragment 식별자가 정의되지 않았습니다.라는 오류가 표시되거든요.이 오류는 다음 글에서 설명하겠습니다.

반응형