내 FOSS 텍스트 에디터 KeenWrite는 Markdown에서 XHTML, TeX, 그리고 PDF로 변환하는 유사한 방식을 사용함
소프트웨어 아키텍처는 프로세서 체인을 어떻게 설계할 수 있는지 보여줌
내가 KeenWrite를 만든 이유는 공상과학 소설을 쓸 때 등장인물의 이름이나 지역 같은 변수들을 쓸 수 있게 하려는 목적
자세한 내용은 튜토리얼 참고
아직도 pandoc과 셸 스크립트를 쓰는 사람들에게는, Typesetting Markdown 시리즈에서 Markdown을 PDF로 변환하는 스크립트 기반 인프라 구축 방법을 설명함
KeenWrite 자체 정보는 여기에서 볼 수 있음
아키텍처 다이어그램은 여기에서 확인 가능
최근 많은 주목을 받은 Typst와 이 프로젝트를 비교해보면 재미있을 것 같은데, 기능 비교 매트릭스에는 Typst가 전혀 언급되지 않았다는 점이 의외임
예전에 봤을 때 Typst는 HTML로 출력하지 못했었음
지금은 Typst도 언급되어 있음
전반적으로 두 프로젝트가 매우 유사해 보임
비교 차트가 정확한지 궁금함 – 링크
LaTeX는 분명히 완벽한 스크립팅 기능이 있다고 생각함, 물론 사용하기 괴로운 점은 있지만
Quarkdown의 난해한 문법이 Typst보다 더 간결하고 읽기 쉽다는 주장에 회의적임
학습 곡선도 Typst보다 쉽진 않을 것이라고 생각함, 둘이 거의 비슷해 보임
LaTeX도 tex4ht로 HTML을 만들 수 있다고 생각함
솔직히 대부분의 Markdown은 Quarkdown에서도 그대로 사용 가능함
진입 장벽이 이보다 더 낮아질 수는 없음
물론 학습 곡선이 진입 장벽이랑 같은 말은 아니지만 상당 부분 겹침
그리고 '학습 곡선'은 주관적인 특성임
비교표에 넣으면 처음부터 왜곡될 수밖에 없음
명확한 기능이 더 객관적이지만 때로는 제품 특성상 어떤 기능이 필요 없을 수 있음
이런 사용 사례에는 Pandoc이 최고임
TikZ랑 pgf로 LaTeX와 TeX의 스크립트 기능이 어느 정도인지 바로 파악할 수 있음
비교 표가 명백히 부정확함
샘플 출력물이 멋져 보임
하지만 템플릿 언어가 함수 호출이나 복잡성으로 커지는 걸 항상 썩 좋아하지 않음
물론 이 컨텍스트에서는 의미가 있을지도 모르지만
만약 다른 언어와 같이 써야 한다면, 예를 들어 서버 사이드 렌더링이나 데이터 기반 문서 생성 등에서, 두 언어를 오가면서 시간을 너무 소모하게 됨
템플릿 언어는 항상 '진짜' 언어만큼 강력하지 않음
그래서 나는 JSX나 JavaScript의 tagged template literal 같은 방식을 선호함
실제 프로그래밍 언어를 사용하면서도 문서의 컨텍스트를 이해한다면 이스케이프(XSS 같은) 걱정을 덜 수 있는 방식이 더 좋음
Quarto와 이 프로젝트는 어떻게 다른지 궁금함
이름도 비슷하고, 확장자도 같고, 지향점도 유사해 보이는데 기능이 오히려 적어 보임 – Quarto
Quarto는 R Markdown 생태계의 실질적 후계자임
동일한 개발자들이 개발했다고 FAQ에서 밝힘
나도 같은 질문을 하려고 했음
며칠 전에 친구가 모든 강의 대본을 Quarto로 다시 작성하고 프레젠테이션까지 임베드하는 걸 보여줬는데 꽤 깔끔해 보였음
Quarto가 R Studio, Jupyter Notebook과도 잘 연동된다는 점은 큰 장점임
이름이 비슷한 건 QuarkXPress에 대한 언급이나 연관에서 온 듯함
이런 건 수렴 진화 같은 현상이라고 생각함
"planet"처럼 보일 수 있는 게 사실은 쿼크, 특히 다운 쿼크라는 설명이 흥미로움
Cool한 프로젝트지만 QuarkXPress라는 출판 업계의 유명 브랜드 때문에 'Quark'란 단어를 출판 시스템 명칭으로 쓰는 건 약간 위험함
관련 상표 등록 정보는 여기, 여기에서 확인 가능
(왜 같은 단어로 두 개의 상표가 등록돼 있는지도 궁금함)
이 분야 토론 쓰레드마다 항상 "왜 LaTeX 안 써?" 류 댓글이 70%라, 나부터 확실히 말하자면
난 확실히 모던 한 Markdown 기반 조판 시스템이 필요함
라텍스를 대체하는 여러 시도가 있었으면 좋겠음
LaTeX는 정말 불편하고 옛날 방식이며, 마크업을 더 자유롭게 줄 수 있는 시스템이 있으면 좋겠음
만약 기능이 풍부해져서 문법이 길어진다 해도 Markdown보단 살짝 강력한 영역은 분명 필요함
하지만 이 프로젝트는 내가 찾던 것은 아니라고 느낌
예제를 보면 그냥 Markdown보다 조금 더 강력한 쪽에 치우쳐져 있는 듯하고, 완전히 LaTeX(혹은 Typst) 대체로는 손색
이런 종류의 문서 시스템은 '정말 부드럽게' 사용할 수 있어야 하는데, 이건 그런 느낌 아님
그리고 JVM 기반이라 나는 설치조차 안 하고 싶음
이런 건 확산성에 비추기 좋지 않음
문법도 마음에 안 듦
최대한 노멀 마크다운과 호환됐으면 좋겠지만, 함수 인자 들여쓰기가 필수라 전체 문서가 들여쓰기될 것 같고, 정작 마크다운 확장점은 일반적으로 코드 블록(```plugin-name`식)이 더 자연스러움
문법 차이로 인해 문서 전체 구조를 바꿔야 할 수도 있음
"더 나은 마크다운" 컨셉은, 개인 메모에서 출발해 점차 공개 문서로 발전하는 경우 더 적합하다고 봄
문서를 출판 목적으로 만드는 거라면 LaTeX로 그냥 작업해도 됨
가장 유용한 건 노트 테이킹 앱에 잘 통합되어 있을 때임
Emacs나 Vim에서 하는 사람도 있겠지만, 나 같은 복고파도 결국 Obsidian 등으로 넘어갔음을 고백
문서 구조를 메모 앱에서 더 잘 컨트롤하거나, 퍼블리싱 기능도 연결할 수 있는 파트가 좋을 듯
독립 실행형이라면 왜 써야 할지 의문임
그나마 Typst는 온라인 에디터라도 있음, 다들 그걸로 씀
LaTeX는 오래된 쓰레기가 아니고, 최고의 소프트웨어 중 하나임
쓸데없는 걸 문서에 추가하지 않는 게 핵심임
이런 시스템(Typst 포함)은 기본적으로 논문 같은 장문의 텍스트 조판을 위한 것임
HTML의 대안이 되었으면 좋겠는데, Typst도 써봤지만 작성자들이 거의 '논문이나 장문'에만 신경 쓰는 것처럼 느껴짐
폼, 인보이스, 전단지, 명함 같은 것도 만들고 싶지만 이런 요소들은 관심 밖임
(실은 Sile을 생각한 것인데 Typst도 비슷함)
Typst가 상업적이라 깊이 안 써봤음
언급한 폼, 인보이스 등에서 Typst를 못 쓸 특별한 이유가 있을지 모르겠음
특히 인터랙티브 폼은 이미 작업 중이라는 소식도 있고(pdf writer의 백엔드는 이미 일부 지원)
시간이 좀 지나면 Typst에서 폼 기능이 구현될 듯 – 이슈 참고
이 분야가 '조판'보다는 '그래픽 디자인'에 가까워서 그렇다고 생각함
인보이스나 광고지, 명함 등은 작은 요소를 정확하게 페이지 중심이나 가장자리에 배치해야 하는데, 이건 WYSIWYG 도구가 편함
텍스트 기반 조판만으로는 시행착오가 너무 많아짐
예를 들어 타블로이드는 텍스트가 사각형이 아닌 이미지나 컷에 맞춰서 흐르고 감싸야 하는데, 실제로 눈으로 확인하지 않고 좌표만 써서 작업하는 건 매우 힘듦
Typst 온라인 에디터는 상업적이지만, Typst 자체는 Apache 2.0 라이선스로 공개되어 있음
나는 Rust로 cargo 통해 설치해서 온라인 에디터 없이 충분히 사용 중
Typst는 로컬에서 써도 되고 상업적 부분을 아예 건너뛰면 됨
여러 종류의 문서를 만들기에 꽤 쉬움
나는 슬라이드와 유인물 제작 용도로 이미 대체제로 쓰고 있음
내 Typst 첫 '실사용'이 포스터였는데, LaTeX보다 훨씬 쉬웠음
이미지 감싸기나 텍스트 플로우 등 아직 몇가지 피처는 없지만, TeX에서도 이건 어렵고 Typst에도 향후 추가 예정임 포스터 예시
이건 그냥 reStructuredText(rST)랑 거의 똑같아 보임
Quarkdown의 함수 문법(.somefunction {인자} {인자} 바디)과 rST의 함수 문법(.. somefunction:: {인자} {인자} 바디)가 매우 유사함
Markdown, Quarkdown, Typst 등 너무 많고 표준화가 안된 것 같아서 결국 HTML+CSS로 회귀함
XML도 어때?
직접 써보진 않았지만 상당히 진지하게 고민 중임
나머지 포맷들은 복잡하고 학습 곡선이 있어서 글 작성 자체를 방해함
XML은 내 태그를 맘대로 정의해서, 파서로 각주 자동 생성 등 다양한 구조를 만들 수 있음
이런 접근을 써본 사람 있는지 궁금함
마크다운은 기본적인 수준에선 정말 효율적임
문제는 너무 많은 사람들이 시스템을 바로 위에 얹어가면서, 애초에 '더 복잡한 것'을 해결하려 들 때 발생함
원래 단순한 용도의 시스템을 자기 딴엔 개선한다면서 사실은 한계를 못 깨닫고, 오히려 불필요한 반복과 혼란만 늘린다고 생각
기능 부족이 아니라, 설계 목적에 맞는 범위를 벗어나서 문제
심지어 윈도우즈 notepad에 서식 처리가 들어가도, 본질적으로는 개선이 아니라 생각
notepad는 본래의 역할이 있었기 때문임
성숙하고 신뢰성 있는 Org-mode도 있음
Emacs를 싫어하지 않는다면 좋은 선택임
나도 HTML, CSS, Javascript로 웹개발에서 DOM 조작하는 게 오히려 더 재밌다고 느낌
수백 개의 프레임워크와 복잡한 문법을 그만큼 외울 필요 없음
AI로 markdown to html 변환기 생성 명령만 내려도 괜찮음
만약 2005년 텍스트 에디터의 오토컴플리트가 태그 밸런싱이나 들여쓰기, 하이라이트만 지금처럼 잘 지원해줬으면 JSON, YAML, Markdown 같은 포맷이 이 정도로 흥하지 않았을지도 모름
2003년에 나온 The Art of Unix Programming에도 XML 직접 편집은 고통이라서 각종 포맷과 파서를 새로 만들어야 했다는 내용이 나옴
Hacker News 의견
내 FOSS 텍스트 에디터 KeenWrite는 Markdown에서 XHTML, TeX, 그리고 PDF로 변환하는 유사한 방식을 사용함
소프트웨어 아키텍처는 프로세서 체인을 어떻게 설계할 수 있는지 보여줌
내가 KeenWrite를 만든 이유는 공상과학 소설을 쓸 때 등장인물의 이름이나 지역 같은 변수들을 쓸 수 있게 하려는 목적
자세한 내용은 튜토리얼 참고
아직도 pandoc과 셸 스크립트를 쓰는 사람들에게는, Typesetting Markdown 시리즈에서 Markdown을 PDF로 변환하는 스크립트 기반 인프라 구축 방법을 설명함
KeenWrite 자체 정보는 여기에서 볼 수 있음
아키텍처 다이어그램은 여기에서 확인 가능
최근 많은 주목을 받은 Typst와 이 프로젝트를 비교해보면 재미있을 것 같은데, 기능 비교 매트릭스에는 Typst가 전혀 언급되지 않았다는 점이 의외임
전반적으로 두 프로젝트가 매우 유사해 보임
비교 차트가 정확한지 궁금함 – 링크
LaTeX는 분명히 완벽한 스크립팅 기능이 있다고 생각함, 물론 사용하기 괴로운 점은 있지만
Quarkdown의 난해한 문법이 Typst보다 더 간결하고 읽기 쉽다는 주장에 회의적임
학습 곡선도 Typst보다 쉽진 않을 것이라고 생각함, 둘이 거의 비슷해 보임
LaTeX도 tex4ht로 HTML을 만들 수 있다고 생각함
진입 장벽이 이보다 더 낮아질 수는 없음
물론 학습 곡선이 진입 장벽이랑 같은 말은 아니지만 상당 부분 겹침
그리고 '학습 곡선'은 주관적인 특성임
비교표에 넣으면 처음부터 왜곡될 수밖에 없음
명확한 기능이 더 객관적이지만 때로는 제품 특성상 어떤 기능이 필요 없을 수 있음
비교 표가 명백히 부정확함
샘플 출력물이 멋져 보임
하지만 템플릿 언어가 함수 호출이나 복잡성으로 커지는 걸 항상 썩 좋아하지 않음
물론 이 컨텍스트에서는 의미가 있을지도 모르지만
만약 다른 언어와 같이 써야 한다면, 예를 들어 서버 사이드 렌더링이나 데이터 기반 문서 생성 등에서, 두 언어를 오가면서 시간을 너무 소모하게 됨
템플릿 언어는 항상 '진짜' 언어만큼 강력하지 않음
그래서 나는 JSX나 JavaScript의 tagged template literal 같은 방식을 선호함
실제 프로그래밍 언어를 사용하면서도 문서의 컨텍스트를 이해한다면 이스케이프(XSS 같은) 걱정을 덜 수 있는 방식이 더 좋음
Quarto와 이 프로젝트는 어떻게 다른지 궁금함
이름도 비슷하고, 확장자도 같고, 지향점도 유사해 보이는데 기능이 오히려 적어 보임 – Quarto
동일한 개발자들이 개발했다고 FAQ에서 밝힘
며칠 전에 친구가 모든 강의 대본을 Quarto로 다시 작성하고 프레젠테이션까지 임베드하는 걸 보여줬는데 꽤 깔끔해 보였음
Quarto가 R Studio, Jupyter Notebook과도 잘 연동된다는 점은 큰 장점임
이런 건 수렴 진화 같은 현상이라고 생각함
"planet"처럼 보일 수 있는 게 사실은 쿼크, 특히 다운 쿼크라는 설명이 흥미로움
Cool한 프로젝트지만 QuarkXPress라는 출판 업계의 유명 브랜드 때문에 'Quark'란 단어를 출판 시스템 명칭으로 쓰는 건 약간 위험함
관련 상표 등록 정보는 여기, 여기에서 확인 가능
(왜 같은 단어로 두 개의 상표가 등록돼 있는지도 궁금함)
이 분야 토론 쓰레드마다 항상 "왜 LaTeX 안 써?" 류 댓글이 70%라, 나부터 확실히 말하자면
난 확실히 모던 한 Markdown 기반 조판 시스템이 필요함
라텍스를 대체하는 여러 시도가 있었으면 좋겠음
LaTeX는 정말 불편하고 옛날 방식이며, 마크업을 더 자유롭게 줄 수 있는 시스템이 있으면 좋겠음
만약 기능이 풍부해져서 문법이 길어진다 해도 Markdown보단 살짝 강력한 영역은 분명 필요함
하지만 이 프로젝트는 내가 찾던 것은 아니라고 느낌
예제를 보면 그냥 Markdown보다 조금 더 강력한 쪽에 치우쳐져 있는 듯하고, 완전히 LaTeX(혹은 Typst) 대체로는 손색
이런 종류의 문서 시스템은 '정말 부드럽게' 사용할 수 있어야 하는데, 이건 그런 느낌 아님
이런 건 확산성에 비추기 좋지 않음
최대한 노멀 마크다운과 호환됐으면 좋겠지만, 함수 인자 들여쓰기가 필수라 전체 문서가 들여쓰기될 것 같고, 정작 마크다운 확장점은 일반적으로 코드 블록(```plugin-name`식)이 더 자연스러움
문법 차이로 인해 문서 전체 구조를 바꿔야 할 수도 있음
문서를 출판 목적으로 만드는 거라면 LaTeX로 그냥 작업해도 됨
가장 유용한 건 노트 테이킹 앱에 잘 통합되어 있을 때임
Emacs나 Vim에서 하는 사람도 있겠지만, 나 같은 복고파도 결국 Obsidian 등으로 넘어갔음을 고백
문서 구조를 메모 앱에서 더 잘 컨트롤하거나, 퍼블리싱 기능도 연결할 수 있는 파트가 좋을 듯
독립 실행형이라면 왜 써야 할지 의문임
그나마 Typst는 온라인 에디터라도 있음, 다들 그걸로 씀
쓸데없는 걸 문서에 추가하지 않는 게 핵심임
이런 시스템(Typst 포함)은 기본적으로 논문 같은 장문의 텍스트 조판을 위한 것임
HTML의 대안이 되었으면 좋겠는데, Typst도 써봤지만 작성자들이 거의 '논문이나 장문'에만 신경 쓰는 것처럼 느껴짐
폼, 인보이스, 전단지, 명함 같은 것도 만들고 싶지만 이런 요소들은 관심 밖임
(실은 Sile을 생각한 것인데 Typst도 비슷함)
Typst가 상업적이라 깊이 안 써봤음
특히 인터랙티브 폼은 이미 작업 중이라는 소식도 있고(pdf writer의 백엔드는 이미 일부 지원)
시간이 좀 지나면 Typst에서 폼 기능이 구현될 듯 – 이슈 참고
인보이스나 광고지, 명함 등은 작은 요소를 정확하게 페이지 중심이나 가장자리에 배치해야 하는데, 이건 WYSIWYG 도구가 편함
텍스트 기반 조판만으로는 시행착오가 너무 많아짐
예를 들어 타블로이드는 텍스트가 사각형이 아닌 이미지나 컷에 맞춰서 흐르고 감싸야 하는데, 실제로 눈으로 확인하지 않고 좌표만 써서 작업하는 건 매우 힘듦
나는 Rust로 cargo 통해 설치해서 온라인 에디터 없이 충분히 사용 중
여러 종류의 문서를 만들기에 꽤 쉬움
나는 슬라이드와 유인물 제작 용도로 이미 대체제로 쓰고 있음
이미지 감싸기나 텍스트 플로우 등 아직 몇가지 피처는 없지만, TeX에서도 이건 어렵고 Typst에도 향후 추가 예정임
포스터 예시
이건 그냥 reStructuredText(rST)랑 거의 똑같아 보임
Quarkdown의 함수 문법(.somefunction {인자} {인자} 바디)과 rST의 함수 문법(.. somefunction:: {인자} {인자} 바디)가 매우 유사함
Markdown, Quarkdown, Typst 등 너무 많고 표준화가 안된 것 같아서 결국 HTML+CSS로 회귀함
직접 써보진 않았지만 상당히 진지하게 고민 중임
나머지 포맷들은 복잡하고 학습 곡선이 있어서 글 작성 자체를 방해함
XML은 내 태그를 맘대로 정의해서, 파서로 각주 자동 생성 등 다양한 구조를 만들 수 있음
이런 접근을 써본 사람 있는지 궁금함
문제는 너무 많은 사람들이 시스템을 바로 위에 얹어가면서, 애초에 '더 복잡한 것'을 해결하려 들 때 발생함
원래 단순한 용도의 시스템을 자기 딴엔 개선한다면서 사실은 한계를 못 깨닫고, 오히려 불필요한 반복과 혼란만 늘린다고 생각
기능 부족이 아니라, 설계 목적에 맞는 범위를 벗어나서 문제
심지어 윈도우즈 notepad에 서식 처리가 들어가도, 본질적으로는 개선이 아니라 생각
notepad는 본래의 역할이 있었기 때문임
Emacs를 싫어하지 않는다면 좋은 선택임
수백 개의 프레임워크와 복잡한 문법을 그만큼 외울 필요 없음
AI로 markdown to html 변환기 생성 명령만 내려도 괜찮음
2003년에 나온 The Art of Unix Programming에도 XML 직접 편집은 고통이라서 각종 포맷과 파서를 새로 만들어야 했다는 내용이 나옴