UEDRSPIHCRSSRSS

설치하기Windows/WS Ltexlive

Windows Sybsystem for Linux 환경에서 texlive를 설치하고 운영하는 방법을 설명한다.

이 문서의 이전 버전은 Windows 10 version 1903과 WSL1을 기준으로 작성되어 있었으나 현재 Windows 11의 WSLg에서 불필요한 설명이 많으므로 이를 모두 삭제하고 간명하게 하였다. (2022/10) 이 글은 Windows 11 22H2 (22621.608)을 기준으로 작성하였다.


1. 목적과 필요성

  • Windows 시스템에서 texlive win32가 아니라 Linux용 texlive를 설치 운용한다.
  • texlive는 ubuntu가 제공하는 debian 패키지 버전이 아니라 ctan의 최신 버전을 설치할 것이다.
  • WSLg를 통하여 Linux GUI 프로그램을 이용한다.
  • WSL에 설치하는 Linux는 Ubuntu를 기준으로 한다.

  • 반적으로 말해서 linux의 binaries가 더 안정적이다. win32에서 어나는 자잘한 문제들을 피해가는 데 이보다 좋은 방법은 없다. 특히 까닭없이 tex 프로그램을 차단하는 백신 프로그램의 괴롭힘에서 벗어날 수 있다.
  • pgfplot (gnuplot), minted (pygments), arara (java) 등 외부 유틸리티를 활용해야 하는 경우 Windows에서 해당 프로그램을 이 설치하는 부담이 크다. WSL 리눅스에서 이 프로그램의 설치는 간단하고 안정적으로 잘 동작하므로 이를 효율적으로 활용할 수 있다.



아래 서술에서 >는 windows의 커맨드 라인을 의미하고 $는 Linux (bash)의 커맨드 라인을 의미한다.

2. 준비

2.1. WSL 활성화

> wsl --install

2.2. wsl bash shell

> wsl

2.3. TeX Live 설치

  • TeX Live 설치에는 두 가지 방법이 있다.
    1. Ubuntu 배포판의 TeX Live를 apt로 설치하는 방법 (관리가 간편하고 설치가 쉬우나 최신 texlive가 아니고 tlmgr을 이용한 사용자화가 어렵다.)
      $ sudo apt update && sudo apt install texlive
      
    2. ctan 배포판의 texlive를 설치
  • 설치하기Linux 페이지에서 설명하는 방법을 그대로 적용하면 된다. 이후의 서술은 설치하기Linux/tlinstall의 방법을 따른다.
    $ wget https://mirror.ctan.org/tex-archive/systems/texlive/tlnet/install-tl-unx.tar.gz
    $ tar zxvf install-tl-unx.tar.gz
    $ cd install-tl-XXXXXX
    $ sudo ./install-tl
    
    • mirror.ctan.org/tex-archive 부분은 원하는 repository의 주소로 바꾸어서 시도해도 좋다. 예를 들면 mirror.kakao.com/CTAN
    • XXXXXX`는 날짜이다.

2.4. 설치 관련 팁

  • 원하는 repository 주소를 지정할 수 있다.
    $ ./install-tl --repository https://mirror.kakao.com/CTAN/systems/texlive/tlnet
    
  • 설치 디렉토리는 기본값을 그대로 사용하는 것이 좋은데 저대로 계속 진행하면 /usr/local/texlive 폴더의 권한 문제가 생기므로 항상 sudo 하여야 한다. WSL 리눅스는 기본적으로 개인 시스템이므로, 다음과 같이 하여 sudo 없이 실행할 수 있게 해두는 것이 좋다.
    $ sudo mkdir /usr/local/texlive
    $ sudo chown -R $(whoami) /usr/local/texlive
    
    • 이 조치를 install-tl 이전에 선택하면 /usr/local/bin을 쓸 수 없어서 아래 설명하는 symlinks 생성이 실패한다. 그러므로 설치는 sudo로 하고 owner를 바꾸는 조치를 설치 후에 하는 것이 좋다.
  • full-scheme이 아니라 medium-scheme 정도를 설치해두고 필요하면 texliveonfly 유틸리티로 관리하는 방법도 있다. texliveonfly는 python 스크립트인데 python이라는 실행 파을 요구한다. python3python으로 심볼릭 링크를 걸어두면 된다.
  • install-tl의 옵션 선택 화면에서 /usr/local/bin으로 실행 파을 symlink하도록 하는 것이 좋다. path 관련 번거로움을 줄 수 있다.

2.5. 폰트 관련 팁

  • XeLaTeX을 위하여 texmf.cnf를 수정하라.
    $ vi `kpsewhich texmf.cnf`
    
  • 다음 한 줄을 써넣고 저장한다.
    OSFONTDIR = ~/.fonts//;/usr/share/fonts//;/usr/local/share/fonts//
    
  • 그리고 Windows의 폰트 폴더를 심볼릭 링크한다.
    $ ln -s /mnt/c/Windows/Fonts ~/.fonts/winfonts
    
  • 부 Windows 폰트는 C:\Windows\Fonts가 아닌 C:\Users\(유저명)\AppData\Local\Microsoft\Windows\Fonts 디렉터리에 설치될 수도 있다. (예를 들어 KoPub 글꼴) 이런 글꼴이 있는지 확인해 보고 있다면 다음과 같이 심볼릭 링크를 추가한다.
    $ ln -s '/mnt/c/Users/(유저명)/AppData/Local/Microsoft/Windows/Fonts' ~/.fonts/winfonts2
    
  • texlive의 fonts 폴더를 심볼릭 링크한다. 아래 명령의 디렉터리는 TeX Live 2022 기준이므로 다른 버전을 설치한다면 그에 맞게 /usr/local/texlive/ 다음의 2022를 버전에 맞는 숫자로 바꿔주자.
    $ sudo ln -s /usr/local/texlive/2022/texmf-dist/fonts/truetype /usr/local/share/fonts/
    $ sudo ln -s /usr/local/texlive/2022/texmf-dist/fonts/opentype /usr/local/share/fonts/
    
  • Noto Korean 폰트를 설치한다.
    $ sudo apt install fonts-noto-cjk fonts-noto-cjk-extra
    
    • Ubuntu에서 설치한 Noto 폰트는 Noto Serif CJK KR 또는 Noto Sans CJK KR로 참조할 수 있다.

2.6. KTUG 사설저장소 설정

  • $ tlmgr repository add https://mirror.ischo.org/KTUG/texlive/tlnet ktug
    $ tlmgr pinning add ktug "*"
    $ wget https://mirror.ischo.org/KTUG/texlive/tlnet/ktugrepo.pub.txt &&
    tlmgr key add ./ktugrepo.pub.txt
    

3. 에디터 기타

3.1. Linux GUI

  • kate, texstudio, kile, gummi, latexilla, texworks 등 Ubuntu 에디터를 사용할 수 있다.
    • texstudio, kile 등을 설치하려 하면 apt가 ubuntu texlive를 의존성 때문에 부 설치하려 한다. 디스크 용량이 충분하다면 그냥 설치해버려도 사용에 지장은 없다. 그러나 이것이 마음에 걸린다면 더미패키지 만들기 방법을 참조
  • Linux GUI 앱을 사용할 때의 한글 입력 문제
    • 한글 입력기를 설치하면 해결된다. fcitx라면
      $ sudo apt install fcitx fcitx-hangul
      
    • 환경 변수를 설정한다.
      export XMODIFIERS="@im=fcitx"
      export GTK_IM_MODULE=fcitx
      export QT_IM_MODULE=fcitx
      
      • 이 환경변수는 ~/.bashrc에 등록해둘 수 있다.
    • fcitx를 실행한 후에 fcitx-configtool을 실행하여 Hangul을 등록하고 한/영 전환키를 설정해둔다. (Shift-Space가 제 좋은 듯)
    • 에디터를 실행하기 전에 fcitx를 한 번 부른다.
  • 계단 현상 문제
    • Linux GUI를 쓸 때 계단 현상으로 그래픽 품질이 나빠 보 수 있다. 이 경우는 WSL이나 Linux의 문제가 아니라 Windows의 디스플레이 배율 때문에 그런 것으로, Windows의 디스플레이 배율이 150%, 175%와 같이 100의 배수로 설정되어 있지 않으면 이런 현상을 겪게 된다. Linux 쪽에서는 anti-aliasing을 적용해서 출력하지만 Windows가 디스플레이 배율을 적용해서 확대할 때에는 anti-aliasing을 적용하지 않다 보니 생기는 문제다. 100%, 200%, 300%과 같이 100의 배수로 설정하면 anti-aliasing이 적용된 모습을 확인할 수 있다.

3.2. VS Code의 wsl extension

  • Visual Studio Code 에디터의 wsl 확장을 설치하면 wsl 디렉터리의 파을 편집할 수 있다.

3.3. Emacs

  • 한글 입력기를 자체 내에 갖추고 있다.

3.4. vim, nvim

  • GUI 에디터를 이용하지 않는다면 한글 입력기 없이 콘솔에서 한글 입력에 어려움을 겪지 않는다.

4.

4.1. 유틸리티

  1. ghostscript
    $ sudo apt install ghostscript
    
  2. pygments를 설치한다.
    $ sudo apt install python3-pygments
    
  3. arara를 실행하려면 default-jre를 설치한다.
    $ sudo apt install default-jre
    
  4. spix를 실행하려면 tlmgr install spix로 충분하지만 python이라는 이름의 프로그램이 존재해야 한다.
    $ sudo ln -s `which python3` /usr/local/bin/python
    

4.2. SyncTeX

  • okular를 PDF viewer로 설치하면 Kile, Emacs, TeXStudio로의 inverse search 설정을 선택할 수 있다. (Configure Okular -> Editor) 단축키는 LeftShift+Click
  • okular로의 forward search도 에디터의 실행조건을 주어서 간단하게 설정할 수 있고 그 방법을 인터넷 검색을 통해 쉽게 찾을 수 있다.

wsl_guil.png
[PNG image (483.69 KB)]

5. Microsoft Windows 10에서 사용하려면

WSLg는 windows 10을 지원하지 않는다. 그러므로 이 글의 1.34 버젼을 참조하라. 혹은 X server를 windows에서 실행시켜야 하며, 넷사랑의 Xmanager, Xming X server for Windows, Cygwin/X X Window등을 n살펴볼 수 있다.