티스토리 툴바


보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

북팟이라는 책 스캔 업체가 있다. 얼마 전 이 업체에 기술 서적 몇 권을 맡겼다. 품질에 만족을 못했기 때문에 몇 번의 문의가 오가긴 했지만 빠르고 친절한 대응이 만족스러웠다.

문의가 오가는 중에 북팟에서 옵션별 샘플을 보내줬다. 업체마다 장비나 소프트웨어에 차이가 있어 약간씩 다를 것 같긴 하지만 스캔을 하기 전에 선택할 수 있는 옵션을 미리 안다면 도움이 될 것이다. 북팟 사이트에 이런 옵션에 대한 사항을 설명하지 못한 것은 아쉬운 부분이다. 뿐만 아니라 여기에서 설명하려는 옵션은 구매할 때 선택할 수 없고 따로 문의해야 한다.

스캔을 요청할 때 OCR (Optical Character Recognition) 옵션을 추가할 수 있다. 이미지를 문자화 해서 검색할 수 있도록 해 주는 서비스다. 물론 추가 비용이 들긴 하지만 기술 서적을 스캔할 땐 필요한 부분이다.

OCR 옵션을 선택하면 세 가지 보정타입(?) 옵션이 있는데 사이트에서는 이 옵션을 선택할 수 없다. 따로 문의하지 않으면 클리어 타입으로 보정한다. 그 외에 압축과 비압축 옵션이 있다. 필자는 클리어 타입 옵션이 마음에 들지 않아 비압축으로 재스캔을 요청했다.

아래 이미지는 OCR 옵션을 사용하지 않은 파일의 일부분이다. 개인마다 차이는 있겠지만 아이패드에서 읽는데는 큰 불편이 없었다.



아래 이미지는 OCR-비압축 옵션을 사용한 파일의 일부분이다. 둔한 필자의 눈으로는 OCR 을 사용하지 않은 파일과 별다른게 없어 보인다. OCR 옵션을 사용하면 PDF 리더에서 글자를 선택할 수 있다.


아래의 이미지는 OCR-압축 옵션을 사용한 파일의 일부분이다. 앞의 두 파일과 큰 차이가 없다. 압축이라고 해서 파일의 크기가 많이 줄지는 않는다.


아래의 두 이미지는 OCR-클리어 옵션을 사용한 파일의 일부분이다. 이탤릭체의 경우 글자가 많이 끊어지고 심지어는 글자가 사라지기도 한다. (두 번째 이미지의 네 번째 줄에서 '하  않을'은 원래 '하지 않을' 이었다)



아래는 위에서 두 번째 이미지와 같은 부분의 OCR-압축 옵션 파일의 이미지이다.


Posted by Yardbirds

C++ 구현 파일 .cpp

C++ 2011/03/16 13:28
어떤 함수나 데이터를 다른 변환 단위에 보여주고 싶지 않을 때 내부 링크 속성의 정의를 이용한다. 왜냐하면 외부 링크 속성을 가진 정의는 전역 이름 공간에 영향을 주기 때문이다.

// file1.cpp

int i;
int max(int a, int b) { return a > b ? a : b; }

이런 코드는 전역 이름 공간에 영향을 주기 때문에 다른 변환 단위에 있는 같은 이름을 가진 정의와 충돌한다. 반면 인라인이나 정적 함수같은 내부 링크 속성을 가진 정의는 전역 이름 공간을 오염시키지 않는다.

// file2.cpp

inline int min(int a, int b) { return a < b ? a : b; }
static int fact(int n) { return n <= 1 ? 1 : n * fact(n - 1); }

열거형, 멤버가 아닌 정적 객체, 상수 데이터 정의는 내부 링크 속성을 갖고 있기 때문에 .cpp 파일 내에서 안전하다.

// file3.cpp
#include <math.h>
class Link;

enum { START_SIZE = 1, GROW_FACTOR = 2 };

const double PI_SQ = M_PI * M_PI;

static const char *names[] = { "Ntran", "Ptran", "NPN", "PNP" };

static Link *s_root_p;
Link *const s_first_p = s_root_p;

typedef 와 전처리 매크로는 .obj 파일에 아무 것도 기록하지 않는다. 그리고 전역 이름 공간에 아무런 영향을 주지 않는다.

typedef int (PointerToFunctionOfVoidReturningInt *)();

#define CASE(X) case X: cout << #X << endl;
Posted by Yardbirds