요약
이 강의는 강좌의 첫 단원으로, 강좌의 학습 계획 전체를 제시한다. 강좌의 목적, 대상 학생, 전제로 하는 얼마 안 되는 지식, 그리고 이 강좌가 이어지는 후속 강좌를 밝힌다. 강좌가 세우는 일곱 가지 전체 학습 목표를 제시한다. 일곱 단원과 각 단원을 이루는 강의를 설명한다. 강좌가 요구하는 총 학습량, 그 단원별 배분, 권장 학습 속도, 그리고 호환 학점으로의 환산을 추정한다. 각 강의의 구성 방식과 진도를 평가하는 방식을 설명하고, 끝으로 이 강좌를 공부하는 방법에 대해 조언한다.
학습 목표
- 강좌의 단원 순서를 설명하고, 각 단원이 이후 단원에 무엇을 주는지 설명한다.
- 강좌의 전체 학습 목표를 진술하고, 어느 단원이 각 목표에 기여하는지 알아본다.
- 단원별 추정 시간으로부터 강좌 또는 그 일부가 요구하는 학습량을 계산하고, 이를 바탕으로 자신의 학습 속도를 계획한다.
- 강좌의 한 강의가 어떻게 구성되는지, 그리고 코드 예제, 문제, 도전 과제, 단원 평가를 어떻게 활용하는 것이 좋은지 설명한다.
목적
이 사이트의 모든 강좌는 글쓰기를 요구한다. 수학과 물리학에서는 증명과 풀이를, 공학과 정보학에서는 보고서를, 철학에서는 논문과 텍스트 주해를, 경제학에서는 표와 그래프가 들어간 과제를 쓴다. 그러나 그 어느 강좌도 학계에서 이런 글을 조판하는 도구를 가르치지 않는다. 그렇다면 LaTeX 강좌는 한 분야의 공부에 곁들인 부록이 아니라, 자연과학에서든 인문학에서든 다른 강좌들이 기대는 공통의 토대이다. 그러므로 이 강좌는 분야를 가로지른다. 한 전공이 아니라 모든 전공에 속한다.
이 강좌는 학술적 글쓰기의 문체를 가르치지 않는다. 그것은 다른 강좌의 주제이다. 이 강좌가 가르치는 것은 학술 문서의 조판이다. LaTeX 소스를 어떻게 쓰고 컴파일하고 고치는가. 각주, 인용, 시를 포함한 본문을 여러 언어와 문자로 어떻게 조판하는가. 긴 문서에 서로 참조하는 번호 붙은 부분들로 이루어진 구조를 어떻게 부여하는가. 수학과 논리를 올바른 표기로 어떻게 쓰는가. 표, 그림, 도해를 어떻게 제시하는가. 참고문헌을 어떻게 관리하고 각 분야의 관례에 따라 어떻게 인용하는가. 그리고 학자가 자신의 연구를 전하는 다른 형식들, 곧 발표 자료, 포스터, 편지, 이력서, 여럿이 함께 쓰는 문서, 학술지나 저장소에 보내는 문서를 어떻게 조판하는가. 그 지도 원리는 LaTeX 자체의 원리이다. 어떤 부분이 무엇인지를 그것이 어떻게 보여야 하는지와 분리하여, 저자는 내용에 전념하고 조판은 프로그램에 맡기는 것이다.
강좌 전체에서 LuaLaTeX를 쓰며, 어떤 언어와 어떤 문자든 직접 쓸 수 있게 해 주는 babel과 fontspec 패키지를 함께 쓴다. 로컬 편집기로는 모든 운영 체제에서 똑같이 작동하는 Texmaker를 쓰고, 온라인 대안으로 Overleaf를 쓴다. 예제는 분야에 대해 중립적이다. 같은 절차를 화학 보고서, 철학 논문, 키케로의 한 구절, 또는 하나의 정리로 보여 준다. 분야마다 달라지는 것은 무엇을 쓰느냐이지, 어떻게 조판하느냐가 아니기 때문이다.
대상과 사전 지식
이 강좌는 이 사이트의 학습 과정 가운데 하나를 시작하는 사람을 대상으로 하며, 또한 학업이나 일의 어느 단계에서든 학술 문서를 조판해야 하는 사람을 대상으로 한다. 보고서, 학기 논문, 학위논문을 준비하는 학생, 강의 자료와 논문을 쓰는 교수자, 그리고 LaTeX를 막 시작한 연구자나 왜 작동하는 것이 작동하는지 모른 채 늘 흉내 내어 써 온 연구자이다.
이 강좌는 거의 처음부터 시작한다. LaTeX를 써 본 경험도, 프로그래밍 지식도, 수학 지식도 전제하지 않는다. 영어 지식도 전제하지 않는다. 조판 엔진의 메시지는 영어로 되어 있지만, 강좌가 보여 주는 메시지는 모두 설명하기 때문이다. 전제하는 것은 컴퓨터를 보통 다루는 능력뿐이다. 폴더를 만들고, 정해진 이름의 파일을 정해진 폴더에 저장하고, 나중에 그것을 찾고, 파일을 복사하고 옮기고 지우고, 프로그램을 설치하는 것이다. 아니면 브라우저와 Overleaf 계정이 있으면 된다. 수학을 쓰지 않는 사람은 4단원의 수식에 덜 머물러도 되지만, 그 단원을 건너뛰어서는 안 된다. 그 단원의 논리 강의는 정보학 못지않게 철학에도 쓸모가 있고, 명제를 적는 환경은 정의, 논제, 사례에도 쓰이기 때문이다.
어디로 이어지는가
이상에서 사이트 안에서 이 강좌가 차지하는 자리가 나온다. 선수 과목이 없고 모든 학습 과정(물리학, 수학, 공학, 정보학, 철학, 경제학)에 들어 있으며, 계획 기능은 어느 과정에서나 이 강좌를 맨 앞에 둔다. 다른 어떤 강좌도 그 풀이와 과제를 이 강좌로 쓸 수 있을 때 더 잘 공부할 수 있기 때문이다. 대수학과 기하학 I이나 수리논리학 I: 명제 논리를 함께 공부하는 사람은 4단원에서 증명, 진리표, 연역 나무를 생각할 때와 같은 정밀함으로 쓰는 방법을 찾게 될 것이다.
한편 이 강좌는 사이트가 앞으로 개설할 일련의 글쓰기 강좌로 들어가는 문이기도 하며, 그 강좌들은 모두 이 강좌를 선수 과목으로 요구할 것이다. 과학 글쓰기 강좌와 인문학·철학 글쓰기 강좌는 범위가 일반적이고 번호가 없다. 둘은 순서를 이루지 않기 때문이다. 그리고 기술 문서 작성, 실험 보고서, 연구 논문, 학위논문 계획서처럼 각 과정에 고유한 글쓰기 강좌가 있다. 이 강좌는 문서를 조판하는 법을 가르치고, 그 강좌들은 문서에 담길 글을 짜는 법을 가르칠 것이다.
전체 학습 목표
다음 목표들은 강좌를 마친 학생이 할 수 있어야 하는 일을 기술한다. 각 목표는 관찰할 수 있는 수행으로 진술되어 있어 구체적인 과제로 확인할 수 있다. 내용을 다루는 각 강의도 저마다 고유한 목표를 밝히며, 그 목표는 하나 이상의 전체 목표에 이바지한다. 마무리 강의는 각 목표가 어느 단원과 어느 강의에서 다루어지는지 보여 준다. 일곱 목표에는 인용할 수 있도록 번호를 붙인다.
- 목표 1. 문서를 만들고 컴파일하며, 그 오류를 진단하고 고친다. 빈 파일에서 소스를 쓰고, LuaLaTeX로 컴파일하고, 로그를 읽고, 오류와 경고를 구별하고, 엔진의 메시지에서 그 원인에 이른다.
- 목표 2. 여러 언어와 문자 체계로 텍스트를 올바르게 조판한다. 문단, 공백, 따옴표, 줄표와 붙임표. babel로 선언하는 언어와 fontspec으로 고르는 글꼴(그리스어와 라틴어 포함). 각 부분의 기능을 드러내는 서식. 각주, 인용, 시.
- 목표 3. 내부 참조가 있는 긴 문서를 구조화한다. 클래스와 쪽을 고르고, 차례와 부록을 갖춘 구획으로 나누고, 번호를 결코 손으로 쓰지 않고 참조하고, 학위논문이나 책을 여러 파일로 나누고, 자신만의 프리앰블을 모은다.
- 목표 4. 수학과 논리를 올바른 표기로 쓴다. 본문 수식과 별행 수식, 나타내는 관례에 맞는 기호와 문자 체계, 여러 줄 수식, 환경으로 선언한 정리와 증명, 그리고 결합사, 진리표, 연역.
- 목표 5. 읽기 쉬운 표와 그림을 제시한다. 격자 없이 가로줄과 수치 정렬을 쓴 표, 쪽을 넘어가는 표, 상대적 크기의 그림, 번호 붙은 플로트, 그리고 문서 안에서 TikZ로 그린 그림.
- 목표 6. 참고문헌을 관리하고 각 분야의 관례에 따라 인용한다. 문헌 데이터베이스를 만들고, BibLaTeX로 저자·연도 방식과 번호 방식으로 인용하고, 인문학의 방식대로 각주로 인용하고, 찾아보기와 용어집을 만든다.
- 목표 7. 각 학술 형식에 맞는 문서 클래스를 고른다. 논문, 보고서, 학위논문, 책뿐 아니라 발표 자료, 포스터, 편지, 이력서, 여럿이 함께 쓰는 문서, 그리고 학술지의 템플릿에 맞추거나 저장소에 내기 위해 준비하는 문서.
대체로 각 목표는 같은 순서로 한 단원에 대응한다. 그러나 첫째 목표는 단원을 가로지르기도 한다. 어느 단원에서든 예제를 하나 컴파일하고 오류를 하나 고칠 때마다 이 목표를 연습하게 되며, 나머지 모든 목표의 달성은 이 목표의 달성에 달려 있다. 일곱째 목표는 문서 클래스들을 비교하는 3단원에서부터 준비되고, 배운 것을 나머지 형식으로 넓히는 7단원에서 완성된다.
내용
강좌는 일곱 단원으로 이루어지며, 그 앞뒤를 이 강의와 마무리 강의가 감싼다. 각 단원은 도입 강의로 시작하는데, 도입 강의는 단원의 강의들, 단원이 해결하는 문제, 전제로 하는 지식을 소개한다. 그리고 종합 강의로 끝나는데, 종합 강의는 단원의 원리와 메커니즘의 사슬을 재구성하고, 그것을 강좌의 나머지 부분과 잇고, 각 강의의 문제보다 어려운 도전 과제 여섯 개를 낸다.
0단원. 강좌 소개
이 강의 하나로 이루어지며, 강좌의 목적, 전체 목표, 내용, 학습량, 설계를 정한다.
1단원. 첫걸음
그 목표는 LaTeX를 한 번도 써 보지 않은 사람이 짧은 문서를 스스로 작성하고 컴파일하고 고칠 수 있는 데까지 이끄는 것이다.
- 첫걸음: 도입.
- LaTeX란 무엇인가: 조판, 워드프로세서와 대비한 마크업 언어, 그리고 TeX와 LaTeX의 기원.
- 작업 환경: 각 시스템의 TeX 배포판, LuaLaTeX를 컴파일러로 쓰는 Texmaker, 그리고 Overleaf.
- 문서의 해부: 프리앰블과 본문, 인자를 받는 명령, 그룹과 환경.
- 컴파일과 오류 수정: 컴파일의 여러 차례 실행, latexmk, 로그 읽기, 그리고 디버깅 전략.
- 첫걸음: 종합과 도전 과제.
2단원. 텍스트
그 목표는 컴파일되는 문서에서, 어느 언어와 문자로든 학술적 글쓰기가 요구하는 정성으로 조판한 텍스트로 나아가는 것이다.
- 텍스트: 도입.
- 문단, 공백, 기호: 문단과 줄바꿈, 공백, 따옴표, 줄표, 예약 문자.
- 언어와 글꼴: babel과 언어 전환, 다조 그리스어와 라틴어, 그리고 fontspec으로 글꼴 고르기.
- 의미 있는 서식: 시각적 마크업과 대비한 논리적 마크업, 강조, 글자의 패밀리, 시리즈, 모양, 크기.
- 각주, 인용, 시: 각주, 짧은 인용과 긴 인용, 그리고 시의 조판.
- 텍스트: 종합과 도전 과제.
3단원. 문서의 구조
그 목표는 긴 문서에 고유한 구조를 주는 것이다. 그 부분들은 번호가 붙고, 차례에 실리고, 서로 참조하고, 여러 파일에 나뉜다.
- 문서의 구조: 도입.
- 문서 클래스와 쪽: 표준 클래스와 KOMA-Script의 클래스, 그리고 쪽의 설계.
- 구획, 차례와 부록: 제목, 초록, 구획의 단계, 차례, 목록, 부록.
- 상호 참조: 레이블, 그 올바른 위치, 그리고 절, 그림, 수식에 대한 자동 참조.
- 긴 문서:
\input과\include로 학위논문이나 책을 여러 파일로 나누기. - 매크로와 자신만의 프리앰블: 자신만의 명령과 환경, 그리고 다시 쓸 수 있는 프리앰블.
- 문서의 구조: 종합과 도전 과제.
4단원. 수학과 논리
그 목표는 그 구조를 생각할 때와 같은 정밀함으로 조판한 수식, 방정식, 명제, 연역으로 채우는 것이다.
- 수학과 논리: 도입.
- 본문 수식과 별행 수식: 수식 모드, 그 안에서 무엇이 달라지는지, 그리고 수식을 문단 안에 둘지 밖에 둘지.
- 기호와 표기: 첨자, 분수, 근호, 그리스 문자, 수학용 문자 체계, 연산자, 구분 기호.
- 여러 줄 수식: amsmath와 mathtools의 환경, 그 정렬과 번호 매기기.
- 정리와 증명: amsthm으로 선언하는 명제, 그 번호 매기기와 스타일.
- 논리와 연역: 결합사와 양화사, 진리표, 자연 연역 나무, 피치 상자, 표준 형식의 논증.
- 수학과 논리: 종합과 도전 과제.
5단원. 표와 그림
그 목표는 데이터, 그림, 도해를 본문처럼 분명하게 읽히고, 절처럼 번호가 붙어 참조되며, 저자가 손으로 위치를 정하지 않아도 쪽 안에 자리를 찾도록 조판하는 것이다.
- 표와 그림: 도입.
- 읽기 쉬운 표:
tabular환경, 격자 대신 쓰는 booktabs의 가로줄, 숫자의 정렬. - 복잡한 표와 긴 표: 가로와 세로로 합친 칸, 너비를 고정한 표, 쪽을 넘어가는 표.
- 문서 안의 그림: graphicx, 상대적 크기, 회전, 잘라내기, 파일 형식.
- 그림과 표의 플로트: 플로트 환경, 그 배치 지정자, 캡션, 그리고 그에 대한 참조.
- TikZ로 그리기: 좌표, 경로, 노드와 스타일, 도표, 나무, 함수의 그래프.
- 표와 그림: 종합과 도전 과제.
6단원. 참고문헌과 색인
그 목표는 문헌 데이터베이스에서 출처를 인용하여 인용과 참고문헌 목록이 각 분야의 양식으로 저절로 조판되게 하고, 찾아보기와 용어집으로 문서를 찾아보기 쉽게 만드는 것이다.
- 참고문헌과 색인: 도입.
- 문헌 데이터베이스:
.bib파일, 그 항목과 필드, 그리고 Zotero 같은 문헌 관리 프로그램과의 관계. - BibLaTeX로 문헌 인용하기: Biber와 함께 도는 처리 순서, 인용 명령, 저자·연도 방식과 번호 방식의 스타일.
- 인문학의 인용: 각주를 통한 인용, 그 라틴어 약어, 그리고 이를 자동화하는 스타일.
- 찾아보기와 용어집: 하위 항목과 참조를 갖춘 찾아보기, 여러 찾아보기의 동시 작성, 용어집.
- 참고문헌과 색인: 종합과 도전 과제.
7단원. 기타 문서와 협업
그 목표는 배운 것을 다른 학술 형식, 여러 저자가 함께 쓰는 문서, 그리고 학술지나 저장소에 내는 문서로 넓히는 것이다.
- 기타 문서와 협업: 도입.
- Beamer로 만드는 발표 자료: 프레임, 테마, 단계적 표시, 학술 발표.
- 포스터, 편지, 이력서: tcolorbox로 만든 포스터, 격식 있는 편지, 연구 업적 목록을 갖춘 학술 이력서.
- 공동 집필: 공유한 Overleaf, Git의 최소 작업 흐름, 팀의 약속, latexdiff.
- 템플릿과 출판: 학술지의 클래스, arXiv 제출, 장기 보존, 라이선스.
- 기타 문서와 협업: 종합과 도전 과제. 그 마지막 도전 과제는 강좌 전체를 하나의 완전한 학술 논문으로 모은다.
강좌 마무리
학술적 글쓰기를 위한 LaTeX: 최종 결산 강의로 이루어진다. 이 강의는 일곱 전체 목표를 되새기고, 각 목표가 어느 단원과 어느 강의에서 다루어졌는지 보여 주고, 마무리 평가의 첫 시도를 목표별로 모으고, 공부가 어디로 이어지는지 가리킨다.
학습량과 학점
강좌의 학습량은 강의 시간으로 재지 않는다. 비동기 강좌에는 강의 시간이 없기 때문이다. 재는 것은 학생의 전체 작업, 곧 읽기, 예제 재현, 문제 풀이, 복습이다. 추정은 이 사이트의 모든 강좌에서 같은 방법을 따른다. 각 강의의 본문(예제 코드 포함)을 분당 백 단어로 읽는 시간, 예제 문제 하나에 이십 분, 연습 문제 하나에 삼십오 분, 도전 과제 하나에 사십오 분, 시작 평가나 마무리 평가 한 번에 십이 분을 세고, 복습을 위해 십분의 일의 여유를 더한다.
결과
강좌의 강의들은 모두 합해 예제 문제 개, 연습 문제 개, 도전 과제 개를 담고 있으며, 그 밖에 단원 평가가 열네 번 있다. 단원별 추정 학습량을 시간 단위로 반올림하면 다음과 같다.
- 0단원, 강좌 소개: 시간 미만.
- 1단원, 첫걸음: 시간.
- 2단원, 텍스트: 시간.
- 3단원, 문서의 구조: 시간.
- 4단원, 수학과 논리: 시간.
- 5단원, 표와 그림: 시간.
- 6단원, 참고문헌과 색인: 시간.
- 7단원, 기타 문서와 협업: 시간.
- 강좌 마무리: 시간 미만.
합계는 학생의 학습 약 시간이다. 이 수치는 있는 그대로 읽어야 한다. 곧 모든 예제를 재현하고 모든 문제와 도전 과제를 푸는 학생에 대한 추정이다. 이미 LaTeX를 써 본 사람이나 도전 과제에 손대지 않고 연습 문제만 푸는 사람은 훨씬 적게 들 것이다. 프로그램을 설치해 본 적도 오류 메시지를 읽어 본 적도 없는 사람은 특히 첫 단원에서 더 많은 시간이 필요할 수 있다.
그러나 이 수치는 명목상의 것이다. 강좌의 학점은 이 수치로 정해지며, 일정한 속도로 읽고 도전 과제 하나에 사십오 분을 들인다고 가정한다. 실제 학생으로 측정되기 전까지는 현실적인 범위를 함께 제시하는 것이 좋다. 자기 편집기에서 예제를 하나하나 입력하고 컴파일할 때처럼 읽는 속도가 가정의 절반이 되고, 도전 과제 하나에 사십오 분이 아니라 칠십오 분이 든다면, 같은 방법으로 약 시간이 나온다. 따라서 예상되는 학습량은 약 시간에서 약 시간 사이에 있다. 상한은 신중한 한계이지 측정값이 아니다. 이 범위는 수강생이 실제로 들이는 시간이 알려지면 고칠 것이며, 그때까지 학점은 명목상의 수치로 계산한다.
권장 속도
속도를 부르기 위해 이 계획은 사이트의 다른 계획과 같은 기준을 쓴다. 전일제는 학점의 한 학년, 곧 약 사십 주에 걸친 약 시간, 다시 말해 주당 약 시간이며, 시간제는 그 절반인 주당 약 시간이다. 여기서 권장 속도가 나온다. 열여섯 주의 한 학기 동안 주당 약 시간, 곧 전일제의 사분의 일이다. 현실적인 범위로는 주당 시간에서 시간이다. 계획 기능은 모든 과정에서 이 강좌를 맨 앞에 두므로 그 학기는 보통 첫 학기이며, 강좌는 그 학기에 그 분야의 첫 강좌들과 나란히 진행되면서 첫 주부터 그 강좌들에 도움이 된다. 1단원과 2단원을 마친 시점, 약 시간이면 학생은 이미 풀이와 과제를 LaTeX로 조판할 수 있다.
주당 약 시간, 곧 시간제의 집중 속도로는 여덟 주에 강좌를 마칠 수 있으며, 과정의 다른 강좌를 시작하기 전에 이 강좌를 익히고 싶은 사람에게 알맞다. 주당 약 시간의 더 여유 있는 속도로는 두 학기에 걸친다. 이 경우 처음에 가장 필요한 1단원에서 3단원까지는 미루지 말고, 5단원에서 7단원까지는 둘째 학기로 남겨 두는 것이 좋다. 이 단원들은 다른 강좌에서 표, 그림, 참고문헌, 발표 자료가 필요해지는 데 맞추어 공부할 수 있다.
호환 학점으로의 환산
호환 학점 제도는 강좌를 대면 수업 시간이 아니라 강좌가 학생에게 요구하는 작업의 총량으로 잰다. 한 기관에서 마친 학업을 다른 기관에서 인정받을 수 있게 하려는 것이다. 유럽 학점 상호 인정 및 누적 제도는 볼로냐 선언 이후 유럽 대학들이 채택한 것으로, 전일제 한 학년에 학점을 배정하고 한 학점을 시간에서 시간의 학습으로 정한다. 칠레 호환 학점 제도는 칠레 대학들이 비슷한 설계로 채택한 것으로, 역시 한 학년에 학점을 배정하고 한 학점을 시간에서 시간의 학습으로 정한다.
그런데 추정한 시간을 각 구간의 양 끝으로 나누면, 강좌는 대략 에서 유럽 학점(5.3에서 6.4), 그리고 에서 칠레 호환 학점(5.2에서 6.7)에 해당한다. 두 구간의 중앙값인 학점당 27.5시간을 기준으로 삼으면 두 제도에서 같은 수 5.8을 얻고, 이를 반올림하여 6으로 한다. 유럽 학점의 경우 학점 수 는 다음과 같이 범위가 정해진다.
따라서 이 강좌에는 유럽 학점 학점과 칠레 호환 학점 학점을 배정할 것을 권한다. 이는 전일제 한 학년의 십분의 일로, 보통의 한 학기 과목에 해당한다.
강좌의 설계
운영 방식
강좌는 비동기, 온라인, 자기 속도 방식이다. 날짜도, 실시간 수업도, 마감도 없으며, 학생은 저마다 준비와 시간이 허락하는 속도로 나아간다. 강좌는 사이트의 열네 언어로 제공된다. 각 언어판에서 예제의 글은 그 판의 언어로 쓰여 있다. 각 언어를 잘 조판하는 것이 이 강좌가 가르치는 것의 일부이기 때문이다. 각 강의는 먼저 공부해 두면 좋은 다른 강의를 밝히므로 권장 순서가 분명히 드러난다.
한 강의의 구성
내용을 다루는 강의는 모두 같은 구성을 따른다. 먼저 요약과, 관찰할 수 있는 수행으로 진술한 고유한 학습 목표 목록이 있다. 이어서 설명이 나오는데, 그 중심은 코드 예제이다. 각 예제는 줄 번호와 복사 단추를 갖춘 소스를 흰 종이 위에 컴파일한 결과와 나란히 보여 주므로, 각 명령이 무엇을 만드는지 곧바로 보인다. 다른 블록들은 소스만 보여 준다. 오류 예제나 보조 파일, 터미널 명령, 또는 컴파일 로그의 실제 발췌로, 오류 줄이 강조되어 있다. 강의 끝에는 풀이가 딸린 예제 문제 세 개와 연습 문제 세 개가 있다. 연습 문제마다 접힌 힌트가 있고 그다음에 답이 있어, 학생은 풀이 과정을 미리 보지 않고 자기 결과를 확인할 수 있다.
도입 강의와 종합 강의는 고유한 구성을 가진다. 도입은 단원, 그 강의들과 그것들을 잇는 흐름, 전제로 하는 지식, 단원이 해결하는 문제를 소개하고, 시작 평가를 담는다. 종합은 단원의 원리와 메커니즘의 사슬을, 각 고리가 세워지는 강의와 각 고리가 쓰는 것과 함께 재구성하고, 그것을 앞뒤 단원과 잇고, 마무리 평가를 담고, 도전 과제 여섯 개를 낸다. 도전 과제마다 힌트, 답, 접힌 상세 풀이가 있으며, 여러 강의를 결합하고 연습 문제보다 더 많은 창의를 요구한다.
음성 읽기
각 강의는 사이트의 읽어 주기 기능으로 소리 내어 들을 수 있다. 이 기능은 기기 자체의 음성을 쓴다. 본문은 쓰인 그대로 읽히고, 본문에 언급된 명령은 뜻이 통하게 발음되며, 코드 블록은 있다는 것만 알리고 한 글자씩 읽지는 않는다. 이 덕분에 화면에서 떨어져서도 설명을 복습할 수 있다. 그러나 예제는 언제나 편집기를 필요로 한다.
평가
강좌는 점수를 매기지 않는다. 그 평가는 형성 평가이며 자기 평가에 바탕을 둔다. 연습 문제로 각 강의의 목표 달성을, 도전 과제로 각 단원의 목표 달성을 확인할 수 있다. 그 모든 경우에 최종 판정자는 엔진 자체이다. 오류도 경고도 없이 컴파일되어 요구한 것을 만들어 내는 문서는 논란의 여지가 없는 증명이기 때문이다.
여기에 단원 평가가 더해진다. 도입에 있는 시작 평가는 여덟에서 열두 문항의 짧은 자기 평가로 출발점을 잰다. 종합에서 도전 과제 앞에 있는 마무리 평가는 성취한 것을 재고 시작 평가와 비교된다. 둘 다 브라우저 안에서 바로 채점된다. 각 답에는 설명이 붙고, 전형적인 오류마다 그것을 짚어 주는 논평이 붙으며, 각 문항은 복습하면 좋은 강의를 가리킨다. 어느 쪽도 점수를 매기거나 인증하지 않으며, 결과는 학생의 브라우저에만 저장된다. 습득한 기능의 인증은 나중에 다른 플랫폼에서 이루어질 것이다. 일곱 단원 모두 두 평가를 갖추고 있으며, 최종 결산은 각 마무리 평가의 첫 시도를 전체 목표별 프로필로 모은다. 각 강의에는 사이트가 즉시 확인하는 짧은 연습도 들어 있으며, 이것도 같은 피드백의 성격을 띤다.
전체 목표에 대해서는 다음과 같은 달성의 증거를 제안한다.
- 목표 1: 오류가 여럿 있는 소스를 받아 컴파일하고, 로그만을 길잡이로 삼아 오류도 경고도 없이 컴파일될 때까지 고친다.
- 목표 2: 그리스어나 라틴어 구절, 각주, 긴 인용, 시 한 편이 들어간 텍스트를 한국어의 따옴표, 줄표, 띄어쓰기 규칙에 따라 조판한다.
- 목표 3: 짧은 학위논문을 주 파일 하나와 여러 장으로 나누고, 차례, 부록, 그리고 어떤 순서 변경에도 견디는 상호 참조를 갖춘다.
- 목표 4: 정렬된 수식, 정리와 그 증명, 나무나 상자 형태의 연역이 들어간 노트 한 쪽을 정서한다.
- 목표 5: 데이터를 가로줄과 정렬된 숫자가 있는 표로 제시하고, TikZ로 그린 도해를 곁들인다. 둘 다 플로트로 하고 번호를 붙여 본문에서 참조한다.
- 목표 6: 같은 문헌 묶음을 프리앰블만 바꾸어 저자·연도 방식과 각주 방식으로 인용하고, 인명 찾아보기를 더한다.
- 목표 7: 하나의 공통 토대에서 각자에 맞는 클래스로, 완전한 논문, 그것을 설명하는 발표 자료, 그것을 요약하는 포스터를 조판한다.
이 강좌를 공부하는 방법
이 강좌는 순서대로 공부하도록 만들어졌다. 각 단원은 앞 단원을 전제로 하며, 많은 예제가 앞선 강의의 프리앰블과 약속을 다시 쓴다. 한 강의를 건너뛰면 조만간 그리로 돌아가야 한다.
주된 규칙은 하나뿐이다. 모든 예제를 컴파일하는 것이다. LaTeX는 읽어서가 아니라 쓰고 컴파일해서 익히는 것이므로, 학생은 각 예제를 자기 Texmaker에서 재현한다. 그 설치와 설정은 작업 환경 강의에서 배운다. TeX 배포판을 설치할 수 없는 사람에게는 무료 계정으로 브라우저에서 컴파일하는 Overleaf가 있다. 사이트는 학생의 코드를 컴파일하지 않는다. 기대되는 결과를 보여 줄 뿐이고, 그것을 자기 편집기에서 얻는 것은 학생이다. 처음 단원들에서는 예제를 복사하지 말고 손으로 입력하는 것이 좋다. 눈이 놓치는 것을 손은 기억하기 때문이다. 또 예제가 컴파일되고 나면 일부러 손을 대어(중괄호 하나를 지우고, 옵션을 바꾸고, 명령을 본문으로 옮기고) 로그가 무엇이라고 하는지 읽어 보는 것이 좋다. 일부러 일으킨 오류는 나중에 알아볼 수 있는 오류가 되기 때문이다.
각 단원에는 두 확인 지점이 있다. 도입에 있는 시작 평가는 출발점이다. 단원을 공부하기 전에 아무것도 참고하지 않고 답하고, 오류가 가리키는 강의를 적어 두는 것이 좋다. 종합에서 도전 과제 앞에 있는 마무리 평가는 대조이다. 강의를 마친 뒤 역시 아무것도 참고하지 않고 답하고, 시작 평가와 비교한다. 두 평가 모두 첫 시도가 인정되며, 비교되는 것도, 최종 결산의 프로필이 모으는 것도 그 첫 시도이다. 여기서 어떤 단원을 이미 익혔다고 믿는 사람도 한 번의 평가만으로 그렇게 판단해서는 안 된다는 결론이 나온다. 마무리 평가 결과가 탄탄하고 종합의 도전 과제를 자기 편집기에서 풀 수 있다면 다음 단원으로 넘어가도 된다. 그렇지 않다면 평가와 도전 과제가 가리키는 강의들을 다시 밟는 것이 좋다.
연습 문제와 도전 과제에서는 자기 시도가 바닥났을 때에만 힌트를 열고, 답은 마지막에 확인용으로만 보는 것이 좋다. 자기 답을 컴파일하기 전에 답을 본 문제는 푼 것이 아니라 읽은 것이다. 끝으로, 배운 것은 첫날부터 강좌 밖에서 쓰는 것이 좋다. 다른 강좌의 노트, 풀이, 과제를 LaTeX로 쓰는 일이야말로 강좌가 가르치는 것을 습관으로 바꾸는 연습이며, 이 강좌가 구상된 목적이기도 하다.