2P by GN⁺ 1일전 | ★ favorite | 댓글 1개
  • LaTeX 문서에 커피 얼룩을 자동으로 추가할 수 있는 패키지로, 수작업으로 이미지를 삽입하던 과정을 단순화함
  • 네 가지 형태의 얼룩(A~D)을 제공하며, 투명도·크기·회전각·위치를 세밀하게 조정 가능
  • 설치 후 \usepackage{coffeestains}를 선언하고, 각 얼룩 명령(\coffeestainA~\coffeestainD)을 사용해 페이지에 배치
  • 저작권 제한 없이 자유 배포 가능하며, 모든 얼룩 이미지는 직접 제작·촬영·편집된 것임
  • 2009년 첫 버전 이후 지속적으로 개선되어, 2021년 버전 0.5.1에서는 얼룩 회전 기준이 페이지 중심에서 얼룩 중심으로 변경됨

소개 (Introduction)

  • 이 패키지는 LaTeX 문서에 커피 얼룩 효과를 추가하는 기능 제공
    • 문서에 직접 얼룩을 인쇄함으로써 수동 삽입 시간을 절약
  • 네 가지 얼룩 유형 제공
    • A형: 270° 원형 얼룩과 작은 두 개의 튀김 자국
    • B형: 60° 원형 얼룩
    • C형: 밝은 색상의 두 개의 튀김 자국
    • D형: 다채로운 쌍둥이 튀김 자국

사용법 (Usage)

  • coffeestains.sty 파일을 LaTeX 프로젝트 디렉터리에 두거나 배포판에 설치 후, 문서 헤더에 다음을 추가
    \usepackage{coffeestains}
    
  • 각 얼룩은 다음 명령으로 삽입
    \coffeestainA{alpha}{scale}{angle}{xoff}{yoff}
    \coffeestainB{alpha}{scale}{angle}{xoff}{yoff}
    \coffeestainC{alpha}{scale}{angle}{xoff}{yoff}
    \coffeestainD{alpha}{scale}{angle}{xoff}{yoff}
    
  • 매개변수 설명
    • alpha: 투명도 (0~1)
    • scale: 크기 배율 (기본값 1)
    • angle: 얼룩 회전각 (0~360도)
    • xoff, yoff: 페이지 중심 기준 위치 오프셋 (단위 지정 권장)
  • 예시 명령
    • \coffeestainA{0.9}{0.85}{-25}{5cm}{1.3cm}
    • \coffeestainB{0.7}{1}{-30}{18pt}{-135pt}
    • \coffeestainC{1}{1}{180}{0}{-5mm}
    • \coffeestainD{0.4}{0.5}{90}{3cm}{4cm}

저작권 (Copyright)

  • 자유 배포 가능, “상상의 재산(imaginary property)” 개념을 믿지 않음
  • 모든 얼룩은 Hanno Rein이 직접 제작·촬영 후 GIMPInkscape로 처리
  • 기부는 커피 형태로만 받으며, 주소는 캐나다 토론토 대학교 Scarborough 캠퍼스의 Hanno Rein에게 명시됨

향후 개선 사항 (Desired improvements)

  • 현재는 커피 얼룩만 지원하지만, 라떼·차·가스파초·기름 얼룩 등도 향후 자동 인쇄 대상으로 확장 필요
  • 수리소 등에서 문서에 수동으로 찍히는 얼룩까지 자동화하는 LaTeX 커뮤니티의 도구 개발 필요성 언급

변경 이력 (Change Log)

  • 2009년 4월 3일: Hanno Rein이 최초 버전(0.1) 공개
  • 2010년 11월 23일: Evan Sultanik이 pdflatex 호환 버전(0.2) 개발
  • 2011년 3월 24일: Luis Randez가 크기·회전·투명도 조절 기능 추가(0.3)
  • 2012년 5월 25일: Adrian Robson이 중심 이탈 얼룩 지원 추가(0.4)
  • 2021년 5월 1일: Patrick Bideault가 git 저장소 버전(0.5) 공개, 얼룩 회전 기준을 페이지 중심 → 얼룩 중심으로 변경

영원한 모토 (Eternal mottos)

  • “Coffee is great.”
  • “Coffee will save the world.”

기타

  • 문서 마지막 페이지에는 “이 페이지는 의도적으로 비워 두었지만, 알려드림으로써 망쳐버렸다”는 문구 포함
  • 최신 버전은 0.5.1 (2021년 6월 25일)
Hacker News 의견들
  • 아무도 아직 언급하지 않았다는 게 놀라움. Typst로 커피 얼룩을 만드는 게 꽤 즐거움
    학계나 얼룩 관련 저널에서 LaTeX이 표준이 아니었다면 이미 Typst로 옮겼을 것 같음
    물론 HTML에서도 커피 얼룩을 만들 수 있지만, Markdown에서는 불가능함
    • 나는 요즘 모든 논문을 Rust로 다시 쓰고 있음. 메모리 안전한 커피 얼룩을 얻는 경험이 꽤 유쾌했음
    • 다행히 Typst용 포트가 있음. Typst fleck 패키지를 참고할 수 있음
    • Typst는 회원가입이 필요한가? 웹 기반인가? “오픈 개발”이라면서도 로그인 페이지가 있는 게 좀 혼란스러움. LaTeX와 Typst의 차이에 대해 어떻게 생각하는지 궁금함
    • 이 라이브러리를 쓰는 것보다 Typst에서 하는 게 훨씬 쉬울 것 같음. 오리 얘기는 그냥 농담임
    • 최고의 커피 얼룩은 여전히 Postscript로 직접 만드는 것임
  • 기능 제안임 — 홀수/짝수 페이지가 정확히 맞물려서 하나의 얼룩처럼 보이는 양면 얼룩 효과가 있었으면 함
    • 각 페이지마다 살짝 희미해지는 효과가 있으면 더 자연스러울 것 같음
  • 커피 얼룩은 문서가 실제로 읽혔는지, 아니면 그냥 인쇄만 되었는지를 구분하는 유일한 확실한 방법임
    예전에 대학 동료가 가끔 문서에 이런 얼룩을 추가해서 “읽힘 인증” 표시로 쓰곤 했음
    • 와인잔 얼룩은 그 문서가 채점 완료되었다는 표시임
  • 관련된 링크를 공유함 — Brown Ring of Quality
    • 농담을 놓친 걸 수도 있지만, 그 페이지의 대부분 로고는 선(禪) 예술의 엔소(ensō) 원형에서 영감을 받은 것 같음
    • 로고에 원을 두르는 건, 서명 밑에 밑줄 긋는 것만큼 우스꽝스러운 디자인 선택이라고 생각함
  • 원본은 2009년 자료임 — 아카이브 링크
    관련된 이전 HN 스레드도 함께 공유함: 이전 글 모음, 관련 토론1, 관련 토론2
  • 보기엔 멋지지만, 사실은 미리 정의된 벡터 파일을 배치하는 것뿐임
    진짜처럼 보이는 커피 얼룩을 절차적으로 생성할 수 있을지 궁금함
    • 완전 가능함. 직접 시도해보길 권함
  • 아직 반쯤 완성된 작업 같음. 여기에 추가로 필요함:
    • 홍차 얼룩
    • 종이 사이에 눌린 빵 부스러기
    • 토마토 소스 자국
    • 머리카락
      이런 것들을 페이지에 직접 인쇄하면 수작업으로 추가하는 시간 절약이 큼
    • 천 장마다 한 번쯤은 눌린 파리 자국도 있으면 완벽할 듯함
  • 이 프로젝트가 정말 마음에 듦. 내 이력서는 20년 넘게 LaTeX로 관리 중임
    버전 관리가 가능하고, Word의 혼란스러운 포맷 문제도 없음. 완전히 결정적(deterministic) 이라 결과가 일정함
    요즘은 LLM을 이용해 변환도 쉽게 할 수 있고, 경고 수정도 자동으로 해줌. 커피를 마시지 않아도 LaTeX 이력서는 강력 추천임
    • 추천할 만한 템플릿이 있는지 궁금함. 나도 LaTeX로 작성하지만 98% 정도만 만족 중임
  • 커피를 마시지 않는다는 이유로 소프트웨어 회사에서 소외감을 느낀 적이 있음. 모두 커피를 사랑함
    • 나도 비슷함. 차로 대체할 수는 있지만 완전히 같은 경험은 아님. 가끔 다이어트 소다로 버티지만, 회사에서 잘 제공되지 않음
    • 차라리 중국식 다관을 들고 다니며 전통과 현대 보이차 방식의 차이를 논하면, 나만의 존중을 얻을 수 있음
  • 이런 프로젝트를 보니 반가움. 90년대 중반 학생이자 업계 초입이었을 때, 인터넷에는 이런 재미있는 장난 프로젝트가 자주 있었음
    • 당시 우리는 여러 문자 스크립트의 OCR 학습용 합성 데이터를 만들고 있었음
      웹페이지를 다양한 폰트로 PDF로 변환하고, ImageMagick으로 블러 처리를 추가했음
      그리고 물론, 이 커피 얼룩 프로그램도 함께 사용했음