전체 글
-
아랍어 합자TeX과 친구들 2026. 6. 30. 17:02
f 두 자가 ff 한 자로 바뀌는 것을 합자라고 한다. ff가 유니코드에서 FB00에 할당되어 있다. 아랍어에서는 모든 글자들이 합자가 된다. 그것이 아랍어 텍스트가 지렁이가 똥 싸며 지나간 것처럼 보이는 이유이다. 각 글자가 세 가지 형태(glyph)를 갖고 있다. 단어의 처음에 올 때, 중간에 올 때, 끝에 올 때. 아래 이미지에서는 단어들이 제대로 합자되어 있는 반면, 위에서는 죄다 떨어져 있다. font-mappings.xml을 비롯하여 아랍어 폰트와 관련된 모든 설정들을 이리저리 바꾸어 보고, 심지어 Noto Sans Arabic 폰트를 새로 받아 시도했지만 AHF가 여전히 동일한 결과를 만들어내었다.그러다가 @letter-spacing이 떠올랐다. 그 값이 0이 아니라면 합자가 이루어질 수 ..
-
문제아 찾기TeX과 친구들 2026. 6. 17. 09:59
예외로 다루어야 할 문자열들을 처리하는 가장 손쉬운 꼼수가 그것들을 실재할 가능성이 희박한 것으로 바꾸어 놓았다가 모든 처리가 완료될 때 원래대로 되돌리는 것이다.이것이 효과적인 방법이지만, 정작 어려움은 문제아를 찾는 데에 있다. 다른 수십 파일들이 문제 없이 처리되고, 그래서 완벽한 해법을 만들었다고 스스로 자랑스러워할 때, 한 파일에서 에러 메시지가 쏟아지고 처리가 멈춰서면, 코드 전체가 못 미더워진다. 코드를 이리저리 바꾸어보았지만 계속 실패했다. 코드가 틀린 것이 아니고, 내가 찾지 못한 문제아가 어딘가에 숨어있는 것이 아닐까?"절반 날리기" 신공을 써야 할 때가 왔다. 문제의 파일이 39172 줄. 뒤의 절반을 지우고 돌리니 정상적으로 종료된다. 문제아가 뒤쪽에 숨어있다는 말이다. 뒤의 절반을..
-
우리 본성의 선한 천사책을 읽거나 글을 쓰거나 2026. 4. 27. 18:20
서가에 꽂혀있는 이 책을 꺼내어 펼쳐보니 마지막 페이지의 번호가 1400을 넘어간다. 이 책을 과연 끝까지 읽을 수 있을까? 내 경험에 석 달 안에 마치지 못한다면 포기할 것이다. 그렇더라도, 빌 게이츠가 이 책을 언급해서가 아니라, 저자가 스티븐 핑커이기 때문에 읽자고 마음먹었다. 예상한 대로, 석 달을 넘긴 데다가 (지겹다는 말이다) 마지막 장이 난해하여 200 페이지 가량 남겨두고 그만 접었다.스물 몇 해 전에 그의 또 다른 명저 "언어 본능"을 읽을 때 그가 당연히 언어학자이리라 생각했다. 이 책의 저자 소개를 보니 언어학자가 아니라 심리학자이다. 그가, 그리스 고전을 비롯하여, 이제까지 출판된 모든 문헌을 읽었는지 참고 문헌의 목록이 무려 70 페이지에 달한다.책 초반의 내용이 매우 충격적이다..
-
I Have a Dream책을 읽거나 글을 쓰거나 2026. 3. 11. 09:16
스티븐 핑커의 "우리 본성의 선한 천사"를 요즘 읽고 있다. 오늘 아침에 읽은 페이지 중에 마틴 루터 킹을 언급한 대목이 있다. 그래서 오래 전에 만들어둔 파일을 꺼내어 레이텍(TeX Live 2025 LuaLaTeX)을 이용하여 PDF를 만들어봤다.이 문서가 tex과 tsv 포맷으로 작성되어 있다. 나의 깃허브 저장소(https://github.com/YiHoze/texwrapper)에 있는 latex.db로부터 mytex.py를 이용하여 dream.tex과 dream.tsv를 얻을 수 있다.
-
분기점과 나들목테크니컬 라이팅 2025. 12. 31. 16:45
"IC가 아니라 JC라 하니 아무개가 화났다"JC를 "분기점", IC를 "나들목"이라고 한다. JC가 junction을, IC가 interchange를 줄인 말이다. 제미나이와 챗지피티에 따르면, junction이 intersection과 interchange를 아우르는 가장 일반적인 말이다. 그러니까 그것들 모두 둘 이상의 도로가 만나는 지점, 가장 일반적인 말로 옮기자면 교차로이다.intersection은 평면 교차로를 의미한다. 회전 교차로와 로터리가 이에 포함된다. interchange는 경사로가 있어 한 도로가 다른 도로의 위나 아래로 접하는 것을 말한다. 우리는 분기점과 나들목 모두 고속도로와 연관지어 생각한다. 분기점을 같은 수준의 도로, 즉 한 고속도로에서 다른 고속도로로 갈아탈 수 있는 ..
-
Out of Thin Air책을 읽거나 글을 쓰거나 2025. 12. 29. 14:44
에베레스트 정상 언저리에서 한 사람이 산소 부족으로 죽어가고 있을 때, 그 위로 한 무리의 기러기들이 날아가고 있다. 무엇이 그 차이를 만들어낼까? 새들은, 여러 개의 기낭(air sacs)과 기공(pneumatized bone) 덕분에, 숨을 내쉴 때조차 숨을 들이마신다.저자인 Peter Ward는 산소 농도(oxygen level)가 진화의 주요 동인이라고 주장한다. 산소 농도가 떨어지면 다양한 호흡기들이 출현한다. 그것들은 몸의 형태에까지 영향을 미친다. 이를테면 (몸 아래가 아니라) 옆으로 뻗은 다리를 갖고 있는 악어들이나 도마뱀들은 걸을 때 몸통이 좌우로 휘어지면서 폐를 압박하기 때문에 숨을 쉴 수가 없다. (내가 물가에서 기습을 받지 않는 한, 악어가 나를 쫓아와 물을 가능성은 희박하다.)..
-
XSLT에 대하여TeX과 친구들 2025. 12. 18. 12:03
누군가 XSL를 언급한다면 그가 의미하는 것이 십중팔구 XSLT일 것이다. 프로그래밍 언어에 비해 장황해 보이는 구문이 거북함을 일으킨다. 레이텍과 파이선의 순차적 처리에 익숙한 나에게, XSL 파일에 선언된 여러 템플릿들이 순차적으로 처리되는 것이 아니라는 것이 가장 난해했다. 일 년 넘게, "찍기" 방법론을 사용하여, XSLT를 붙잡고 있다 보니, 템플릿과 다른 기본적인 요소들의 개념을 이해하게 되었다. 돌이켜 생각해보니, 좋은 선생이 서너 시간 할애하여 기반 이론을 가르쳐주었다면 훨씬 더 빨리 익혔을 것이다. 항상 조급증이 문제다. XML의 특성에 대한 이해 없이, 당장 무언가 돌려서 결과를 보고자 하는 것이 오히려 성장을 더디게 한다.엑셀 시트를 XML로 바꾸어야 할 일이 종종 있어서 파이선으..
-
나에게 테크니컬 라이팅이란책을 읽거나 글을 쓰거나 2025. 12. 16. 18:31
테크니컬 라이팅이라는 일을 시작하게 되었을 때, 이 일이 유망한지, 내가 잘 할 수 있는 일인지 생각할 계제가 아니었다. 생계를 위해 했다. 앞으로도 사정이 바뀌지 않겠다는 생각이 들었을 때 이직이 가능한 나이에서 벗어나 있었다. 젊었더라도 다른 기회를 찾기가 어려웠을 것이다.나는 내가 첫 세대의 테크니컬 라이터였다고 생각한다. 일을 가르쳐줄 사람이 없었고, 여전히 외주로서 제공되는 서비스이다 보니 큰 조직에서 일할 기회도 갖지 못했다. 내게 다른 지혜를 나눠줄 선배나 상사를 갖지 못했었다는 점이 약간의 아쉬움으로 남는다.테크니컬 라이팅을 수행하는 데에 필요한, 어느 분야에서나 오래 일한 사람이 쌓을 수 있는 정도의, 적지 않은 기술과 지식을 축적했지만, 나로부터 그것들을 물려받을 사람이 없다. 나는 지..