본문 바로가기
Topos Uranos

요약

이 수업은 텍스트를 다루는 이 강좌의 둘째 단원을 마무리한다. 문단과 그 기호에서 각주, 인용, 시에 이르는 관례와 절차의 사슬을 다시 세우면서, 고리마다 어떤 원리가 쓰이고 그것이 어느 수업에서 세워지는지를 짚는다. 이룬 것을 강좌 계획에 비추어 자리매김하고, 예고만 했을 뿐 다음 단원들로 넘어가는 문제가 무엇인지 밝힌다. 마무리 평가에서는 시작 평가의 기능을 되풀이한다. 그리고 각 수업의 문제보다 어려운 여섯 개의 도전 과제로 끝맺는다. 이 과제들은 여러 수업을 엮어서, 잘못 조판된 글을 진단하고, 여러 언어가 섞인 문서의 결과를 예측하고, 설명에서 출발해 문서를 설계하기를 요구한다.

학습 목표

  1. 단원의 관례와 절차가 이어지는 순서를 다시 세우고, 각각이 기대는 원리를 밝힌다.
  2. 선언한 언어, 글꼴, 논리적 표시, 그리고 엔진이 문단마다 끝에서 내리는 결정이 서로 어떻게 이어지는지 설명한다.
  3. 단원이 세운 것과, 예고만 했고 다음 단원들이 펼칠 것을 구별한다.
  4. 컴파일은 되지만 잘못 조판된 글을 진단하고, 로그가 알려 주는 것과 읽어야만 드러나는 것을 가른다.
  5. 설명에서 출발해 여러 언어, 각주, 인용이 들어간 문서의 프리앰블과 본문을 설계한다.

단원에서 이룬 것

이 단원은 컴파일되는 문서에서, 조판과 각 언어의 관례에 따라 짜인 글로 나아가는 것을 목표로 삼았다. 이 목표는 도입이 앞 단원에서 이미 안다고 본 것에 기대어 이루어졌다. 엔진이 원본을 읽는 규칙, 선언의 유효 범위, 내용과 형식의 분리, Unicode를 다루는 LuaLaTeX, 그리고 컴파일 횟수이다. 그래서 지나온 길은 네 구간으로 된 하나의 사슬로 읽을 수 있다.

문단, 공백, 기호

문단, 공백, 기호를 다룬 수업은 빈 줄이나 \par로 시작하는 문단과, 문단을 시작하지 않는 줄바꿈을 구별하고, 문단의 모양과 문단 사이의 세로 간격은 클래스가 정한다는 것을 세웠다. 공백을 기능에 따라 나누었다. 늘었다 줄었다 하며 줄바꿈을 허용하는 공백, 줄바꿈을 막는 물결표, 자릿수를 나누는 좁은 공백이다. 그리고 한국어 조판은 마침표 뒤 공백을 구별하지 않으며 \frenchspacing이 이 규칙을 적용한다는 것을 보였다. 붙임표, 짧은 줄표, 긴 줄표, 빼기 기호를 구별하고, 여러 단계의 따옴표를 손으로 또는 \enquote로 조판하였으며(csquotes에는 한국어 양식이 없으므로 직접 정의한다), 줄임표도 다루었다. 또 한국어 문서는 babel의 수 처리를 받지 않으며, 수식 안의 쉼표는 중괄호로 감싸고 백분율 기호는 수에 붙여 쓴다는 것을 보였다.

언어와 글꼴

언어와 글꼴을 다룬 수업은 선언한 언어가 무엇을 정하는지 설명했다. 하이픈 넣기, 이름, 날짜, 그리고 키보드의 몇몇 약칭이다. 한글 자체의 조판 규칙은 kotex가 맡는다. 언어를 바꾸는 세 가지 방법을 무엇을 바꾸는지에 따라 구별하고, 그리스어와 라틴어에 적용했다. 세 가지 글꼴 계열, 언어마다 글꼴을 지정하는 \babelfont, 가장 쓸모 있는 OpenType 기능을 소개했고, 빠진 문자나 모양이 없는지 확인하는 법과, 문서를 다른 컴퓨터에서도 컴파일해야 할 때 TeX Live의 글꼴을 고르는 법을 가르쳤다.

의미 있는 서식

의미 있는 서식을 다룬 수업은 내용과 형식의 분리를 글의 세부까지 밀고 나갔다. 논리적 표시와 시각적 표시를 구별하고, 겹치면 뒤집히는 강조(한글에는 기울임꼴이 없으므로 한국어의 강조에는 보통 굵은 글씨나 드러냄표를 쓴다), 인자를 받는 명령과 선언의 두 형태를 지닌 글자의 세 속성, 그리고 선언으로만 존재하는 글자 크기를 살폈다. 문단의 줄 간격과 정렬은 문단이 끝날 때 정해진다는 것을 세웠고, 여기서 둘 중 하나를 바꾸는 그룹은 문단의 끝을 품어야 한다는 결론이 나온다. 기능을 이름으로 삼는 명령을 정의하자고 제안했고, enumitem을 쓴 목록과 정렬을 소개했으며, 하지 말아야 할 것으로 끝맺었다.

각주, 인용, 시

각주, 인용, 시를 다룬 수업은 학술적인 글의 장치를 조판했다. 각주(이 수업이 따르는 관례대로 각주 번호를 문장 부호 앞에 둔다), 각주 번호와 각주 본문을 따로 두는 법, 제목 속의 각주이다. 또 \enquote로 하는 본문 속 인용과 quote, quotation, \blockquote로 하는 따로 떼어 낸 인용, 제사, verse 환경의 시, 그리고 lineno로 매기는 행 번호이다. 행 번호를 가리키는 참조는 다른 모든 참조처럼 컴파일을 두 번 해야 한다.

다음 그림은 네 구간을 하나의 사슬로 모은 것이다. 가운데 열의 각 마디는 관례나 절차이며, 서로 기대는 순서에 따라 번호가 붙고, 자신이 쓰는 앞의 고리들과 호로 이어진다. 그 둘레에 떠 있는 것이 받침, 곧 사슬이 거듭 의지하는 원리들이다. 각 받침은 자신에게 기대는 고리들과 실선으로, 자신이 세워지는 고리와 점선으로 이어지며, 앞 단원에서 세워진 받침은 고리 모양으로 그려진다. 받침을 누르면 그것을 쓰는 고리가 모두 강조되고, 각 고리는 그것을 배우는 수업으로 이어진다.

사슬의 받침

  • A원본 읽기. 여러 공백은 공백 하나와 같고, 줄바꿈은 공백 하나와 같으며, 빈 줄은 문단을 끝낸다. 제어어는 뒤따르는 공백을 먹는다. 앞 단원에서 세워진다. 이 단원에서는 증명 없이 받아들인다.
  • B선언의 유효 범위. 선언은 그것을 담은 그룹이 끝날 때까지 유효하며, 뒤에 오는 중괄호는 그것을 가두지 못한다. 앞 단원에서 세워진다. 이 단원에서는 증명 없이 받아들인다.
  • C내용과 형식. 저자는 각각이 무엇인지를 선언하고, 다른 곳에서 내린 결정이 그 모양을 정한다. 앞 단원에서 세워진다. 이 단원에서는 증명 없이 받아들인다.
  • DUnicode와 글꼴. LuaLaTeX는 원본을 Unicode로 읽으며, 글꼴에 없는 문자는 PDF에서 빠지고 로그에 경고가 남는다. 앞 단원에서 세워진다. 이 단원에서는 증명 없이 받아들인다.
  • E컴파일 횟수. 참조는 한 번의 컴파일에서 보조 파일에 적히고 다음 컴파일에서 쓰인다. 앞 단원에서 세워진다. 이 단원에서는 증명 없이 받아들인다.
  • F언어가 정한다. babel로 선언한 언어가 하이픈 넣기, 이름, 날짜, 몇몇 약칭을 정한다. 한글의 줄바꿈과 문장 부호 처리, 한글과 라틴 문자 사이의 간격은 kotex가 정한다. 확립되는 곳: 8. 언어가 정하는 것.
  • G문단이 끝날 때. 문단의 줄 간격과 정렬은 문단이 끝날 때, 그 순간 유효한 값으로 정해진다. 확립되는 곳: 18. 글자 크기.
  1. 제1구간 문단, 공백, 기호

    • 문단은 빈 줄로 나누고, 줄바꿈은 줄이 단위가 되는 경우에만 쓴다.
    • 보통 공백, 물결표, 좁은 공백, 공백 없음 가운데에서 고른다.
    • 붙임표, 짧은 줄표, 긴 줄표, 빼기 기호를 제자리에 쓴다.
    • 여러 단계의 따옴표, 줄임표, 수를 조판한다.
    1. 문단과 줄바꿈. 빈 줄과 \par는 문단을 끝내며 문단의 모양은 클래스가 정한다. 줄바꿈은 줄만 끝내며, 다음 줄은 들여쓰기도 보호도 받지 않는다.

      받침: A (원본 읽기). 증명된 수업: 문단, 공백, 기호.

    2. 세로 간격. 늘어나는 간격과 \vspace는 덩어리 사이에 간격을 더하고, 쪽의 첫머리에서는 지워진다. 문단 사이 간격은 클래스가 정하므로 아껴 쓴다.

      사용: 1. 문단과 줄바꿈. 받침: C (내용과 형식). 증명된 수업: 문단, 공백, 기호.

    3. 물결표와 좁은 공백. 물결표는 줄이 끊기지 않는 보통 공백이다. 좁은 공백은 좁고 고정되어 있으며 끊기지 않고, 숫자의 묶음을 나눈다.

      받침: A (원본 읽기). 증명된 수업: 문단, 공백, 기호.

    4. 마침표 뒤의 공백. LaTeX는 문장을 끝낸다고 보는 마침표 뒤의 공백을 넓힌다. 한국어 조판은 그러지 않으며, \frenchspacing이 공백을 고르게 한다. kotex는 이를 저절로 켠다.

      사용: 3. 물결표와 좁은 공백. 받침: A (원본 읽기). 증명된 수업: 문단, 공백, 기호.

    5. 붙임표와 줄표. 붙임표는 합성어를 잇고, 붙임표 둘은 범위의 짧은 줄표, 셋은 끼워 넣은 말의 긴 줄표가 된다. 빼기 기호는 수식 안에만 있다.

      받침: D (Unicode와 글꼴). 증명된 수업: 문단, 공백, 기호.

    6. 따옴표와 줄임표. 한국어는 큰따옴표와 작은따옴표를 단계에 따라 쓰고, \enquote는 한국어 양식을 정의하면 그것을 골라 닫는다. 줄임표는 하나의 기호이다.

      받침: D (Unicode와 글꼴), C (내용과 형식). 증명된 수업: 문단, 공백, 기호.

    7. 소수와 백분율. 수식 안의 쉼표는 문장 부호이므로 중괄호로 감싼다. 큰 수는 쉼표나 좁은 공백으로 끊고, 백분율 기호는 수에 붙인다.

      사용: 3. 물결표와 좁은 공백. 받침: A (원본 읽기). 증명된 수업: 문단, 공백, 기호.

  2. 제2구간 언어와 글꼴

    • 주 언어와 보조 언어를 선언하고, 각각이 무엇을 정하는지 설명한다.
    • \foreignlanguage, otherlanguage, \selectlanguage 가운데에서 고른다.
    • 그리스어와 라틴어를 그 규칙과 알맞은 글꼴로 조판한다.
    • 글꼴과 기능을 지정하고, 빠진 것이 없는지 확인하며, 옮겨 쓸 수 있는 글꼴을 고른다.
    1. 언어가 정하는 것. babel은 언어마다 하이픈 패턴, 이름, 날짜, 약칭을 적용한다. 주 언어는 목록의 마지막 언어이거나 \babelprovide의 키 main으로 지정한 언어이다.

      사용: 4. 마침표 뒤의 공백, 6. 따옴표와 줄임표, 7. 소수와 백분율. 증명된 수업: 언어와 글꼴.

    2. 언어 바꾸기. \foreignlanguage는 짧은 대목의 하이픈 넣기와 약칭을 바꾼다. otherlanguage는 날짜와 이름까지 바꾸고 닫힌다. \selectlanguage는 그 뒤의 모든 것을 바꾼다.

      사용: 8. 언어가 정하는 것. 받침: F (언어가 정한다), B (선언의 유효 범위). 증명된 수업: 언어와 글꼴.

    3. 그리스어와 라틴어. 라틴어는 babel의 옵션이다. 고대 그리스어는 \babelprovide로 선언하며, 다성조 그리스 문자가 있는 글꼴이 필요하다.

      사용: 9. 언어 바꾸기. 받침: F (언어가 정한다), D (Unicode와 글꼴). 증명된 수업: 언어와 글꼴.

    4. 글꼴 계열과 fontspec. 주 글꼴, 산세리프 글꼴, 고정폭 글꼴은 이름으로 지정하며, 기능은 대괄호에 적는다.

      받침: D (Unicode와 글꼴). 증명된 수업: 언어와 글꼴.

    5. 언어마다 글꼴 하나. 대괄호에 언어를 적으면, \babelfont는 그 언어로 표시한 것에만 작용하는 글꼴을 지정한다.

      사용: 11. 글꼴 계열과 fontspec, 9. 언어 바꾸기. 받침: F (언어가 정한다). 증명된 수업: 언어와 글꼴.

    6. OpenType 기능. 옛 숫자와 대문자 높이 숫자, 비례 숫자와 고정폭 숫자, 작은 대문자, 합자는 글꼴 선언이나 그룹 안에서 기능으로 켠다.

      사용: 11. 글꼴 계열과 fontspec. 받침: B (선언의 유효 범위). 증명된 수업: 언어와 글꼴.

    7. 담은 범위와 이식성. 글꼴은 일부 문자 체계와 모양만 담는다. 빠진 것은 로그가 알려 주며, TeX Live의 글꼴은 완전한 설치라면 어디서나 컴파일된다.

      사용: 12. 언어마다 글꼴 하나, 10. 그리스어와 라틴어. 받침: D (Unicode와 글꼴). 증명된 수업: 언어와 글꼴.

  3. 제3구간 의미 있는 서식

    • 시각적 표시보다 논리적 표시를 고른다.
    • 겹친 강조, 글자 속성의 조합, 글자 크기를 예측한다.
    • 기능을 이름으로 삼는 명령을 정의한다.
    • 목록을 조판하고 대목을 정렬하며, 시각적 표시를 피한다.
    1. 논리적 표시. 서식 표시는 저마다 글의 한 기능에 대응하며, 그 모양은 한 곳의 정의에서 정해진다.

      받침: C (내용과 형식). 증명된 수업: 의미 있는 서식.

    2. 강조. \emph는 대비로 두드러지게 한다. 바로 선 글자 안에서는 기울임꼴을, 기울임꼴 안에서는 바로 선 글자를, 굵은 글씨 안에서는 기울임꼴을 더한다. 한글에는 기울임꼴이 없으므로 강조에는 굵은 글씨나 드러냄표를 쓴다.

      사용: 15. 논리적 표시. 받침: B (선언의 유효 범위). 증명된 수업: 의미 있는 서식.

    3. 계열, 굵기, 모양. 글자의 세 속성은 서로 독립적이며 조합된다. 명령마다 선언이 있고, 빠진 모양은 경고와 함께 다른 것으로 바뀐다.

      사용: 11. 글꼴 계열과 fontspec, 16. 강조. 받침: B (선언의 유효 범위). 증명된 수업: 의미 있는 서식.

    4. 글자 크기. 글자 크기는 선언뿐이다. 문단의 크기를 바꾸는 그룹은 문단의 끝을 품어야 한다.

      사용: 17. 계열, 굵기, 모양, 1. 문단과 줄바꿈. 받침: B (선언의 유효 범위). 증명된 수업: 의미 있는 서식.

    5. 의미 있는 명령. 기능마다 자기 명령을 프리앰블에 정의해 두면, 그 모양을 한 줄에서 바꿀 수 있다.

      사용: 15. 논리적 표시, 16. 강조. 받침: C (내용과 형식). 증명된 수업: 의미 있는 서식.

    6. 목록. 의미에 따라 글머리표, 번호, 항목 이름을 쓴다. enumitem은 표지, 간격, 번호 매기기를 정하고, \setlist는 문서 전체에 대해 그렇게 한다.

      사용: 15. 논리적 표시. 받침: C (내용과 형식). 증명된 수업: 의미 있는 서식.

    7. 정렬. 정렬 환경은 세로 간격을 더한다. 그 선언들은 더하지 않으며, 문단의 끝을 품어야 한다.

      사용: 18. 글자 크기, 1. 문단과 줄바꿈, 2. 세로 간격. 받침: G (문단이 끝날 때), B (선언의 유효 범위). 증명된 수업: 의미 있는 서식.

    8. 하지 말아야 할 것. 손으로 공백을 넣기, 굵은 글씨로 제목 흉내 내기, 밑줄 긋기는 워드프로세서를 흉내 내는 것이며, 조용히 실패한다.

      사용: 1. 문단과 줄바꿈, 20. 목록, 19. 의미 있는 명령. 받침: C (내용과 형식). 증명된 수업: 의미 있는 서식.

  4. 제4구간 각주, 인용, 시

    • 각주 번호를 제자리에 두어 각주를 달고, 표와 제목 안에서도 그렇게 한다.
    • 본문 속에서 인용하고, 긴 인용은 따로 떼어 낸다.
    • 제사와 시를 조판한다.
    • 글의 행에 번호를 매기고 그것을 참조한다.
    1. 각주. 각주 번호는 낱말에 붙이며, 이 수업이 따르는 관례대로 문장 부호 앞에 둔다. \footnotemark와 \footnotetext는 번호와 본문을 나눈다.

      사용: 1. 문단과 줄바꿈, 4. 마침표 뒤의 공백. 받침: A (원본 읽기). 증명된 수업: 각주, 인용, 시.

    2. 제목 속의 각주. 제목 속의 각주는 보조 파일로 옮겨 가 오류를 낸다. 선택 인자는 차례를 깨끗하게 지키고, \thanks는 문서 제목에 주를 단다.

      사용: 23. 각주. 받침: E (컴파일 횟수). 증명된 수업: 각주, 인용, 시.

    3. 본문 속 인용. \enquote는 언어와 단계에 맞는 따옴표를 붙이며, 기본으로 두 단계를 허용한다.

      사용: 6. 따옴표와 줄임표, 8. 언어가 정하는 것. 받침: F (언어가 정한다), C (내용과 형식). 증명된 수업: 각주, 인용, 시.

    4. 떼어 낸 인용. quote는 짧은 인용에, quotation은 여러 문단의 인용에 쓰고, \blockquote는 인용이 세 줄을 넘으면 따로 떼어 낸다.

      사용: 25. 본문 속 인용, 1. 문단과 줄바꿈. 증명된 수업: 각주, 인용, 시.

    5. 제사와 시. verse 안에서 \\는 행을 나누고 빈 줄은 연을 나눈다. 제사는 출처와 함께 절의 첫머리에 놓인다.

      사용: 1. 문단과 줄바꿈, 26. 떼어 낸 인용. 받침: A (원본 읽기). 증명된 수업: 각주, 인용, 시.

    6. 행 번호. lineno는 행에 번호를 매기고, \linelabel과 \lineref는 번호를 적지 않고도 행을 가리킨다. 컴파일을 두 번 해야 한다.

      사용: 27. 제사와 시. 받침: E (컴파일 횟수). 증명된 수업: 각주, 인용, 시.

구조를 향하여. 사슬은 이미 잘 조판된 글이 뼈대를 필요로 하는 곳에서 멈춘다. 장, 차례, 내부 참조, 자기 프리앰블이며, 이것이 다음 단원의 주제이다.