1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
|
%!TEX encoding = UTF-8 Unicode
% arara: xelatex
% arara: texindy: { language: Korean, codepage: utf8 }
% arara: xelatex
%%
%% 이 파일은 oblivoir 패키지 문서의 일부로서, oblivoir 클래스의 여러 기능을
%% 테스트하기 위한 목적으로 제공합니다. 일부 기능은 테스트 목적으로 과장되어 있습니다.
%% pdflatex, xelatex, lualatex으로 컴파일할 수 있습니다. (결과의 완전한 동일성은
%% 보장하지 못합니다.)
%%
%% 2020/02/05.
%% 2015/04/22. memoir url 수정
%% 2014/06/15. 부분 수정.
%% 2013/09/28. xoblivoir ver2 버전으로 포팅.
%% 2010/03/17. xoblivoir 버전으로 포팅
%%
%% oblivoir 2.0.1 테스트 파일
%% Written by 도은이아빠.
%% public domain.
%%
\documentclass[demo,chapter,openany,amsmath,gremph,lwarp]{oblivoir}
%%% amsmath 옵션은 amsmath, amssymb 패키지를 로드해준다..
%% display overfullrule
%\setlength\overfullrule{5pt}
%% 페이지 레이아웃. fapapersize를 이용한다..
\usepackage{fapapersize}
\usefapapersize{220mm,276mm,20mm,80mm,30mm,35mm}
% 폰트 설정
\ifPDFTeX
\usepackage{mathpazo}
\else\ifLuaOrXeTeX
\setmainfont{TeX Gyre Pagella}
\setsansfont[Scale=.95]{TeX Gyre Heros}
%% \setkomain/sansfont : see oblivoir-simpledoc.
\setkomainfont(HCRBatangLVT)(*-Bold)(UnGraphic)
\setkosansfont[NanumGothic]()[](HCRDotumLVT)
%% 수학 폰트
% \usepackage{unicode-math}
% \setmathfont{Asana-Math.otf}
\fi\fi
\ifLuaTeX
\def\interHANGUL{InterHangul}
\else\ifXeTeX
\def\interHANGUL{interhchar}
\fi\fi
%% logos
\usepackage{kotex-logo}
%% index for \koTeX
%\let\ORIGkoTeX \koTeX
%\def\koTeX{\ORIGkoTeX\index{ko.TeX}}
%%% marginfix
%\usepackage{marginfix}
%% 좌우 마진의 marginpar 위치가 혼선을 보인다면
%% 다음을 선언한다.
\strictpagecheck
\usepackage{cite}
%\ifPDFTeX
\usepackage{graphicx}
%\fi
%% pdf 정보
\makeatletter
\if@lwarp
\usepackage{xcolor}
\def\epigraph#1#2{#1\quad #2}
\else
\usepackage[dvipsnames]{xcolor}
\hypersetup{%
bookmarks=true,%
plainpages=false,%
colorlinks=true,%
pdfauthor={Karnes Kim},%
pdfcreator={Karnes Kim}
}
\fi
\makeatother
\nonfrenchspacing
%% nonfrench를 설정하는 경우에는 \xspaceskip도 정해주자.
%% 여기서는 눈에 띄도록 이 길이를 넉넉하게 잡았음.
%% 일반적으로 .6 내지 .7 정도를 권장함.
\xspaceskip=.8em plus .1em minus .1em
%% 이 아래 명령들은 본문에서 바꿀 수 있다.
%% 행간설정. 두번째 인자는 fn/float에 적용되는 행간.
\SetHangulspace{1.5}{1.1}
%% quotespacing을 설정함. \noadjustqutespacing이 default. \adjustquotespacing
%\adjustquotespacing
%% float/fn의 좁은 행간 설정을 disable. \adjustfloatfnspacing
\noadjustfloatfnspacing
%% snugshade 환경에 칠할 배경색.
\definecolor{shadecolor}{gray}{0.85}
%%% from memman.tex. modified.
%% 본문에서 한 번 사용하기 위해 설정한 chapter
%% style 예제. 이 예제는 memman에 있다.
%% 한글판을 위하여 조금 수정함.
\makeatletter
\newlength{\numberheight}
\newlength{\barlength}
\makechapterstyle{veelo}{%
\setlength{\beforechapskip}{40pt}
\setlength{\midchapskip}{25pt}
\setlength{\afterchapskip}{40pt}
\renewcommand{\chapnamefont}{\normalfont\LARGE\flushright}
\renewcommand{\chapnumfont}{\normalfont\HUGE}
\renewcommand{\chaptitlefont}{\normalfont\HUGE\bfseries\flushright}
\renewcommand{\printchaptername}{}%
\renewcommand{\prechapternum}{% <= 이 명령을 정의.
\chapnamefont\MakeUppercase{chapter}}
\renewcommand{\postchapternum}{}% <= 이 명령을 정의. 여기서는 비움.
\renewcommand{\chapternamenum}{}
\setlength{\numberheight}{18mm}
\setlength{\barlength}{\paperwidth}
\addtolength{\barlength}{-\textwidth}
\addtolength{\barlength}{-\spinemargin}
\renewcommand{\printchapternum}{%
\makebox[0pt][l]{%
\hspace{.8em}%
\resizebox{!}{\numberheight}{\chapnumfont \thechapter}%
\hspace{.8em}%
\rule{\barlength}{\numberheight}
}
}
\makeoddfoot{plain}{}{}{\thepage}
}
\makechapterstyle{mycompanion}{%
\chapterstyle{default}
\renewcommand*{\chapnamefont}{\normalfont\LARGE\scshape}
\renewcommand*{\printchaptername}{\raggedleft\chapnamefont \@chapapp}
\renewcommand*{\prechapternum}{\raggedleft\chapnamefont \pre@chapter}
\renewcommand*{\chapnumfont}{\normalfont\Huge}
\setlength{\chapindent}{\marginparsep}
\renewcommand*{\printchaptertitle}[1]{%
\begin{adjustwidth}{}{-\chapindent}
\raggedleft \chaptitlefont ##1\par\nobreak
\end{adjustwidth}}}
\makeatother
%%% User's commands
%% 사용자 명령들. 인덱스 관련 명령.
\newcommand\dispcmd[1]{%
\texttt{\textbackslash #1}%
\index{명령!\textbackslash #1}%
\index{#1@\textbackslash #1}%
}
\newcommand\cls[1]{%
\texttt{#1}\ 클래스%
\index{클래스!#1}%
\index{#1~클래스}%
}
\newcommand\pkg[1]{%
\texttt{#1}\ 패키지%
\index{패키지!#1}%
\index{#1~패키지}%
}
\newcommand\thisclass{%
\texttt{memoir}\ 클래스%
\index{클래스!memoir}%
\index{memoir~클래스}%
}
\newcommand\env[1]{%
\textsf{#1} 환경%
\index{환경!#1}%
\index{#1~환경}%
}
\newcommand\wi[2][\empty]{%
\ifx#1\empty
\index{#2}#2%
\else
\index{#1!#2}#2%
\fi
}
%% showcommand/showenv 명령.
%% 만약 command/env 보여주기를 끄려면
%% \showcommandfalse를 선언한다.
\makeatletter
\newif\if@showcommand\@showcommandtrue
\newcommand\showcommandtrue{\@showcommandtrue}
\newcommand\showcommandfalse{\@showcommandfalse}
\strictpagechecktrue
\newcommand\showcommand[1]{%
\if@showcommand
\checkoddpage\ifoddpage
\marginpar{\small\texttt{\textbackslash #1}}%
\else
\marginpar{\hfill\small\texttt{\textbackslash #1}}%
\fi
\fi
}
\newcommand\showenv[1]{%
\if@showcommand
\checkoddpage\ifoddpage
\marginpar{\small\textit{#1}(env.)}%
\else
\marginpar{\hfill\small\textit{#1}(env.)}%
\fi
\fi
}
\makeatother
%% MakeShortVerb
\MakeShortVerb{\|}
% \DeleteShortVerb{\|}
%% 인덱스의 hyperpage 처리를 위해서
\newcommand\bfhypidx[1]{%
\textbf{\hyperpage{#1}}%
}
%% replace \bigskip
\newcommand\alineskip{%
\vspace{\onelineskip}%
}
%% showindexmark
%% 여백을 충분히 확보하고 다음 행을
%% 활성화해볼 것.
%\showindexmarktrue
%% index를 만든다.
\makeindex
%% newlist
%% 새로운 리스트를 만드는 것이 정말 너무나 간단하다.
\newcommand\queryfont{\raggedleft\sffamily\small}
\newcommand\listofqueriesname{Queries~목록}
\newlistof{listofqueries}{loq}{\listofqueriesname}
\newlistentry{query}{loq}{0}
\newcommand{\query}[2][\empty]{%
\refstepcounter{query}
\par\noindent\fbox{Q?}~\begingroup\queryfont #2\endgroup%
\addcontentsline{loq}{query}{\protect\numberline{\thequery}#2}\par
\ifx#1\empty\else\index{Query!#1}\fi
}
%% title page
\newcommand\MakeTitle{%
\begin{titlingpage}
\setcounter{page}{-1}%
\begin{adjustwidth*}{0mm}{-55mm}
\newlength\tmplen\setlength\tmplen{\textwidth}\addtolength\tmplen{60mm}
\fbox{%
\begin{minipage}{\tmplen}
\vspace*{90mm}
\begin{center}
\LARGE\bfseries\thetitle \\ \vskip\onelineskip
\normalfont\normalsize\theauthor
\end{center}
\vspace*{100mm}
\end{minipage}}
\end{adjustwidth*}
\end{titlingpage}
}
%% 각주. footmisc는 memoir와 함께 쓸 수 있다.
%% 참고. [bottom] footnote를 위해서라면
%% 다음과 같이 할 것을 권장함. raggedbottom에서 동작함.
%\renewcommand*{\footnoterule}{\kern-3pt\vfill
% \hrule width 0.4\columnwidth \kern 2.6pt}
%% 각주를 floats 아래 두는 memoir 명령.
\feetbelowfloat
%% 밑줄.
\ifLuaTeX\else
\usepackage[normalem]{ulem}
\fi
%% 사소한 설정
\def\util#1{\texttt{#1}\index{Utility!#1}}
%%%
%\headnamereftrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%% 이제 문서를 시작.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{memoir에서 한글을 쓰자!}
\author{도은이아빠}
\date{\today}
%% 아래 \MakeTitle 명령은 이 문서의 preamble에
%% 정의되어 있다. 표지 디자인은 이 정의를 참고하여
%% 수정하여 볼 것.
\MakeTitle
\cleardoublepage
\frontmatter
% ToC, etc
%% 차례 페이지들. 여기서는 demo chapter style과
%% Ruled 페이지 스타일을 적용한다.
\chapterstyle{demo}
\tableofcontents
%\clearpage
\listoffigures
%\clearpage
\listoftables
%% listofqueries는 \newlistof로 만든
%% local \listofx임.
%\clearpage
\listofqueries
\mainmatter
%% hangul 페이지 스타일을 테스트하기
%% 위하여 제1편 앞에 한 챕터를 둠. 다만 chapter의 첫 면은
%% chapter 페이지 스타일을 따른다.
\pagestyle{hangul}
\chapterstyle{default}
\chapter{xoblivoir}
이 문서는 xoblivoir의 몇 가지 기능을 시험하기 위한 목적으로
작성되었다. 이 문서의 원본은 memhangul을 개발하던 당시
테스트용으로 사용된 바, 가장 먼저 만들어진 oblivoir 문서이다.
현재는 |oblivoir|와 |xoblivoir|가 사실상 동일하다. 그러므로 이 글에서
|xoblivoir|라 한 것은 모두 |oblivoir|로 바꾸어도 된다.
해당 문단의 여백에 사용되고 있는 명령이 나와 있으므로 참고할 수 있을
것이다. 실제로 xoblivoir 사용설명서를 작성하기 어려운 것이
기본적인 것은 모두 memoir에 바탕을 두고 있는 데다가
한글화하면서 변화한 점도 많아서 이것을 모두 모으면 너무나 방대한
내용이 된다는 점이다.
이 문서의 원본을 잘 연구하면 그럭저럭 oblivoir가 어떻게 동작하는지
짐작할 수 있게 되기를 희망한다.
이 문서는 다음 순서로 컴파일할 수 있다. |$ENGINE|은 \util{pdflatex}, \util{xelatex}, \util{lualatex} 가운데 하나이고
|$JOBNAME|은 파일 이름(\texttt{xobtesttest})이다.
한편, 색인을 만드는 유틸리티 |$MAKEINDEXENGINE|은 \util{pdflatex} 상황에서는
\util{komkindex}이고 그밖의 경우에는 \util{texindy}이다.
\begin{verbatim}
# $ENGINE $JOBNAME
# $ENGINE $JOBNAME
# $MAKEINDEXENGINE $JOBNAME.idx
# $ENGINE $JOBNAME
\end{verbatim}
\chapter{default 페이지 스타일}
\section{맹동야를 보내는 글}
\epigraph{한유 글, \cnm{送孟東野序}}{김학주 옮김}
대개 만물은 평정을 얻지 못하면 소리를 내게 된다.
초목은 소리가 없으나 바람이 흔들면 소리를 내게 되며, 물은 소리가 없으나 바람이
움직이면 소리를 내게 된다. 물이 뛰어오르는 것은 바위같은 곳에 부칮쳤기
때문이다. 물이 세차게 끓어오르는 것은 한 곳에서 물결을 막기 때문이다.
물이 펄펄 끓어오르는 것은 불로 태우기 때문이다. 쇠나 돌은 소리가 없으나
치면 소리를 낸다. 사람이 말하는 데 있어서도 이와 같으니,
부득이한 일이 있은 후에야 말을 하게 된다. 노래를 하는 것은 생각이
있기 때문이며, 우는 것은 회포가 있기 때문이다.
음악이라는 것은 가슴속이 막혀 답답할 때 밖으로 새어나오는 것이며
소리를 잘 내는 것을 선택하여 이것을 빌려서 소리를 내게 된다.
쇠\cntrdot 돌\cntrdot 실\cntrdot 대\cntrdot 박\cntrdot 흙\cntrdot
가죽\cntrdot 나무 등 여덟 가지 악기를 만드는 데 쓰이는 자료들은 만물
가운데 소리를 잘 내는 것들이다.
자연의 계절에 있어서도 역시 그러하니 소리를 잘 내는 것을 선택하여 그것을
빌려서 소리를 내게 된다. 그러므로 새를 빌려 봄의 소리를 내고, 우뢰를
빌려 여름의 소리를 내고, 벌레를 빌어 가을의 소리를 내며,
바람을 빌어 겨울의 소리를 낸다. 사계절이 서로 바뀌어 나타나는 현상은
반드시 그 평정을 얻지 못했기 때문일 것이다.
이는 사람에게 있어서도 마찬가지이다. 사람의 소리 가운데 정묘한 것이 언어이며
문장의 표현은 언어 가운데서도 더욱 정묘한 것이다. 그 중에서도 더욱 소리를
잘 내는 것을 선택하여 이것을 빌려서 소리를 내게 된다.
당요\cntrdot 우순 시대에는 고요와 우가 소리를 잘 내는 사람들이어서
그들을 빌려 소리를 냈다. 기는 문사로써 소리를 내지는 못했으나
스스로 소를 빌려서 소리를 냈다. 하나라 때에는 오자가 노래를 불러 소리를
냈다. 이윤은 은나라에서 소리를 냈고 주공은 주나라에서 소리를 냈다.
무릇 \snm{시}\cntrdot \snm{서} 등 육예에 실린 것들은 모두 소리를
잘 낸 것들이다. 주나라가 쇠퇴해지자 공자의 무리들이 소리를 냈는데
그 소리를 크게 멀리 들렸다. 옛 서적에 ``하늘이 장차 선생을 목탁으로
삼으려 하는구나!''\,라고 하였는데도 믿지 못하겠는가!
주나라 말엽에 이르러서는 장주가 황당한 문사로써 초나라에서
소리를 냈다. 초나라를 큰나라였는데 망할 무렵이 되어 굴원이 소리를 냈다.
장손진\cntrdot 맹가\cntrdot 순경은 도로써 소리를 낸 자들이고,
양주\cntrdot 묵적\cntrdot 관이오\cntrdot 안영\cntrdot 노담\cntrdot 신불해\cntrdot
한비\cntrdot 신도\cntrdot 전연\cntrdot 추연\cntrdot 시교\cntrdot 손무\cntrdot
장의\cntrdot 소진의 무리들은 모두 술법으로써 소리를 냈다.
진나라가 융성하자 이사가 소리를 냈으며 한나라 때에는 사마천\cntrdot 사마상여\cntrdot
양응이 가장 소리를 잘 낸 자들이다.
그 후 위\cntrdot 진 시대에는 소리를 내는 자들이 옛날 사람들에 미치지 못했지만
또한 아직 끊이지는 않았었다. 그 가운데 괜찮은 것들도 그 소리는 맑지만
경박하고 그 음절은 빠르고 급하며 그 문사는 음란하고 슬프며
그 뜻은 느슨하고도 방자하며 그 표현은 난잡하고 문채가 없었으니
하늘이 그 덕을 추하게 여겨 돌보지 않은 때문이었는가? 무엇 때문에
소리를 잘 내는 자들로 하여금 소리를 내게 하지 않았는가!
당(唐)나라가 천하를 장악하고나서는 진자앙\cntrdot 소원명\cntrdot 원결\cntrdot
이백\cntrdot 두보\cntrdot 이관 등이 모두 자신의 잘하는 것으로써 소리를 내었다.
현재 살아 있으면서 아랫자리에 있는 사람으로 동야 맹교가 비로소 시로써
소리를 내었다. 그는 위\cntrdot 진 시대 사람들보다 훨씬 뛰어나며
게을리하지 않으면 옛사람들의 수준에 미칠 수 있겠고
그밖의 작품들은 한나라의 문풍에 젖어 있다. 나에게서 배운 자들로서
이고와 장적이 가장 뛰어나다. 이 세 사람의 소리는 진실로 훌륭하다.
그런데 하늘이 장차 그들의 소리를 온화하게 하여 국가의 성대함을 소리내게
할 것인지 아니면 장차 그들 자신을 가난하고 굶주리게 하고
그들의 마음을 근심스럽게 하여 그 불행을 스스로 소리내게 할 것인지 모르겠다.
이 세 사람의 운명은 하늘에 달려 있는 것이니 윗자리에 있다고 해서 어찌
기뻐하겠으며 아랫자리에 있다고 해서 어찌 슬퍼하겠는가.
동야가 강남에 근무하러 떠나면서 즐거워하지 않는 것 같아서 내가 그의
운명이 하늘에 달려 있다고 말하며 이를 풀어주려고 하는 것이다.
%% 본문시작.
%% 본문은 companion chapter style로 식자할 것인데,
%% default를 한 번 부른 이유는 앞서 사용한 demo의
%% 글꼴 설정에 영향을 받기 때문이다.
\part{xoblivoir 테스트}
\chapterstyle{mycompanion}
\pagestyle{companion}
%% 제목은 두 줄로 식자하되, heading과 toc에는 개행 없이.
% \chapter[memoir 클래스에서 한글을 쓰자][memoir 클래스에서...]{memoir
% 클래스에서\\ 한글을 쓰자} % -> [toc][heading]{title}
% \chapter[memoir 클래스에서 한글을 쓰자]{memoir 클래스에서\\ 한글을
% 쓰자} % -> [toc,heading]{title} %% 이 부분이 memoir와 다르다.
% \chapter{memoir 클래스에서 한글을 쓰자} % {toc,heading,title}
% \chapter[memoir 클래스에서 한글을 쓰자][memoir 클래스에서
% 한글...]{memoir 클래스에서\\ 한글을 쓰자}
% \chapter[memoir 클래스에서 한글...]{memoir 클래스에서\\ 한글을 쓰자}
% 주의: titleref에 \\ 문자가 들어가면 안된다. titleref에서 사용하는
% 것은 두번째 옵션인자이므로, 다음과 같이 두번째 옵션 인자를 밝혀줄
% 것.
\chapter[memoir 클래스에서 한글...][memoir 클래스에서 한글을 쓰자]{%
memoir 클래스에서\\ 한글을 쓰자}
\label{sec:firstchap}
\chapterprecis{\noindent 이 장에서는 memoir 클래스에 대해 간략히
소개하고 한글화에 대하여 개관한다.}
\showcommand{chapterprecis}\showcommand{chapterstyle}\showcommand{pagestyle}
\thisclass\는 Peter Wilson 씨가 작성한 \LaTeX\ 클래스이다. \LaTeX 이 제공하는
표준 클래스\index{표준~클래스|bfhypidx}는 \cls{book}, \cls{report}, \cls{article}, \cls{letter}
등이 있지만, 어딘가 모르게 세세한 부분에서 부족한 점이 있어서 수많은 추가 패키지를
사용해야 원하는 문서 모양을 구현할 수 있는 경우가 많았다. \thisclass\는 그 동안 개발된
문서 조판의 세세한 부분을 하나의 클래스로 통합한 것으로, 사용자 입장에서는
정말 획기적인 환상적인 클래스가 아닐 수 없다. 매우 많은 패키지들을 이
클래스는 통합\cntrdot 내장하거나 그와 유사한 기능을 제공한다.
이 패키지의 결점은, 한번 사용하기 시작하면 다시는 book과 같은
표준 클래스로 돌아가기 어렵다는 점이다.
EUC-KR\index{한글!EUC-KR|bfhypidx} 한글을 \thisclass 에서 사용하도록 만들었던 것이
\pkg{memhangul}였다.
이제 여기서 제공하는 클래스는 본질적으로 \pkg{memhangul}\과 동일하지만
한글을 UTF-8 유니코드로 입력할 수 있게 만든 것이다. \wi[유니코드]{유니코드 한글}을
처리하기 위해서 \pkg{dhucs}\를 채택하였다.
\query[유니코드]{유니코드 한글 처리}
\alineskip
\hangfrom{한글 }사용을 위해서 H\LaTeX 을 채택한 결과는 어느 정도
괜찮은 결과를 가져왔다. 그러나 \pkg{dhucs}\를 이용하여 구현한 \pkg{memhangul-ucs}\는
괜찮은 정도가 아니라 아주 훌륭한 결과를 얻게 되었다.
\showcommand{hangpara}\showcommand{hangfrom}%
\hangpara{2.6em}{2}%
{\SetAdhocFonts{unpg}{ungt}\showcommand{SetAdhocFonts}%
유니코드 한글 입력이 가능하도록 하는 것은 \pkg{dhucs}에서였다. 이것은
\LaTeX-ucs 패키지와 한글 자동조사 및 한글 문서서식을 합친 것인데,
핵심적인 한글 식자와 자동조사의 구현은 김도현 교수가 작성하였다.
필자는 사용자 인터페이스를 조금 추가하고 한글 문서서식을 보충하는
정도로 미미한 기여를 하였다.}
이 패키지의 장점은 대강 다음과 같다.
\tightlists\showcommand{tightlists}
\begin{itemize}
\item 유니코드를 쓴다는 것 자체가 장점이다. EUC-KR 한글의 범위를
넘어서서 맞춤법에는 어긋나지만 꼭 써야할 경우가 없지 않은 ``띡''과 같은
완성형 밖 글자를 식자할 수 있다.\footnote{%
중세 한글 문제는 코드와 폰트의 문제가 얽혀 있어서
여기에서는 다루지 않는다.}
\item 절에 \wi{한글식 절카운터 모양}(section counter format), \dispcmd{pgana} 등을
사용하는 것이 쉽다.
\item \wi{자동조사} 기능이 구현되어 있다.
\item 주요 pagestyle과 chapterstyle이 \wi{한글}과 호환되게 하였다. 이호재 님의
말씀에 의하면, \thisclass 는 여러 가지 면에서 매우 편리하다고 한다.
\item 인덱스 만들기가 구현되었다.
\item \thisclass 의 여러 기능을 그대로 쓸 수 있다.
\end{itemize}
\section{이 문서의 컴파일 방법}
다음과 같은 순서로 컴파일한다.
\bvtopandtail\showcommand{bvtopandtail}\showenv{boxedverbatim}
\begin{boxedverbatim}
#> latex memucstest
#> latex memucstest
#> makeindex-dhucs -s dhucs memucstest
#> latex memucstest
\end{boxedverbatim}
|makeindex(-dhucs)|에 앞서서 |latex|을 두 번 실행하는 이유는,
memoir 패키지의 인덱스 만들기의 특징 때문이다. 처음 한 번만 실행해서는
|.idx| 파일이 만들어지지 않는다.
\section{chapter 스타일}
\showcommand{prechapternum}\showcommand{postchapternum}
사용자가 자신의 |chapterstyle|을 정의(定義)할 때는 반드시
\dispcmd{prechapternum}과 \dispcmd{postchapternum}을 함께 정의해주도록 한다.
그림~\ref{fig:examchapstyle}\은 |hangnum| chapter style을
정의하는 방법을 보여준다.
\begin{figure}
%% 웬만한 환경은 memoir에 다 있다.!!!
\begin{boxedverbatim}
\makechapterstyle{hangnum}{%
\renewcommand{\chapnumfont}{\chaptitlefont}
\settowidth{\chapindent}{\chapnumfont 999}
% \renewcommand{\printchaptername}{} % <= 쓰지 않음.
\renewcommand{\prechapternum}{} % <= 이 행을 정의
\renewcommand{\chapternamenum}{}
\renewcommand{\postchapternum}{}% <= 이 행을 정의
\renewcommand{\printchapternum}{%
\noindent\llap{\makebox[\chapindent][l]{\chapnumfont
\thechapter}}}
\renewcommand{\afterchapternum}{}
}
\end{boxedverbatim}
\caption{chapterstyle 정의 예제}\label{fig:examchapstyle}
\end{figure}
장 스타일을 수정하는 구체적인 예는 |memman.tex|\cite{memman}에서
가져온 |veelo| chapter style의 정의를 참조하라. 이 문서의
소스 Preamble에 있다. 예제는 \Cref{sec:math} \titleref{sec:math}\을 보라.
%% disable \nameref
\textbf{\nameref{sec:appchap}}\를 보라.
\textbf{\titleref{sec:appchap}}\를 보라. \pref{sec:appchap}\을,
\ref{sec:appchap}\을, \Cref{sec:appchap}\을
\Sref{sec:appsec}\가, \ref{sec:appsec}\가, \titleref{sec:appsec}\가.
\titleref{sec:appsec}\을.
\showcommand{Cref}\showcommand{ref}\showcommand{pageref}\showcommand{titleref}
%% \Cref 명령으로 식자되는 결과를 주의깊게 보라.
\section{시집}\label{sec:poembook}
\wi{어머님}이 \wi{수술} 후에 거동이 불편해지신 후, 집에만
계시는 것이 무척 \wi{무료}하신 듯하다. 예전에 내가 보던
\wi{시집}을 꺼내 보고 계시다. \showcommand{titleref}\showcommand{Sref}%
\Sref{sec:poembook} \textit{\titleref{sec:poembook}}\는
텍스트 입력의 예제이다.
%% memoir는 poem 스타일을 자체 내장하고 있다.
%% plain poem title을 선언함.
\PlainPoemTitle\showcommand{PoemTitle}\showcommand{PlainPoemTitle}
\showenv{snugshade}\showcommand{poemtitle}\showenv{verse}
\begin{snugshade}
\renewcommand\poemtoc{subsection}
\settocdepth{subsection}
\poemtitle{신안리에서}
\settowidth{\versewidth}{\hbox{사람들은 굳이 한 마디 말 하려 하지 않는다.}}
\ifpdf\begin{verse}\else\begin{verse}[\versewidth]\fi
실개천 너머 나 있는 샛길로\\
택시가 들어오고 나가며 \\
겨르로운 달빛에 감출 부끄러움도 없는\\
사람들은 굳이 한 마디 말 하려 하지 않는다.\\!
나는 톱밥 같은 달빛을 한 웅큼\\
멀리 철길 쪽으로 뿌렸다.\\
매달린 불빛보다\\
아침이 먼저 깨어나는 광경을 보며.\\
삶은 새의 낮은 날음새 같은 것,\\
이대로 누워 잠들기\\
두렵지 않은 작은 마을에\\
더 작은 풀꽃 인사한다.\\
잊혀짐 너머 안부 묻는다.\\
\end{verse}
\end{snugshade}
이 스타일은 \pkg{memucs-setspace}\를 이용한다. 이 패키지는\footnote{
이 스타일은 \pkg{setspace}\를 수정한 것이다.
\env{verse}, \env{quote}\와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는
기능이 있다.}
verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는
기능이 있다. 이 부분에서 \dispcmd{adjustfloatfnspacing}을 불러보겠다.
\showcommand{adjustfloatfnspacing}%
다음번 각주는 행간이 조금 달라져야 한다.
\adjustfloatfnspacing
float 안에 놓인 것과 같아지도록.\footnote{%
이 스타일은 \pkg{setspace}\를 수정한 것이다.
verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는
기능이 있다.}
\showcommand{noadjustquotespacing}\showcommand{adjustquotespacing}
이 아래는 본문 중에서 \dispcmd{noadjustquotespacing}과 \dispcmd{adjustquotespacing}을
불렀을 때 \env{quote} 안에서 행간이 어떻게 변하는지 보여준다.
기본값은 \dispcmd{noadjustquotespacing}이다.
\begin{quote}
이 스타일은 \pkg{setspace}\를 수정한 것이다.
verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는
기능이 있다. 마치 float 안에 놓인 것과 같이.
\end{quote}
여기서 \dispcmd{adjustquotespacing}을 호출함.
\adjustquotespacing
\begin{quote}
이 스타일은 \pkg{setspace}\를 이용한다. 이 패키지는
verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는
기능이 있다. 마치 float 안에 놓인 것과 같이.
\end{quote}
verse류 환경의 행간은 quote를 따른다. 앞서 보인 시를 여기에서
다시 식자해보자.
\begin{snugshade}
\renewcommand\poemtoc{subsection}
\settocdepth{subsection}
\PoemTitle{신안리에서}
\settowidth\versewidth{사람들은 굳이 한 마디 말 하려 하지 않는다.}
\ifpdf\begin{verse}\else\begin{verse}[\versewidth]\fi
실개천 너머 나 있는 샛길로\\
택시가 들어오고 나가며 \\
겨르로운 달빛에 감출 부끄러움도 없는\\
사람들은 굳이 한 마디 말 하려 하지 않는다.\\!
나는 톱밥 같은 달빛을 한 웅큼\\
멀리 철길 쪽으로 뿌렸다.\\
매달린 불빛보다\\
아침이 먼저 깨어나는 광경을 보며.\\
삶은 새의 낮은 날음새 같은 것,\\
이대로 누워 잠들기\\
두렵지 않은 작은 마을에\\
더 작은 풀꽃 인사한다.\\
잊혀짐 너머 안부 묻는다.\\
\end{verse}
\end{snugshade}
여기서 다시 \dispcmd{noadjustquotespacing}을 선언함.
\noadjustquotespacing
\begin{quote}
이 스타일은 \pkg{setspace}\를 이용한다. 이 패키지는
verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는
기능이 있다. 마치 float 안에 놓인 것과 같이.
\end{quote}
\section{강조}
강조를 구현하는 데는 여러 가지 방법이 있다. 서구 문헌의
경우 이탤릭체를 사용하는 것이 일반적이고, 예전의 독일 문헌에서는
자간을 띄우는 강조 방법을 사용한 적도 있다고 한다.
우리말 문헌은 일관되어 있지 않다.
\subsection{방점 강조}
예를 들면 \circemph{방점 강조} 방법을 사용하는 것이 가능하다.
\wi[강조]{방점 강조}는 \dotemph{한글 맞춤법}의 문장부호 조항에서 규정하고 있는 방법이기도
하다.\showcommand{circemph}\showcommand{dotemph}
맨처음에 이 명령은 H\LaTeX\ 1.01에서 구현된 것이었는데,
그 후
\useremph[.3ex][\tiny★]{발전을 거듭하여}
현재에 이르렀다.
\showcommand{useremph}
\subsection{기울인 글꼴 또는 글꼴 대체}
\ifPDFTeX \ungremph \fi
H\LaTeX{}에서는 {\itshape\wi[강조]{기울인 글꼴}}을 쓰는 방법을 오랫동안 사용해왔다.
그러나 실제로 출판되는 서적에서는 \wi[강조]{글꼴 대체} 방법을 사용하는
경우가 많다.
\ifPDFTeX \begingroup
\regremph
|gremph| 옵션은 다음과 같은 효과를 낸다. \emph{gremph 옵션}.
\ungremph
이번에는 이것을 disable한다. \emph{gremph 옵션}.
|\bfemtrue|와 |\bfemfalse|는 그래픽 글꼴 대신
은바탕 굵은 글꼴로 식자하게 한다. 또, |\SetGremphFonts|
명령으로 직접 폰트를 지정할 수 있다.\showcommand{regremph} \showcommand{ungremph}
\showcommand{SetGremphFonts}\showcommand{bfemtrue, \textbackslash bfemfalse}
다만 |\SetGremphFonts| 명령은 preamble에서만 쓸 수 있다.
\endgroup \else\ifLuaOrXeTeX \begingroup
\hologo{LuaLaTeX}이나 \hologo{XeLaTeX}을 쓰는 경우,
강조 글꼴의 선택은 폰트 속성과 연계된다. 즉, \textit{Italic Font}로
지정된 글꼴이 강조 글꼴로 사용된다.
|[itemph]| 옵션은 이 부분의 글꼴을 기울어지게 만든다.
\endgroup \fi\fi
\showcommand{MakeShortVerb}
%% 한글 섹션 카운터 포맷을 가능하게 함.
\renewcommand\thesection{\pgana{section}}
\section{두번째 절}
\epigraphtextposition{flushleftright}
\epigraph{%
나는 십대에 \wi{철학책}을 읽기 시작한 무렵부터
거기에 언제나 이 `나(私)'가 빠져 있다고 느껴왔다.}
{\emph{탐구}\\ \textsf{\wi[인명]{카라타니 코진(柄谷行人)}}}
\showcommand{pgana}\showcommand{epigraph}
\showcommand{epigraphtextposition}
\wi{수학}에서는 어떤 공리계가 하나의 해석 모델에서는 참이지만
다른 해석 모델에서는 거짓인 일이 있을 수 있다.
이것은 \wi{공리계}가 불충분한 경우이다.
\renewcommand\thesection{\onum{section}}
\section{표}
\showcommand{legend}\showcommand{onum}
\thisclass\는 다양한 표작성 환경을 제공한다.
\tref{tab:test}\과 \tref{tab:test2}\를 보라.
\showcommand{tref}
%% tabular에는 legend를 붙일 수 있다.
\begin{table}
\caption{test table}\label{tab:test}
\centering
\begin{tabular}{cc}
\hline
두 줄 짜리 & 3 \\
하단 제목 붙은 & 4 \\
\hline
\end{tabular}
\legend{caption 아닌 소제목}
\end{table}
\begin{table}
\caption{test table 2}\label{tab:test2}
\centering
\begin{tabular}{cc}
\hline \hline
두 줄 짜리 & 6 \\ \hline
하단 제목 안 붙은 & 5 \\
\hline \hline
\end{tabular}
\end{table}
(여기서 페이지를 나눈다. 페이지 나누기 명령으로는
\dispcmd{cleartoverso}를 사용하겠다. 이것은 이 뒤에 새로
시작하는 페이지가 짝수쪽(verso)이 되게 한다. \dispcmd{cleartorecto}
명령도 있다.)
\showcommand{cleartoverso}\cleartoverso
\namesubappendixtrue
\begin{subappendices}
\addappheadtotoc
\section{자동조사 테스트}
\showcommand{namesubappendixtrue}
\showcommand{addappheadtotoc}
\showenv{subsppendices}
간단한 \dispcmd{ref}-like 명령으로 \wi{자동조사}를 테스트한다.
\dispcmd{cite}도 잘 된다.
\tref{tab:test}\와 \tref{tab:test2}\이 어떻게 보이나요?
그리고 \fref{fig:examchapstyle}\은 \pref{fig:examchapstyle}\로
가면 볼 수 있어요. 페이지~\pref{fig:examchapstyle}\로 가보세요.
\showcommand{tref, \textbackslash fref}\showcommand{pref}
위의 문장 입력:
\bvsides\showcommand{bvsides}\showenv{boxedverbatim}
\begin{boxedverbatim}
\tref{tab:test}\와 \tref{tab:test2}\이 어떻게 보이나요?
그리고 \fref{fig:examchapstyle}\은
\pageref{fig:examchapstyle}\AltPageName\로 가면 볼 수 있어요.
페이지~\pageref{fig:examchapstyle}\로 가보세요.
\end{boxedverbatim}
\section{그림 테스트}
\newlength{\mylength}
\begin{figure}
\calccentering{\mylength}
\begin{adjustwidth*}{\mylength}{-\mylength}
\centering
\includegraphics[width=.6\textwidth]{doeun}
\caption{공부하는(?) 도은이}\label{doeunbike}
\end{adjustwidth*}
\end{figure}
그림이 잘 들어가는지도 테스트해야 한다고 한다. \fref{doeunbike}\를 볼 것.
이 그림은 마진폭을 계산해서 편집영역의 중간이 아니라 페이지 전체의
중간으로 가도록 \dispcmd{calccentering}을 이용했다.\showcommand{calccentering}
\showenv{adjustwidth*}
이 계산이 표준 \LaTeX\ 클래스에서 얼마나 귀찮은 것이었는지 상상할 수
있겠는가?
\query{그림넣기}
\begin{boxedverbatim}
\newlength{\mylength}
\begin{figure}
\calccentering{\mylength}
\begin{adjustwidth*}{\mylength}{-\mylength}
\centering
\includegraphics[width=.6\textwidth]{doeun}
\caption{공부하는(?) 도은이}\label{doeunbike}
\end{adjustwidth*}
\end{figure}
\end{boxedverbatim}
\end{subappendices}
%%% part 페이지를 깨끗하게...
\copypagestyle{part}{empty}
%%%%%%%%%% Ruled를 사용하되 partmark를 정의함.
\copypagestyle{MyRuled}{Ruled}
\newlength{\MyRuledheadwidth}
\setlength{\MyRuledheadwidth}{\textwidth}
\addtolength{\MyRuledheadwidth}{\marginparsep}
\addtolength{\MyRuledheadwidth}{\marginparwidth}
\makerunningwidth{MyRuled}{\MyRuledheadwidth}
\makeheadrule{MyRuled}{\MyRuledheadwidth}{\normalrulethickness}
\makeheadposition{MyRuled}{flushright}{flushleft}{flushright}{flushleft}
\makeatletter
\makepsmarks{MyRuled}{%
\let\@mkboth\markboth
\def\partmark##1{\markboth{\hparttitlehead. ##1}{##1}}
\def\chaptermark##1{\markright{\hchaptertitlehead. ##1}}
\def\sectionmark##1{}
}
\def\partmark#1{\markboth{\hparttitlehead. #1}{#1}}
\makeatother
%%% 제2장. 페이지 스타일과 챕터 스타일을 바꿈.
%%% 새로운 장에 새로운 스타일을 적용하려 할 때는,
%%% chapterstyle은 \chapter명령보다 먼저 부르고 \pagestyle은
%%% \chapter보다 나중에 부르는 것이 좋다.
\part{테스트는 즐거워}
\oblivoirchapterstyle{veelo}
\pagestyle{MyRuled}
\chapter{수학질문상자}\label{sec:math}
%% 절의 카운터를 \pnum으로.
\renewcommand\thesection{\pnum{section}}
\showcommand{makepagestyle}\showcommand{copypagestyle}
\section{자연로그의 밑}
이 절은 \cite{Kentaro}\을 인용하였다. \env{singlespacing}\을
사용하였다.\showenv{singlespacing}
%\begin{singlespacing}
\[
e^x =1+ \frac{x}{1!} + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots
\]
이라는 사실이 알려져 있다. 여기에서 $x=1$이라 하면,
\[
e=1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!} +\cdots
\]
가 된다.
우선
\[
\lim_{n\to\infty}\left(1+ \frac{1}{n}\right)^{n} = e
\]
에서 $1/n = h$라 두면,
\[
\lim_{h\to 0}\left(1+h\right)^{\frac{1}{h}} = e
\]
라고 쓸 수 있다. $e$를 밑으로 하는 대수를 $\log$라고 표시하면,
\[
\frac{\log(1+h)}{h} = \log(1+h)^{\frac{1}{h}}
\]
인데, 여기에서 $h \to \infty$이라면,
\[
\lim_{h\to 0}\frac{\log(1+h)}{h} = \lim_{h\to 0}\log(1+h)^{\frac{1}{h}} =\log e.
\]
따라서,
\[
\log(1+h)=x, \quad\text{즉}\quad h=e^{x} -1
\]
이다. 여기에서,
\[
1=\lim_{h\to0}\frac{\log(1+h)}{h}=\lim_{x\to0}\frac{x}{e^x -1}.
\]
따라서,
\[
\lim_{x\to0}\frac{e^x -1}{x}=1
\]
을 얻는다. 그런데 여기에서,
\[
y=e^x
\]
의 도함수 $y'$를 구해본다.
\[
y'=\lim_{h\to0}\frac{e^{x+h}-e^x}{h}=e^x \lim_{h\to0}\frac{e^h -1}{h}=e^x.
\]
따라서,
\[
y=e^x \text{라면}, \qquad y'=e^x
\]
이다.
또, $y=\log x$의 도함수를 구해본다.
%\begin{displaymath}
%\[
\begin{align*}
y' &= \lim_{h\to0}\frac{\log(x+h)-\log x}{h} \\
&= \lim_{h\to0}\frac{1}{h}\log\left(1+ \frac{h}{x}\right) \\
&= \frac{1}{x}\lim_{h\to0}\frac{x}{h}\log\left(1+\frac{h}{x}\right) \\
&= \frac{1}{x}\lim_{\frac{h}{x}\to0}\log\left(1+\frac{h}{x}\right)^{\frac{x}{h}} \\
&= \frac{1}{x}\log e \\
&= \frac{1}{x}.
\end{align*}
%\]
%\end{displaymath}
따라서,
\[
y=\log x \text{라면}, \qquad y'=\frac{1}{x}.
\]
%\end{singlespacing}
이와 같이 간단한 공식으로 얻어진 것은 대수의 밑으로 $e$를 썼기
때문이다. $e$ 이외의 밑을 사용하면, 공식은 보다 복잡하게 된다.
이런 의미에서 $e$를 밑으로 하는 대수를 \emph{자연로그}라고 부른다.\showcommand{emph}
이상으로부터 상상할 수 있듯이, 미적분학과 같은 이론을 전개할 때는
$e$를 밑으로 하는 대수를 사용하고, 실제의 수치계산에서는
$10$을 밑으로 하는 상용로그를 사용한다.
\fancybreak{* * *}
$0 \le t \le 1$에 있어서, $f(t)$는 연속인 도함수 $f'(t)$를 가지고,\showcommand{fancybreak}
$0 < f'(t) \le 1,\quad f(0)=0$이다. 이 때 다음 부등식이 성립함을 보여라.
\[
\left[ \int_{0}^{1} f(t)dt \right ] ^2 \ge \int_{0}^{1} [f(t)]^3 dt
\]
\vskip\onelineskip
적분구간의 상한을 변수 $x$로 바꾸어본다.
\[
\left[ \int_{0}^{x} f(t)dt \right]^2 \ge \int_0^x [f(t)]^3 dt
\]
이 식의 좌변에서 우변을 빼서 그것을 $F(x)$라고 두자.
\[
F(x) = \left[ \int_{0}^{x} f(t)dt \right]^2 - \int_0^x [f(t)]^3 dt
\]
이 때 $F(0)=0$이다.
$F(x)$를 $x$로 미분하면
\begin{equation}
\begin{split}
F'(x) &= 2\left[ \int_{0}^{x} f(t)dt \right]f(x) - \{f(x)\}^3 \\
&= f(x) \left[ 2\int_{0}^{2} f(t)dt - \{f(x)\}^2 \right]
\end{split}
\end{equation}
문제의 의미에 의해 $0<x<1$에서 $f(x) > 0$이다.
\[
G(x) = 2 \int_{0}^{x} f(t)dt - \{f(x)\}^2 \qquad (0 \le x \le 1)
\]
이라 놓으면 $G(0)=0$이고,
\begin{equation}
\begin{split}
G'(x) &= 2f(x) - 2f(x)f'(x) \\
&= 2f(x) \{1-f'(x)\} \ge 0
\end{split}
\end{equation}
이다. $0 \le x \le 1$인 모든 $x$에 관하여 $f'(x) \le 1$이므로
$G'(x) \ge 0$. 따라서 $G(x) \ge 0$임을 말할 수 있다. 그러므로
\uline{$F(x) \ge 0$이 성립한다.}\showcommand{uline (ulem package)}
%% 부록 관련 명령
%% \appendix 또는 appendices 환경
%\appendix
%% 부록 면주에 \hparttitlehead, \hchaptertitlehead 를 표시하지 않는다.
\def\partmark#1{\markboth{#1}{#1}}
\def\chaptermark#1{\markright{#1}}
%
\AppendixTitleToToc
\AttachAppendixTitleToSecnum
%\begin{appendices}
\appendix
\appendixpage*
\renewcommand\thechapter{\Roman{APPchapter}}
\renewcommand\thesubsection{\thesection.\arabic{APPsubsection}}
\setcounter{APPchapter}{0}
\chapterstyle{appendixdefault}
\renewcommand*\prechapternum{\chapnamefont 부록\ \ 제}
\renewcommand*\postchapternum{\chapnamefont 장}
\renewcommand*\printchapternum{\chapnumfont\thechapter}
%% appendix에서는 chaptersyle을 appendixcompanion,
%% appendixdefault, appendixsection 등으로 지정할 것.
%% 사용자가 새로운 chapterstyle을 설정하려 할 때는
%% appendixXXXX 환경을 새로 만들어야 한다.
%% appendix에서의 절 모양은 \thechapter.\arabic{section}으로
%% 된다. 이것은 renewcommand할 수 있다.
\pagestyle{hangul}
\chapter{19세기 초중엽}\label{sec:appchap}
\chapterprecis{\noindent 부록에서는 한자가 많은 문장과 상호참조가 많은 문장을
시험한다.}
\showcommand{chapterprecis}
\showcommand{appendix}\showenv{appendices}
\ResetHangulspace{1.333}{1.2}
\showcommand{ResetHangulspace}
\paragraphfootnotes
\showcommand{paragraphfootnotes}
\section{평안도 광산}\label{sec:appsec}
19세기에 들어와서도 1807년 \wi{평안도} \wi[위원]{渭原} 지방에서
\wi{광산}이 개발되자 단시일내에 수많은 광산노동자가 집결하여 커다란
광산촌을 형성하였는데 이 광산도 앞의 遂安광산과 동일한 형태로
운영되었을 것은 틀림없다. 1811년 평안도 농민전쟁 당시 서울에 있던
禹君則의 物主(資本主)가 수천 냥의 자금을 보내어 그것으로 雲山의 금광을
운영하게끔 한 사실, 또한 앞서 본 대로 雲山 광산노동자 800명을 官軍으로
강제적으로 끌어들이려 한 계획, \wi[김창시]{金昌始}가
\wi[운산광산]{雲山광산}의 \wi[우욱]{禹郁}과 연계하에 그곳의
광산노동자를 농민전쟁에 끌어들이는 조직 사업을 진행하였다고 하는
사실은\footnote{\bnm{日省錄} 哲宗 9年 2月 3日條} 이 시기에
雲山금광에서도 수많은 광산노동자가 집결하여 있었음을 確證하여
준다. 또한 1858년 함경도 암행어사 洪承裕의 보고에 의하면 당시
함경도에서는 金, 銀, 銅의 潛採가 광범하게 이루어져서 하나의 광산이
開發되기만 하면 도처에서 金店軍이 몇천 명씩 몰려와서 鑛山村이 형성되고
場市가 열려서 각종 日用品이 광범하게 매매되고 있고 광산의 坑의 깊이가
千餘尺에 달하는 경우도 적지 않았다.\footnote{\bnm{關南平亂錄} 卷五
安州牧使 牒報條.}
\section{술어 논리의 완전성 정리}
이 절의 텍스트는 \cite{incompl}\ pp.\ 155ff.에서 취하였다.
\showcommand{cite}
\subsection{먼저 기호의 설명을 잠깐\texorpdfstring{\ldots}{...}}
술어논리의 형식화는 모든 대상과 논리법칙(공리)의 기호화로부터
시작된다. ``태초에 기호가 있다''이다.
\showcommand{texorpdfstring}
기본 기호는 \fref{fig:syms}의 여섯 종류이다.
\showcommand{fref}
\begin{figure}
\centering
\begin{minipage}{.75\textwidth}
%\begin{tabbing}
%1111\=11111111111111111111\= \kill \\
%(1) \> 대상기호(상수) \> $ c_{1}, c_{2}, c_{3}, c_{4}, \ldots $ \\
%(2) \> 함수기호 \> $ f_{1}, f_{2}, f_{3}, f_{4}, \ldots $ \\
%(3) \> 술어기호 \> $ P_{1}, P_{2}, P_{3}, P_{4}, \ldots $ \\
%(4) \> 자유변수 \> $ a_{1}, a_{2}, a_{3}, a_{4}, \ldots $ \\
%(5) \> 속박변수 \> $ x_{1}, x_{2}, x_{3}, x_{4}, \ldots $ \\
%(6) \> 논리기호 \> $ \land, \lor, \rightarrow, \lnot, \forall, \exists $
%\end{tabbing}
\end{minipage}
\caption{기본 기호}\label{fig:syms}
\end{figure}
\showenv{tabbing}\showenv{minipage}
이 중, `자유변수'란 불특정의 대상, `속박변수'란 논리기호 $\forall$과
$\exists$의 어느 것인가와 함께 사용하는 변수를 나타낸다. $\forall$과
$\exists$는 `속박기호' 또는 `양화기호'라 부르고 $\forall$을
`전칭기호', $\exists$를 `존재기호'라고 말한다.
이 $\forall$과 $\exists$를 포함하지 않는 논리 체계가 \bnm{프린키피아
마테마티카}에서 처음으로 체계화된 ``명제논리학''이다. 이쪽은 벌써
1920년에 그 무모순성과 완전성이 당시 컬럼비아 대학의 학생에 지나지
않았던 E.~L.~포스트에 의해서 증명되고 있다.
논리기호는 초수학에 있어서는 추상적인 기호에 지나지 않는다. 그러나
근원을 밝히면 그것들에는 원래 각각 고유한 의미가 있다. 즉 `$\lnot$'는
``\ldots 이 아니다'', `$\lor$'는 ``또는'', `$\land$'는 ``동시에'',
`$\rightarrow$'는 ``이라면'', $\forall$은 ``모든'', $\exists$는 ``어떤
\ldots 가 존재한다''는 의미이다.
이 해석으로 말하면 대상이 유한집합의 경우는 술어논리도 명제논리로
환원될 수 있다. $\forall$과 $\exists$는 무한집합을 대상으로 할 때
비로소 의미를 갖는 논리기호이다. 수학은 본질적으로 무한집합을 대상으로
하고 있기 때문에 술어논리는 수학의 논리로 되어 있는 것이다.
그러나 지금은 이러한 유래를 제외하고 형식적 체계만을 문제삼고 있기
때문에 당분간 기호의 의미는 잊어버려도 상관없다. 오히려 적극적으로
잊어버려서 기호의 조작에만 전념하려고 하는 것이 초수학의 기본
방침이다.
\subsection{`항', `논리식'의 정의와 논리법칙}
기호가 갖추어진 곳에서 추론의 대상이 되는 `항'을 \pref{fig:term}의
\fref{fig:term}\과 같이 정의한다.\showcommand{pref}
\begin{figure}
\centering
\begin{minipage}{.75\textwidth}
\begin{enumerate}[(1)]\tightlist\small\raggedright
\item \label{itemone} 대상 기호와 자유변수는 항이다.
\item \label{itemtwo} $f$가 $n$ 변수의 함수기호이고, $t_1 , t_2 ,
\ldots, t_n$이 항이라면 $f(t_1 , t_2 , \ldots t_n )$은 항이다.
\item (\ref{itemone})\와 (\ref{itemtwo})\으로부터 얻어지는 것만이 항이다.
\end{enumerate}
\end{minipage}
\caption{`항'의 정의}\label{fig:term}
\end{figure}
다음으로 이 항을 사용해서 `논리식'을 \fref{fig:logi}\과 같이 정의한다.
\begin{figure}
\centering
\begin{minipage}{.85\textwidth}
\begin{enumerate}[(1)]\tightlist\small\raggedright
\item \label{st} $P$가 $n$ 변수의 술어기호이고, $t_1 , t_2 , \ldots ,
t_n $이 항이라면 $P(t_1 , t_2 , \ldots , t_n )$은 논리식이다. 특히
이것을 \emph{원시논리식}이라 부른다.
\item \label{nd} $A, B$가 논리식일 때 $\lnot A, A \lor B, A \land B, A
\to B$도 논리식이다.
\item \label{rd} $A(a)$가 자유변수 $a$를 포함하는 논리식이고 $x$가
$A(a)$ 속에 나타나지 않는 속박변수일 때 $\forall xA(x), \exists
xA(x)$는 논리식이다.
\item (\ref{st}), (\ref{nd}), (\ref{rd})에 의해서 얻어지는 것만이
논리식이다.
\end{enumerate}
\small
덧붙여 말하면, $\forall xA(x)$는 ``모든 $x$는 $A$를 충족시킨다'',
$\exists xA(x)$는 ``$A$를 충족시키는 $x$가 존재한다''라고 해석한다.
\end{minipage}
\caption{`논리식'의 정의}\label{fig:logi}
\end{figure}
그러면 다음은 이들 논리식을 사용해서 추론을 행하기 위한 논리법칙의
설정인데, 힐베르트-아카만의 공리계에서는 다음 \fref{fig:rules}\과 같이
되어 있다.
\begin{figure}
\centering
\begin{minipage}{.85\textwidth}\small
\noindent\textsf{공리}\\
\begin{enumerate}[(1)]\tightlist
\item $A \to (B\to A)$
\item $(A\to B)\to ((A\to (B\to C))\to (A\to C))$
\item $A\to (B\to A\land B)$
\item $A\land B\to A,\quad A\land B\to B$
\item $A\to A\lor B,\quad B\to A\lor B$
\item $(A\to C)\to ((B\to C)\to(A\lor B\to C))$
\item $(A\to B)\to ((A\to \lnot B)\to \lnot A))$
\item $\lnot\lnot A\to A$
\item $A(t)\to \exists xA(x)$ ($t$는 항)
\item $\forall xA(x) \to A(t)$ ($t$는 항)
\end{enumerate}
\bigskip
\noindent\textsf{추론 규칙}\\
\begin{enumerate}[1~~]
\item \label{rules:st} $\dfrac{A,\; A\to B}{B}$
\item $\dfrac{A(a)\to C}{\exists xA(x)\to C}$
\item $\dfrac{C\to A(a)}{C\to \forall xA(x)}$
\end{enumerate}
다만, $A, B, C, \ldots, \forall xA(x), \ldots$ 등은 모두 논리식으로
한다.
\end{minipage}
\caption{논리법칙 (힐베르트-아카만의 공리계를 따름)}\label{fig:rules}
\end{figure}
`추론규칙'이 형성하는 ``도형''을 ``연역도'' 또는 ``증명도''라 부르고
이 도형은 ``위의 기호열로부터 아래의 기호열을 추론한다''라고
해석한다. 예컨대 추론규칙 \ref{rules:st}\는 ``$A$와 $A\to B$로부터
$B$를 추론한다''라고 해석하는 것이다.
\subsection{증명과 해석}
이만큼 준비가 된 곳에서 `증명가능'의 개념을 다음과 같이 정의한다.\showcommand{tightlist}
\showenv{enumerate}
\begin{enumerate}[(1)]\tightlist
\item \label{ev:st} 공리는 증명가능하다.
\item \label{ev:nd} 증명가능한 논리식에 추론규칙을 적용해서 얻어지는 논리식은
증명가능하다.
\item (\ref{ev:st})\과 (\ref{ev:nd})에서 얻어진 논리식만이
증명가능하다.
\end{enumerate}
논리식 $A$가 $B_1 , B_2 , \ldots , B_n $을 가정했을 때 증명할 수
있다면,
\begin{displaymath}
B_1 , B_2 , \ldots , B_n \vdash A
\end{displaymath}
라고 쓴다.\showenv{displaymath}
또한 $A$가 술어논리의 공리만을 사용해서 증명가능할 때는
\begin{displaymath}
\vdash A
\end{displaymath}
라고 쓴다.
\begin{snugshade}
실례를 두 가지 대비시켜서 보여주자.
예컨대 논리식,
$$
\forall x \exists y (y < x)
$$
는 ``모든 $x$에 대해서 $y$가 존재하고 $y$는 $x$보다 작다''라고 해석할
수 있다. 이 해석 아래에서는 실수의 영역이면 모델이 되나 자연수의
영역에서는 모델이 되지 않는다. 자연수로 $x$를 $0$으로 잡으면 그것보다
작은 자연수 $y$는 존재하지 않기 때문이다.
대비적인 실례로서 논리식,
$$
\exists x \forall y (x \le y)
$$
를 취하자. 그 해석은 ``어떤 $x$가 존재하고 모든 $y$에 대해서 $y$는
$x$와 같거나 $x$보다 크다''로 된다. 이것은 자연수가 모델이라면
$0$이라는 최소수가 존재하기 때문에 진실이 되나 실수의 모델에서는 허위로
되는 논리식이다.
\end{snugshade}
\showenv{snugshade}
그래서 모든 해석에 대해서 진실이 되는 논리식을 `항진식' 또는
`토톨로지'라 부르고 $A$가 토톨로지일 때
\begin{displaymath}
\vDash A
\end{displaymath}
라고 쓰기로 한다.
\chapter{이 문서에 관하여}
이 문서는 \pkg{memhangul-ucs}를 처음 만들 때 테스트용으로 작성한
것이다.
\pkg{oblivoir}는 원래 \pkg{dhucs}를 백그라운드 드라이버로 하여
구현된 것이었다. 그러다가 \hologo{XeTeX}ko, \hologo{LuaTeX}ko를
백그라운드로 한 \pkg{xoblivoir}가 만들어졌다.
현재 버전의 \pkg{xoblivoir}는 이 둘을 합쳐서 어떤 엔진으로 컴파일해도
거의 같은 결과를 얻게끔 되어 있다.
따라서, 이 문서는 \hologo{pdfLaTeX}, \hologo{XeLaTeX}, \hologo{LuaLaTeX} 어느 것으로도 컴파일된다. \showcommand{hologo}
\section{texindy에 관하여}
찾아보기를 만들려면 |texindy|를 사용하라. 예를 들면 다음과 같다.
\begin{verbatim}
$ texindy -L korean -C utf8 oblivor-test.idx
\end{verbatim}
찾아보기를 찍는 명령은 |\printindex|이다. \showcommand{printindex}
%\restorechapsec \showcommand{restorechapsec}
%% 만약 appendix가 문서의 가장 끝에 오는 것이 아니라면
%% 이 명령을 appendix 이후에 실행해준다.
%% 아래와 같이 appendices 환경을 쓰는 경우에는
%% 환경을 종료하기만 하면 된다.
%\end{appendices}
%%% 본문의 끝.
\backmatter
\chapterstyle{demo}
%% \bibintoc 하면 참고문헌이 목록에 나온다.
%% 기본값이므로 별도로 설정할 필요는 없다.
%\bibintoc
\renewcommand\prebibhook{%
\showcommand{bibintoc}%
이 참고문헌 예제는 시험을 위해서 작성된 것으로 실제 문서의
내용과는 무관하다.%
\showcommand{prebibhook}}
\begin{thebibliography}{00}
\bibitem[카누쓰86]{Knuth} Donald Knuth. \textit{The
\TeX{}book}. Addison-Wesley. 1986.
\bibitem{memman} Peter Wilson. ``The Memoir Class for Configurable
Typesetting --- User Guide,'' On-line 문서.
\url{http://mirror.ctan.org/macros/latex/contrib/memoir/}.
\bibitem{incompl} 요시나가 요시마사, 임승원 (옮김), \bnm{불완전성 정리
--- ``이성의 한계''의 발견}. 전파과학사. 1993.
\bibitem[수학질문상자]{Kentaro} 야노 겐타로(矢野健太郞), 전재복
(옮김). \bnm{수학 질문 상자 --- 왜일까? 그것을 알고
싶다}. 전파과학사. 1991. (원저: 고단샤, 1973).
\end{thebibliography}
\indexintoc
\renewcommand\preindexhook{%
찾아보기는 테스트를 위해서 임의의 단어들로 선정되었다.
\bigskip}
\printindex
%% memoir에서는 \listof... 명령을 아무데나 선언할
%% 수 있다. 신기하다.
\clearpage
\showcommand{listof...}
\listofqueries
\end{document}
|