TeX과 친구들
-
다국어 식자를 위한 ucharclasses 패키지TeX과 친구들 2022. 2. 11. 12:09
주피터북이 만든 텍 파일이 요상한 증상을 일으켰다. "2022년 2월 2일"이 "2022□ 2□ 2□"로 식자되었다. 한나절을 허비한 뒤에 ucharclasses 패키지가 원인이라는 것을 확인했다. MS 워드나 웹 브라우저와는 달리, 텍에서는 (인디자인에서도) 텍스트를 언어에 따라 특정 폰트 환경으로 감싸야 제대로 식자된다. \begin{japanese} ひむらけんしん \end{japanese} 아마도 웹 브라우저는 식자하려는 글자가 현재 폰트에 없으면 다른 폰트에서 글자를 찾는 방식으로 작동할 것이다. 고려해야 할 여러 요소들이 있겠으나, 텍이 그렇게 하지 못할 이유가 있을까? 언젠가는 누군가 이것을 구현하는 패키지를 만드리라 기대했는데, ucharclasses가 바로 그것이다. \usepackage[..
-
토터스 태거 (Tortoise Tagger)TeX과 친구들 2021. 11. 16. 15:54
워드, 파워포인트, HTML, XML 따위의 파일들을 트라도스나 메모큐 같은 CAT 프로그램들이 잘 처리한다. (그렇다고 하더라.) 사실 이것들의 스타일 포맷은 모두 동일하다고 말할 수 있다. 아래 예와 같이 한 쌍의 태그가 문장이나 단어를 감싸고 있다. 그래서, 스타일들을 일관되게 적용했다면, 번역사가 손대지 말아야 할 것들을 손쉽게 가려낼 수 있다. 전에 안전하고 올바른 설치와 관리를 위해 이 하지만 이와 같은 형식을 사용하지 않는 레이텍이나 마크다운 같은 것들은 CAT 프로그램들이 지원하지 않는다. 대신 번역사가 고치지 않아야 할 특정 어절이나 문자들을, "\\\\[a-zA-Z*]{1,25}" 같은, 정규 표현식을 사용하여 CAT 프로그램에 지정할 수 있다. \chapter{Introduction}..
-
장을 강조하는 차례 스타일TeX과 친구들 2021. 10. 1. 10:00
차례에서 장 줄(chapter line)을 저렇게 만들고 싶다는 질문이 KTUG에 올라왔다. 차례 스타일들은 다소 복잡하다. 메므와 설명서를 뒤적거려 다음과 같이 코드를 만들었다. \cftsetindents{chapter}{0em}{0em} \renewcommand\chapternumberlinebox[2]{ \rule{\textwidth}{0.75pt}\\[1ex] \makebox[3.75em]{#2\hfill} } \renewcommand*{\cftchapterpresnum}{\Huge} 왜 굳이 저렇게 꾸미고 싶은지 모르겠다.
-
프린팅박스TeX과 친구들 2021. 9. 3. 16:27
프린팅박스라는 사진 출력 서비스가 있다. https://newrel.printingbox.net/kor/이미지 파일들을 업로드하고 프린팅박스와 제휴한, 아트박스나 프랜차이즈 커피숍 같은 곳에서 사진을 찾을 수 있다. 이 서비스의 서버 프로그램에서 레이텍이 사용된다.이미지 파일들을 4x6 인치 또는 6x8 인치 크기로 배열하는 레이텍 매크로들을 내가 4년 전에 만들었다. 유 대표의 전화를 받았을 때 프로그래머인 그가 왜 이 일을 나에게 청하는지 이해하지 못하였다. 이런 일이 다른 프로그래밍 언어에서 요구된 적이 별로 없어서 이용할 만한 라이브러리가 없는가 보다 짐작했을 뿐이다.그 일을 까맣게 잊고 지내다가 오늘 그 소스 파일을 발견했다. 컴파일해 보았다. 걸린다.\str_case_x:nn이 폐기되었다. \..
-
xindexTeX과 친구들 2021. 7. 19. 15:00
색인을 포함해야 할 만큼 대규모 문서를 작성할 일이 거의 없지만, 그렇게 드물게 요구되는 것들도 능히 처리하는 문서화 방법론을 구비해야 한다. (그렇게 믿고 있다) 색인(.idx)을 정렬하는 데에 komkindex.exe가 충분하지만, 나는 한 문서가 여러 언어들로 번역되는 경우도 다루어야 하고, 같은 목적으로 복수의 수단을 사용하는 것보다 한 가지를 사용하는 것이 편리하기 때문에 texindy를 오래 전에 채택했다. 최근에 텍신디로 한자가 포함된 색인을 정렬하는 데에서 버그로 보이는 증상을 발견했다. .idx 파일이 다음과 같을 때, \indexentry{번체|hyperpage}{7} \indexentry{繁體|hyperpage}{7} lang/korean/utf8.xdy에 이렇게 정의되어 있지만, (..
-
직함과 직인 이미지를 겹치기TeX과 친구들 2021. 4. 28. 14:36
최근에 KTUG에 올라온 질문의 취지가 직함과 직인 이미지를 겹쳐 놓으려는 것으로 보인다. \documentclass{article} \usepackage{kotex} \usepackage{graphicx} \usepackage{transparent} \ExplSyntaxOn \box_new:N \l_stamp_box \NewDocumentCommand \SetStamp { m } { \hbox_set:Nn \l_stamp_box { \smash{\includegraphics{#1}} } } \NewDocumentCommand \stamp { O{1ex} m } { \if_mode_vertical: \mode_leave_vertical: \fi: \hbox_overlap_right:n { \box_mov..
-
HzGuide 클래스TeX과 친구들 2021. 4. 19. 12:35
HzGuide 클래스에 대한 매뉴얼을 작성했다. PDF 버전을 깃허브에서 볼 수 있다. 2002년에 테크니컬 라이팅을 업으로 삼기 시작하면서 레이텍을 접했다. 다른 사용자들도 마찬가지일 텐데 시작은 단순했다. 전제부(preamble)에 포함된 코드들을 떼어내어 preamble.tex을 만들었다. 여러 매크로들을 추가하면서 파일 이름이 "hz"로 시작하는---프로그램이나 패키지에 저자 이름의 머리글자를 붙이는 것이 이 바닥의 관행이다---서너 패키지들로 나누었다. 패키지들을 쪼개고 합치는 것을 그 뒤로 몇 차례 반복한 것 같다. 2005년에, 한 제조회사로 옮기면서, oblivoir를 흉내내어 memoir를 기반으로 하는 클래스를 만들고 hozemanucs라는 촌스러운 이름을 붙였다. 2009년 이전까지 ..
-
판정 함수TeX과 친구들 2021. 3. 31. 09:41
"_p"로 끝나는 expl3 함수들은 true 또는 false를 반환한다. 이것들을 predicates 함수라고 한다. 우리말로 옮기자면 "판정 함수"라고 할까? 이것은 \tl_if_blank:nTF { ... }{ true code }{ false code } 다음과 같다. \bool_if:nTF { \tl_if_blank_p:n {...} }{ true code }{ false code } 이것들을 ":NTF"와 ":nTF"와 같은 조건문 함수들을 위한 모듈 정도로 여기어서 매뉴얼에 굳이 언급할 필요가 없지 않나 생각했었다. 하지만 고급 프로그래머들이 하듯이 복잡한 조건식을 만들 때에는 판정 함수가 필요하겠다. \bool_if:nTF { \cs_if_exist_p:N #1 && \int_if_odd_..