요약
이 수업은 참고문헌과 색인을 다루는 이 강좌의 여섯째 단원을 마무리한다. 문헌 항목에서 용어집에 이르는 원리와 메커니즘의 사슬을 다시 세우면서, 고리마다 어떤 원리가 쓰이고 그것이 어느 수업에서 세워지는지를 짚는다. 이룬 것을 강좌 계획에 비추어 자리매김하고, 예고만 했을 뿐 다음 단원으로 넘어가는 문제가 무엇인지 밝힌다. 마무리 평가에서는 시작 평가의 기능을 되풀이한다. 그리고 각 수업의 문제보다 어려운 여섯 개의 도전 과제로 끝맺는다. 이 과제들은 여러 수업을 엮어서, 논문을 한 인용 스타일에서 다른 스타일로 옮기고, 경고 없이 컴파일되지만 결함 넷을 안은 참고문헌 목록을 진단하고, 플라톤에 관한 글의 각주를 예측하고, 참고문헌과 맞아떨어지는 인명 찾아보기를 만들고, 학위논문의 컴파일 과정을 다시 세우고, bibtex와 biber 모두에 쓸 수 있는 데이터베이스를 마련하기를 요구한다.
학습 목표
- 단원의 메커니즘이 놓인 순서를 다시 세우고, 각각이 기대는 원리를 밝힌다.
- 문헌 데이터베이스, 인용, 찾아보기의 결함이 거의 언제나 경고 없이 컴파일되는 이유와, 그 흔적을 어디에서, 곧 출력, biber의 출력, makeindex의 보고, 로그 가운데 어디에서 찾아야 하는지 설명한다.
- 단원이 세운 것과, 예고만 했을 뿐 다음 단원이 펼칠 것을 구별한다.
- 데이터베이스, 스타일, 그리고 인용과 찾아보기 항목과 약어의 연쇄가 무엇을 찍는지 예측하고, 의도한 것을 찍도록 소스를 고친다.
- 참고문헌, 찾아보기, 용어집이 있는 문서의 컴파일에 참여하는 프로그램들의 순서를 정하고, 그 가운데 어느 것이 스스로 실행되는지 안다.
단원에서 이룬 것
이 단원의 목표는 작업의 출처를 데이터베이스에서 인용하여 인용과 목록이 분야마다의 스타일로 저절로 조판되게 하고, 문서가 찾아보기 쉽도록 찾아보기와 용어집을 갖추게 하는 것이었다. 이 목표는 도입이 앞 단원들에서 알려진 것으로 선언한 것들에 기대어 이루어졌다. 곧, 엔진이 한 번의 컴파일에서 다음 컴파일에 읽을 것을 써 두는 여러 차례의 패스, 각각이 무엇인지 말하고 모양은 다른 곳에서 내린 결정에 맡기는 논리적 마크업, 그리고 둘째 단원의 각주와 따옴표이다. 이로써 지나온 길은 네 구간으로 된 하나의 사슬로 읽을 수 있다.
문헌 데이터베이스
문헌 데이터베이스 수업은 저작의 자료를 그것을 인용하는 스타일과 떼어 놓고, 참고문헌에 논리적 마크업의 원리를 적용했다. .bib 파일은 각 저작이 무엇인지 말하고, 스타일은 그것을 어떻게 쓸지 정한다. 이 수업은 항목과 그 유형, 고유하고 짐작하기 쉬워야 하는 키, 그리고 필드를 설명했다. biber는 biblatex의 필드 이름과 고전적인 이름을 모두 알아듣지만 bibtex는 고전적인 이름만 알아듣는다는 것을 보였다. biber가 이름을 나누는 기계적인 규칙을 세웠다. 사람 사이의 and, 성과 이름 사이의 쉼표, 소문자로 된 앞붙이, 기관 이름을 감싸는 이중 중괄호이며, 이것들의 오류는 출력에서만 보인다. 고전적인 스타일이 바꾸어 버릴 대문자를 중괄호로 보호했다. bibtex는 발음 구별 기호가 있는 라틴 문자를 z 뒤에 두고 biber는 언어에 따라 정렬하는 이유를 설명했다. Zotero에서 내보내기를 소개했다. 그리고 데이터베이스의 오류는 문서의 로그가 아니라 biber의 출력에서 찾으라고 가르쳤다.
BibLaTeX로 문헌 인용하기
BibLaTeX로 문헌 인용하기 수업은 패키지를 backend=biber로, 데이터베이스를 확장자를 붙인 \addbibresource로 불러오고, biblatex가 babel과 함께 요구하는 csquotes도 불러왔다. 과정을 분명히 했다. 엔진이 키를 .bcf에 적고, biber가 그것을 찾아 .bbl을 쓰며, 다음 패스가 그것을 조판한다. biber가 없으면 인용은 굵은 글씨의 키로 남고, Texmaker의 참고문헌 단추는 기본으로 bibtex를 실행한다. 인용 명령은 문장 안에서의 구실에 따라 골랐다. 서술형 인용에는 \textcite, 괄호 인용에는 \parencite, 스타일이 정하는 인용에는 \autocite를 쓰고, 앞주석과 뒷주석도 달았다. 저자-연도, 번호, 압축 번호, 알파벳 스타일을 비교했는데, 이들에서 번호는 sorting=none이 없는 한 인용 순서가 아니라 목록 순서를 따른다. 그리고 제목과 머리글 수준과 필터를 갖춘 목록을 조판했다.
인문학의 인용
인문학의 인용 수업은 각주 인용의 경제 규칙을 자동화했다. 첫 인용은 온전하게, 그다음은 짧게 하며, 라틴어 약어 ibid., op. cit., loc. cit.는 스타일이 계산하므로 인용을 옮겨도 거짓이 되지 않는다. verbose 계열을 두루 살폈다. \DeclareAutoCiteCommand로 이 강좌의 예처럼 각주 번호를 문장 부호 앞에 두었다. 고전은 뒷주석에 표준 번호를 적어 인용했는데, biblatex는 뒷주석이 수가 아니면 “p.” 없이 찍고, 수처럼 보이면 \nopp가 필요하다. shorthand의 약호와 그 목록을 들여왔다. 표준 스타일은 origdate를 찍지 않으므로 번역서와 그 원전은 관련 항목으로 기록했다. 그리고 키워드로 1차 문헌과 2차 문헌을 갈랐다.
찾아보기와 용어집
찾아보기와 용어집 수업은 같은 과정을 다른 프로그램으로 옮겼다. 엔진이 항목을 .idx에 쓰고, makeindex가 그것을 정렬해 .ind에 쓰며, imakeidx는 nonewpage나 noautomatic이 없는 한 makeindex를 스스로 실행한다. !로 하위 항목을, @로 정렬 키를, |로 참조와 서식을, 그리고 범위를 가르쳤다. makeindex가 바이트를 비교하여 한글은 가나다순으로 두지만 한자는 모두 한글 앞에 몰아넣고, upmendex가 한국어 규칙으로 정렬한다는 것을 보였다. 이름 붙은 찾아보기 여럿을 다루었다. 그리고 glossaries로 용어와 약어를 조판했는데, 약어는 처음 언급에서 풀어 쓰이고, makeglossaries는 패스 사이에 실행되며, 한국어 용어에는 sort=def를 썼다.
다음 그림은 네 구간을 하나의 사슬로 모은 것이다. 가운데 열의 각 마디는 메커니즘이나 규칙이며, 서로 기대는 순서에 따라 번호가 붙고, 자신이 쓰는 앞의 고리들과 호로 이어진다. 그 둘레에 떠 있는 것이 받침, 곧 사슬이 거듭 의지하는 원리들이다. 각 받침은 자신에게 기대는 고리들과 실선으로, 자신이 세워지는 고리와 점선으로 이어지며, 앞 단원들에서 세워진 받침은 고리 모양으로 그려진다. 받침을 누르면 그것을 쓰는 고리가 모두 강조되고, 각 고리는 그것을 배우는 수업으로 이어진다.
사슬의 받침
- A패스. 엔진은 한 패스에서 계산한 것을 보조 파일에 적어 두고, 다음 패스에서 그것을 쓴다. 첫째 단원에서 세워지고 셋째 단원에서 다듬어진다. 이 단원에서는 증명 없이 받아들인다.
- B어떻게 보이는지가 아니라 무엇인지. 논리적 마크업은 각 요소가 무엇인지 말하고, 모양은 다른 곳에서 내린 결정에 맡긴다. 둘째 단원에서 세워진다. 이 단원에서는 증명 없이 받아들인다.
- C한 번만 정하기. 한 곳에서 정한 것(스타일, 프리앰블의 옵션, 자기 명령, 항목)은 거기서 바꾸면 문서 전체에서 바뀐다. 손으로 베낀 것은 어긋나게 된다. 앞 단원들에서 세워진다. 이 단원에서는 증명 없이 받아들인다.
- D언어 설정이 넣는 말. 문서의 언어 설정은 문서가 스스로 쓰는 말, 곧 제목, 접속사, 약어, 이름표를 정한다. babel을 불러오지 않으면 biblatex는 영어 모듈을 쓴다. 둘째 단원에서 세워진다. 이 단원에서는 증명 없이 받아들인다.
- E올바른 것은 경고하지 않는다. 엔진과 그 프로그램들은 처리할 수 없는 것에 대해서만 경고한다. 올바르지만 저자가 뜻한 바를 말하지 않는 소스는 경고 없이 컴파일되고, 결함은 출력에서만 보인다. 앞 단원에서 세워진다. 이 단원에서는 증명 없이 받아들인다.
- F바이트로 정렬할까, 글자로 정렬할까. bibtex와 makeindex는 문자의 부호를 비교한다. bibtex는 발음 구별 기호가 있는 라틴 문자를 z 뒤에 두고, makeindex는 한자를 모두 한글 앞에 둔다. biber와 upmendex는 언어의 규칙으로 정렬한다. 확립되는 곳: 3. 필드, 중괄호, 발음 구별 기호.
- G표시하고, 정렬하고, 조판하기. 저자는 본문에서 인용하거나 찾아보기에 넣을 것을 표시하고, 외부 프로그램이 엔진의 두 패스 사이에서 그것을 정렬하며, 다음 패스가 그것을 조판한다. 확립되는 곳: 6. biber가 들어간 과정.
제1구간 문헌 데이터베이스
- 유형, 키, 필드를 갖춘 올바른 항목을 쓴다.
- 이름이 제대로 나뉘도록 쓴다.
- biber나 bibtex를 위한 데이터베이스를 마련한다.
- biber의 출력으로 데이터베이스를 진단한다.
자료와 스타일. 각 저작은
.bib항목에서 한 번만 기술되며, 유형, 찍히지 않는 고유한 키, 필드를 가진다. 꼴은 스타일이 정하고, 목록에는 인용한 저작이 정확히 들어간다.받침: B (어떻게 보이는지가 아니라 무엇인지), C (한 번만 정하기). 증명된 수업: 문헌 데이터베이스.
이름.
and는 사람을 나누고 쉼표는 성과 이름을 나눈다. 쉼표가 없으면 마지막 낱말이 성이다. 앞쪽의 소문자 낱말은 앞붙이다. 이중 중괄호는 기관 이름이 나뉘지 않게 한다. 어떤 오류도 경고를 내지 않는다.사용: 1. 자료와 스타일. 받침: E (올바른 것은 경고하지 않는다). 증명된 수업: 문헌 데이터베이스.
필드, 중괄호, 발음 구별 기호. biber는
journal,address,year와 그 새 이름을 알아듣는다. bibtex는 고전적인 이름만 알아들으며, 새 이름을 쓰면 학술지와 연도를 잃는다. 중괄호는 대문자를 보호한다. bibtex는 발음 구별 기호가 있는 글자를 z 뒤에 두고, biber는 언어를 따른다.사용: 1. 자료와 스타일. 받침: F (바이트로 정렬할까, 글자로 정렬할까). 증명된 수업: 문헌 데이터베이스.
데이터베이스 진단. 쉼표 하나가 빠지면 biber가 멈추고 목록 전체가 빈다. 되풀이된 키는 경고와 함께 무시된다. 이스케이프하지 않은
&는 목록을 조판하는 문서의 줄에서 LuaLaTeX 오류를 낸다.사용: 2. 이름, 3. 필드, 중괄호, 발음 구별 기호. 받침: E (올바른 것은 경고하지 않는다). 증명된 수업: 문헌 데이터베이스.
제2구간 BibLaTeX로 문헌 인용하기
- biblatex를 biber, csquotes와 함께 불러온다.
- biber가 들어간 과정을 손으로, latexmk로, 또는 Texmaker로 컴파일한다.
- 문장에 맞추어 인용 명령을 고른다.
- 각 스타일이 찍는 것을 예측하고 필터로 목록을 조판한다.
biblatex 불러오기. 옵션에
backend=biber와style.\addbibresource에는 파일 확장자를 붙인다. csquotes는 babel 뒤에 두며, biblatex가 경고로 이를 권한다.사용: 1. 자료와 스타일. 받침: D (언어 설정이 넣는 말). 증명된 수업: BibLaTeX로 문헌 인용하기.
biber가 들어간 과정. 엔진이 키를
.bcf에 쓰고, biber가.bbl을 쓰며, 엔진이 그것을 조판한다. 그 전에는 인용이 굵은 글씨의 키이다. latexmk는 biber를 스스로 실행하고, Texmaker의 단추는 바꾸지 않으면 bibtex를 실행한다.사용: 5. biblatex 불러오기. 받침: A (패스), G (표시하고, 정렬하고, 조판하기). 증명된 수업: BibLaTeX로 문헌 인용하기.
문장에 맞춘 인용. 문장의 일부인 저자에는
\textcite, 삽입구에는\parencite, 스타일이 정하는 인용에는\autocite. 수로 된 뒷주석에는 “p.”가 저절로 붙고,\citeauthor는 목록을 가리키지 않는다.사용: 6. biber가 들어간 과정. 받침: D (언어 설정이 넣는 말), C (한 번만 정하기). 증명된 수업: BibLaTeX로 문헌 인용하기.
스타일이 정한다. authoryear, numeric, numeric-comp, alphabetic은 옵션 하나로 모든 인용과 목록을 바꾼다. 번호는 목록의 순서, 기본으로 알파벳순을 따르며,
sorting=none은 번호를 인용 순서로 놓는다.사용: 7. 문장에 맞춘 인용, 2. 이름. 받침: B (어떻게 보이는지가 아니라 무엇인지), C (한 번만 정하기). 증명된 수업: BibLaTeX로 문헌 인용하기.
목록과 그 필터.
\printbibliography는 제목과 머리글 수준을 정한다.keyword와notkeyword는 저작을 잃지 않고 목록을 나눈다.\nocite는 인용하지 않은 저작을 더한다. 저작이 없는 목록은 찍히지 않고, “Empty bibliography”라는 경고가 나온다.사용: 8. 스타일이 정한다. 받침: E (올바른 것은 경고하지 않는다). 증명된 수업: BibLaTeX로 문헌 인용하기.
제3구간 인문학의 인용
- 각주 스타일을 고르고 그 약어를 예측한다.
- 이 강좌의 예처럼 각주 번호를 문장 부호 앞에 둔다.
- 고전을 표준 번호로 인용한다.
- 번역서를 기록하고 1차 문헌과 연구서를 가른다.
처음은 온전하게, 그다음은 짧게. verbose 계열은 첫 인용에서 온전한 출처를, 그 뒤에는 짧은 출처를 준다. verbose-ibid는 같은 쪽에서 바로 앞 각주를 되풀이하면 “Ibid.”라고 쓴다. 전통적인 방식은 op. cit.와 loc. cit.를 더한다.
사용: 8. 스타일이 정한다. 받침: C (한 번만 정하기). 증명된 수업: 인문학의 인용.
각주 번호와 문장 부호. 각주 모드에서
\autocite는 문장 부호를 각주 번호 앞으로 옮긴다.[r]을 붙인\DeclareAutoCiteCommand는 그것을 뒤에 남기며,\autocite앞의 빈칸은 두 방식 모두에 쓸모가 있다.사용: 10. 처음은 온전하게, 그다음은 짧게, 7. 문장에 맞춘 인용. 받침: D (언어 설정이 넣는 말). 증명된 수업: 인문학의 인용.
표준 번호.
514a나980a21처럼 수가 아닌 뒷주석은 “p.” 없이 찍힌다. 수처럼 보이는 것에는\nopp가 필요하다.shorthand는 약호를 주는데, 이것이 ibid.보다 앞서며,\printbiblist{shorthand}가 그 목록을 찍는다.사용: 7. 문장에 맞춘 인용, 10. 처음은 온전하게, 그다음은 짧게. 받침: E (올바른 것은 경고하지 않는다). 증명된 수업: 인문학의 인용.
번역서와 1차 문헌.
translator와origlanguage는 번역자와 원어를 밝힌다. 표준 스타일은origdate를 찍지 않으므로 원전은 관련 항목으로 선언한다.keywords는 1차 문헌과 2차 문헌을 가른다.사용: 12. 표준 번호, 9. 목록과 그 필터. 받침: E (올바른 것은 경고하지 않는다). 증명된 수업: 인문학의 인용.
제4구간 찾아보기와 용어집
- 항목을 표시하고 makeindex로 찾아보기를 컴파일한다.
- 한자어를 제자리에 정렬하고 참조와 범위를 쓴다.
- 항목마다 한 가지 꼴을 지키고, 찾아보기 여럿을 다룬다.
- 용어와 약어를 정의하고 언급마다 무엇이 찍힐지 내다본다.
imakeidx로 만든 찾아보기.
\index는.idx에 쓰고, makeindex는 정렬해.ind에 쓰며,\printindex가 그것을 조판한다. imakeidx는nonewpage나noautomatic이 없는 한 makeindex를 스스로 실행한다.사용: 6. biber가 들어간 과정. 받침: A (패스), G (표시하고, 정렬하고, 조판하기). 증명된 수업: 찾아보기와 용어집.
하위 항목, 키, 참조.
!는 수준을 나누고,@는 정렬 키와 찍히는 꼴을 나누며,|see는 쪽 번호 없이 가리키고,|(는 범위를 연다. 키가 없으면 한자로 쓴 항목은 독음과 상관없이 맨 앞에 몰린다.사용: 14. imakeidx로 만든 찾아보기. 받침: F (바이트로 정렬할까, 글자로 정렬할까), E (올바른 것은 경고하지 않는다). 증명된 수업: 찾아보기와 용어집.
한 가지 꼴, 여러 찾아보기. makeindex는 글자 하나하나를 비교하므로, 한 용어의 두 가지 표기는 두 항목이 된다. 자기 명령으로 지키는 약속이 이를 막는다.
name은 따로 된 찾아보기를 열며, 이름을 잘못 쓰면 항목을 잃는다.사용: 15. 하위 항목, 키, 참조, 2. 이름. 받침: C (한 번만 정하기). 증명된 수업: 찾아보기와 용어집.
용어집과 약어. glossaries는 각 용어를 한 번만 정의하고,
\gls는 약어를 처음 언급에서 풀어 쓴다. makeglossaries는 패스 사이에 정렬한다. 한글로 시작하는 용어에는sort=def나sort가 필요하며, 없으면 엔진이 멈춘다.사용: 15. 하위 항목, 키, 참조. 받침: G (표시하고, 정렬하고, 조판하기), F (바이트로 정렬할까, 글자로 정렬할까). 증명된 수업: 찾아보기와 용어집.
다른 문서들을 향하여. 사슬은 학술 작업이 완성되는 곳에서 멈춘다. 본문, 구조, 수식, 표, 그림, 출처, 찾아보기가 저마다 선언에서 계산된다. 다음 단원은 같은 데이터베이스와 같은 메커니즘을 발표 자료, 포스터, 공동 작업으로 옮겨 간다.
콘텐츠를 불러오는 중…