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.3. TeX Live 설치 ¶
- TeX Live 설치에는 두 가지 방법이 있다.
- Ubuntu 배포판의 TeX Live를
apt
로 설치하는 방법 (관리가 간편하고 설치가 쉬우나 최신 texlive가 아니고 tlmgr을 이용한 사용자화가 어렵다.)
$ sudo apt update && sudo apt install texlive
- ctan 배포판의 texlive를 설치
- Ubuntu 배포판의 TeX Live를
- 설치하기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
이라는 실행 파일을 요구한다.
python3
을
python
으로 심볼릭 링크를 걸어두면 된다.
- 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
로 참조할 수 있다.
- Ubuntu에서 설치한 Noto 폰트는
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.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를 한 번 부른다.
- 한글 입력기를 설치하면 해결된다. fcitx라면
- 계단 현상 문제
- Linux GUI를 쓸 때 계단 현상으로 그래픽 품질이 나빠 보일 수 있다. 이 경우는 WSL이나 Linux의 문제가 아니라 Windows의 디스플레이 배율 때문에 그런 것으로, Windows의 디스플레이 배율이 150%, 175%와 같이 100의 배수로 설정되어 있지 않으면 이런 현상을 겪게 된다. Linux 쪽에서는 anti-aliasing을 적용해서 출력하지만 Windows가 디스플레이 배율을 적용해서 확대할 때에는 anti-aliasing을 적용하지 않다 보니 생기는 문제다. 100%, 200%, 300%과 같이 100의 배수로 설정하면 anti-aliasing이 적용된 모습을 확인할 수 있다.
4.1. 유틸리티 ¶
- ghostscript
$ sudo apt install ghostscript
- pygments를 설치한다.
$ sudo apt install python3-pygments
- arara를 실행하려면 default-jre를 설치한다.
$ sudo apt install default-jre
- spix를 실행하려면 tlmgr install spix로 충분하지만
python
이라는 이름의 프로그램이 존재해야 한다.$ sudo ln -s `which python3` /usr/local/bin/python
5. Microsoft Windows 10에서 사용하려면 ¶
WSLg는 windows 10을 지원하지 않는다. 그러므로 이 글의 1.34 버젼을 참조하라. 혹은 X server를 windows에서 실행시켜야 하며, 넷사랑의 Xmanager, Xming X server for Windows, Cygwin/X X Window등을 n살펴볼 수 있다.