KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
You attempt things that you do not even plan because of your extreme stupidity.
FrontPage › Karnes/2006-06
Jun 30, 2006
KTUG Collection Utility 활용 팁 (1)
Submitted by Karnes @ 06-30 [12:17 am]
KTUG Collection에 포함된 유틸리티의 간단한 사용 설명서를 따로 제작할 수 없어서, 생각나는 대로 적어두겠습니다.

1. closepdf
-> Acrobat의 창을 모두 닫아줍니다. 에디터에 closepdf를 연결하는 단추를 하나 마련해두면 pdf 작업하기가 훨씬 쉬워집니다. 또는 명령행에서 Acrobat 창을 닫도록 할 수도 있습니다. -> 사용법
#> closepdf


2. grep
-> Linux/Unix/mac/cygwin 유저들은 아마도 이 유틸리티 없이는 잠시도 버티기 힘들 텐데요... 콘솔 출력을 filtering하여 원하는 expression이 있는 행만 보여줍니다. -> 사용법. LaTeX 컴파일 중에 warning이 발생한 행만 디스플레이
#> latex -src foo | grep Warning
-> mpm 패키지 확인에도 쓸 수 있습니다.
#> kcmpm --list | grep jurabib


3. ebb, getbb
-> 그림의 바운딩박스를 얻습니다. KTUG Collection에 포함된 ebb는 pdf 1.4에 대해서도 바운딩박스를 얻어줍니다. getbb는 GraphicsMagick을 이용하여 jpg/pdf의 바운딩박스를 얻는 배치파일이고, jpg에 대해서는 density(resolution) 조작도 가할 수 있습니다. -> 사용법
#> ebb img.{pdf/jpg/png}
#> getbb img.pdf
#> getbb img.jpg 200


4. detex
-> 원본 문서에서 TeX markup을 제거해줍니다. 글의 분량을 알기 위해 wc를 쓰고자 할 때 가끔 써볼 수 있을지 모르겠습니다. -> 사용법.
#> detex foo.tex >foo.txt

Jun 28, 2006
AdobeReader를 이용한 PDF InverseSearch (윈도)
Submitted by Karnes @ 06-28 [02:38 pm]
준비물 : KTUG Collection 2006 시스템

(0) 사전준비
  • EmEditor가 있는 위치를 PATH에 포함하여, 어디에서든 emeditor.exe가 불리도록 할 것.
  • 작업디렉토리에 다음과 같은 내용의 vpe.cfg를 만든다.
    \vpesetup{system=win,application=EmEditor.exe,parameters=-l $d $s}
    
    • 참고로, 작업 디렉토리 이름에 공백이 있으면 오작동할 수 있음
(1) 원본 파일 작성
  • vpe 패키지를 로드한다.
  • pdflatex-compatible하게 작성할 것.
    \documentclass{memoir}
    \usepackage{vpe}
    \usepackage{memhangul-ucs}
    
    %%% 그림
    \ifpdf
    \usepackage[pdftex]{graphicx}
    \else
    \usepackage{graphicx}
    \DeclareGraphicsExtensions{.eps,.jpg,.pdf}
    \DeclareGraphicsRule{.jpg}{eps}{.bb}{}
    \DeclareGraphicsRule{.pdf}{eps}{.bb}{}
    \fi
    
    %%% 책갈피, hyperref
    %\usepackage{dhucs-ucshyper}
    \ifpdf
    \usepackage{dhucs-cmap}
    \pdfmapfile{+unttf-pdftex-dhucs.map}
    \SetHangulFonts{utbt}{utgt}{uttz}
    \SetHanjaFonts{utbt}{utgt}{utgt}
    \fi
    \hypersetup{colorlinks,plainpages}
    \usepackage{memhfixc}
    
  • 그림은 pdf(jpg)와 eps를 다 마련해두는 것이 좋음.
(2) pdflatex으로 컴파일
#> pdflatex --shell-escape foo
  • --shell-escape 옵션을 주는 것을 잊지 말 것.
  • 두 번 컴파일한다.
(3) 만들어진 pdf 파일을 AdobeReader로 열면, 문단 첫머리에 노란색의 링크가 있다. 이 부분을 누르면 EmEditor를 실행시킨다. EmEditor는 같은 이름의 파일을 열면 새로운 인스턴스를 만들지 않으므로 같은 작업창 내에서 인버스서치가 제대로 되는 것을 경험하실 것임.

adobereader_invsrch.jpg

(4) 문제점
  • 한 행이나 한 문단이 지나치게 길면 컴파일에 실패하기도 한다.
  • moving argument 안에서 쓰인 매크로가 불안정한 경우가 있다. 특히 사용자 매크로가 풀리는 경우 그러한데, 주의해서 사용해야 한다.
    -> 이럴 때는 과감히 dvi / inv search로 돌아간다. ^^
  • 위의 첨부 그림은 이주호 님의 글로 작업해본 것인데, 사용자 매크로 \insertgraphic을 처리하지 못했으며 body.tex의 너무 긴 행을 <Meta>-Q로 모두 정렬해주고 나서야 앞부분에 대해서 겨우 작동하게 할 수 있었다.
  • tabular/rule 등에서 에러가 발생한다. 특히 tabular 에러는 아주 불편한데... 이를 피해가기 위해서 vpe가 동작할 때는 tabular를 그림으로 넣도록 해서 테스트해보았다.

hlatexp for KTUG Collection 2006
Submitted by Karnes @ 06-28 [11:02 am]
그동안 제외해왔던 hLaTeXp를 (혹시 필요할지 알 수 없어서) 묶어둔다. hangul.sty는 HLaTeX과의 충돌을 피하기 위해 이름만 hangulp.sty로 바꾸었으므로 hltxman을 컴파일하려면 소스를 수정해야 할 것이다.

그냥 든 생각, 파일의 크기에 예민해진 요 며칠 간의 경험에 따르자면 hLaTeXp의 파일 크기가 제일 크고, HLaTeX이 그 다음, Hangul-ucs가 가장 슬림하다. 압축하여 20M면 Hangul-ucs는 모든 파일을 다 넣을 수 있다.

위의 파일을 올려둔 서버는 대단히 느리기 때문에 60M를 내려받으려면 몇 시간 걸리는 것은 각오하셔야 할 것임. (되도록 다운받지 마시기를 권장함).

Jun 26, 2006
한겨레결체 폰트 패키지
Submitted by Karnes @ 06-26 [11:39 am]
KTUG Collection 2006, Hangul-ucs를 위한 한겨레결체 폰트 패키지. ttf2hlatexfont를 이용하면 간단히 설치할 수 있겠으나, 폰트 이름 등의 표준화와 간편설치를 위하여 제작. 주의사항
  • 한겨레결체.TTF\hgrgl.ttf로 이름을 바꾸어 시스템 폰트 폴더에 가져다둠.
  • share/texmf-local에 설치되며, share/texmf-local 폴더에 removehangyeol.bat이 생긴다. 일괄제거하려 할 때 사용함.
  • 폰트 명칭은 hkbt임.
    \ifpdf
    \pdfmapfile{hkttf-pdftex.map}
    \fi
    \SetHangulFonts{hkbt}{ungt}{untz}
    \SetHanjaFonts{unbt}{ungt}{untz}
    
  • 오직 KTUG Collection 2006에서만 의미가 있고 MiKTeX 등과는 아무 상관없음.

Jun 24, 2006
DviOut : Inverse & Forward Search
Submitted by Karnes @ 06-24 [01:30 pm]
With EmEditor Free
dviout_emeditor_inverse.png


dviout_emeditor_forward.png


With TeXmaker
dviout_texmaker_inverse.png


TeXmaker Settings
texmaker-setting.png


texmaker-setting2.png


제 경우는, EmEditor inverse search 설정 끝부분을 다음과 같이 바꾸니 잘 됩니다.

"..\emeditor.exe"^s/l %d "%s"

맨끝의 따옴표 " "를 빼면 inverse search가 안되더라구요... -- IsCho 2006-06-27 15:35:30

TODO Memo
Submitted by Karnes @ 06-24 [10:06 am]
  • 'e'를 눌렀을 때 기본으로 열려야 할 에디터는 무엇일까요?

'e'는 'emacs'의 'e'가 아닌가요? :) -- 작은나무 2006-06-24 10:12:16

아, 그렇군요!!! 'e'를 눌렀을 때 기본으로 열려야 할 에디터는.... e입니다. e +%d %s로 하겠습니다. ^^ -- Karnes 2006-06-24 11:15:30

windows인 경우 notepad ^^v -- Anonymous 2006-06-24 12:51:57

Jun 21, 2006
Memo: Collection Packages
Submitted by Karnes @ 06-21 [09:32 am]
Utilities
  • makeindex etc.
    • makeindex-dh (./)
    • makeindex-dhucs (./)
    • mkindex-dhucs (test version) (./)
    • hmakeindex (./)
    • hbibtex (./)
    • ttf2hlatexfont (./) patched (./)
    • hypua2jamo (./)
    • jamo2hypua (./)
    • insertjamofiller (./)
  • Graphics
    • getbb.bat (./)
    • closepdf (./)
    • ps2eps, bbox (./)
    • jpeg2ps (./)
    • jfig (./)
  • Others
    • musixflx (./)
    • ppower4 (./)
    • detex (./)
    • makedtx (./)
    • vpe (./)
    • lgrind (./)
    • pdfbooklet (./)
    • libiconv (./)
    • pdfthumb (./)
    • perltex (./)
    • epstopdf patched (./)
    • pdfcrop (./)
    • grep (./)
    • kcupdate.bat
  • SpellX
    • spellx (./)
  • Excel2Tabular (./)
  • Math‘NTable (./)
Packages
  • htex (./)
  • Old_Hangul_Test_Suite (./)
Fonts
  • mskttfonts (./)
  • Unfonts type-1 (./)
  • Baekmuk type-1 (./)
  • Munhwa type-1 (./)
  • Palatino Linotype (./)
  • Adobe Std Pi (./)
  • Support CJKLaTeX / Unfonts (./)
  • tex4ht/ko (./)
  • XeTeX Support files

Jun 20, 2006
오늘의 데스크탑
Submitted by Karnes @ 06-20 [08:37 am]
요즘 아덜넘이 좋아하는 연예인이 탤런트 이보영 양인데 선화공주 이후 쭉... 마침내 내 컴퓨터 배경화면까지 바꿔놓았다.

mydesktoptoday.png

아덜과의 대화.
  • (문) 이보영이 이뻐, 문근영이 이뻐?
  • (답) 이보영!
  • (문) 이보영이 이뻐, ***이 이뻐?
  • (답) 이보영!
보다 못한 엄마가 나섰다.
  • (엄마) 엄마가 이뻐, 이보영이 이뻐?
  • (아빠와 아덜... 물을 걸 물어야지...) 이보영!
그 후의 일은 상상에 맡깁니다.

용감하십니다. 이 글을 쓰신 것을 보면 아직 살아계신 것만은 분명한데... -- 작은나무 2006-06-20 12:12:47

식사는 하셨습니까? 왠지 주부파업이라도 일으키셨을 듯한 느낌이 드는군요. 본의아니게 다이어트를 하실 가능성도 배재하기 힘들듯 하네요. -- Anonymous 2006-06-20 19:40:46

Jun 18, 2006
세벌식에 도전하다
Submitted by Karnes @ 06-18 [10:50 pm]
세벌 자판은 예전에 잠시 연습한 적이 있기는 하나 제대로 사용한 적은 없다. 맥을 쓰다보니 자판까지 바꾸는 게 낫겠다는 생각이 들게 되다니 참 사람잡는 일이다. 중세국어 입력 때문에 393 자판을 보고있다가 차라리 이참에 세벌식으로 전환하자고 생각하게 된 것이다. 현재는 자판 위치를 겨우 외우는 정도. 속도가 나려면 한참 인내심을 발휘해야할 듯. 잠시간 세벌 자판을 연습해본 소감.
  • 생각보다 왼손 사용도가 낮지 않다. 그러나 쉬프트 사용도는 확실히 줄었다. 이것만으로도 손의 피로도가 감소한다고 할 수 있을 것이다.
  • 역시 세벌식 최종은 기호문자 입력을 위한 한영전환 빈도가 좀 높다. 특히 라텍 입력에는 약간의 불편을 피할 수 없을 듯. 역슬래시가 있는 것을 고마워해야하나. (홑/겹) 따옴표는 난관.
  • 받침위치 외우기가 좀 피곤하다. 특히 복받침.
  • 세벌 자판의 장점이 적어도 “속도”에 있는 것은 아닐 것 같다. 속도는 개인적 숙련의 문제일 뿐이다. 같은 조건에서 세벌식이 좀더 속도가 나는 경우가 있더라도 그것이 “치명적인” 장점이라고 해야할까는 잘 모르겠다.
  • 역시 문제는 전환비용을 상쇄할 만한 효용이 있는가이겠다. 사람마다 다르기야 하겠지만. 나의 경우는... 아직...

MS windows를 쓰신다고 가정하고, 세벌식을 사용하신 다면 windows의 기본 IME를 사용하지 마시고 김용묵님의 날개셋 (http://moogi.new21.org/)을 검토하여 보실 것을 권합니다. 여기서 설정을 잘 맞춰두면 "날"을 두벌식으로 타이핑한다고 가정하며 (ㄴ+ㅏ+ㄹ)로 치셔야 하지면 (ㄴ+ㄹ+ㅏ)로 입력을 하셔도 "날"이 입력되는 재미있는 경험을 하실수 있습니다. 저도 세벌식 390 사용자입니다만, 이제는 익숙하여 져서 두벌식으로 옮겨가기가 쉽지않습니다. 제가 생각하는 세벌식의 장점은
  1. 자판을 세벌식으로 설정하여 두면, 제 컴퓨터는 남들이 사용하기 힘듦니다 ^^;
  2. 왼손의 의존도가 적다는 등의 이야기 때문인지 왠지 조금 덜 피로한 듯한 기분이 듦니다.
뭐, 이제는 두벌식, 세벌식을 떠나, 그냥 익숙하여 져 있으므로 사용하고 있다고 생각되네요. -- Anonymous 2006-06-20 19:46:25

Jun 18, 2006
urw garamond pfbs
Submitted by Karnes @ 06-18 [12:35 am]
CTAN에 있는 폰트 파일인데... 설치할 때마다 다운받는 것이 귀찮아서 압축해두었음.
@urwgara.zip (269.15 KB)

Jun 16, 2006
KTUG Collection TODO list
Submitted by Karnes @ 06-16 [09:26 pm]
  1. basic TeX implementation
    1. Web2C system
    2. dvi viewer
    3. GhostScript
  2. Utilities
    1. GSView
    2. GraphicsMagick
    3. SpellX
    4. XPdf/win utilities
    5. getbb
    6. vpe.exe
    7. libiconv
    8. useful perl scripts
    9. MiKTeXTools
  3. Editors
    1. TeXmaker
    2. OLETeX
    3. TPX : drawing program
    4. Free commander(?) : redistributable?
    5. macro utility
  4. texmf-KTUG / macros
    1. Hangul-ucs 3.0.2
    2. HLaTeX 1.0.1
    3. DHHangul, Omega-CJK, hangul-k
    4. Old Hangul Test Suite (without fonts)
    5. XeTeX/korean support (with ConTeXt support)
    6. CJKLaTeX/ korean support (with UNFONTS support)
  5. texmf-KTUG / additional macros
    1. 학위논문스타일
    2. PublisherProvidedStyles
    3. aps
  6. texmf-KTUG / fonts
    1. UHC
    2. UNFONTS
    3. tex4ht korean fonts
    4. UNFONTS type-1
    5. Munwha type-1
    6. baekmuk type-1
    7. Wansung/SaeMyungjo
    8. Old Hangul Fonts (without Truetype font file itself)
    9. Basic Windows Fonts (batang/gulim) support
    10. Adobe Std Pi
    11. linotype palatino
  7. texmf-KTUG / sample documents
    1. HLaTeX samples
    2. Hangul-ucs samples
    3. Old-Hangul samples

Notes:
  • memhangul-ucs는 제외함
  • memhangul-ucs documents 제외함
  • ConTeXt/CP949 제외함
  • MiKTeX 제외함

  • CD 2장? 한 장으로는 도저히 안 될 듯. DVD로 제작?
  • MiKTeXTools의 Windows port가 어렵거나 지연된다면, basic implementation에 *충분한* 매크로를 미리 제공하는 방법도 생각해볼 수 있을 듯. 업데이트는? -- Karnes 2006-06-16 21:41:38

memhangul-ucs는 제외하시는 특별한 이유가 있을지요. 2005년판의 memoir의 설명을 보고 천천히 memoir를 익혀가는 시점에서 memhangul-ucs가 없어진다니, 조금 아쉽습니다. -- Anonymous 2006-06-18 19:37:23

memhangul-ucs가 없어지는 것이 아니구요... 그냥 texmf-KTUG에서 뺄까 생각하고 있는 것입니다. 그다지 중요한 패키지가 아니라고 생각해서인데... 뭐 넣어도 되겠죠. -- Karnes 2006-06-18 20:26:32

넣어 주세요에 한표입니다. :) -- hermian 2006-06-18 20:41:26

아주 중요한 것 같은데 왜 빼세요!. 저 같은 사람에게는 아주 중요합니다. 꼭 꼭 꼭 넣어주세요. --synapse -- synapse 2006-06-18 22:25:34

무슨 심오한 뜻이 있으시려니 하고 생각하다 다른 분들의 한말씀에 힘을 얻어 저도 거듭니다. memhangul-ucs 빠지면, 삐집니다. ^^ -- IsCho 2006-06-19 00:17:30

Jun 15, 2006
KTUG Collection 2006, 1차 수정
Submitted by Karnes @ 06-15 [09:30 pm]
  1. MiKTeX 포기를 고려함.
    • MiKTeX 2.5의 비표준성은 감당하기 어려움. MiKTeX의 유일한 장점은 온라인 업그레이드밖에 없는 상황에서...
    • Web2c의 Windows port를 이용할 것. 안되면 XEmTeX의 소스를 가져다가 직접 컴파일한다(?).
  2. 문제는 DVI Viewer인데... 유력한 것은 DviOut 또는 WinDvi.
    • DviOut의 predefined configuration을 제공
  3. MiKTeX Tools/Linux의 Windows port를 만들 수 있다면 패키지 업그레이드 문제는 해결될 것임.
  4. GSView는 과연 pdfsync를 지원하지 않을 것인가?
  5. editor : TeXmaker

  6. 디렉토리 구조
    /TeX/bin
    /TeX/share/
                        texmf-distrib
                        texmf-config/{dvipdfm,ttf2pk,web2c}
                        texmf-local
                        texmf-KTUG
    


저는 윈도에서 LaTeX을 잘 안 쓰지만, 전부터 MiKTeX 말고 다른 방법은 없는가 고민을 많이 했습니다. 아주 예전에는 fpTeX을 썼었지요. 그리하여 TeX Live의 Win32 판 소스를 설치하여 무언가를 해 보려다 그만두었습니다. 혹 실험과 도움이 필요하시면 연락 바랍니다. 종강을 하여 약간 편해졌습니다. -- MadToad 2006-06-15 22:15:32

감사합니다. 지금 제 생각은 KTUG Collection을 위한 Implementation을 (어디서 가져오든 새로 만들든) 별도로 만들고 MiKTeX 지원은 홍석호 님의 HPack으로 가는 것이 어떨까 하는 정도입니다. MiKTeX은 여전히 더많은 사람들이 사용하겠지만요. 현실성이 없어서 중단하기는 하였지만 저는 한때 CygWin/teTeX이 어떨까까지 생각한 적도 있었습니다. 좀 편해지셨다니 다행입니다. 일간 한번 뵙기를 바랍니다. ^^ -- Karnes 2006-06-16 01:22:27

그런 방향이라면 W32TeX을 모델로 해서 Web2c Windows Port + 한국어 관련 도구/패키지 + MiKTeX Tools + 설치프로그램 + 편집기 등 부가 도구 이런 식으로 해야 하나요? -- MadToad 2006-06-16 08:51:31

Jun 14, 2006
텍스트 그리스 문자
Submitted by Karnes @ 06-14 [09:34 pm]
dhucsdoc에 보면 hangul-ucs는 그리스 문자(특히 윈도 입력기 ㅎ 행으로 얻어지는 것)를 특수문자 취급하지 않는다는 곳이 있다. KTUGOperate:17989에서 이 그리스 텍스트 문자들을 특수문자로 처리하게 하는 정의파일을 만든 것이 있어 여기에 보관해둔다. 현재의 hanja serif font에 의해 식자된다.

Jun 12, 2006
가로쓰기에서 훈민정음의 성조점
Submitted by Karnes @ 06-12 [04:54 am]
일부는 "방점"이라 하고 어떤 곳에서는 "사성점"이라 하는데, 입성은 "점 더함은 같으나 빠르다"고만 하여 점더하기와는 다른 것이므로 "사성점"이라 할 수는 없다고 본다.

문제는, 이 점(여기서는 "성조점"이라 부르기로 함)을 가로쓰기에서 어떻게 구현할까 하는 것이다. 분명히 "왼녘에 점을 찍는" 방법은 종서 체계에 알맞은 방법으로서 횡서 환경에서도 동일한 정도의 가독성을 나타내지는 않을 것이기 때문이다.

게다가, 이 점은 글자 그 자체의 일부로 간주되어야 할 것이므로 흔히 하듯이 한 글자 폭을 차지하도록 가운뎃점과 가운데 쌍점을 찍어서 표기하는 것은 피해야 한다. 즉 성조점이 한 글자를 차지해서는 안된다.

세로쓰기에서 오른쪽에 찍는 점은 분명히 횡서에서 상점에 상당할 것이다. 그렇다면 왼쪽에 찍는 점은 하점이 되어야 하는가. 그러나 글자의 아래쪽에 점을 찍는 것이 과연 독서를 방해하지 않을까?

이런저런 고민을 하다가, 결국 타협하기로 하였다. 점을 왼쪽 아래에 찍자는 것이다. 그 결과가 다음과 같다. (희한하게도 nbatang에는 성조점이 비어 있는 것 같다. hbatang에는 착실하게 들어 있으나 위치가 좋지 못하다.) 개인적인 느낌으로 적어도 횡서에서는 이 정도가 적절하다고 생각한다. 이 폰트는 KTUGFaqMook 5월호 부록에 포함되어 있다.

tonemark.jpg

Jun 10, 2006
문단 안의 행의 개수
Submitted by Karnes @ 06-10 [01:28 pm]
이왕 시작한 거, 한 문단의 행수를 세어보기로 한다. lineno 구현을 참고.
\documentclass{article} \usepackage{dhucs} \newwrite\xmyOutput\def\xOutputName{\jobname.tmp} \newcommand\showmethenumber{% \IfFileExists{\jobname.tmp}{\input{\jobname.tmp}}{??}% } \newbox\numberbox \newcount\numlines \newcount\linenum \def\numberpar#1{% \setbox\numberbox=\vbox{\noindent\strut #1\phantom{'}\strut $$\global\numlines=\prevgraf$$} \setbox\numberbox=\vbox{\noindent\strut #1\phantom{'}\strut} \hbox to\hsize{\hss \vbox{\loop\ifnum\numlines>0\global\advance\linenum by1 \hbox to1.5in{\hfill$\scriptstyle\the\linenum$\ \ } %%% 행번호를 왼쪽에 찍지 않으려면 다음 행으로 대치 % \hbox to0in{}% \advance\numlines by-1\repeat}\box\numberbox}} \makeatletter \newenvironment{countparlines}% {\linenum=0 \openout\xmyOutput\xOutputName }% {% \par We have \the\linenum~lines. \protected@write{\xmyOutput}{}{\the\linenum\string\ignorespaces}% \closeout\xmyOutput } \makeatother \begin{document} The following paragraph has \showmethenumber~lines. \begin{countparlines} \numberpar{% \indent TeX(텍)은 탁월한 조판 프로그래밍 언어입니다. 한글 텍 사용자 그룹은 텍과 그 파생 매크로 집합인 LaTeX, ConTeXt, AMSLaTeX 등을 사용하여 논문을 작성하거나 프로그래밍하거나 책을 만들거나 하는 일을 하는 사용자들의 모임입니다. 텍에 대하여 궁금하시면 TeX 페이지를, LaTeX에 대해서는 LaTeX 페이지를 참조하십시오. 텍을 처음 사용하신다면 처음 시작하기를 읽어보시기 바랍니다. 이곳에서는 질답 게시판을 통하여 의견을 나눌 수 있고 위키나 기고 게시판을 통하여 유용한 지식을 다른 사람과 공유할 수 있습니다. Happy TeX'ing. } \end{countparlines} TeX(텍)은 탁월한 조판 프로그래밍 언어입니다. 한글 텍 사용자 그룹은 텍과 그 파생 매크로 집합인 LaTeX, ConTeXt, AMSLaTeX 등을 사용하여 논문을 작성하거나 프로그래밍하거나 책을 만들거나 하는 일을 하는 사용자들의 모임입니다. 텍에 대하여 궁금하시면 TeX 페이지를, LaTeX에 대해서는 LaTeX 페이지를 참조하십시오. 텍을 처음 사용하신다면 처음 시작하기를 읽어보시기 바랍니다. 이곳에서는 질답 게시판을 통하여 의견을 나눌 수 있고 위키나 기고 게시판을 통하여 유용한 지식을 다른 사람과 공유할 수 있습니다. Happy TeX'ing. \end{document}

lineno의 구현을 테스트해본 것입니다. everyline의 왼쪽에 행번호를 붙이는 거지요. 그리고 문단이 끝난 다음에 \prevgraf에 의한 값을 외부 파일에 써두었다가 읽어들이는 것... 그 정도입니다. -- Karnes 2006-06-10 13:54:30

실은 문단이 시작하기 전에 다음 문단의 행수를 알고 싶으면 label-ref를 이용하는 것이 맞는데, 아래 이상한 매크로를 작성한 뒤끝이라 그냥 이렇게 해봤습니다. label(linelabel)-ref는 lineno 패키지에 아주 잘 구현되어 있으니까 별도로 할 필요를 못 느꼈습니다. 이 페이지는 어차피 제가 나중에 참고할 일이 있을까봐 메모해두는 곳이니깐... ^^ -- Karnes 2006-06-10 13:57:49

아, 제가 이해력이 떨어져서 Karnes님의 의도를 잘못 파악했습니다. 최초의 엉터리 질문은 지우겠습니다. -- 작은나무 2006-06-10 13:57:49

올리지 않은 답변
Submitted by Karnes @ 06-10 [12:04 pm]
KTUGOperate:18146에 답변은 lineno를 소개하는 것으로 달았지만, 답변을 작성하는 과정에서 *문단 개수*를 세는 짧은 코드를 작성하였기 때문에 여기에 적어둔다. 여기서는 everypar를 이용해서 *문단*의 개수를 세었는데, everyline 비슷한 명령을 만들어서 진짜로 행의 개수를 세는 방법도 있지 않을까 한다.
\documentclass{article} \newcounter{mycnt}\setcounter{mycnt}{0} \newwrite\myOutput \def\OutputName{\jobname.tmp} \makeatletter \newcommand\showmethenumber{% \IfFileExists{\jobname.tmp}{\input{\jobname.tmp}}{??}% } \newenvironment{countthelines}% {\setcounter{mycnt}{0}\everypar\expandafter{\stepcounter{mycnt}}% \openout\myOutput\OutputName } {\everypar{\empty}\par We have \themycnt~lines. \protected@write{\myOutput}{}{\themycnt\string\ignorespaces}% \closeout\myOutput } \makeatletter \begin{document} The following paragraph has \showmethenumber~lines. \begin{countthelines} a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line\par a line \end{countthelines} \end{document}

자꾸 이런 글을 올리시니까, 많은 분들이, 특히 레이텍을 배우려고 하시는 분들의 눈이 @.@ 이렇게 되가지고 (레이)텍이 정말로 어려운 줄 알잖아요. (레이)텍의 대중화를 위해서 이런 글을 올리시는 것을 자제해 주세요. (ㅎㅎㅎ; 농담인거 아시죠?)

잘 봤습니다. -- 작은나무 2006-06-10 12:22:27

Jun 09, 2006
논리 연산(?) 신기한 코드
Submitted by Karnes @ 06-09 [06:34 am]
KTUGOperate:18135hoze님의 질문에 답변을 작성하다가 만든 신기한 코드. \iffoo의 진리값을 부정연산(NOT)한다.
\newif\iffoo\newif\ifNOTfoo \def\OprNOT#1{% \csname \csname if#1\endcsname NOT#1fals\else NOT#1tru\fi e\endcsname } \OprNOT{foo}
\OprNOT{foo}를 실행한 결과는 \iffoo가 true이면 \ifNOTfoo를 false로, \iffoo가 false이면 \ifNOTfoo를 true로 바꾸는 것이다. 일반적인 상황에서 \csname if...\endcsname ~\else ~\fi는 문제를 겪게 되기 쉬운데 이 경우에는 두번째 \csname이 먼저 전개되어 \if \else \fi 구문을 완성하고 그 다음에 바깥쪽 \csname가 매크로를 완성한다.

다음은 예제.
\documentclass{article}

\newif\ifA\newif\ifNOTA
\newif\ifB\newif\ifNOTB

\def\OprNOT#1{%
  \csname \csname if#1\endcsname NOT#1fals\else NOT#1tru\fi e\endcsname
}

\newcommand\testtest{
  \ifA a true \else a false\fi 
  \quad
  \ifB b true \else b false\fi

  \OprNOT{A}\OprNOT{B}
  \ifNOTA not a true \else not a false\fi
  \quad
  \OprNOT{A}\OprNOT{B}
  \ifNOTB not b true \else not b false\fi

  AND:
   \ifA\ifB tttt\else ffff\fi\else ffff\fi

  OR:
   \ifNOTA\ifNOTB ffff\else tttt\fi\else tttt\fi
}

\begin{document}

NOW:

\bigskip

\Afalse\Bfalse
\testtest

\bigskip

\Atrue\Btrue
\testtest

\bigskip

\Atrue\Bfalse
\testtest

\bigskip

\Afalse\Btrue
\testtest

\end{document}

hypua2jamo, jamo2hypua
Submitted by Karnes @ 06-08 [11:06 pm]
KTUGFaqMook 5월호 부록에 포함된 자모 <-> 한양PUA 변환 스크립트의 윈도 실행파일을 여기 올려두기로 한다. 이 스크립트는 여러 가지로 요긴하게 쓰일 것으로 기대. hypua2jamo는 복잡한 옵션이 주어져 있지만 jamo2hypua는 자모 문자만 찾아서 변환하면 되는 것이기 때문에 별 옵션이 필요가 없다.
$ hypua2jamo [options] <input.file >output.file
$ jamo2hypua <input.file >output.file
스크립트를 만들어주신 김도현 교수께 감사.

자모코드와 음절코드가 섞여 있는 텍스트의 자모 부분만 음절코드로 바꾸려면, 다음처럼 두 번 실행한다.
$ hypua2jamo <input_file >via_fle
$ jamo2hypua <via_file >output_file
-- Karnes 2006-06-11 17:28:03

Jun 08, 2006
메모. Hangul-ucs의 폰트 선택
Submitted by Karnes @ 06-08 [08:44 am]
\SetHangulFonts 등의 명령을 자주 쓰다보니 구차나져서...
\makeatletter
\def\FirstTwoOfFour#1#2#3#4{#1#2}
\newcommand*\SelectHfonts[2]{%
 	\ifx#2*
		\hangul@fontmap#1\@nil\hanja@fontmap#1\@nil
	\else
		\hangul@fontmap#1\@nil\hanja@fontmap#2\@nil
	\fi
}
\def\hangul@fontmap#1,#2,#3\@nil{%
	\ifx#1*\def\h@ng@ls@rif{unbt}\else\def\h@ng@ls@rif{#1}\fi
	\ifx#2*\def\h@ng@ls@ns{ungt}\else\def\h@ng@ls@ns{#2}\fi
	\ifx#3*\def\h@ng@lt@z@{untz}\else\def\h@ng@lt@z@{#3}\fi
	\SetHangulFonts{\h@ng@ls@rif}{\h@ng@ls@ns}{\h@ng@lt@z@}%
	\def\hfontfamilynameprefix{\expandafter\FirstTwoOfFour\h@ng@ls@rif}%
}
\def\hanja@fontmap#1,#2,#3\@nil{%
	\ifx#1*\def\h@nj@s@rif{unbt}\else\def\h@nj@s@rif{#1}\fi
	\ifx#2*\def\h@nj@s@ns{ungt}\else\def\h@nj@s@ns{#2}\fi
	\ifx#3*\def\h@nj@t@z@{ungt}\else\def\h@nj@t@z@{#3}\fi
	\SetHanjaFonts{\h@nj@s@rif}{\h@nj@s@ns}{\h@nj@t@z@}%
}
\makeatother
사용법은 다음과 같음
  • 전체 정의
    \SelectHfonts{utbt,utgt,uttz}{utbt,utgt,utgt}
    
  • 한자 부분을 한글 부분과 같게. 주의. 은타자는 한자가 없으므로 타자체로 은타자를 설정한 경우 이 방식을 쓰면 ttfamily에서 오류.
    \SelectHfonts{utbt,utgt,utgt}{*}
    
  • 몇 개만 바꿀 때. 별표 부분은 모두 기본폰트(은글꼴)로 설정됨.
    \SelectHfonts{utbt,*,*}{*,*,utgt}
    
특히 \hfontfamilynameprefix를 자동으로 설정해주는데, 이 변수가 설정되면 memhangul-ucs의 경우 문장부호 등에 약간의 변화가 생김. 예를 들면 \bnm, \cntrdot 등이 이 변수에 영향을 받으므로 미리 설정해둠.

다시 돌아보는 피씨방알바 우스개
Submitted by Karnes @ 06-07 [06:05 pm]
오래된 유머이기는 하지만.... 오늘 "MiKTeX을 다시 설치하세요"라는 답변을 달고 나니 문득 생각이 났다. (Windows에서) 가히 만병통치약인 "껐다켜기"와 "다시 설치"...

PC방 알바의 대답

Q : 캠 화면이 안뜹니다. 어떻게 해야 합니까?
A : 캠은 시스템 과부하를 가져옵니다. 껐다 켜십시오.

Q : 캠 화면은 뜨는데 목소리가 안들리는데요. 어떻게 해야 하죠?
A : 일시적인 서버의 렉 현상입니다. 껐다 켜십시오.

Q : 베넷 접속이 안됩니다. 해결책은?
A : 베넷 서버의 문제이던지 피시방 회선의 일시적인 렉입니다. 껐다 켜십시오

Q : 베넷 접속에는 성공했는데.. 패스워드가 틀렸다고 자꾸 지랄입니다.
A : 베틀넷 서버는 이중 데이터베이스 구조를 가지고 있고, 5월달 동안 아시아 서버 분리 작업을 하고 있습니다. 그러므로... 껐다 켜십시오.

Q : 갑자기 치명적 오류라는 말이 뜨면서 컴이 먹통이 됐습니다. 어떻게 해야 합니까?
A : 껐다 켜십시오.

Q : 앗! 이번엔 치명적 오류라는 말 대신에 익스플로러 에러가 나는데요?
A : 껐다 켜십시오.

Q : MP3가 나오다가 딕딕 거리면서 노래가 안나오는데요?
A : 시스템 과부하입니다. 껐다 켜십시오.

Q : 나우누리 접속이 안되는데요. 해결책은?
A : 나우 원래 그런거야 뻔하지 않습니까. 껐다 켜십시오.

Q : 이번에는 유니텔 접속도 안되는데요?
A : 다른 통신사라고 별 수 있습니까. 껐다 켜십시오.

Q : 갑자기 키보드가 안 먹혀요. 어떻게 하죠?
A : 가끔 키보드가 맛이 가는 경우가 있습니다. 껐다 켜십시오.

Q : 로그스피어가 엄청 느린데요. 어떻게 하죠?
A : 시스템 리소스 부족입니다. 껐다 켜십시오.

Q : 게이밍 존에서 레인보우가 실행이 안되요. 어떻게 하죠?
A : 접속 불량입니다. 껐다 켜십시오.

Q : 레인보우 잘했는데.. 메뉴가 이상하게 나와요. 어떻게 하죠?
A : 비디오 카드와 CPU의 충돌현상입니다. 껐다 켜십시오.

캠과 레인보우 관련 Q & A를 제하고 모두 제 얘깁니다. ^^ -- Progress 2006-06-07 18:55:03

윈도우를 사용하는한 껏다켜기보다 쉬운 문제 해결법은 없습니다. (라고 믿고 있고, 경험하고 있습니다. 심지어는 DB server도 같은 방식으로 처리하는 경험도 있었습니다. ^^;) --likesam -- Anonymous 2006-06-07 22:40:54

Q: 컴이 자꾸 리부트되고 아무것도 할 수 없어요.ㅠㅠ
A: 바이러스입니다. 끄십시요. -- Anonymous 2006-06-10 04:20:26

Jun 02, 2006
xindy binaries for mac os x
Submitted by Karnes @ 06-02 [11:50 am]
이호재 님이 xindy 얘길 하셔가지고서리... 말 그대로 날밤을 깐.... X( 축구 끝나는 걸 보고 시작해서 여섯 시가 넘어서여 얻은 바이너리 파일들이나, 아직 제대로 동작하는지는 테스트해보지 못했습니다. 혹시 맥을 쓰시는 분이 계시다면 테스트를 부탁합니다. powerpc/G4, OS X 10.4.4, fink 10.4-transitional 상태에서 컴파일한 것입니다.

(파일을 풀면 세 개의 파일이 나오는데, linux용 xindy 일괄 설치 파일(xindy-2.2-rc2-linux.tar.gz)을 README에 따라 설치한 다음 이 세 개의 파일만 교체해주면 되어야 합니다. tex2xindy는 bin/, 나머지 rte(run)와 mem 파일은 lib/ 아래에 오도록 배치합니다.)

이걸 컴파일하기 위하여 fink install clisp 하였는데, 실행시에도 필요할까요?

윈도용(cygwin)으로도 어쩌면 대략 될 것 같다는 느낌이 들기는 하는데 현재 cygwin이 깔려 있는 내 윈도 박스가 조용히 지낸 지 어언 몇 달... 아무래도 이걸 다시 살려야 할 듯... (윈도 돌아가는 컴퓨터가 피료해요... ^^ )

잘 되면 김도현 교수님을 졸라서 xindy-dhucs.pl을 하나 만들어달래야죠... ㅎㅎ

음... 일단 작동은 하네요. dhucs에서 만들어진 .idx에서 한글을 strip off(makeindex-dhucs의 한글 변환 부분만 발췌해서...)해서 테스트해보았는데 일단 default로는 그럭저럭 돌아갑니다. 문제는 한글에 맞는 xdy를 만드는 것인데... 이건 정말 난관이로군요. 당분간 포기. 한글이 아니라 다른 언어라면 상당히 요긴하게 쓰일 수 있을 듯도 합니다. -- Karnes 2006-06-02 17:40:08

TLC2에서도 아시아 언어는 지원하지 않는다고 말하고 있습니다. 저는 불어 같은 라틴 문자의 경우보다는 (영어로 대충 처리해도 되니까) 러시아어와 그리스어에 써 보고 싶습니다. DOS 버전을 회사에 출근하면 시도해 보겠습니다. 밤을 새셨다니 송구스럽습니다. -- Anonymous 2006-06-04 01:35:16