LyX is a document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG). * http://www.lyx.org/ 에서 구할 수 있다. * http://faq.ktug.org/faq/LyX 를 참조한다. * [https://wiki.lyx.org/FAQ/Pronunciation 발음]: * TeX을 "tech(텍)" LaTeX을 "lay-tech(레이텍)" 또는 "lah-tech(라텍)"으로 읽지만, * LyX라는 이름은 Lyrix에서 왔으므로 "licks(릭스)"라고 읽는다. [[TableOfContents]] == 설치 방법 == 1. TeX System을 설치한다. * Windows는 MiKTeX 권장, TeXLive라면 전체 설치 권장 1. pdf viewer의 상태를 점검한다. * Windows는 SumatraPDF 권장. 시스템 기본 PDF viewer를 SumatraPDF로 해두는 것이 좋다. 1. lyx.org 사이트에서 다운로드받은 인스톨러로 설치한다. * Windows의 경우 "전체 설치"나 "사용자 설치"를 선택할 수 있다. 일반적으로 사용자 설치가 유지 관리에 쉽다. * MiKTeX을 설치해둔 상태에서 LyX를 설치하려고 시도하면 MiKTeX에 빠진 패키지와 유틸리티를 전부 가져와서 설치하는 과정을 자동으로 거친다. 따라서 시간이 꽤 걸릴 수 있다. 결국 TeXLive를 전체 설치하고 LyX를 까는 것이나 전체 설치 시간은 비슷하다. * TeXLive를 전체 설치하지 않았을 경우에 LyX가 자동으로 패키지를 다운받아 설치하는 서비스를 제공하지 않는다. 따라서 새로운 패키지를 TeXLive쪽에서 설치하였다면 그 때마다 LyX를 reconfigure해야 한다. * Linux/Ubuntu의 경우 launchpad를 이용하여 설치하는 쪽을 권장한다. {{{ sudo add-apt-repository ppa:lyx-devel/release sudo apt-get update }}} == kotex 문서 작성시 주의사항 == XeTeX 또는 LuaTeX을 사용하도록 설정하면 한글 문서를 잘 작성할 수 있다. {{{Document -> Setting}}}에서 다음 사항을 확인한다. 1. Font 설정에서 {{{Use Non-TeX Fonts}}}를 선택한다. 이것은 `\usepackage{fontspec}`을 활성화하는 것이다. 참고로 이 설정 항목 중의 Roman, Sans Serif 등의 폰트를 선택하면 그 내용이 `\setmainfont` 등으로 넘어온다. * attachment:fontspecfont.png 1. Language 설정에서 `Language:` 를 English로 하고 `Language Package:`를 `Custom`으로 한다. 패키지를 써넣는 필드는 비워둔다. 이렇게 하지 않으면 polyglossia(혹은 babel)를 자동으로 로드하기 때문에 이를 억제하려는 것이다. * attachment:suppresspolyglossia.png 1. LaTeX Preamble 설정에서 kotex 관련 설정을 써넣는다. hangulfont, hanjafont를 여기서 설정해야 한다. * attachment:kotexpreamble.png == 한글 index 생성 == LyX이 index 생성 프로그램으로 `komkindex`를 쓰게 하려면 좀 복잡한 과정을 거쳐야 한다. 현재 LyX의 기본 프로그램인 `texindy` (`xindy`)에 한국어 처리 옵션을 주는 것이 바람직하다. 1. `LyX -> Preferences`에서 `Output -> LaTeX`의 `Index Generation`을 찾는다. Processor를 `texindy`, Options에 `-C utf8 -L korean`을 써넣는다. * attachment:texindyoption.png 1. 문서에서 `Insert -> Index Entry`를 넣는 것은 `\index` 명령을 주는 것과 같다. 문서 끝에 `\printindex`를 추가하는 것은 `Insert -> List/TOC -> Index List`를 삽입한다. 이렇게 해두면 index는 자동생성된다. == oblivoir 문서 == 1. 첨부 파일을 다운로드한다. attachment:oblivoir-article-layout1.zip 2. `oblivoir-article.layout` 파일을 적당한 곳에 둔다. 3. LyX 문서를 작성할 때, `Document -> Setting`의 `Document Class`에서 `Local Layout...`을 선택하고 저장한 파일을 불러온다. 4. 약간의 경고 메시지가 나오는데 이 레이아웃이 사적으로 작성된 것이므로 해당 파일이 없으면 곤란을 겪는다는 사실을 알려주는 것이다. `Set Layout` 버튼을 눌러서 사용을 시도한다. 5. 한글 문서 설정에 관한 (위에 설명한) Font와 Language 설정을 행한다. 단 preamble에 kotex을 usepackage하는 부분은 불필요하고 (한글/한자) 폰트 설정은 preamble에서 oblivoir 방식을 쓰면 된다. 6. `oblivoir-article.layout`을 사용한 샘플 문서 attachment:sample-oblivoir.lyx.zip * 이 문서를 `File -> Export -> PDF (XeTeX)` 하면 얻어지는 pdf: attachment:sample-oblivoir.pdf == 명령행 export == 1. 다음과 같이 하여 명령행에서 pdf로 출력할 수 있다. {{{ $ lyx --export pdf4 .lyx }}} 2. `pdf4`는 XeTeX, `pdf5`는 LuaTeX을 이용하는 출력이다. 이 옵션에 xetex이나 luatex을 주면 lyx을 tex으로 변환할 수 있다. 3. 윈도우즈에서는 LyX이 설치된 폴더의 `lyx.exe`, Mac의 경우는 `/Applications/LyX.app/Contents/MacOS/lyx`을 실행하여야 한다. == Tips == === 문단 모양 드롭다운 메뉴 === * 문단 모양 드롭다운 메뉴를 여는 단축키는 `Alt-P `이다. (맥에서는 `Ctrl-P `) 메뉴가 열린 상태에서 원하는 환경의 몇 글자를 치면 (예컨대 `titl...`) 해당 문단 레이아웃이 적용된다. === Index 입력 === * 메뉴의 `Insert -> Index Entry`를 마우스로 누르면 인덱스가 입력된다. * 커서가 단어의 처음, 끝, 중간에 있다면 현재 단어가 인덱스 엔트리로 들어간다. * 커서가 단어와 단어 사이에 있고 앞뒤로 스페이스가 있는 경우에 빈 인덱스 엔트리가 형성되므로 여기에 원하는 단어를 써넣을 수 있다. * 몇 단어가 선택된 상태라면 선택된 부분이 인덱스 엔트리로 들어간다. * 별도의 단축키가 없기 때문에, (Windows/Linux) `Alt+i, d`를 누르면 빠르게 인덱스 엔트리를 입력할 수 있다. * Mac 버전은 메뉴 단축키를 사용할 수 없다. 마우스를 써야 하는데, 긴 글을 쓸 때는 손이 키보드를 떠나 마우스로 이동하는 것이 무척 비효율적일 때가 있다. 굳이 키보드로 하려면 `Cmd-Shift-/`를 눌러서 `index`라고 써넣어 메뉴 검색을 이용하는 것이 가장 빠르다. 아니면 `Cmd-Shift-/`를 눌러 메뉴를 연 상태에서 방향키로 이동하는 방법도 있다. === 여러 줄 수식 (eqnarray) === * 행중 수식은 `Ctrl-M`, 디스플레이 수식은 `Shift-Ctrl-M`으로 수식 편집 상태로 (간편하게) 들어갈 수 있다. * 이 상태에서 `Ctrl-Enter`를 누르면 필드가 생성된다. * `amsmath`가 로드된 상태에서는 `align*`(수식번호 없는 align), 그렇지 않으면 `eqnarray` 수식이 되는데, `amsmath`를 필수적으로 로드하도록 하는 것이 좋다. * `Document -> Settings -> Math Options`에서 amsmath를 Load Always로 바꾼다. * 더 많은 여러 줄 수식은 메뉴의 `Insert -> Math`에서 고를 수 있다. * 수식 편집 시 화면 아래쪽에 뜨는 math toolbar에서 align의 column과 row를 추가하거나 삭제할 수 있다. === 정의, 정리, 증명 === * `Document -> Settings -> Modules -> Theorems (AMS)`를 활성화하면 문단 메뉴에 관련 항목들이 생긴다. === 수식 instant preview === * 편집창에서 수학식을 입력하면 다음과 같은 모양으로 보인다. attachment:previewmath1.png * 메뉴의 Tools -> Preferences -> Look and Feel -> Display에서 `instant preview`를 `On`으로 한다. attachment:previewmath2.png * 그 결과, 편집창에서도 수식을 조판된 모양으로 볼 수 있다. attachment:previewmath3.png === SumatraPDF를 위한 Forward/Inverse Search 설정 === 1. LyX이 설치된 폴더의 bin\ 디렉토리 아래에 다음 내용으로 된 lyxeditor.cmd 파일을 생성한다. {{{ @echo off SETLOCAL enabledelayedexpansion set file=%1 set row=%2 REM remove quotes from variables set file=!file:"=! set row=!row:"=! %comspec% /q /c (@echo LYXCMD:revdvi:server-goto-file-row:%file% %row%)> \\.\pipe\lyxpipe.in&&type \\.\pipe\lyxpipe.out endlocal }}} 1. SumatraPDF의 `Settings -> Advanced Options`를 눌러 설정 파일이 notepad로 열리면, 다음 내용을 적어넣고 저장한다. 기존 설정 중에 ReuseInstance가 false로 되어 있을 수 있으므로 이를 아래를 참고하여 true로 수정해야 한다. {{{ ReuseInstance = true ReloadModifiedDocuments = true InverseSearchCmdLine = lyxeditor.cmd "%f" %l EnableTeXEnhancements = true UseTabs = true }}} 1. LyX을 열고 다음 설정을 행한다. * `Tools -> Preferences -> Path`의`Path prefix`에서 SumatraPDF.exe가 있는 PATH를 지정해준다. SumatraPDF를 사용자 설정으로 설치했다면 `C:\Users\\AppData\Local\SumatraPDF`이고 전체 사용자 설정으로 설치했다면 `C:\Program Files\SumatraPDF` 또는 (32비트일 경우) `C:\Program Files (X86)\SumatraPDF`일 수 있으므로 확인하여야 한다. 이 경로를 기존에 이미 있는 prefix의 뒤에 세미콜론을 붙인 다음에 이어 적는다. * `LyXServer pipe`를 `\\.\pipe\lyxpipe`라고 직접 써넣는다. * `Tools -> Preferences -> File Handling -> Converters`에서 `LaTeX (pdflatex)`을 선택하여 `Converter`를 다음과 같이 적어넣는다. {{{ pdflatex -interaction=nonstopmode -synctex=1 $$i }}} * `LaTeX (XeTeX)`과 `LaTeX (LuaTeX)`에 대해서도 위와 같은 방법으로 (컴파일러 이름을 바꾸어서) 똑같이 설정한다. * `Modify` 단추를 누른다. 1. 계속해서 다음 설정을 행한다. * LyX의 `Tools -> Preferences -> Output -> General`의 `forward search` 섹션에서 다음과 같이 적어넣는다. {{{ SumatraPDF -forward-search "$$t" $$n "$$o" }}} * 다시 `Tools -> Preferences -> File Handling -> File Formats`로 가서 `PDF (pdflatex)`과 `PDF (xetex)`, `PDF (luatex)`에 대하여 Viewer를 Custom으로 하고 필드에 `SumatraPDF`라고 써넣는다. 1. SumatraPDF와 LyX를 다시 실행한다. 1. LyX에서 문서를 열었을 때 `Forward/Reverse 버튼이 활성화되었는지 확인하라. 1. [참고] 이 설정은 잘 되면 다행이고, 잘 안 되더라도 어쩔 수 없다. == pdflatex을 위한 kotex 문서 작성 == 위의 항목에서 설명한 kotex 문서 작성은 xelatex/lualatex을 위한 것이다. kotex-utf를 사용하도록 하는 방법을 소개한다. 1. `Document -> Settings -> Language`에서 `Korean`을 고르면 무조건 CJK 패키지를 이용하고 모든 한글 문자가 `\begin{CJK}` 안에 들어간다. 이것은 우리가 원하는 방법이 아니다. 즉, 주언어는 `English`로 그대로 두어야 한다. 1. CJK 패키지가 자동으로 로드되지 않도록 하는 것이 매우 중요하다. 이를 위해서 `Document -> Settings -> Language -> Encodings`를 `Other: Unicode (XeTeX) (utf8)`로 선택하는 트릭이 있다. 비록 XeTeX을 사용할 것은 아니지만 일단 이렇게 하면 한글에 대하여 CJK 패키지가 로드되지 않는다. 1. 이 상태에서 한글 문서를 작성해도 그럭저럭 되기는 한다. 단, 이 방법으로 할 적에는 inputenc 패키지가 로드되는 것은 막을 수 없다.[[Footnote(inputenc는 kotex-utf의 경우에는 미리 로드되어도(옵션이 utf8이기만 하면) 아무 문제 없지만 이렇게 생성된 파일을 바로 xelatex으로 컴파일할 수 없다. kotex 문서에서는 inputenc를 별도로 로드하는 것을 억제하는 것이 좋다.)]] 이 문제까지 해결하려면 다음과 같이 하면 된다. 1. 사용자의 custom class layout을 하나 만든다. 이름은 kotex-article.layout이라고 하기로 하자. 내용은 다음과 같다. {{{ # \DeclareLaTeXClass[article]{My Ko.TeX Article} # \DeclareCategory{Articles} Input article.layout Provides inputenc 1 Provides CJK 1 }}} 1. 이 레이아웃 파일을 저장하고 `Document -> Settings -> Document Class`에서 불러온다. Set Layout을 선택한다. 1. `Document -> Settings -> Language`에서 언어는 English로, `Encoding`은 앞서와 같이 `Unicode (XeTeX) (utf8)`을 선택한다. 1. `Document -> Settings -> Language -> Language Package:`를 Custom으로 하고 `\usepackage{kotex}`을 필드에 써넣는다. 이렇게 하면 귀찮은 babel, inputenc, CJK 등이 자동으로 로드되는 것을 억제할 수 있어서 깔끔한 kotex 문서의 작성이 가능하다. 이 상태에서 작성한 문서가 pdflatex으로 export된다. Ctrl-R 또는 Shift-Ctrl-R로 실행되는 preview 역시 pdflatex으로부터 얻어진다. (Fontspec을 활성화하지 않아야 한다). 그러나, 전체적으로 보아서 XeTeX이나 LuaTeX을 이용하는 앞서 소개한 방법이 더 바람직하다고 본다. == LyX-hangulize == * 지금은 중단된 `KoreanUCS`를 이어받은 개인 프로젝트. * LyX의 기본 설정을 조금 수정하여 한글 문서 작성을 지원하려는 것임. * '''개인적 용도로만 사용하세요''' * 설치하여 사용할지 여부는 다음 문서를 검토한 후에 결정하시기 바람. * [https://bitbucket.org/novadh/lyx-hangulize/raw/904596bda1f42f9090ce488b30d53d40ae08bccd/howtolyxhangulize.pdf|howtolyxhangulize.pdf] * 다운로드 [https://bitbucket.org/novadh/lyx-hangulize/src/master/|LyX hangulize] ---- [[Footnote]]