노무현 대통령 배너
BLOG main image
왕미친놈의 왕미친세상입니다. 미친 소리는 써도 되지만, 근거 없는 소리는 쓰면 안 됩니다.


유니코드 지원이란?

우리가 흔히 "프로그램이 유니코드를 지원한다"라고 말할 때는 그 프로그램이 유니코드를 나타낼 수 있느냐가 아니라, 그 프로그램의 메뉴나 오류 메시지를 표현하는 코드 페이지가 유니코드이냐를 뜻합니다. 당연한 말이겠지만, 그 프로그램에서 유니코드 문자를 입력할 수 있는지는 전혀 고려하지 않습니다.

이때 프로그램 메뉴나 오류 메시지를 유니코드로 나타내는 경우에 네이티브로 유니코드를 지원한다는 표현을 사용하기도 합니다.

유니코드 출력

그렇다면 유니코드를 지원하는 프로그램만 유니코드를 올바르게 나타낼 수 있을까요? 유니코드를 지원하지 않는 프로그램은 유니코드를 올바르게 나타낼 수 없을까요? 그렇지는 않습니다. 유니코드 지원과 유니코드 표현은 아무런 관련도 없습니다. 아, 관련이 있기는 합니다. 특정 코드 페이지를 지원하는 프로그램은 그 코드 페이지에 해당하는 문자를 나타내기가 좀 더 쉽습니다.

그렇지만 그 둘 사이의 관계가 절대적이지는 않습니다. 화면 표시는 그저 화면 표시일 뿐 그 이상의 것이 아니기 때문입니다. 물론 텍스트 편집 프로그램의 경우에는 화면 표시가 매우 중요한 요소이지만, 실제 프로그램의 실행과는 별로 관련이 없습니다.

좀 더 전문적인 용어를 써서 말한다면, 유니코드 출력은 문자 인코딩(Character encoding)의 문제이고, 유니코드 지원은 문자 집합(Character set)의 문제입니다.

유니코드를 지원하지 않는 프로그램의 유니코드 출력 예시

CLCL

멀티 클립보드 프로그램인 CLCL은 유니코드를 지원하지 않는 프로그램, 곧 지원하는 문자 집합이 유니코드가 아닙니다. 그러나 클립보드 지원 프로그램이기 때문에 클립보드에 복사한 내용 가운데 유니코드가 있을 경우 그것을 잘 출력해 줍니다. 물론 이 경우 폰트가 잘 지원되어야 하지만, 그에 대해서는 논외로 합니다. 한편 CLCL도 유니코드 출력이 기본 기능은 아닙니다. 추가적인 DLL 파일이 필요하지만, 그것만 설치한다면 아무 문제 없이 유니코드 출력이 가능합니다. 더구나 그 DLL 파일이 유니코드를 네이티브로 지원하지도 않습니다.

예시 1 : 유니코드를 잘 나타내는 CLCL

예시 1 : 유니코드를 잘 나타내는 CLCL


예시 2 : 유니코드를 뭉개져 버린 CLCL

예시 2 : 유니코드를 뭉개져 버린 CLCL


위 두 화면은 유니코드를 CLCL이 어떻게 나타내는지를 보여주고 있습니다. 예시 1은 기본 출력인데, 현재 유니코드로 설정한 상태입니다. 기본값은 TEXT입니다. 예시 2TEXT일 때의 화면 출력을 보여 주고 있습니다. 게다가 예시 1예시 2는 현재 화면에 보이는 상태 그대로 붙여넣기가 가능합니다. 다시 말해 화면 출력과 프로그램의 유니코드 지원이 별 상관이 없다는 뜻이지요.

Notepad++

좀 더 확실하게 보여줄 필요가 있다면, 텍스트 편집기 가운데 유니코드 버전과 ANSI 버전을 함께 제공하는 프로그램을 선택하면 됩니다. 대표적인 프로그램이 바로 Notepad++입니다.

메모장의 유니코드 출력 - 옛한글은 한국어 영역이 아닌 유니코드 영역에 있다.

예시 3 : 메모장의 유니코드 출력 - 옛한글은 한국어 영역이 아닌 유니코드 영역에 있다.


Notepad++ ANSI 버전의 유니코드 출력

예시 4 : Notepad++ ANSI 버전의 유니코드 출력


Notepad++ 유니코드 버전의 유니코드 출력

예시 5 : Notepad++ 유니코드 버전의 유니코드 출력


위의 세 그림은 유니코드 버전이냐는 사실과 유니코드를 출력할 수 있느냐는 사실과는 관련이 적음을 보여주고 있습니다. 유니코드를 출력할 수 있느냐는 오로지 프로그램이 유니코드 폰트 및 유니코드 합자를 지원하는 알고리듬을 가지고 있느냐에 좌우됩니다.

관련 문서

 

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

한컴오피스 베타버전 버그 30 - "Haansoft PDF"의 성능은?

ᄒᆞᆫ글2010 베타버전에서 출력한 PDF 파일을 살펴보다가 이상한 점을 발견하여 한컴오피스2010 베타버전의 PDF 출력 버그 라는 글을 올렸습니다. 이 글은 그 글의 후속편입니다.

  • 참고 1 : 이 글은 매우 많은 그림을 포함하고 있어서 읽어오는 데 시간이 오래 걸릴 수도 있습니다. 느긋하게 기다려 주십시오.
  • 참고 2 : 이 글에서 사용한 PDF 파일 및 문서 파일을 압축 파일로 제공합니다. PDF-Output.zip 파일(1.31 MB)을 받으세요.

벌레의 유형

ᄒᆞᆫ글 씨! Haansoft PDF 가상 프린터는 그저 겉모양만 만들면 되는 게 아니랍니다.

개발자의 답변

이 글은 버그 리포팅을 하지 않았습니다. 지난 번 버그 리포팅으로 충분하다고 여겼기 때문입니다.

벌레의 발견

벌레는 한컴오피스2010 베타버전의 PDF 출력 버그 글을 작성하면서 발견했습니다. 그 글을 작성하면서 복사&붙여넣기도 시험했는데, 처음에는 모두 실패했습니다. 그래서 옛한글이 들어 있는 PDF 파일의 내용을 복사할 수 없는 벌레라는 글을 준비하였습니다. 그런데 그게 아니라는 사실이 밝혀져서 실험을 중심으로 바꾸었습니다.

사용할 프로그램 : PDF 보기 프로그램

참고로 이 실험에 쓰인 PDF 파일은 모두 PDF-Output.zip 파일(1.31 MB)에 들어 있습니다.

배점 기준 및 평가 방법

본의 아니게 PDF 보기 프로그램의 성능 테스트를 하게 되었습니다. 하는 김에 확실하게 점수도 매기기로 했습니다.

  • 항목별 최하점은 0점이고, 최고점은 5점입니다.
  • 우선 4글자로 모두 정상 출력하면, 5점을 줍니다.
    • 출력한 글자가 1글자 비정상 출력하면 감점 1점하는 방식입니다.
    • 출력한 글자가 1글자 이상이라도 일치하는 글자가 없으면 0점입니다.

배점 기준 및 평가는 지극히 주관적이며, 다른 사람이 하면 다른 점수가 나올 수 있습니다.

복사한 뒤에 메모장에 붙여넣기를 합니다. 메모장의 글꼴 서식은 함초롬바탕 12포인트 보통 형태입니다.

메모장에 붙여넣기를 한 뒤의 모습

메모장에 붙여넣기를 한 뒤의 모습

검증 1 : Adobe Reader

Adobe Reader에서의 복사 화면

Adobe Reader에서의 복사 화면

파일명 복사 전 복사 & 붙여넣기 점수
HWP2010-to-PDF-CutePDF.pdf
3
HWP2010-to-PDF-ezPDF.pdf
3
HWP2010-to-PDF-Foxit.pdf
3
HWP2010-to-PDF-Haansoft-PDF.pdf
3
HWP2010-to-PDF-PDF로_저장.pdf
3
HWP2010-to-PDF-PDFCreator.pdf
0
HWP2010-to-PDF-PDF-Pro.pdf
3
OpenOffice-to-PDF-CutePDF.pdf
5
OpenOffice-to-PDF-ezPDF.pdf
5
OpenOffice-to-PDF-Foxit.pdf
5
OpenOffice-to-PDF-Haansoft-PDF.pdf
5
OpenOffice-to-PDF-PDF로_내보내기.pdf
5
OpenOffice-to-PDF-PDFCreator.pdf
3
OpenOffice-to-PDF-PDF-Pro.pdf
5
HCell-to-PDF-Haansoft-PDF.pdf
3
HCell-to-PDF-PDF로_저장.pdf
3
HShow-to-PDF-Haansoft-PDF.pdf
(없음) 0
HShow-to-PDF-PDF로_저장.pdf
(없음) 0
- - 57

검증 2 : Foxit Reader

Foxit Reader에서의 복사 화면

Foxit Reader에서의 복사 화면

아울러 이제부터는 복사 전 그림은 뺍니다. 똑같은 거 또 넣어봐야 시간 낭비라고 생각해서리...

파일명 복사 & 붙여넣기 점수
HWP2010-to-PDF-CutePDF.pdf
3
HWP2010-to-PDF-ezPDF.pdf
3
HWP2010-to-PDF-Foxit.pdf
3
HWP2010-to-PDF-Haansoft-PDF.pdf
3
HWP2010-to-PDF-PDF로_저장.pdf
3
HWP2010-to-PDF-PDFCreator.pdf
0
HWP2010-to-PDF-PDF-Pro.pdf
3
OpenOffice-to-PDF-CutePDF.pdf
3
OpenOffice-to-PDF-ezPDF.pdf
5
OpenOffice-to-PDF-Foxit.pdf
3
OpenOffice-to-PDF-Haansoft-PDF.pdf
3
OpenOffice-to-PDF-PDF로_내보내기.pdf
3
OpenOffice-to-PDF-PDFCreator.pdf
0
OpenOffice-to-PDF-PDF-Pro.pdf
3
HCell-to-PDF-Haansoft-PDF.pdf
3
HCell-to-PDF-PDF로_저장.pdf
3
HShow-to-PDF-Haansoft-PDF.pdf (없음) 0
HShow-to-PDF-PDF로_저장.pdf (없음) 0
- 44

검증 3 : UNIDOCS ezPDF Reader

UNIDOCS ezPDF Reader에서의 복사 화면

UNIDOCS ezPDF Reader에서의 복사 화면

파일명 복사 & 붙여넣기 점수
HWP2010-to-PDF-CutePDF.pdf
3
HWP2010-to-PDF-ezPDF.pdf
3
HWP2010-to-PDF-Foxit.pdf
3
HWP2010-to-PDF-Haansoft-PDF.pdf
3
HWP2010-to-PDF-PDF로_저장.pdf
3
HWP2010-to-PDF-PDFCreator.pdf (없음) 0
HWP2010-to-PDF-PDF-Pro.pdf (없음) 0
OpenOffice-to-PDF-CutePDF.pdf
5
OpenOffice-to-PDF-ezPDF.pdf
5
OpenOffice-to-PDF-Foxit.pdf
5
OpenOffice-to-PDF-Haansoft-PDF.pdf
5
OpenOffice-to-PDF-PDF로_내보내기.pdf
5
OpenOffice-to-PDF-PDFCreator.pdf
3
OpenOffice-to-PDF-PDF-Pro.pdf
3
HCell-to-PDF-Haansoft-PDF.pdf
3
HCell-to-PDF-PDF로_저장.pdf
3
HShow-to-PDF-Haansoft-PDF.pdf (없음) 0
HShow-to-PDF-PDF로_저장.pdf (없음) 0
- 52

검증 4 : ePapyrus PDF-Pro 4 Free

ePapyrus PDF-Pro 4 Free에서의 복사 화면

ePapyrus PDF-Pro 4 Free에서의 복사 화면

파일명 복사 & 붙여넣기 점수
HWP2010-to-PDF-CutePDF.pdf
3
HWP2010-to-PDF-ezPDF.pdf
3
HWP2010-to-PDF-Foxit.pdf (없음) 0
HWP2010-to-PDF-Haansoft-PDF.pdf
3
HWP2010-to-PDF-PDF로_저장.pdf
3
HWP2010-to-PDF-PDFCreator.pdf
0
HWP2010-to-PDF-PDF-Pro.pdf (없음) 0
OpenOffice-to-PDF-CutePDF.pdf
3
OpenOffice-to-PDF-ezPDF.pdf
3
OpenOffice-to-PDF-Foxit.pdf
3
OpenOffice-to-PDF-Haansoft-PDF.pdf
3
OpenOffice-to-PDF-PDF로_내보내기.pdf
3
OpenOffice-to-PDF-PDFCreator.pdf
0
OpenOffice-to-PDF-PDF-Pro.pdf
3
HCell-to-PDF-Haansoft-PDF.pdf
3
HCell-to-PDF-PDF로_저장.pdf
0
HShow-to-PDF-Haansoft-PDF.pdf (없음) 0
HShow-to-PDF-PDF로_저장.pdf (없음) 0
- 33

PDF 보기 프로그램별 결과 및 분석

일단 분석에 들어가기에 앞서 위의 표에서 (없음)으로 표시된 부분은 복사할 수 없거나 복사 결과 공백만 복사된 경우, 또는 처음부터 선택이 되지 않는 경우입니다.

프로그램 옛한글 복사 성공 횟수 점수
Adobe Reader 6 57
Foxit Reader 1 44
UNIDOCS ezPDF Reader 5 52
ePapyrus PDF-Pro 4 Free 0 33

개인적으로 이 결과는 매우 마음에 들지 않습니다. 지금까지 너무 무거워서 사용하지 않았던 Adobe Reader는 성능 면에서 최고의 결과를 보이며, 옛한글 복사 성공 횟수와 배점에서 최고점을 기록하였고, 가볍고 빨라서 자주 쓰던 ePapyrus PDF-Pro 4 Free단 하나의 옛한글도 제대로 복사하지 못하는 최악의 결과를 보여주었습니다. 게다가 Foxit Reader의 경우는 매우 이해하기 힘든 결과였습니다. 나름대로 유니코드 지원 등을 내세운 새 버전의 제품임에도 옛한글과 관련하여 이런 결과를 보였다는 말은 다른 유니코드도 별로 다르지 않으리라는 예상이 가능하기 때문입니다. 특히 Foxit Reader 및 ePapyrus PDF-Pro 4 Free는 옛한글이 제대로 복사되지 않았고, 심지어 영역 설정도 되지 않은 때가 있어서 한 글자 한 글자 따로 영역을 지정하여 복사해야 하는 경우도 있었습니다. 옛한글과 유니코드를 자주 다룬다면 절대로 Foxit Reader 및 ePapyrus PDF-Pro 4 Free, 이 두 제품을 사용하지 않기를 바랍니다.

한편 PDF 가상 프린터 가운데 최고 점수를 받은 제품은 UNIDOCS ezPDF Builder 2006 Free입니다. 솔직히 이 실험을 하기 전에는 그런 회사 및 제품이 있다는 사실조차 몰랐습니다. 아무튼 좋은 점수를 받은 그 제품을 알게 되어 다행입니다.

제가 Adobe Acrobat을 구하지 못해서 시험하지 못했습니다. 혹시나 구할 수 있다면 대신 시험을 해 주실 분은 실험하신 뒤에 댓글을 좀 남겨 주십시오.

벌레 분석 및 덧붙이는 말

원래 이 실험을 하게 된 까닭은, 앞서 밝혔듯이, 우연히 복사&붙여넣기를 했는데, 아주 엉뚱하게 되었기 때문입니다. 그래서 PDF 보기 프로그램의 성능 테스트 겸 가상 프린터의 성능 테스트를 하게 되었습니다.

옛한글 및 유니코드와 관련하여, PDF 가상 프린터 가운데 가장 성능이 좋은 것은 UNIDOCS ezPDF Builder 2006 Free이며, Haansoft PDF도 그다지 나쁘지 않은 성능을 보였습니다. 8개 제품 가운데 공동 2위를 하였으니까요. 다만 기이하게도 ᄒᆞᆫ글과 함께 쓰면 오히려 결과가 좋지 않습니다.

또한 옛한글과 유니코드를 자주 쓴다면 Foxit Reader 및 ePapyrus PDF-Pro 4 Free는 쓰지 않는 것이 좋을 듯싶습니다.

관련 벌레

이 벌레와 관련이 있는 벌레는 다음과 같습니다.

관련 문서

내부 문서

외부 문서

PDF 보기 프로그램

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

한컴오피스 베타버전 버그 28 - 유니코드 버그 4 및 글꼴 (표기) 버그 2
- 옛한글 합자와 일반 글자는 다른가요?
- 왜 옛한글은 무조건 함초롬체로 표시하나요?

ᄒᆞᆫ글2010 베타버전에서 옛한글을 한양PUA가 아닌 유니코드 한글 자모 영역을 이용하여 나타내 주고 있습니다. 이는 대단히 좋은 현상입니다. 그런데 조금 이상한 현상을 발견했습니다. 이런 이상한 현상을 접하면 접할수록 옛한글과 얽힌 녀석은 판도라 상자라는 생각이 새록새록 솟아납니다.

벌레의 유형

ᄒᆞᆫ글 씨! 옛한글의 자모 합자는 일반 글자로 취급해야 합니다. 절대 일반 글자처럼 취급하면 안 됩니다. 그리고 왜 옛한글은 무조건 함초롬체로 표시해 버리나요? 함초롬체가 아닌 다른 글꼴을 사용할 수 있는 옵션을 추가해 주면 좋겠습니다.

개발자의 답변

2010년 1월 30일 버그 리포팅을 한 상태입니다.

벌레의 발견

ᄒᆞᆫ글2010 베타버전에서 은 글꼴을 적용하다가 발견했습니다.

예시 1 : 깨끗하게 나타난 옛한글과 글귀

예시 1 : 깨끗하게 나타난 옛한글과 글귀


예시 2 : 무언가 어긋난 옛한글

예시 2 : 무언가 어긋난 옛한글

위 예시 그림 두 개를 살펴보면 여러 가지가 다릅니다.

  1. 맨 먼저 옛한글의 모양이 확연하게 다릅니다. 한쪽으로 기울어져 있는데, 굳이 검증이 필요 없어 보입니다.
  2. 옛한글의 글자 외형이 현대 한글의 글자 외형과 달라 보입니다. 서로 다른 글꼴처럼 보입니다.
  3. 글자의 자간이 다릅니다. 그러나 이것은 문단 배열과 관련한 워드프로세서의 기능이므로 논외로 합니다.

일단 위 세 가지 다른 점을 발견했습니다. 3번은 벌레가 아니므로 논하지 않겠습니다.

검증 1 : 기울어진 옛한글

예제 1 잘라내기 예제 2 잘라내기

기울어진 옛한글 문제는 근본적으로 옛한글이 화면에 보이는 모양과는 달리 한글 1자가 아니라 한글 낱자 3개이기 때문에 발생한 문제입니다. 다만 그 합자 처리가 매끄럽지 못하기 때문에 발생한 벌레이지요.

그런데 저것이 한글 낱자 3개라는 사실이 이해가 안 된다면 다음 메모장 화면을 보시기 바랍니다.

예시 3 : 메모장에서 72포인트 굴림 글꼴로 나타낸 ᄒᆞᆫ글

예시 3 : 메모장에서 72포인트 굴림 글꼴로 나타낸 ᄒᆞᆫ글


예시 4 : 메모장에서 72포인트 굴림 옛한글 글꼴로 나타낸 ᄒᆞᆫ글

예시 4 : 메모장에서 72포인트 굴림 옛한글 글꼴로 나타낸 ᄒᆞᆫ글

위의 예시 3예시 4는 단지 글꼴을 바꾸었을 뿐인데, 화면에 보이는 모양이 달라졌습니다. 이는 한글 낱자 3개를 하나로 합쳐서 보여주는 기능을 가진 글꼴인지, 아니면 그저 이미 완성된 글자만을 보여주는 글꼴인지에 따라 이처럼 다른 결과를 보여줍니다.

그런데 문제는 이러한 낱자를 합자 처리한 그 결과물은 1문자처럼 처리하는 게 아니라 1문자로서 처리해야 한다는 점입니다. ᄒᆞᆫ글2010 베타버전에서 예시 1의 경우에 옛한글의 자모 합자를 1문자로서 처리했다면 문단 정렬에 따른 자간이 변하더라도 그 장폭이 그대로 유지되었을 것입니다. 그러나 그저 겉보기에만 1문자처럼 처리했기 때문에 문단 정렬에 따른 자간 변화에 대응하여 각각의 낱자가 각각 1글자로써 작용하여 각각 자간을 넓혔기 때문에 예시 2와 같이 왼쪽 위에서 오른쪽 아래로 기울어진 형태를 가지게 되었으리라 여겨집니다.

재미있는 점은 키보드 방향키로 커서를 옮겨 보면 옛한글의 한글 낱자 사이를 이동하지 않고, 옛한글을 1글자로서 인식합니다.

검증 2 : 옛한글의 글꼴

먼저 은 바탕 글꼴로 ᄒᆞᆫ글을 나타내면 다음과 같습니다.

예시 5 : 메모장에서 72포인트 은 바탕 글꼴로 나타낸 ᄒᆞᆫ글

예시 5 : 메모장에서 72포인트 은 바탕 글꼴로 나타낸 ᄒᆞᆫ글

이 모양은 확실히 예시 1의 모양과 다릅니다.

글꼴 외양 비교 1 글꼴 외양 비교 2

위 그림 두 개를 살펴보면 첫 번째 그림에 나타난 글꼴은 순서대로 함초롬바탕, 함초롬돋움 각각 1글자, 은 바탕 2글자이며, 두번째 그림은 달랑 1글자로 은 바탕 글꼴입니다. 이때 두 그림 모두 빨간 동그라미연두 동그라미로 표시한 부분이 차이가 납니다. 게다가 예시 1의 글자는 함초롬바탕의 글자와 매우 비슷합니다.

아마도 ᄒᆞᆫ글2010 베타버전에서는 옛한글을 무조건 함초롬 글꼴로 나타내도록 했나 봅니다. 한글과컴퓨터사에서 옛한글을 잘 나타내도록 열심히 노력했음을 보여주는 대목입니다. 그런데 그게 반드시 좋을까요? 아니라고 생각합니다. 예시 4굴림 옛한글 글꼴은 새굴림 글꼴을 바탕으로 만들었기 때문에 상당히 좋은 품질을 보여줍니다. 이런 글꼴의 경우에도 함초롬 글꼴로 나타낸다? 저는 그것을 바라지 않는데요. 적어도 환경 설정이나 사용자 설정에서 사용자가 결정할 수 있는 기회를 주었어야 한다고 생각합니다. 또한 글자 모양에서 경우에 따라서 옛한글을 강제로 함초롬으로 나타내거나 강제로 함초롬을 적용하지 않는 옵션이 주어져야 함은 당연하고요.

벌레 분석 및 덧붙이는 말

벌레에 대한 분석은 이미 했으므로 간단히 요약하겠습니다.

  1. 문단 정렬과 관련하여 옛한글의 한글 자모 합자를 1글자로서 처리해야 글자가 기울어지는 버그가 안 생긴다고 생각합니다.
  2. 옛한글을 표시할 글꼴을 사용자가 선택할 수 있어야 합니다. 또한 때에 따라서는 기본 글꼴(함초롬 글꼴)을 적용할 수도 있어야 하고요.

제가 버그 2를 보면서 문득 생각난 것이 표현의 자유입니다. 옛한글을 나타내는 것은 표현의 자유에 관한 사항입니다. 그런데 그 때문에 함초롬 글꼴만 사용해야 한다면, 그것은 표현의 자유를 위해 표현의 자유를 억압하는 꼴입니다. 저는 그런 반쪽짜리 표현의 자유보다 진정한 표현의 자유가 더 좋답니다.

1월 31일에 오후에 궁극의 벌레를 다시 발견했습니다. 스크린샷을 첨부합니다.

환골탈태급 벌레! 누가 저것을 한 글자라고 여길까요?

궁극의 환골탈태급 벌레!

관련 벌레

이 벌레와 관련이 있는 벌레는 다음과 같습니다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

최근 오피스슈트를 만드는 두 회사에서 새 버전의 베타버전을 발표하여 오피스웨어 사용자를 즐겁게 만들고 있습니다. 그런데 여기에 포함된 오피스 프로그램에 포함된 글꼴을 따로 이용할 수 없는지 그게 더 궁금하신 분도 있더군요. 하긴 제가 봐도 함초롬 글꼴 등은 매우 예쁩니다.

필요한 파일

일단 오피스 설치 파일이 필요합니다. 그리고 그것을 설치하지 않고 압축을 풀어줄 프로그램이 필요하지요. 일단 오피스 설치 파일은 각자 구하기 바랍니다.

그리고 이 파일들의 압축을 푸는 데에는 7-Zip이 제격입니다.

압축 풀기

다운로드 받은 설치 파일

다운로드 받은 설치 파일

위 그림에서 HOffice2010.exe 파일은 한컴오피스2010 베타버전 설치파일이며, ProfessionalPlus.exe 파일은 MS오피스2010 베타버전 설치 파일입니다.

7-Zip으로 압축 풀기

7-Zip으로 압축 풀기

7-Zip을 이용하여 위와 같이 압축을 풀면 됩니다. 압축을 풀려는 파일 위에 마우스 커서를 두고 마우스 오른쪽 단추를 클릭합니다. 지금 PC방이라서 알집이 있네요. ^^a

압축이 풀린 상태

압축이 풀린 상태

위에서 압축을 푼 파일은 한컴오피스2010 베타버전의 설치 파일입니다. 압축을 풀어낸 하위 폴더로 이동합니다. 이때 글꼴은 함초롬 글꼴입니다. 필요하다면 그밖에 다른 글꼴도 압축을 풀려고 합니다. 아무튼 함초롬 글꼴의 파일 이름은 hanbatang.ttf, hanbatang-bold.ttfhandotum.ttf, handotum-bold.ttf입니다. 원래는 이 파일을 찾으려면 캐비닛 파일(.CAB)을 하나씩 뒤져야 합니다. 하지만 한컴오피스의 경우는 매우 쉽게 찾을 수 있기에 연습용으로 닥 좋습니다.

방금 압축을 푼 폴더

방금 압축을 푼 폴더

보기 > 자세히로 보기 옵션을 바꿉니다. 파일 수가 적어서 굳이 그럴 필요는 없지만, 파일이 많은 경우에는 자세히로 바꾼 뒤에 작업하면 편합니다.

보기 > 자세히로 바꾼 화면에서 종류별로 정렬하기

보기 > 자세히로 바꾼 화면에서 종류별로 정렬하기

일단 위와 같이 보기 옵션을 '자세히'로 바꿉니다. 그 뒤에 종류(빨간 동그라미)를 클릭하여 종류별로 정렬시킵니다.

.Cab 파일 가운데 글꼴이 들어 있는 것 찾기

.Cab 파일 가운데 글꼴이 들어 있는 것 찾기

위 그림처럼 찾기 쉬운 경우도 있지만, 뒤섞인 경우가 많습니다.

글꼴 찾기

위 그림에서 찾은 fonts.cab 파일의 압축을 풉니다.

글꼴 압축 파일의 압축을 푼 상태

글꼴 압축 파일의 압축을 푼 상태


하위 폴더의 목록 화면

하위 폴더의 목록 화면

일단 위 그림처럼 찾고자 하는 바가 바로 나타나는 경우도 있지만, 그렇지 않을 수도 있습니다. 그럴 경우 FontView라는 프로그램을 이용하면 됩니다. 대부분의 경우 위와 같은 화면에서 글꼴 파일의 아이콘을 두 번 클릭하면 FontView 창이 나타납니다.

FontView로 본 글꼴 정보

FontView로 본 글꼴 정보

위와 같이 파일을 하나하나 살피어 찾으면 됩니다.

함초롬바탕의 글꼴 정보

함초롬바탕의 글꼴 정보

찾아낸 글꼴 파일을 글꼴 폴더에 복사해 넣으면 사용할 수 있습니다. 단순히 복사했을 경우에는 시스템 재시작이 필요할 수도 있습니다. 또한 찾아낸 글꼴 파일을 백업할 수도 있습니다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

한컴오피스 베타버전 버그 27 - 유니코드 버그 3 및 글꼴 버그 1 - Unicode Full Set 지원??

ᄒᆞᆫ글2010 베타버전에서는 Unicode Full Set을 지원한다고 밝히고 있습니다. 자세한 사항은 한컴오피스2010 오픈베타 홈페이지에 있는 기능 설명서를 다운로드하여 읽어보기 바랍니다. 그런데 이때 Unicode Full Set은 무엇을 뜻할까요? 2009년 10월 1일 발표한 최신 유니코드 5.2일까요? 그게 아니라면 2008년에 발표한 유니코드 5.1? 2006년 발표한 5.0? 그게 아니면…? 저는 적어도 유니코드 5.0은 지원하리라 생각했습니다. 왜냐하면 한컴오피스2007이라는 제품이 있었기 때문입니다. 그런데 아니더군요. ᄒᆞᆫ글2010 베타버전유니코드 4.1도 제대로 지원하지 않았습니다.

벌레의 유형

ᄒᆞᆫ글 씨! ᄒᆞᆫ글에서 지원한다는 유니코드 버전 좀 알려주면 덧납니까? 사용자가 ᄒᆞᆫ글 프로그램에서 지원하는 유니코드 버전을 알기 위해 그 고생을 하도록 합니까?

개발자의 답변

2010년 1월 28일 버그 리포팅을 한 상태입니다.

벌레의 발견

일단 나는 한글 자모 영역만을 살펴보고는 ᄒᆞᆫ글2010한컴오피스2010 베타에서 유니코드 5.2 또는 유니코드 5.1을 지원한다고 믿고 말았다. 조금만 더 신경을 썼더라면 전혀 그렇지 않음을 알았을 텐데, 지금 생각하면 참 어리석었습니다.

유니코드 지원이란?

유니코드 지원은 크게 두 가지로 나뉩니다. 하나는 유니코드 코드표를 지원한다는 뜻입니다. 다른 하나는 유니코드를 화면에 나타낼 수 있게 한다는 뜻이지요. 워드프로세서를 제외한 오피스 프로그램이라면 당연히 코드표만 지원하면 완벽한 지원으로 볼 수 있습니다. 그러나 워드프로세서는 사정이 다릅니다. 코드표로는 아무런 의미도 없기 때문입니다. 워드프로세서란 문서를 실제로 출력해 주어야만 그 기능이 완성된다는 점에서 보면 ᄒᆞᆫ글2010은 유니코드를 제대로 지원하지 못하고 있습니다.

'한컴오피스의 유니코드 지원'을 말한 사람은?

이런 헛소문을 퍼뜨린 사람이 누구인지를 검색해 보았습니다. 검색하다가 보니 제 블로그가 상당히 많이 눈에 띄더군요. 헛!

각설하고 우선 한글과컴퓨터 한컴오피스2010 오픈베타 홈페이지에서 그 헛소리를 발견했습니다. 오호 애재라!

Unicode Full Set 지원? 정말??

Unicode Full Set 지원? 정말??

저처럼 눈 나쁜 사람을 위해 그 부분만 잘랐습니다.

저처럼 눈 나쁜 사람을 위해 그 부분만 잘랐습니다.

함초롬돋움과 함초롬바탕 글꼴이 가독성과 미려함이 좋습니다. 하지만 Unicode Full Set을 지원하지는 않습니다. 검증은 아래에서 하기로 하고 다른 웹페이지도 살펴보죠.

베타뉴스한컴오피스 2010 Beta 설명에서도 Unicode Full Set을 지원한다고 그러네요.

베타뉴스에 나타난 Unicode Full Set을 지원 글귀

베타뉴스에 나타난 Unicode Full Set을 지원 글귀

조금 다른 기사도 있습니다. 이투데이한컴, 오피스시장 점유율 20%에 도전한다라는 기사인데, 여기에 유니코드 글꼴에 대한 내용이 나옵니다.

함초롬체를 직접 언급한 이투데이 기사

함초롬체를 직접 언급한 이투데이 기사

이렇게까지 언론에서 말할 정도라면… 애초에 Unicode Full Set 지원을 말한 사람은 한글과컴퓨터사라는 뜻이겠죠? 더구나 유니코드를 지원하는 글꼴은 한컴오피스2010 베타에서 새롭게 제공하는 함초롬체라는 뜻이고요. 그렇지 않습니까?

'한컴오피스의 유니코드 지원'은 Unicode Full Set일까?

'한컴오피스의 유니코드 지원'은 Unicode Full Set일까요? 유감스럽게도 최신 버전은 아닙니다. 다시 말해 유니코드 5.2Full Set으로 지원하지는 않는다는 뜻입니다.

이것은 위키백과의 한컴 2바이트 코드 문서에 나타난 사항을 검증하면서 발견하였습니다(ᄒᆞᆫ글2010 베타버전과 유니코드 버그 1 및 문자표 버그 1 참조). 그 글에서 밝혔듯이, 이 문자표와 관련한 사항은 또 다른 판도라 상자였습니다.

위키백과의 한컴 2바이트 코드 문서에서 틀린 점을 발견했는데, 그 부분 덕분에 이 버그를 발견하게 되었습니다.

위키백과의 한컴 2바이트 코드 문서의 마지막 부분

위키백과의 한컴 2바이트 코드 문서의 마지막 부분

위 화면에서 빨간색 네모로 묶은 부분은 틀린 내용입니다. 그래서 [출처 필요]라는 출처를 요구하는 태그가 붙어 있습니다(제가 붙였습니다. ^.^v). U+470C의 한자는 䜌이며, 이것은 유니코드 5.2에서 옳은 표기입니다. 여기에서 중요한 부분은 또 다른 유니코드 번호인 U+9FBB와 그 아래에 파란 밑줄 부분입니다. U+9FBB에 해당하는 한자가 나타나지 않았는데, 이는 화면 글꼴인 굴림 글꼴에 저 번호에 해당하는 글자가 없기 때문입니다. 다르게 말하면, 아니 조금 심하게 말하면, 굴림 글꼴은 유니코드를 제대로 지원하지 못하는 글꼴이라는 말이 됩니다. 그렇다면 ᄒᆞᆫ글은 저것을 잘 나타낼까요? 파란 밑줄 부분이 사실이라면 저 한자는 나타낼 수 없습니다.

일단 유니코드 문자표는 없나요? 문서에서 부수별 한자 색인 목록이 있는 PDF 파일(RSIndex.pdf 파일)을 아도비 리더에서 불러오겠습니다.

어도비 리더에서 불러온 부수 색인 파일 136쪽의 400% 확대 화면

어도비 리더에서 불러온 부수 색인 파일 136쪽의 400% 확대 화면

그런데 U+470C 문자와 U+9FBB 문자가 서로 모양이 같습니다. 다만 U+9FBB가 지나치게 위로 치우쳐 있습니다. 이런 경우는 저 문자가 실제로 문자로 쓰이는 게 아니라, 다른 문자의 일부로써 쓰일 때 주로 나타나는 현상입니다.

실제 문자표 파일(CodeCharts-MulticolHan.pdf 파일)에서는 어떻게 나타나는지 살펴봅시다.

어도비 리더에서 불러온 한자 파일 747쪽 제1단의 200% 확대 화면

어도비 리더에서 불러온 한자 파일 747쪽 제1단의 200% 확대 화면

U+9FBB가 지나치게 위로 배치되어 있습니다. 그런데 그 앞에 나온 문자들도 만만치 않습니다. 위로 치우치거나 왼쪽으로 치우쳐 있습니다. 이 말은 이 문자들이 정상적인 글자로 쓰이지 않고 다른 용도로 쓰인다는 추측을 가능하게 합니다. 이는 곧 위키백과의 한컴 2바이트 코드 문서의 마지막 부분 그림에 나타난 빨간 네모 안의 내용이 틀렸다는 근거이기도 하지요.

이제 앞서 언급한 ᄒᆞᆫ글이 저 문자를 잘 나타내는지를 살펴보겠습니다. 위키백과의 한컴 2바이트 코드 문서의 마지막 부분 그림의 파란 밑줄 부분이 사실이라면 저 한자는 나타낼 수 없고, 그것이 거짓이라면 나타낼 수 있어야 합니다.

문자표를 불러 유니코드 문자표 탭에서 9FBB를 찾습니다.

ᄒᆞᆫ글2010의 문자표에서 나타나지 않은 U+9FBB 코드 포인트

ᄒᆞᆫ글2010의 문자표에서 나타나지 않은 U+9FBB 코드 포인트

ᄒᆞᆫ글2010의 문자표는 코드 포인트 U+9FBB에 해당하는 글자를 나타내지 못하고 있습니다.
이때 코드 포인트는 흔히 코드 값으로 부르는 것의 정식 명칭인데, 유니코드에서 다른 글자와 겹치지 않는 그 글자만의 고유값을 가리킵니다. 현재까지 유니코드에 배정된 코드 포인트는 모두 111만4112개입니다.

단순히 글꼴에서 표시해 주지 못할 뿐이라는 생각도 할 수 있습니다. 하지만 저 문자표의 글꼴은 현재 커서가 놓인 곳의 글꼴을 따르게 되어 있습니다. 그리고 지금 커서가 놓인 곳은 글꼴은 함초롬돋움 글꼴입니다.

현재 글꼴은 함초롬돋움

현재 글꼴은 함초롬돋움

아, 함초롬돋움함초롬바탕은 다를 수 있다고요? 그럼 바꿔 보겠습니다.

현재 글꼴은 함초롬바탕

현재 글꼴은 함초롬바탕


글꼴은 바뀌어도 U+9FBB 코드 포인트의 글자는 나타나지 않습니다.

글꼴은 바뀌어도 U+9FBB 코드 포인트의 글자는 나타나지 않습니다.

그렇다면 다른 글꼴도 시험해 보겠습니다. 유명한 셰어웨어 유니코드 글꼴Code2000로 바꾸겠습니다. 물론 함초롬체도 유니코드 글꼴입니다.

한글이 밉게 나와서 자주 쓰지 않는 Code2000 글꼴

한글이 밉게 나와서 자주 쓰지 않는 Code2000 글꼴

참고로 저는 아직 Code2000 라이선스를 갖고 있지 않습니다. 다시 말해 비등록 사용자인 셈이지요. 이 글을 쓰기 위해 다운로드해서 설치했습니다.

Code2000 글꼴로 바꾼 뒤 잘 나타나는 코드 포인트 U+9FBB의 글자

Code2000 글꼴로 바꾼 뒤 잘 나타나는 코드 포인트 U+9FBB의 글자

위 그림에서 자주색 테두리를 친 부분은 유니코드 4.1에서 추가된 부분입니다. 다시 말해 2005년 3월 31일에 이미 유니코드 표준이 된 글자입니다. 그렇다면 이투데이 기사의 내용대로 함초롬체 개발에 2년이 소요되었더라도 이미 추가했어야 할 글자라는 뜻입니다. 참고로 파란색 테두리를 두른 부분은 유니코드 5.1에서 추가된 부분입니다.

한자의 모양을 화면에 나타내지 못한다고 해서 유니코드를 지원하지 않는다는 말은 잘못되었다는 의견도 있을 수 있습니다. 그러나 저 글자 가운데 어떤 글자도 ᄒᆞᆫ글의 한자 사전에서 음과 훈, 한어병음 가운데 어느 하나도 나타나 있지 않습니다. 물론 음과 훈은 정해져 있지 않고, 한어병음도 정해져 있지 않을 수 있습니다. 그러나 단 하나, 정해져 있는 것이 있습니다. 바로 획수입니다.[각주:1]

획수조차 나타나지 않는 한자 사전

획수조차 나타나지 않는 한자 사전

도대체 무엇을 근거로 Unicode Full Set을 지원한다는 말을 했을까요?

벌레 분석

Unicode Full Set을 지원한다는 말은 그저 광고 문구로만 볼 수 없습니다. 상당히 많이 기대한 ᄒᆞᆫ글의 유니코드 지원이지만, 결과적으로 한글 자모만의 지원이라는 생각이 듭니다. 물론 한국에서 개발한 프로그램이므로 한글 자모만 지원되어도 충분할 수 있습니다. 그러나 그것이 Unicode Full Set 지원을 뜻하지는 않는다고 생각합니다.

관련 벌레

이 벌레와 관련이 있는 벌레는 다음과 같습니다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 정해진 것이 하나 더 있습니다. 바로 글자의 외형(glyph)입니다. 다만 글자의 외형은 글꼴에서 지원하지 않으면 나타낼 수 없으므로, 실제로 정해진 것은 바로 획수입니다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

한컴오피스 베타버전 버그 26 - 유니코드 버그 2 및 문자표 버그 3

ᄒᆞᆫ글2010 베타버전을 사용하다 보니 문자표와 관련하여 이해하기 힘든 동작을 발견했습니다. 뭐, 문자표와 관련한 벌레 가운데 이해할 수 있는 벌레가 하나도 없었지만요.
게다가 이 벌레는 가장 먼저 발견(2009년 12월 30~31일경 발견)했음에도 그 벌레 발생의 규칙성을 알지 못해서 버그 리포팅을 하지 못하고 있었습니다.

벌레의 유형

ᄒᆞᆫ글 씨! 똑같은 글자이건만, 앞서 불러온 문자에 따라, 다르게 취급할 필요가 있나요? 그리고 유니코드 4자리에게서 안 나타나는 벌레가 왜 유니코드 5자리에서 나타나서 사람을 괴롭히게 만들어요?

개발자의 답변

2010년 1월 26일 버그 리포팅을 한 상태입니다.

벌레의 발견

이 벌레의 증명에는 동영상을 사용하지 않기로 했습니다. 글쇠 하나만 잘못 눌러도 ᄒᆞᆫ글에서 이 벌레를 만날 수 없습니다. 결국 ᄒᆞᆫ글 프로그램을 다시 실행해야 했습니다. 뭐 지금은 정확하게 이 벌레를 나타나게 만들 수 있지만 조금 귀찮습니다. 또한 동영상이 없어도 설명하는 데는 지장이 없습니다.

그리고 이 벌레는 앞서 설명했듯이 4자리의 유니코드에서는 나타나지 않습니다. 또한 이전에 사용했던 유니코드 문자가 5자리 이상이라면 이 벌레는 나타나지 않습니다.

준비 : 이전에 사용한 문자표의 문자 영역 재설정

아무 문자, 특히 영문자(로마자; 라틴 문자)나 숫자를 골라서 영역을 설정한 뒤에 문자표를 부릅니다. 이때 영역(블럭)을 설정의 방향은 상관이 없습니다. 이전에 사용한 문자표의 문자 영역 재설정하는 작업이 이 벌레를 발견하는 데에 매우 중요합니다.

예제 문서와 작업 준비 화면

예제 문서와 작업 준비 화면


이전에 사용한 문자 및 문자 영역을 재설정

이전에 사용한 문자 및 문자 영역을 재설정

위와 같은 화면에서 화면에 보이는 숫자 가운데 하나를 블럭 지정하여 문자표를 불렀습니다(단축키는 Ctrl+F10). 참고로 예제 문서는 Unicode-Test-2.hwp입니다.

앞서 입력한 문자가 유니코드 4자리일 때

이번 테스트에 이용할 문자는 준비 화면에서 보이는 한자들입니다.

한자에 커서를 두고 블럭 설정

한자에 커서를 두고 블럭 설정

위 그림처럼 한자 앞에 커서를 두고 블럭을 설정합니다. 이미 앞서 문자표로 불러왔던 문자의 유니코드 번호가 4자리였습니다.[각주:1]

블럭 설정

블럭 설정

위 그림처럼 블럭을 설정한 뒤 문자표를 불러옵니다. 단축키 사용해 주십시오. 지난번 그 벌레가 나오면 감당 못합니다. 단축키는 Ctrl+F10입니다.

유니코드 번호가 0208?? 설마?

유니코드 번호가 0208?? 설마?

저 번호가 맞다고 생각하지는 않겠죠? 참고로 U+0208의 문자는 다음과 같습니다.

라틴 확장-B 문자 영역에 나타난 U+0208

라틴 확장-B 문자 영역에 나타난 U+0208

어이, ᄒᆞᆫ글 씨! U+0208는 한자가 아니라 라틴 확장-B라는데요.

앞서 입력한 문자가 유니코드 5자리 이상일 때

앞서 입력한 문자가 유니코드 5자리 이상인 상황은 만들기 쉽습니다. 그냥 한자에 커서를 두고 블럭 설정 화면에 보이는 한자를 골라 문자표를 두 번 연속으로 불러 내면 됩니다.

정상적으로 출력된 유니코드 번호

정상적으로 출력된 유니코드 번호

거참, 처음부터 이렇게 제대로 나오면 좀 좋습니까?

벌레 분석

무슨 까닭에서인지 맨 처음에 유니코드 번호 다섯 자리 이상인 문자를 제대로 인식하지 못한 듯싶습니다.

관련 벌레

이 벌레와 관련이 있는 벌레는 다음과 같습니다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 이때 유니코드 번호가 4자리라는 말의 뜻은 어떤 문자의 유니코드 번호를 16진수 4자리 이내로 표현할 수 있다는 뜻입니다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

나는 ᄒᆞᆫ글을 자주 쓰는데, 가끔 ᄒᆞᆫ글에 없는 한자를 볼 때면 난감하기 그지 없습니다. 또 가끔이지만 유니코드의 코드 목록을 알고 싶어하는 사람이 있는데, 그럴 때도 참 난감합니다. 뭐, 난감한 이유는 그 답이 어려워서가 아니라 한글 자료가 부족하기 때문입니다. 그런데 실상 그 자료를 보면 한국어를 꼭 알 필요는 없음을 알게 됩니다. 코드표 또는 문자표라는 것은 그저 글자만 죽 나열한 것이기 때문입니다.

유니코드의 코드표 - 한 글자 찾기

유니코드의 문자 목록은 당연한 말이겠지만, 유니코드 컨소시엄 홈페이지(http://www.unicode.org/)에서 구하면 됩니다. 그런데 그걸 알려주면 영어라고 싫어하거나 화를 내는 사람이 있습니다. 앞서 말한 "난감한 이유"가 이것입니다.

각설하고 유니코드 문자 목록이 기록된 문서를 찾아가 봅시다.

유니코드 컨소시엄 홈페이지

유니코드 컨소시엄 홈페이지

홈페이지에 접속한 뒤에는 목적을 정확히 정해야 합니다. 이 사이트에는 매우 많은 정보가 있어서 정확한 목적에 맞는 자료를 찾기가 오히려 쉽지 않기 때문이죠. 일단 문자 목록 또는 코드표(문자표)만을 찾아봅시다.

코드표를 찾는 이유가 그저 한두 글자를 찾을 생각이라면 그냥 코드표(Code Charts) 페이지를 찾으면 됩니다.

코드표 페이지 찾아 가기

코드표 페이지 찾아 가기

유니코드 컨소시엄 홈페이지에서 The Unicode Standard를 클릭, Code Charts를 클릭합니다.

유니코드 문자표 페이지

유니코드 문자표 페이지

위와 같이 언어별로 코드 영역별로 구분이 되어 있습니다. 오른족에 보이는 CJK로 시작하는 부분이 바로 한자에 대한 유니코드입니다. CJK는 Chinese, Japanese, Korean을 합쳐서 부르는 명칭인데, 세 나라 언어에서 공통된 부분이 바로 한자입니다. 친절하게 괄호로 묶어서 Han이라고 표기해 주었죠.

만약 코드 번호를 알고 있다면 맨 위에 보이는 Look up by character code: 라는 부분에 입력하면 됩니다. 시험삼아 004B를 찾아 보았습니다. 004B는 영문자 K 입니다. 유니코드에서는 Latin(라틴 문자)으로 표기되어 있습니다.

찾을 코드 번호를 입력하고 [Go]를 클릭!

찾을 코드 번호를 입력하고 [Go]를 클릭!


정상적으로 찾아준 화면

정상적으로 찾아준 화면

위의 화면은 정상적으로 찾아준 화면입니다. http로 시작하는 곳을 살펴보면, 우선 http://www.unicode.org/charts/PDF/U<입력한 코드 번호가 들어 있는 영역>.pdf 라는 형식을 가지고 있습니다. 그리고 그 뒤에 (0.4 MB)라는 형태로 pdf 파일의 용량을 표시하고 있지요.

그렇다면 존재하지 않은 유니코드 번호를 입력하면 어떻게 될까요? ᄒᆞᆫ글에서 가끔 나타나는 F로 시작하는 유니코드 주소를 입력해 보겠습니다. F0704를 입력하기로 하죠.

존재하지 않으리라 여겨지는 코드 번호를 입력하고 [Go]를 클릭!

존재하지 않으리라 여겨지는 코드 번호를 입력하고 [Go]를 클릭!


얼핏 보면 정상적으로 찾아준 듯싶은 화면

얼핏 보면 정상적으로 찾아준 듯싶은 화면

위 화면은 얼핏 보면 정상적으로 찾아주었다고 여겨집니다. 하지만 결정적으로 용량 부분이 특이합니다. 바로 (0.0 MB)이라고 되어 있지요. 펄 스크립트가 자동으로 생성해 주는 웹페이지이기 때문에 나타나는 현상으로 여겨집니다. 아무튼 저렇게 용량이 0.0 MB이면 파일이 없는 것이고, 따라서 그 번호를 가진 유니코드는 현재 존재하지 않습니다.

유니코드의 코드표 - 언어별 찾기

유니코드 문자표 페이지에서 자신이 자주 쓰는 언어의 코드표만 받아서 보면 됩니다. 클릭하면 다운로드가 되거나 웹브라우저에서 바로 볼 수 있습니다.

하나하나 받기 귀찮은 사람은 http://www.unicode.org/charts/PDF/ 라는 주소에서 플래시겟 등의 다운로드 관리자를 사용하여 몽땅 내려받을 수도 있습니다.

유니코드의 코드표 전체 찾기

유니코드 전체의 코드 번호 및 코드표를 찾고 싶다면 The Unicode Standart를 클릭한 뒤, 이어서 Latest Version을 클릭합니다. 그러면 현재 존재하는 가장 최신 버전의 웹페이지로 이동합니다.

유니코드 최신 버전 페이지 찾아 가기

유니코드 최신 버전 페이지 찾아 가기


Unicode 5.2.0 웹페이지 - 현재 최신 버전입니다.

Unicode 5.2.0 웹페이지 - 현재 최신 버전입니다.

여기에서 우리가 찾으려는 자료는 유니코드 코드표 전체입니다. 앞서 유니코드 문자표 페이지에서도 유니코드 코드표 전체를 보았습니다만, 여기에서 찾는 것은 그렇게 나뉜 자료가 아니라 한데 묶인 자료입니다. 그렇게 유니코드 문자가 한데 묶인 자료를 유니코드 캐릭터 데이터베이스(the Unicode Character Database (UCD))라고 부릅니다.

왼쪽에 보이는 5.2.0 UCD 부분이 우리가 찾는 그것입니다.

왼쪽에 보이는 5.2.0 UCD 부분이 우리가 찾는 그것입니다.

왼쪽에 있는 사항을 설명하자면 다음과 같습니다.

  • (files) : 유니코드 표준 5.2.0의 최종 데이터 파일을 모아두었습니다. 우리가 찾으려는 파일도 여기에 있습니다. 세 개의 하위 디렉터리가 있는데, "ucd" 디렉터리는 UCD의 데이터 파일이 들어 있고, "charts" 디렉터리에는 유니코드 5.2.0 표준에 정확히 대응하는 코드표PDF 파일 형태로 들어 있습니다(The "charts" subdirectory contains an archival set of pdf code charts corresponding exactly to Version 5.2.0.). 마지막으로 "ucdxml" 디렉터리에는 UCD의 XML 버전이 들어 있습니다.
  • (about) : UCD에 대한 대략적인 설명이 들어 있습니다.
  • 5.2.0 Zipped files (for bulk download) : 유니코드 5.2.0 표준의 주요 부분으로 이루어진 Zip 파일을 다운로드합니다.

(files)을 클릭하여 디렉터리에 들어갑시다.

유니코드 표준 5.2.0의 최종 데이터 파일이 있는 디렉터리

유니코드 표준 5.2.0의 최종 데이터 파일이 있는 디렉터리

위 그림에서 charts를 클릭합니다. 이 모습은 웹브라우저마다 달라지므로 대충 비슷한 형태나 낱말을 찾아야 합니다.

위의 화면에 나타난 PDF 파일 3개가 전부입니다. 그런데 용량이 장난 아니게 큽니다. 이제까지 멀티미디어 파일이 아닌 일반 문서 파일이 저렇게 큰 것은 처음 봤습니다.

다운로드할 때 속도는 그리 빠른 편이 아니므로 느긋하게 기다려야 합니다. 실제 코드표에 해당하는 파일은 CodeCharts-MulticolHan.pdf 파일(71M, 한자 영역 데이터), CodeCharts-noHan.pdf 파일(15M, 한자 영역을 제외한 데이터)입니다. 이 두 파일은 무려 1천 쪽이 넘는 방대한 분량이므로 그냥 그러려니 하십시오. 그리고 RSIndex.pdf 파일(24M, 완벽한 유니한 부수별 한자 색인(Unihan Radical Stroke Index)) 파일입니다. 이것도 나름대로 쓸모가 있습니다.

이 파일을 모두 다 받아서 적당한 곳에 둔 뒤 PDF 파일 뷰어로 살펴보면 됩니다. 사용은 각자 알아서 하기 바랍니다. 저는 물가에 데려갈 수는 있어도 물을 떠먹일 재주는 없는 사람입니다.

덧붙이는 말

앞으로 이 코드표 파일을 참조하는 일이 생길 수도 있습니다. 그러므로 받아 두면 게시글을 읽는 데도 도움이 되리라 생각합니다. 그리고 PDF 뷰어 프로그램은 어도비 어크로뱃 리더가 가장 좋습니다. 물론 유니코드 컨소시엄에서 받은 자료만 본다면 다른 뷰어도 좋다. 하지만 현재까지 옛한글 등을 보기에는 가장 좋은 PDF 뷰어입니다. 단점은 지나치게 무거워서 자주 쓰기에는 여러 모로 부담이 되는 프로그램입니다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.

글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

한컴오피스 베타버전 버그 25 - 문자표 버그 2

ᄒᆞᆫ글2010 베타버전과 유니코드 버그 1 및 문자표 버그 1 문서를 작성하며 ᄒᆞᆫ글2010 베타버전에서 검증하는 과정에서 문자표와 관련한 황당한 동작을 발견했습니다.

벌레의 유형

ᄒᆞᆫ글 씨! 똑같은 문자표 아이콘이건만, 왜 때와 장소에 따라 역할이 달라지나요? 언제나 변치 않는 녀석이 더 좋답니다.

개발자의 답변

2010년 1월 25일 버그 리포팅을 한 상태입니다.

벌레의 발견

일단 동영상 두 개를 보고 나서 설명하겠습니다.[각주:1]

위 동영상(사례 1)은 ᄒᆞᆫ글 아래에 다른 프로그램이 없는 경우입니다.

위 동영상(사례 2)은 ᄒᆞᆫ글 밑에 다른 프로그램이 있는 경우입니다.

아무튼 두 경우 모두 리본 메뉴가 완전히 나타난 상태에서만 정상 작동하고, 리본 메뉴가 접힌 상태에서 메뉴를 클릭하여 임시로 펼쳤을 때에는 약간 이상한 동작을 하였습니다.

사례 1 살펴보기

일단 ᄒᆞᆫ글에서 한 글자를 선택하여 범위를 지정하고 문자표 보기(단축키는 Ctrl+F10)를 합니다. 그러면 범위를 지정한 글자를 문자표에서 찾아줍니다. 그런데 이 작업을 마우스로 아이콘을 클릭하거나 메뉴의 항목을 클릭함으로써 작동시켜 보았더니 위의 동영상에 나타난 벌레가 나타나더군요.

일단 앞서 다운로드한 그 문서(Unicode-Test-1.hwp)를 이용하여 봅시다. 아니면 직접 만들어서 시험해도 됩니다.

ᄒᆞᆫ글 아래에 아무것도 없는 상태

ᄒᆞᆫ글 아래에 아무것도 없는 상태

위 그림처럼 ᄒᆞᆫ글이 최상위에 위치한 경우의 반응을 먼저 보겠습니다.

리본 메뉴를 접은 상태에서 한 글자를 블럭 지정

리본 메뉴를 접은 상태에서 한 글자를 블럭 지정

위와 같이 한 글자를 블럭 지정합니다. 그 뒤에 입력 메뉴로 마우스를 가져갑니다.

입력 메뉴의 마우스를 가져가기 전 모습(왼쪽)

입력 메뉴의 마우스를 가져가기 전 모습

입력 메뉴의 마우스를 가져가져간 뒤의 모습(오른쪽)

입력 메뉴의 마우스를 가져가져간 뒤의 모습


입력 메뉴 확대

입력 메뉴 확대

위의 확대 그림에서 1번 쪽(글자 부분)을 클릭하면 리본 메뉴임시로 나타나고, 2번 쪽(▼ 표시 부분)을 클릭하면 풀다운 메뉴가 나타납니다.

리본 메뉴를 접은 상태에서 메뉴를 클릭하여 임시로 리본 메뉴를 불러온 화면

리본 메뉴를 접은 상태에서 메뉴를 클릭하여 임시로 리본 메뉴를 불러온 화면

위 그림에 나타난 바와 같이, (1) 1번 쪽(글자 부분)을 클릭하여 리본 메뉴를 임시로 불러오고, (2) 문자표 아이콘의 아랫부분에 있는 문자표라는 글자를 클릭합니다. 아래 그림에서는 2번의 화살표가 가리키는 곳입니다. 실수로 1번의 아이콘을 클릭하면 문자표를 이용하여 입력했던 맨 마지막 문자(그림에서는 네모로 표시된 j자 비슷한 모양인데, 이는 U+01D457 [각주:2]에 해당한다.)를 입력하게 되므로 조심해야 합니다.

문자표 글자를 클릭

문자표 글자를 클릭

(3) 마지막으로 맨 아래에 보이는 문자표...라는 부분을 클릭합니다.

위와 같은 과정을 거쳐서 정확히 실행했다면 문자표가 한 번 나타났다가 번개처럼 사라지는 희한한 현상을 목격할 수 있습니다.

문자표 글자를 클릭한 뒤 약간의 변화가 생기고 나서 마지막에 나타나는 화면

문자표 글자를 클릭한 뒤 약간의 변화가 생기고 나서 마지막에 나타나는 화면

그밖에 다른 점이 하나 더 있습니다.

문자표를 실행하기 전 제목 표시줄

문자표를 실행하기 전 제목 표시줄


문자표를 실행한 뒤 제목 표시줄

문자표를 실행한 뒤 제목 표시줄

제목 표시줄의 글자가 문자표를 실행하기 전에는 진하고 밝은 색이었습니다. 그런데 문자표를 실행한 뒤에는 연하고 어두운 색으로 바뀌었습니다.

이는 ᄒᆞᆫ글2010 프로그램 창이 마우스 포커스를 잃어버렸음을 뜻합니다. 다르게 말하면, 활성 상태의 ᄒᆞᆫ글2010 창이 비활성화되었음을 뜻합니다. 쉽게 말하면, ᄒᆞᆫ글 프로그램 창의 상태가 작업 중에서 작업 중이 아닌 상태로 바뀌었다는 뜻이지요.

  • 참고 : 위의 과정에서 한 문자를 블럭으로 지정할 필요는 없습니다. 위의 과정은 이 벌레를 발견한 과정을 재현하기 위해 블럭을 지정했으며, 블럭 지정을 하지 않아도 이 벌레는 나타납니다.

사례 2 살펴보기

사례 2에서는 ᄒᆞᆫ글 프로그램 창 아래에 다른 프로그램 창이 존재할 경우입니다. 이 경우도 앞서 말한 대로 굳이 글자에 블럭을 지정할 필요는 없습니다.

문자표를 부르기 직전

문자표를 부르기 직전


문자표를 부른 뒤 포커스를 잃는 도중!

문자표를 부른 뒤 포커스를 잃는 도중!


잠시 후 포커스를 완전히 잃어버린 ᄒᆞᆫ글 창

잠시 후 포커스를 완전히 잃어버린 ᄒᆞᆫ글 창

잠시 그대로 놔두자 포커스를 완전히 잃어버리고, ᄒᆞᆫ글 창 아래에 있던 메모장2(Notepad2) 프로그램이 마우스 포커스를 가져갑니다.

벌레 분석

무슨 이유에서인지 모르겠으나, 리본 메뉴가 활성 상태가 아닌, 임시로 리본 메뉴를 불러온 상태에서는 문자표를 정상적으로 호출하지 못한다고 여겨집니다. 아울러 문자표를 정상적으로 불러오지 못한 경우에는 문자표의 포커스 상태(또는 Z인덱스 상태)가 아닌 ᄒᆞᆫ글 프로그램 창의 포커스 상태(또는 Z인덱스 상태)를 수정해 버린다고 여겨집니다.

관련 벌레

이 벌레와 관련이 있는 벌레는 다음과 같습니다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 하루 종일 동영상 인코딩~! 문서에서 말한 그 동영상입니다. 10메가바이트 이내로 줄이느라 고생 좀 했습니다. [본문으로]
  2. U+는 유니코드임을 나타내는 접두어입니다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

한컴오피스 베타버전 버그 24 - 유니코드 버그 1 및 문자표 버그 1

ᄒᆞᆫ글2010 베타버전을 사용하다 보니 문자표와 관련하여 이해하기 힘든 동작을 발견했습니다.

벌레의 유형

ᄒᆞᆫ글 씨! 문자표에서 16진수 6자리로 이루어진 유니코드 번호는 나타낼 수 있어도 입력은 안 됩니까? 입력도 되게 하면 안 되겠니?

개발자의 답변

2010년 1월 23일 버그 리포팅을 한 상태입니다.

벌레의 발견

위키백과의 한컴 2바이트 코드[각주:1] 문서에 나타난 사항을 검증하면서 발견하였습니다. 검증 과정에서, 이 문자표는 또 다른 판도라 상자일 수도 있다는 점을 알게 되었습니다.

문자 코드의 코드 번호 붙여넣기 및 직접 입력

문자 코드의 코드 번호붙여넣기를 하느냐, 아니면 직접 입력하느냐에 따라 문자표의 반응이 달랐습니다.

문자표에서 HNC 코드유니코드를 각각 붙여넣기직접 입력을 하면서 어떻게 문자표가 반응하는지를 살펴보기로 하겠습니다.

HNC 코드와 유니코드를 문자표에 입력할 예시

HNC 코드와 유니코드를 문자표에 입력할 예시

위와 같이 두 번의 예시가 있습니다. 이것을 이용하여 실험을 해 봅시다.
아, 실험에 앞서 파일을 먼저 다운로드해 주시기 바랍니다.

HNC 코드 붙여넣기

문자표에 HNC 코드를 붙여넣기로 입력해 보겠습니다.

문자표를 처음 실행했을 때의 위치

문자표를 처음 실행했을 때의 위치

문자표를 처음 실행하면 위와 같이 전각 기호(일반)에 위치하게 됩니다. 물론 위와는 달리 최근 사용한 문자는 텅 비어 있겠지요.
위 그림에서 빨간 네모로 표시한 HNC 코드 부분에 알맞은 코드 번호를 넣으면 됩니다. 그 작업은 아래와 같은 순서로 하겠습니다.

  1. 예시에서 HNC 코드라고 한 부분의 코드에서 파란색 부분만을 복사하여 붙여넣기를 합니다. 앞에 붙인 0x는 복사하지 않습니다. 그럼 341C를 복사하겠습니다.
  2. 일단 문자표의 문자 영역을 다른 곳으로 옮겨 아무 문자나 하나 입력(더미 문자 입력)하겠습니다. 이는 문자 영역이 같을 때와 다를 때의 동작이 다르기 때문에 하는 조치입니다.

    다른 문자 영역의 문자를 선택하여 입력

    다른 문자 영역의 문자를 선택하여 입력


    다른 문자 영역의 문자를 선택하여 입력한 결과

    다른 문자 영역의 문자를 선택하여 입력한 결과

  3. 다시 문자표를 불러서 붙여넣기를 합니다.

    문자표를 불러오면 방금 사용한 문자를 표시하고 있습니다. 일단 HNC 코드 부분을 지웁니다.

    문자표를 불러오면 방금 사용한 문자를 표시하고 있습니다. 일단 HNC 코드 부분을 지웁니다.


    HNC 코드 부분에 방금 복사한 341C를 붙여넣기로 입력한 순간 바뀌는 문자표

    HNC 코드 부분에 방금 복사한 341C를 붙여넣기로 입력한 순간 바뀌는 문자표

  4. 위의 작업을 확인하기 위해, 이번에는 531C를 붙여넣기로 입력합니다.

    문자표에 531C를 붙여넣기로 입력

    문자표에 531C를 붙여넣기로 입력


    HNC 코드 붙여넣기로 입력 최종 결과

    HNC 코드 붙여넣기로 입력 최종 결과

위에서 검증했듯이 HNC 코드에서는 붙여넣기로 입력하면, 그 순간 문자 영역 및 문자 선택에서 방금 입력한 코드 번호에 해당하는 문자를 가리키게 됩니다.

HNC 코드 직접 입력

이번에는 HNC 코드를 직접 입력해 보겠습니다. 순서는 따로 설명하지 않겠습니다. 직접 해 보시기 바라며, 결과는 아래와 비슷하게 나와야 합니다.

531을 입력해도 아무런 변화가 없다.

531을 입력해도 아무런 변화가 없다.


531를 입력한 뒤 C를 마저 입력해야 순간이동을 한다.

531를 입력한 뒤 C를 마저 입력해야 순간이동을 한다.


HNC 코드를 직접 입력한 최종 결과

HNC 코드를 직접 입력한 최종 결과

HNC 코드에서는 직접 입력하더라도 순간이동을 해서 그 코드 번호에 해당하는 문자를 찾아 줍니다.

유니코드 붙여넣기로 입력

이번에는 유니코드를 문자표에 붙여넣기로 입력해 보겠습니다.

  1. 일단 처음에는 다른 문자 영역에서 한 문자를 입력합니다.

    아무 문자나 하나 입력

    아무 문자나 하나 입력

  2. 유니코드를 복사하여 붙여넣기로 입력합니다. 이때도 HNC 코드와 마찬가지로 앞에 붙은 U+는 복사하지 않습니다. 여기에서는 3010을 복사하겠습니다.

    HNC 코드 붙여넣기에서처럼 순간 이동에 성공!

    HNC 코드 붙여넣기에서처럼 순간 이동에 성공!

  3. 이번에는 20850를 복사하여 붙여넣기를 합니다.

    문자표에서 유니코드 20850 대신에 2085를 찾아 줍니다.

    문자표에서 유니코드 20850 대신에 2085를 찾아 줍니다.

유니코드를 붙여넣기로 입력한 최종 결과

유니코드를 붙여넣기로 입력한 최종 결과

위에서 검증했듯이 유니코드에서는 붙여넣기로 입력하면, 4자리 16진수로 이루어진 코드 번호를 입력한 경우에는 입력하는 순간 문자 영역 및 문자 선택에서 방금 입력한 코드 번호에 해당하는 문자를 가리키게 됩니다. 그러나 5자리 16진수로 이루어진 코드 번호를 입력한 경우에는 입력하는 순간 가장 아래의 한 자리는 빼먹고 위의 네 자리만 받아들여 유니코드를 찾아줍니다.

유니코드 직접 입력

이번에는 유니코드를 직접 입력해 보겠습니다. 순서는 따로 설명하지 않겠습니다.

유니코드를 네 자리 입력한 뒤에는 더 이상 입력을 받지 않습니다.

유니코드를 네 자리 입력한 뒤에는 더 이상 입력을 받지 않습니다.

위와 같은 화면에서 어쩔 수 없이 [넣기]를 클릭했습니다.

유니코드를 직접 입력한 최종 결과

유니코드를 직접 입력한 최종 결과

위에서 검증했듯이 유니코드에서는 직접 입력하면, 앞서 붙여넣기로 입력했을 때와 마찬가지로, 4자리 16진수로 이루어진 코드 번호를 입력한 경우에는 입력하는 순간 문자 영역 및 문자 선택에서 방금 입력한 코드 번호에 해당하는 문자를 가리키게 됩니다. 그러나 5자리 16진수로 이루어진 코드 번호를 입력한 경우에는 입력하는 순간 가장 아래의 한 자리는 빼먹고 위의 네 자리만 받아들여 유니코드를 찾아줍니다.

벌레 분석

이 벌레의 원인에 대해서는 알 수 없었습니다. 유니코드의 다섯 번째 자리의 입력이 왜 안 되는지 이해할 수가 없었습니다. 분명히 해당 문자의 코드를 알려줄 때에는 네 자리를 넘겨 다섯 자리인 16진수로도 보여주기 때문입니다.

일단 유니코드의 코드 번호를 보고 싶은 글자에 범위를 지정합니다.

일단 유니코드의 코드 번호를 보고 싶은 글자에 범위를 지정합니다.

분명히 코드 번호가 6자리로 나타납니다.

분명히 코드 번호가 6자리로 나타납니다.

ᄒᆞᆫ글 씨! 문자표에서 16진수 6자리로 이루어진 유니코드 번호는 나타낼 수 있어도 입력은 안 됩니까? 입력도 되게 하면 안 되겠니?

비슷한 벌레

(없음)

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 앞으로는 한컴 2바이트 코드HNC 코드로 줄여 부르겠습니다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

ᄒᆞᆫ글 Character-Hanguel-0.gif Character-Hanguel-1.gif

위의 검정 글씨자주색처럼 보여야 합니다. 빨간색처럼 보이면 글꼴이 없거나 설정이 잘못된 경우입니다.

어떤 텍스트 편집기에서 우연히 ᄒᆞᆫ글을 복사하여 붙였다가 빨간색처럼 보이는 현상을 접한 뒤로 옛한글을 입력하지도 복사해 붙이지도 않은 기억이 난다. 아무튼 지금 다시 도전해 보려고 합니다.

목적

옛한글 입력은 힘들므로 우선 옛한글을 화면에 잘 나타내는 텍스트 편집기를 찾아 보자.

평가 항목

  1. 가변폭 글꼴이 가능한가? :
    • 대부분의 옛한글 글꼴가변폭 글꼴입니다. 따라서 텍스트 편집기에서 지원하는지를 먼저 살펴야 합니다.
    • 글꼴 목록에서 굴림체굴림이 함께 나타나면 됩니다.
  2. 유니코드 붙이기가 가능한가?
    • 유니코드, 정확하게는 UTF-8 문자셋으로 붙여넣기를 할 수 있는가? (Copy & Paste)
    • 참고로 윈도에서는 유니코드라고 부르는 것은 유니코드 리틀 엔디언입니다. 유니코드 빅 엔디언은 그냥 유니코드 빅 엔디언으로 표기합니다.
    • 예문에서 데이터를 읽어오게 됩니다.
  3. 유니코드저장할 수 있는가?
    • 2번에서 읽어온 예문을 UTF-8 문자셋으로 저장할 수 있는가를 평가합니다.
  4. 3번에서 자신이 저장한 파일에서 유니코드 자료를 읽어 올 수 있는가?
    • 이것도 역시 정확하게는 UTF-8 문자셋으로 저장한 파일을 읽어 올 수 있는가를 평가합니다.
  5. 3번에서 다른 프로그램에서 파일로 저장한 UTF-8 문자셋 자료를 읽어올 수 있는가?
  6. 5번에서 불러온 것을 다시 유니코드저장할 수 있는가?
  7. 4번에서 다른 텍스트 편집기에서 불러온 UTF-8 문자셋 자료를 복사하여 붙여넣기를 할 수 있는가? (Copy & Paste)
  8. 7번에서 붙여넣기 한 것을 다시 유니코드저장할 수 있는가?
  9. 위의 1~8번 과정을 가변폭 글꼴로 다시 시험합니다.

이때 당장은 유니코드의 여러 가지 형태를 모두 평가할 수는 없습니다. 따라서 달랑 두 가지만 따집니다. 하나는 유니코드 리틀 엔디언, 다른 하나는 UTF-8입니다. 특히 UTF-8에 중점을 두어 평가하게 됩니다.

저게 끝나면 오피스웨어도 점검을 해 봐야겠습니다.

평가 방법

위의 항목에 점수를 부여하게 됩니다. 그러나 항목 별로 약간의 차별을 두게 됩니다. 다만 1~8번을 따로 순위를 매기고, 9번은 따로 순위를 매깁니다. 9번을 따로 매기는 까닭은 설명하지 않아도 아시겠죠? 그리고 종합 순위는 9번 항목 때문에 매기지 않습니다. 사실상 텍스트 편집기의 성능 시험은 8번까지로 끝이라고 보시면 됩니다.

여기에서 미리 밝힐 사항은 윈도의 메모장읽기 쓰기가 모두 가능하며, 붙여넣기가 가능했습니다. 다른 프로그램이 저장한 자료도 거의 대부분 완벽하게 읽어왔습니다.

  • 1번 항목은 점수가 없습니다. 이것은 9번 항목을 위한 옵션이기 때문입니다.
  • 2번 항목은 10점입니다. 예문에 나타난 대로 보여주어야 합니다.
  • 3번 항목은 10점입니다. 단, 2번에서 정상적으로 붙여넣기를 하지 못한 경우에는 메모장의 파일 데이터로 대체하며, 그것을 불러와서 받은 점수에서 3점 감점합니다.
  • 4번 항목은 10점입니다. 저장한 뒤 그것을 불러온 뒤 복사하여 위키백과에 붙여넣기를 함으로써 정상적으로 보이는지를 검사합니다. 이는 데이터가 변형되더라도, 실제로 그 내용은 그대로 유지되는지를 알아보기 위한 것입니다.
  • 5번 항목은 제대로 불러온 것의 갯수에 3을 곱합니다. 다시 말해 5개의 프로그램에서 저장한 것을 불러오면 5 x 3 = 15점이 됩니다. 불러오더라도 이상이 있으면 감점 처리합니다.
  • 6번 항목은 저장한 뒤 메모장에서 불러오고, 그것을 다시 위키백과에 붙여넣기를 함으로써 정상적으로 보이는지를 검사합니다. 이는 데이터가 변형되더라도, 실제로 그 내용은 그대로 유지되는지를 알아보기 위한 것입니다. 역시 제대로 완료하면 편집기 하나당 3점을 배정합니다.
  • 7번 항목은, 화면에 잘 나타내 주면, 편집기 하나당 3점입니다.
  • 8번 항목은 6번 항목을 참조하여 점수를 매깁니다.

예문

위키백과옛한글 문서에 나타난 예문을 조금 고쳐서 사용합니다. 일부러 돋움 글꼴을 써서 옛한글을 깨지도록 했습니다.

<span class="jamocomposed_block" style="font-family: '돋움 옛한글','Dotum Old Hangul','바탕 옛한글','Batang Old Hangul','궁서 옛한글','Gungsuh Old Hangul','굴림 옛한글','NewGulim Old Hangul','은 자모 바탕 확장','Un Jamo Batang Ex','UnJamoBatangEx','은 자모 바탕','Un Jamo Batang','UnJamoBatang','은 바탕','Un Batang','UnBatang',Code2002,Code2001,Code2000,serif; font-size: 105%;">나랏말ᄊᆞ미 듀ᇰ귁에 달아 문ᄍᆞᆼ와로 서르 ᄉᆞᄆᆞᆺ디 아니ᄒᆞᆯᄊᆡ</span>

원문은 위와 같으나 실제로 사용하는 코드는 다음과 같습니다.

{{첫가끝|

나랏말ᄊᆞ미 듕귁에 달아 문ᄍᆞᆼ와로 서르 ᄉᆞᄆᆞᆺ디 아니ᄒᆞᆯᄊᆡ

}}

이는 듀ᇰ귁이라는 코드가 윈도 시스템 또는 글꼴에서 약간의 버그를 보이고 있어서 듀ᇰ라고 바뀌는 경우도 있기 때문입니다.

이것은 위키백과의 사용자 페이지에서 확인할 수 있습니다. 결국 아래 두 그림 가운데 한 가지의 형태를 따르면 됩니다.


텍스트 편집기 목록

간혹 이건 IDE 아니냐고 할 만한 놈이 있기는 하지만, 다음과 같은 텍스트 편집기를 대상으로 작업을 하게 됩니다.

마치며

현재까지 예상으로는 편집 능력에서는 거의 최하를 다투는 메모장이 압도적인 1위를 하지 않을까 생각합니다. 이게 단순히 텍스트를 붙여넣고 저장하고, 클립보드로 복사하고, 클립보드에서 붙여넣는 능력이 매우 탁월하다는 사실을 이번에 알게 되었기 때문입니다. 아무튼 기대가 됩니다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

스프링노트에서 작성한 글을 블로그에 게시하고 나면 가끔 물음표(?)로 바뀌는 일이 있다. 처음에는 내가 유니코드KS X 1001(흔히 KS C 5601로 불린다.) 코드에 들어 있지 않은 코드를 게시한 것으로 여겼다. UTF-8 표기법으로 나타낼 수 없는 문자를 U+003F(?, 물음표)나 U+FFFD(�, 유니코드 대치 문자)로 치환하는 것은 UTF-8에서의 오류 처리이기 때문이다. 그러다가 스프링노트 측에서 또는 티스토리 측에서 잘못 게시했을 수도 있다는 생각을 갖게 되었다.

벌레의 유형

  • 벌레인지 아닌지 알 수 없었다. 이 사례는 보는 관점에 따라서는 버그일 수도 있고 아닐 수도 있다.

벌레의 발견

지난 11월 18일 알까기 1 - 알툴즈 까기 문서를 작성하다가 뮤토런트의 로마자 이름(μTorrent)이 화면에 잘못 나타나고 있음을 보고 혹시나 하는 생각을 갖게 되었다. 그에 앞서 11월 2일 한/글/ 2007에서 나타난 구결 표기 오류 2 문서에 엄(厂)과 엄(广)을 입력하다가 발견하였다. 현재 그 문서는 글자가 깨진 상태로 놔두었다.

Character-Encoding-00.png
자료 화면. 문자 인코딩이 제대로 되지 않았다.

문제가 발생하는 경우

지금까지 문제가 발생한 경우는 다음과 같다.

  • 자주 쓰지 않는 한자 : 한중일 통합 영역의 한자 가운데 (1) 특정 언어 윈도에서만 정확하게 보이는 한자, (2) 기본 다국어 평면(BMP)의 U+4E00부터 U+9FA5까지의 영역에 포함되지 않는 한자는 제대로 보이지 않는 경우가 있다.
  • 자주 쓰지 않는 로마자 : 영문자는 잘 나타내 준다. 숫자도 잘 나타내 준다. 꺽쇠(< >)도 잘 나타내 준다.[각주:1] 다만 그리스 문자나 키릴 문자 등은 가끔 정확히 표현하지 못한다. 뮤토런트에서 깨진 문자도 그리스 문자이다.
  • 특별한 구문부호가 붙은 로마자 및 기호 : 움라우트 등이 붙은 문자나 기호 등에서 가끔 깨진다.

문제 해결책

크게 두 가지 해결책이 있다. 우선 특별한 구문부호가 붙은 로마자나 기호는 글자 엔티티(character entity)로 나타내면 된다는 점이다. 그 다음으로 자주 쓰이지 않는 한자는 HTML 참조 코드를 이용하는 쪽이 낫다는 점이다.

  • 글자 엔티티 이용 : © 기호를 나타내고 싶다면 &copy; 라고 표현하면 된다.
  • HTML 참조 코드 : © 기호를 나타내고 싶다면 &#x00A9; 라고 16진수로 표현하거나, &#169; 라고 십진수로 표현하면 된다.

관련 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 이것은 글자 엔티티(character entity)로써 나타내 주고 있다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

팁텍

티스토리는 인쇄 페이지 기능을 지원하지 않는다. 그러다가 인쇄CSS를 이용하면 어느 정도 자신이 바라는 부분만 인쇄할 수 있지 않을까 생각하여 이 팁을 작성하게 되었다.

팁의 발견

티스토리에서 인쇄 페이지를 지원하지 않는다는 사실은 우연히 알게 되었다. 그러다가 도아의 세상사는 이야기에서 블로그에 PDF 저장 단추를 달자 라는 글을 보게 되었다. 댓글로 의견을 나누는데, CSS 이야기가 나오게 되었고, 그것에서 힌트를 얻어 CSS를 적용해 보게 되었다.

프로그램 설명

CSS에 대한 기본 사용법은 각자 알아서 하기 바란다.

추천 사이트 - Learn CSS (한국어 사이트이지만, 글자가 깨질 수도 있다. 문자셋을 한국어 (UTF-8) 또는 유니코드 (UTF-8)로 맞추어야 한다.)

CSS 만들기

기본적인 부분 인쇄

CSS를 이용하지 않는 방법은 WWW이 생길 무렵부터 쓰던 방법인 드래그&프린트가 있다. 말 그대로 마우스로 화면에서 인쇄하고 싶은 부분을 주~욱 잡아당겨 선택한다. 그리고 메뉴에서 파일-인쇄를 누르면 된다.

마우스로 드래그한 화면

일단은 이렇게 마우스로 좌~악 그어서 선택한다.

파일 메뉴에서 인쇄 선택

파일 메뉴에서 인쇄 선택

페이지 범위-선택 영역, 그 다음에 인쇄를 콕! 눌러주면 된다.

페이지 범위-선택 영역, 그 다음에 인쇄를 콕! 눌러주면 된다.

그러나 이 방법은 웹페이지 방문자가 해야 하는 작업이지, 웹페이지 제작자가 할 수 있는 작업이 아니다. 더구나 마우스 드래그를 막아놓은 웹페이지에서는 통하지 않는다.

인쇄 CSS 이용하기 1

인쇄용 CSS를 이용하면 웹페이지 제작자가 자신이 인쇄로 출력하고 싶은 부분을 정할 수 있다. 인쇄 CSS에서 인쇄하고 싶지 않은 부분에는 display: none 라는 속성을 주면 된다(참조 블로그에 PDF 저장 단추를 달자)

인쇄 CSS 이용하기 2

나는 티스토리에 적용할 때 주로 <div class="_ad"> 또는 <div class="noprint">와 같이 인쇄 금지 항목을 만들었다. 이것을 화면CSS에 응용하면, 화면에만 안 보이는 <div class="noseeing"> 또는 <div class="blind"> 항목을 만들 수도 있다.

참고로 현재 왕미친세상에 적용된 인쇄CSS는 다음과 같다.

  1. /* 이 파일에 적용된 설정은 http://www.w3.org/StyleSheets/home-import.css 파일을 참조하여 만들었습니다. */
  2.  
  3. /* ****************** 프린트 CSS ****************** */
  4. /* 아래에 설정값이 없으면 기본값을 따르게 됩니다. */
  5.  
  6. /* 개요 스타일 설정 */
  7. h1, h2, h3,
  8. h4, h5, h6     { page-break-after: avoid; page-break-inside: avoid }
  9.  
  10. /* 인용 스타일 설정 */
  11. blockquote,
  12. pre     { page-break-inside: avoid }
  13.  
  14. /* 목록 스타일 설정 */
  15. ul, ol, dl     { page-break-before: avoid }
  16.  
  17. /* 링크 스타일 설정 */
  18. a     { font-weight: normal }
  19.  
  20. /* 그림 파일 스타일 설정 */
  21. img     { border: 0; }
  22.  
  23. /* 인쇄에서 제외할 부분 */
  24. script     { display:none } /* 본문 안에 보일 내용을 script 태그 처리했을 경우 주의 요망 */
  25. div script     { display:none } /* IE6 버그가 있음. div.noprint / div._ad 태그 설정이 되어도 인쇄에서 나타남.
  26.                            그러므로 div 태그와 script 태그를 중첩하여 최대한 정돈하게 만듦. */
  27. .noprint     { display:none } /* 말 그대로 인쇄 안함. */
  28. ._ad     { display:none } /* 구글 광고 등은 인쇄 안 함. IE6은 오류가 있어서 그대로 인쇄됨. */
  29. #paging     { display:none } /* 문서 하단의 #paging 아이디는 인쇄 안함 */
  30. #header     { display:none } /* 문서 상단의 #header 아이디는 인쇄 안함 */

일단 저런 식으로 만들 수 있다.

저것을 티스토리에 적용한 다음 출력하고 싶지 않은 부분을 <div class="noprint"></div>로 감싸서 화면에서는 보이지만, 인쇄에서는 보이지 않게 했다.

  • 참고 1 : 모든 경우에 적용할 수 있는 클래스 이름을 만들려고 한다면, <div class="displaynone"> 또는 <div class="nodisplay">를 추천한다. 이것은 화면CSS, 인쇄CSS, 음성CSS 등에서 같은 이름으로 쓸 수 있기 때문이다. 이 display:none와 비슷해서 나중에 적용할 값을 기억하기에도 좋다. 참고로 display:none은 사용자에게 "보여주지 않는다."라는 뜻이 아니다. 이것은 "사용자에게 내보내는 출력이 없다."라는 뜻이다.
  • 참고 2 : div script  { display:none } 설정과 div, script { display:none } 설정은 서로 다르다. 앞엣것은 div 태그와 script 태그가 중첩될 경우에 출력을 없게 하라는 뜻이고, 뒤엣것은 div 태그와 script 태그 각각에게 출력이 없게 하라는 뜻이다.

티스토리에 적용

처음 적용 : 실패 1

처음에는 티스토리 스킨 편집 화면을 열었다.

HTML/CSS 편집은 두 부분으로 나뉘는데, 위가 skin.html 파일이고, 아래가 style.css 파일이다. 여기에서 style.css를 편집하였다. 위의 화면은 화면을 최대한 줄인 화면이다. skin.html과 style.css을 클릭하면 편집 영역이 아래로 길어지게 된다.

style.css 파일 맨 아래에 다음과 같이 끼워넣었다.

  1. @media print {
    h1, h2, h3,
    h4, h5, h6     { page-break-after: avoid; page-break-inside: avoid }

    blockquote,
    pre     { page-break-inside: avoid }

    ul, ol, dl     { page-break-before: avoid }

    a     { font-weight: normal }

    img     { border: 0; }

    /* 인쇄에서 제외할 부분 */
    script     { display:none }
    div script     { display:none }
    .noprint     { display:none }
    ._ad     { display:none }
    #paging     { display:none }
    #header     { display:none }

    }

그러나 작동하지 않았다. 다른 부분은 추가 작업이 필요했지만, 최소한 #paging 아이디 선택자와 #header 아이디 선택자를 사용한 곳에서는 적용이 되어야 했기 때문이다. 다시 말해 화면 인쇄를 하면 화면에 나타나지 않아야 하는 #paging 아이디 선택자와 #header 아이디 선택자를 사용한 곳이 버젓히 드러나 있었다.

나는 내 실수를 알지 못해 한참을 헤매야 했다.

참고로 내가 참조한 http://www.w3.org/StyleSheets/home-import.css 파일은 http://www.w3.org/StyleSheets/home.css 파일에서 @import 를 이용하여 불러왔고, http://www.w3.org/StyleSheets/home.css 파일은 http://www.w3.org/ 페이지 헤더 태그에서 link 태그를 이용하여 불러왔다.

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
  4. <head profile="http://www.w3.org/2000/08/w3c-synd/#"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.   ... 생략 ...
  6.   <title>World Wide Web Consortium - Web Standards</title>
  7.   <link rel="meta" href="/Overview-about.rdf" />
  8.   <link rel="stylesheet" type="text/css" href="/StyleSheets/home.css" />
  9.   ... 생략 ...
  10. </head>

그런데 내가 쓰는, 그리고 이전에 썼던 티스토리 스킨의 헤더에서 공통적인 부분만 뽑아내면 다음과 같았다.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="alternate" type="application/rss+xml" title="왕미친놈의 왕미친세상" href="https://koc2000.tistory.com/rss" />
  6. <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  7. <link rel="shortcut icon" href="https://salm.pe.kr/favicon.ico" />
  8. <title>왕미친놈의 왕미친세상 :: '유니코드' 태그의 글 목록</title>
  9.  
  10. </head>

차이가 나는 부분은 빨간색으로 처리했다. 저 부분을 발견하지 못해서 헤매고 말았다.

다시 말해 내가 style.css 내용에 아무리 인쇄에 대한 내용을 넣어서 반응하지 않을 수밖에 없었다.

  1. @media print {
  2.     ... 인쇄 CSS 내용 ...
  3. }

위와 같은 설정은 처음부터 무시되었다는 뜻이다. 왜? 처음 읽어들일 때부터 화면(screen)에 맞게 읽어들였다는 뜻이고, 인쇄(print)음성(aural)은 무시한다는 뜻이다. 위에 빨간색으로 된 media="screen"은 그런 뜻이다.

실패 2

HTML/CSS 편집이 안 된다면 파일로 처리하자는 생각을 가지게 되었다. 이때 위의 화면에 있는 "파일 업로드" 탭이 눈에 들어왔다.

흠, 파일업로드를 클릭하여 파일을 찾아 올렸다. 여기에서도 또 실수를 하고 만다. 바로 print.css 파일이 올라간 곳을 확인하지 않아 버렸다. 아무튼 다음과 같이 입력했다.

  1. <link rel="alternate" type="application/rss+xml" title="왕미친놈의 왕미친세상" href="https://koc2000.tistory.com/rss" />
  2. <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  3. <link rel="stylesheet" media="print" type="text/css" href="./print.css" />
  4. <link rel="shortcut icon" href="https://salm.pe.kr/favicon.ico" />

아무 생각 없이 당연히 style.css와 같은 경로에 있겠거니 생각하고, 써넣어 버린 무지막지한 실수였다.

당연히 실패!

그렇다면 파일은 어디에 있을까?

인쇄CSS 적용 성공

인쇄 CSS 파일을 찾아서 다시 파일업로드 탭을 쿡 눌러주었다. 스크롤바를 아래로 주~욱 내리자 보였다.

어라, preview.gif는 다른 파일과 달리 앞에 images/ 가 없었다. 물론 print.css도 다른 파일처럼 images/ 가 붙어 있었다. 결국 preview.gif 파일만 빼면 같은 디렉터리에 있다는 말이었다. 

다시 HTML/CSS 편집 탭으로 넘어가서, 아까 편집했던 부분을 적당히 고쳤다.

  1. <link rel="alternate" type="application/rss+xml" title="왕미친놈의 왕미친세상" href="https://koc2000.tistory.com/rss" />
  2. <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  3. <link rel="stylesheet" media="print" type="text/css" href="./images/print.css" />
  4. <link rel="shortcut icon" href="https://salm.pe.kr/favicon.ico" />

위와 같이 고치자 드디어 작동했다.

좀 더 추가

아까 서버에 올린 인쇄CSS 파일에는 .noprint 및 ._ad 클래스에 대한 설정이 있었다. 이것은 곧 인쇄하지 않을 부분과 광고 부분을 <div></div>로 감쌀 수 있다는 뜻이다. 

또한 마지막으로 화면에는 안 보이지만 인쇄에서만 보일 부분도 설정하였다.

최종적으로 인쇄 CSS 적용 전과 적용 후의 화면 인쇄(일부)는 다음과 같다.  

  • 인쇄CSS 적용 전 인쇄 미리보기 화면 (전체 7쪽[각주:1]) : 삭제할 내용을 분홍색으로 표시하였다.[각주:2]

    • 처음 두 쪽은 쓸모 없는 내용이다. 아니 쓸모는 있지만, 인쇄에서는 굳이 필요하지 않다.
    • 3쪽 위의 내용은 "My 블로거 뉴스"이다. 역시 방문자에게는 필요하지 않은 내용이다. 가운데 있는 내용은 구글 광고라서 역시 인쇄에서는 필요하지 않다.
    • 6쪽에서 보이는 것은 위젯이다. 역시 인쇄에서는 필요하지 않다.
    • 7쪽은 티스토리 저작권 정보이다. 화면이 아닌 인쇄 결과는 티스토리 회사에서 만든 페이지 구성대로 되지 않으므로 인쇄할 필요가 없는 부분이다.
      CSS 적용 전 인쇄 미리보기

      CSS 적용 전 인쇄 미리보기

    • 인쇄 CSS 적용 후 화면 (전체 4쪽[각주:3]) : CSS 적용 전 화면과 비교하면, 헤더 부분이 모두 사라져서 앞부분이 아주 깔끔해졌다.[각주:4] 또한 화면에는 나타나지 않지만, 맨 마지막 쪽에 위젯이 사라지지 않고 남아 있다. 이 부분도 script 태그와 embed 태그의 영향으로 보인다.[각주:5]
      CSS 적용 후 인쇄 미리보기 (IE)

      CSS 적용 후 인쇄 미리보기 (IE)

      CSS 적용 후 인쇄 미리보기 1 (FF)

      CSS 적용 후 인쇄 미리보기 1 (FF)

      CSS 적용 후 인쇄 미리보기 2 (FF)

      CSS 적용 후 인쇄 미리보기 2 (FF)

위와 같이, 인터넷 익스플로러 6 환경에서는 구글 광고 및 위젯 사이에는 인쇄CSS 적용에서 약간의 문제가 있다.

적용 및 원리

티스토리에서는 게시글 부분이 따로 분리되어 있다. 그 점을 이용하여 인쇄할 때 나타날 부분만 골라낼 수 있다. 또한 내가 했던 것처럼 자세히 할 필요도 없다. 그저 본문만 남겨도 된다.

이때 몇 가지를 중시해야 한다. 우선 티스토리 HTML 파일은 들여쓰기가 되어 있다. 이때 같은 단계끼리 짝을 짓도록 노력하라. 화면에서 보이지 않게 할 부분을 찾아, 그것이 HTML 코드의 어느 부분인지를 알아내야 한다. 그 뒤에 알맞은 곳에 noprint 클래스를 삽입하여야 한다. 아래 그림에서는 <s_tb> 태그에 noprint 클래스를 삽입하였다.

가장 중요한 것은 본문을 잘 찾아야 한다는 점이다. 왜냐하면 본문은 반드시 인쇄할 때 종이에 출력되어야 하기 때문이다. 자세한 사항은 티스토리 스킨 제작 가이드에 나오는 스킨의 구조를 살펴보시기 바랍니다. 간단히 말한다면, 구글 광고가 없다면, <div class="article"> 태그를 찾아야 합니다. 구글 광고가 있다면 <div class="article">를 찾고, 그 뒤에 <div class="article_post"> 태그를 찾아야 합니다. 특히 <div class="article_post"> 부분은 티스토리 글쓰기에서 입력한 내용이 나타나는 부분입니다. 치환자가 바로 본문을 만들어 주는 부분입니다. 이때 article 클래스 및 article 클래스 모듬[각주:6]이 화면에서 "게시글"을 이루게 됩니다. 앞서 말한 "본문"은 그러한 의미입니다. 따라서 인쇄할 때도 이 article 클래스 모듬 부분이 주를 이루게 해야 합니다.

그 다음으로 중요한 것은 paging 아이디 선택자와 header 아이디 선택자를 찾아야 한다. 이 두 부분은 반드시 인쇄할 때 출력하지 않아야 하기 때문이다. header 부분은 방문객에게는 쓸모가 없는 부분이 많고, paging 부분은 저작권 정보에 해당하는데 화면 구성에서는 옳지만, 인쇄에서는 그 저작권 정보가 그다지 유용하지 않다. 그러므로 인쇄할 때는 나타나지 않게 해야 한다. 하지만 이 부분을 모두 인쇄에서 나타나지 않게 하려면 굳이 HTML에서 찾기보다 인쇄CSS 파일에 아래와 같이 처리하면 된다.

  1. #paging     { display:none }
  2. #header     { display:none }

나머지 부분은 스스로 잘 찾아서 잘 처리하기 바란다.

PDF 저장

원래 인쇄CSS에 관심을 가지게 된 까닭이 바로 웹페이지를 PDF로 저장해 주는 기능 때문이었다. 이것은 도아의 세상사는 이야기의 게시글 블로그에 PDF 저장 단추를 달자를 읽고 나서 생각했다. 자신의 홈페이지나 블로그에 PDF 단추를 다는 기능은 도아의 세상사는 이야기를 참고하기 바란다.

각설하고, 이 PDF 저장 단추도 인쇄CSS를 이용하기 때문에 자신의 홈페이지에 인쇄CSS를 적용해 두면 PDF 저장 기능에서 더 짧은 시간에 그 기능을 이용할 수 있다. PDF 저장 기능은 외국 사이트에 웹페이지 정보를 보내면, 그곳에서 PDF로 저장해서 자신의 컴퓨터로 내려받을 수 있게 해 주는 서비스이기 때문이다.

아래 다운로드는 왕미친세상에 달아둔 PDF 저장 단추를 클릭하여 만든 PDF 파일이다. 참고하기 바란다.

다운로드

다음과 같이 아이디 페이지를 PDF 파일로 변환하였다.

관련 문서

  • 도아 님의 블로그 도아의 세상사는 이야기 : 블로그에 PDF 저장 단추를 달자
  • Learn CSS : CSS 문법을 한국어로 번역해 놓은 사이트. 글자가 깨질 수도 있다. 문자셋을 한국어 (UTF-8) 또는 유니코드 (UTF-8)로 맞추면 해결된다.

이 글은 스프링노트에서 작성되었습니다.

  1. 참고로 파이어폭스는 전체 5쪽이었다. [본문으로]
  2. 인터넷 익스플로러 6은 CSS를 제대로 지원하지 못하고 있다. 이는 모질라 파이어폭스도 비슷하나, 인터넷 익스플로러에 비하면 매우 양호하다. 또한 인터넷 익스플로러 사용자가 많으므로 자료화면은 인터넷 익스플로러에서 따왔다. [본문으로]
  3. 참고로 파이어폭스는 80% 축소 인쇄로 전체 3쪽, 100% 인쇄로 전체 4쪽이었다. [본문으로]
  4. 파이어폭스에서는 아예 구글 광고가 사라져 있다(두 번째 그림) [본문으로]
  5. 파이어 폭스에서는 위젯 없이 공백으로 남아 있다. 이 부분에 대해 좀 더 연구가 필요하다. [본문으로]
  6. article 및 article_ 로 시작하는 클래스를 편의상 article 클래스 모듬이라고 하겠다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

카테고리

분류 전체보기 (1005)
스크립트 (22)
벌레와 팁 (126)
소프트웨어 (240)
하드웨어 (6)
이야기 (24)
말의 나무 (506)
미쳐보자 (22)
일기 (48)
아이폰 (10)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

글 보관함