최근 바뀜
통계
임의의 문서로
도움말
문서
토론
원본 보기
역사 보기
로그인
LaTeX3 문서 원본 보기
내위키
←
LaTeX3
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
전자 문서 조판 시스템인 [[LaTeX]]의 세 번째 버전. 착수한 지는 무척 오래 됐는데 2015년 상반기 기준으로 아직도 완전히 완성된 상태는 아니다. 현재까지 드러난 LaTeX3의 특징은, 여러 가지 [[매크로]]를 만들 때 좀 더 폭넓은 확장성을 지원하고 현대 프로그래밍의 기법을 어느 정도 활용할 수 있도록 지원하는 것이다. 매개변수를 유연하게 지원한다든가, 모듈 개념 지원, 몇 가지 자료형의 지원, 라이브러리 개념 지원과 같은 기능은 [[TeX]]이 가진 프로그래밍 언어의 성격을 강조한 것. <s>[[TeX]]으로 프로그래밍 하고 싶르면 그냥 [[LuaTeX]] 쓰면 되잖아.</s> [[TeX]] 또는 [[LaTeX]] 명령은 근본적으로는 [[매크로]]이며 [[함수]]와 [[변수]]의 구분이 뚜렷하지 않은데, LaTeX3은 적어도 개념으로라도 [[함수]]와 [[변수]]를 구분한다. 다만 [[LaTeX]] 기반으로 [[매크로]]라는 본질 자체가 변하지는 않는다. 지금까지의 [[LaTeX]] 문법에 익숙한 사람들에게는 뭔가 더 복잡해진 LaTeX3의 문법은 괴랄하고 헷갈리기 그지 없으나, [[LaTeX]] 경험이 별로 없는 사람들은 현대 프로그래밍 기법이나 관례가 녹아 있는 LaTeX3 쪽이 더 편할 수도 있다. =특징= LaTeX2ε까지는 @ 문자를 특수한 의미를 가진 기호로 사용했다. 일반 사용자들이 접근할 수 없는 (굳이 접근하자면 {{LaTeX|\makeatletter}} 명령으로 접근은 할 수 있는데 접근하지 쉽지 않게 해 놓은) [[매크로]]의 이름을 정의할 때 @ 기호를 썼다. LaTeX3에서는 더 이상 @ 기호를 쓰지 않는다. 대신 밑줄(_)과 쌍점(:)을 쓴다. 함수는 다음과 같은 형식으로 이름이 정의된다. <source lang="latex"> \[모듈]_[이름]:[매개변수 리스트] </source> LaTeX3의 함수는 예를 들어 이런 모습이 된다. <source lang="latex"> \seq_map_inline:Nn </source> seq는 모듈, map_inline은 함수 이름, Nn은 매개변수 리스트가 된다. 한편 변수는 다음과 같이 정의한다. <source lang="latex"> \[범위]_[이름]_[데이터 유형] </source> LaTeX3의 변수는 예를 들어 이런 모습이 된다. <source lang="latex"> \l_message_tl </source> LaTeX2ε에서 @ 기호는{{LaTeX|\makeatletter}}와 {{LaTeX|\makeatother}} 사이에서만 써야 하는 것처럼, LaTeX에서 밑줄과 쌍점을 쓰려면 {{LaTeX|\ExplSyntaxOn}}과 {{LaTeX|\ExplSyntaxOff}} 사이에서 써야 한다. 따라서 위와 같은 형식으로 정의되는 명령어는 문서의 본문에서 쓸 수 없다. 본문에서 쓸 명령어는 {{LaTeX|\NewDoucmentCommand}}나 {{LaTeX|\NewDocumentEnvironment}} 같은 명령으로 정의해야 한다. LaTeX3으로 패키지, 즉 .sty 파일을 만들 때에는 다음과 같은 명령어를 넣는다. <source lang="latex"> \ProvidesExplPackage {example} {2015/11/07} {0.1} {Some things I wrote} </source> 이게 나오면 이 패키지 파일 안에서는 {{LaTeX|\ExplSyntaxOn}} 및 {{LaTeX|\ExplSyntaxOff}} 명령이 없어도 LaTeX3 매크로를 인식한다. =어떻게 쓸 수 있지?= 아직까지 LaTeX3는 LaTeX2e 기반 위에서 돌아간다. 굳이 호환성을 버릴 생각도 안 하고 있다. LaTeX3를 쓰고 싶다면 다음의 두 가지 패키지를 사용한다. * expl3.sty : 완전한 LaTeX3 스타일로 매크로를 만들 수 있다. 단. LaTeX3 스타일로 만든 매크로는 문서에서 직접 쓸 수 없다. * xparse.sty : LaTeX3 스타일 매크로와 LaTeX 문서 사이의 가교 구실을 한다. LaTeX3 매크로를 이 패키지에서 제공하는 명령들로 덮어씌워서 문서에서 사용할 수 있는 명령으로 만든다. LaTeX3 매크로를 안 쓰고 기존 LaTeX 스타일 매크로를 만들 때에도 여러가지 편리하고 유연한 기능이 많이 제공되므로 이 패키지만 쓰는 사람들도 많다. 아주 간단한 예는 다음과 같다. <syntaxhighlight lang="latex"> \documentclass{oblivoir} \userpackage{expl3} \usepackage{xparse} \ExplSyntaxOn %여기서부터는 LaTeX3 모드다. % LaTeX3 스타일 매크로 \cs_new:Npn \hello_world:n #1 { Hello~world,~I~am~#1} % 문서 안에서 쓰기 위한 매크로 \NewDocumentCommand{\HelloWorld}{m}{\hello_world{#1}} \ExplSyntaxOff % LaTeX3 모드 끝. \begin{document} \HelloWorld{내위키} \end{document} </syntaxhighlight> 참고로, LaTeX3 모드 안에서는 빈칸은 모조리 무시된다. 빈칸을 넣고 싶으면 ~(틸데) 기호를 써야 한다. 기존 LaTeX이라면 틸데는 줄바꿈을 하지 않는 빈칸으로 해석되는데 LaTeX3 모드에서는 그냥 빈칸이다. LaTeX3 모드에서 줄바꿈 안 하는 빈칸을 넣고 싶으면 {{LaTeX|\nobreakspace}} 같은 명령을 써야 한다.
이 문서에서 사용한 틀:
틀:LaTeX
(
원본 보기
)
LaTeX3
문서로 돌아갑니다.
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보