KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
  • TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
    • 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
  • 사용하는 편집기는 CKeditor입니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.

자유글 Windows에서 Emacs+MiKTeX 작업환경 (docker)

2021.11.18 05:18

noname 조회 수:961

Windows에 적당한 에디터가 없다는 안타까운 글들을 보고, 그러면 차라리 Emacs는 어떤가 생각하게 되었습니다. 미니멀리스트들이 질색하는 초거대 에디터이기는 하지만 약간의 적응 기간을 거치면 이보다 편한 에디터가 다시 없다는 그 전설의 운영체제형 에디터입니다. 하필 Emacs인 까닭은 이것이 WSL Linux로부터 실행되었을 때 별도의 한글 입력기를 설정하지 않아도 자체 한글 입력 기능을 가지고 있다는 것이 가장 큰 이유였습니다. (다른 얘기지만 Emacs Windows 바이너리로 구축한 작업 환경은 생각만큼 쾌적하지 않았습니다. 개인적인 감상이겠지만요. 시스템 콜은 느리고 뭔가 버벅대는 느낌이 있었어요.)

docker로 WSL2에서 MiKTeX+Emacs 작업 환경을 꾸며본 경험을 간략히 적어둡니다. 최근 각광받는(?) TinyTeX이 아니라 MiKTeX인 이유는, Emacs/AucTeX에서 컴파일 명령을 주면 latex/xelatex 등이 실행되는데, 이 때 필요한 패키지를 가져오게 하려면 TinyTeX에서는 xelatex이 아니라 tinitex을 실행해야 하기 때문입니다. MiKTeX은 xelatex 컴파일 명령 자체가 mpm을 호출하는 (중요한) 편의 기능을 가지고 있습니다.

1, WSL2와 Docker Desktop 준비

   (1) Windows 11 build 22000 이후 버전이어야 합니다. (중요) 꼭 Pro가 아니라 Home이어도 됩니다.
   (2) WSL 2 설정을 하고, 간단한 Linux 하나를 설치합니다. 저는 Kali Linux였습니다만 Ubuntu도 괜찮을 겁니다. 구체적인 과정은 생략.
   (3) WSL 2 Linux에서 GUI 앱이 동작하도록 간단한 거 하나를 설치해봅니다. sudo apt install x11-apps. 그런 다음 xeyes가 동작하는지 확인.
   (4) Docker Desktop을 설치할 때, WSL 통합을 체크하여 둡니다.

2. 진행

   (1) Docker 실행.
   (2) WSL 명령행을 열어서 다음 명령으로 진행 (주: Linux GUI를 docker 내부에서 실행하려면 Linux bash shell에서 실행해야 하는 것 같습니다.)

> docker pull novadehi/miktexwktug
> docker volume create --name miktex
> docker run -ti --rm \
    -v miktex:/miktex/.miktex \
    -v $(pwd):/miktex/work \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e DISPLAY=:0 \
    novadehi/miktexwktug emacs

 3. 설명

    (0) 원래 이 container image는 Windows용으로 작성되었던 것은 아닙니다. Mac에서도 쓸 수 있지만 arm64용은 제작하지 못했습니다.  
    (1) emacs, auctex과 okular가 설치되어 있고, forward/inverse search 설정도 되어 있습니다. forward search는 C-c C-v이고, inverse search는 "Browser" 도구 상태에서 Shift+Left Click입니다.
    (2) MiKTeX만으로는 설치하기 귀찮은 KTUG 사설 저장소 패키지들이 미리 설치되어 있습니다.
    (3) pygments가 설치되어 있습니다.
    (4) emacs/auctex의 default engine이 xetex으로 설정되어 있습니다. 다른 엔진을 사용하려면 메뉴에서 선택하세요.
    (5) emacs의 한/영 변환키는 C+\ 말고 Shift-Space도 동작합니다.

4. 팁

    (1) Windows 폰트를 문서나 Emacs에서 사용하려면, 다음 두 줄의 옵션을 더 줍니다. *username*은 자신의 계정 이름으로 바꾸십시오.

   -v /mnt/c/Windows/Fonts:/root/.fonts/winfont
   -v /mnt/c/Users/*username*/AppData/Local/Microsoft/Windows/Fonts:/root/.fonts/locfonts

    (2) Emacs 폰트는 Options 메뉴에서 선택 가능한데, Emacs 설정을 바꾼 후에는 commit하여 사용하세요.
    (3) Emacs GUI 없이 컴파일러로만 사용하려면 굳이 WSL command prompt를 열지 않고 powershell (or cmd)에서 다음과 같이 할 수 있습니다. C:/usr/test.tex을 xelatex으로 컴파일하려면

   docker run -ti --rm \
     -v miktex:/miktex/.miktex \
     -v C:/usr:/miktex/work \
     novadehi/miktexwktug xelatex -shell-escape test.tex

scapture.jpg

 

Windows의 WSL을 싫어하시는 분이 계신 것으로 압니다. 주로 VirtualBox나 Hyper-V를 돌리는 데 부담이 된다는 이유인 것 같습니다만 어떤 것이 더 중요하냐의 문제겠지요. VirtualBox를 사용하지 않는 저같은 경우는 WSL에 꽤 호의적일 수밖에 없겠지만 VM 작업을 헤비하게 하시는 분들이야 이 접근방법이 마음에 들지 않을 수도 있을 것입니다. 그러나 아무래도 대세는 docker 아니겠어요? :-)

 

번호 제목 글쓴이 날짜 조회 수
1131 매큔-라이샤워 표기법 키보드 밖의 부호 [2] new noname 2024.05.31 10
1130 예전 샘플 문서 갱신: 금강경 file noname 2024.05.15 83
1129 daft text [1] file noname 2024.04.29 101
1128 [KTUG 문고] 이태준, 복덕방 [3] file noname 2024.05.21 104
1127 [Lilypond] W. A. Mozart, Laudate Dominum [3] file noname 2024.04.07 117
1126 색인에서 연속하는 페이지 번호 [3] file yihoze 2023.11.16 133
1125 simplebnf v1.0.0: Backus-Naur form (BNF) 문법을 간단히 표시해주는 패키지 [2] file Zeta 2023.11.24 134
1124 텍으로 작성된 인문사회계 논문 [1] 판돌이 2024.05.05 153
1123 La TeX 라텍 작성 하실 분 구합니다. [2] LaTex 2024.05.04 155
1122 [유틸리티] latexindent [1] noname 2024.03.30 156
1121 Codehigh 패키지 [7] Zeta 2023.11.23 161
1120 게임 테이블 그리기 2 file ischo 2024.02.14 161
1119 잊을 만하면 다시 돌아오는 로또 [4] file yihoze 2023.12.05 183
1118 [취미] 심심할 때는 괘를 뽑아보세요 [1] file noname 2024.04.16 184
1117 영어로 작성된 텍 파일의 철자 검사하기 [2] file yihoze 2023.11.03 190
1116 올해 학술대회는 혹시 언제일까요 [2] 크사인 2024.01.09 203
1115 님의침묵 file noname 2023.03.01 206
1114 표 그리기: Tabular 환경의 표를 tabularray로 그려보자 [2] file noname 2023.11.30 207
1113 [잡담] 이과가 사랑에 빠졌기에... [6] file noname 2024.04.09 212
1112 [소소한 팁 03] 특정 명령이 정의된 패키지 찾기 [4] file noname 2023.11.09 214



XE Login