├── example ├── snu-ece-bsc-thesis.cls ├── logo1.pdf ├── logo2.pdf ├── example-en.pdf ├── example-ko.pdf ├── bib.bib ├── example-ko.tex ├── example-en.tex └── jiwonlipsum.sty ├── LICENSE ├── README.md ├── .gitignore └── snu-ece-bsc-thesis.cls /example/snu-ece-bsc-thesis.cls: -------------------------------------------------------------------------------- 1 | ../snu-ece-bsc-thesis.cls -------------------------------------------------------------------------------- /example/logo1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeta611/snu-ece-bsc-thesis/HEAD/example/logo1.pdf -------------------------------------------------------------------------------- /example/logo2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeta611/snu-ece-bsc-thesis/HEAD/example/logo2.pdf -------------------------------------------------------------------------------- /example/example-en.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeta611/snu-ece-bsc-thesis/HEAD/example/example-en.pdf -------------------------------------------------------------------------------- /example/example-ko.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeta611/snu-ece-bsc-thesis/HEAD/example/example-ko.pdf -------------------------------------------------------------------------------- /example/bib.bib: -------------------------------------------------------------------------------- 1 | @ARTICLE{6773024, 2 | author={Shannon, C. E.}, 3 | journal={The Bell System Technical Journal}, 4 | title={A mathematical theory of communication}, 5 | year={1948}, 6 | volume={27}, 7 | number={3}, 8 | pages={379-423}, 9 | doi={10.1002/j.1538-7305.1948.tb01338.x}} 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright © 2023 Jay Lee 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the "Software"), 7 | to deal in the Software without restriction, including without limitation 8 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | and/or sell copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included 13 | in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 19 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 20 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 21 | OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # snu-ece-bsc-thesis 클래스 2 | 3 | snu-ece-bsc-thesis 클래스는 서울대학교 전기정보공학부 학사학위논문 양식을 LaTeX으로 작성하기 위한 클래스입니다. 4 | 5 | - 컴퓨터공학부 학사학위논문 양식은 [snu-cse-bsc-thesis](https://github.com/Zeta611/snu-cse-bsc-thesis) 클래스를 확인하세요. 6 | - 컴퓨터공학부 석사학위논문 양식은 [snu-cse-ms-thesis](https://github.com/Zeta611/snu-cse-ms-thesis) 클래스를 확인하세요. 7 | 8 | `ko` 및 `en` 옵션으로 한국어와 영어 논문을 둘 다 지원합니다. 9 | 10 | ## 사용법 11 | 12 | **XeLaTeX 혹은 LuaLaTeX**을 사용해야 합니다. 13 | pdfLaTeX은 지원하지 않습니다.[^1] 14 | 15 | [^1]: XeLaTeX 및 LuaLaTeX은 (pdfLaTeX과 달리) 기본적으로 유니코드 인코딩을 지원하고, OTF 및 TTF 폰트를 사용할 수 있습니다. 더 자세한 정보는 [여기](https://tex.stackexchange.com/a/72/97583)를 참고하세요. 16 | 17 | ### 예시 18 | 19 | XeLaTeX을 사용할 경우 아래와 같이 조판할 수 있습니다. 20 | Biber를 통해 참고문헌을 처리하고, XeLaTeX을 두 번 더 실행하여 참조를 처리합니다.[^2] 21 | 22 | [^2]: [Overleaf](https://www.overleaf.com/)를 사용하는 경우 이 과정을 자동으로 처리하는 것 같습니다. 이외에도 [Tectonic](https://tectonic-typesetting.github.io/), [Latexmk](https://mg.readthedocs.io/latexmk.html) 등을 사용하여 자동화할 수 있습니다. 23 | 24 | ```sh 25 | xelatex example-ko 26 | biber example-ko 27 | xelatex example-ko 28 | xelatex example-ko 29 | ``` 30 | 31 | [example-ko.tex](example/example-ko.tex) 파일과 [example-en.tex](example/example-en.tex) 파일을 참고하세요. 32 | 33 | ## 저자 34 | 35 | - 이재호 [jaeho.lee@snu.ac.kr](jaeho.lee@snu.ac.kr) 36 | 37 | ## 라이선스 38 | 39 | snu-ece-bsc-thesis 클래스는 MIT 라이선스를 따릅니다. 40 | [LICENSE](LICENSE) 파일을 참고하세요. 41 | -------------------------------------------------------------------------------- /example/example-ko.tex: -------------------------------------------------------------------------------- 1 | \documentclass[ko]{snu-ece-bsc-thesis} 2 | 3 | % Add your packages here, e.g., 4 | % \usepackage{tikz} 5 | \usepackage{siunitx} 6 | 7 | % For lorem ipsum; remove these lines when writing your thesis 8 | \usepackage{lipsum} 9 | \usepackage{jiwonlipsum} 10 | 11 | % hyperref *must* be the last package to be loaded! 12 | \usepackage[pdfusetitle]{hyperref} 13 | 14 | \addbibresource{bib.bib} 15 | 16 | \title{서울대학교 공과대학 학사학위논문 템플릿} 17 | \author{이재호} 18 | \advisor{홍길동} 19 | \date{2024년 2월} 20 | \approvaldate{2023년 12월 15일} 21 | 22 | \koreankeywords{서울대학교, 공과대학, 학사학위논문, 템플릿} 23 | \englishkeywords{Seoul National University, College of Engineering, Bachelor's Thesis, Template} 24 | 25 | 26 | \begin{document} 27 | \maketitle 28 | 29 | \pagenumbering{roman} 30 | \begin{abstract} 31 | \jiwon[1] 32 | \end{abstract} 33 | 34 | \tableofcontents 35 | \listoftables 36 | \listoffigures 37 | 38 | \chapter{서론}\label{chap:introduction} 39 | \pagenumbering{arabic} 40 | 본 템플릿의 구성은 다음과 같다. 41 | \ref{chap:body}장 본론의 \ref{sec:picture}절에서 그림의 예시를 보여준다. 42 | \ref{sec:table}절에서 표의 예시를 보여준다. 43 | \ref{chap:conclusion}장에서는 본 템플릿을 요약한다. 44 | 45 | \jiwon[2-3] 46 | 47 | 48 | \chapter{본론}\label{chap:body} 49 | 정보 엔트로피는 각 메시지에 포함된 정보의 기댓값으로 식~\eqref{eq:entropy}\와 같다~\cite{6773024}. 50 | \begin{equation}\label{eq:entropy} 51 | H(X) = -\sum_{i=1}^n {\mathrm{P}(x_i) \log_b \mathrm{P}(x_i)} 52 | \end{equation} 53 | 54 | \jiwon[4-6] 55 | 56 | 57 | \section{그림}\label{sec:picture} 58 | 그림 예시는 그림~\ref{fig:example}\와 같다. 그림~\ref{fig:snu}\은 서울대학교 로고이고 그림~\ref{fig:eng}\는 서울대학교 공과대학 로고이다. 59 | 60 | \begin{figure}[htp] 61 | \centering 62 | \begin{subfigure}[b]{0.5\textwidth} 63 | \centering 64 | \includegraphics[width=0.5\textwidth]{logo1.pdf} 65 | \bicaption{서울대학교 로고}{The logo of Seoul National University}\label{fig:snu} 66 | \end{subfigure}% 67 | \begin{subfigure}[b]{0.5\textwidth} 68 | \centering 69 | \includegraphics[width=0.9\textwidth]{logo2.pdf} 70 | \bicaption{공과대학 로고}{The logo of College of Engineering}\label{fig:eng} 71 | \end{subfigure} 72 | \bicaption[그림 예시 (목차 항목)]{그림 예시.}{An example of a figure.}\label{fig:example} 73 | \end{figure} 74 | 75 | \jiwon[7-8] 76 | 77 | 78 | \section{표}\label{sec:table} 79 | 표 예시는 표~\ref{tab:example}\과 같다.\footnote{\jiwon[12]} 80 | 81 | \begin{table}[htp] 82 | \centering 83 | \bicaption[표 예시 (목차 항목)]{표 예시.}{An example of a table.}\label{tab:example} 84 | \begin{tblr}{cc} 85 | \toprule 86 | 상수 & 값 \\\midrule 87 | $c$ & \SI{299792458}{\meter\per\second} \\ 88 | $h$ & \SI{6.62607015e-34}{\joule\per\hertz} \\\bottomrule 89 | \end{tblr} 90 | \end{table} 91 | 92 | \jiwon[9-10] 93 | 94 | 95 | \chapter{결론}\label{chap:conclusion} 96 | \jiwon[11] 97 | 98 | \printbibliography 99 | 100 | \begin{abstract}[en] 101 | \lipsum[1] 102 | \end{abstract} 103 | \end{document} 104 | -------------------------------------------------------------------------------- /example/example-en.tex: -------------------------------------------------------------------------------- 1 | \documentclass[en]{snu-ece-bsc-thesis} 2 | 3 | % Add your packages here, e.g., 4 | % \usepackage{tikz} 5 | \usepackage{siunitx} 6 | 7 | % For lorem ipsum; remove these lines when writing your thesis 8 | \usepackage{lipsum} 9 | \usepackage{jiwonlipsum} 10 | 11 | % hyperref *must* be the last package to be loaded! 12 | \usepackage[pdfusetitle]{hyperref} 13 | 14 | \addbibresource{bib.bib} 15 | 16 | \title{SNU ECE BSc Thesis Template} 17 | \author{이재호} 18 | \advisor{홍길동} 19 | \date{2024년 2월} 20 | \approvaldate{2023년 12월 15일} 21 | 22 | \koreankeywords{서울대학교, 공과대학, 학사학위논문, 템플릿} 23 | \englishkeywords{Seoul National University, College of Engineering, Bachelor's Thesis, Template} 24 | 25 | 26 | \begin{document} 27 | \maketitle 28 | 29 | \pagenumbering{roman} 30 | \begin{abstract} 31 | \lipsum[1] 32 | \end{abstract} 33 | 34 | \tableofcontents 35 | \listoftables 36 | \listoffigures 37 | 38 | \chapter{Introduction}\label{chap:introduction} 39 | \pagenumbering{arabic} 40 | This template is structured as follows. 41 | Section~\ref{sec:figure} of chapter~\ref{chap:body} shows an example of a figure. 42 | Section~\ref{sec:table} of chapter~\ref{chap:body} shows an example of a table. 43 | Chapter~\ref{chap:conclusion} concludes this template. 44 | 45 | \lipsum[2-3] 46 | 47 | 48 | \chapter{Body}\label{chap:body} 49 | Entropy of information is the expected value of information contained in each message, and is given by equation~\eqref{eq:entropy}~\cite{6773024}. 50 | \begin{equation}\label{eq:entropy} 51 | H(X) = -\sum_{i=1}^n {\mathrm{P}(x_i) \log_b \mathrm{P}(x_i)} 52 | \end{equation} 53 | 54 | \lipsum[4-6] 55 | 56 | 57 | \section{Figure}\label{sec:figure} 58 | Example of a figure is shown in figure~\ref{fig:example}. 59 | Figure~\ref{fig:snu} is the logo of Seoul National University and figure~\ref{fig:eng} is the logo of College of Engineering. 60 | 61 | \begin{figure}[htp] 62 | \centering 63 | \begin{subfigure}[b]{0.5\textwidth} 64 | \centering 65 | \includegraphics[width=0.5\textwidth]{logo1.pdf} 66 | \caption{The logo of Seoul National University}\label{fig:snu} 67 | \end{subfigure}% 68 | \begin{subfigure}[b]{0.5\textwidth} 69 | \centering 70 | \includegraphics[width=0.9\textwidth]{logo2.pdf} 71 | \caption{The logo of College of Engineering}\label{fig:eng} 72 | \end{subfigure} 73 | \caption[Figure example (ToC)]{An example of a figure.}\label{fig:example} 74 | \end{figure} 75 | 76 | \lipsum[7-8] 77 | 78 | 79 | \section{Table}\label{sec:table} 80 | Example of a table is shown in table~\ref{tab:example}.\footnote{\lipsum[12]} 81 | 82 | \begin{table}[htp] 83 | \centering 84 | \caption[Table example (ToC)]{An example of a table.}\label{tab:example} 85 | \begin{tblr}{cc} 86 | \toprule 87 | Constant & Value \\\midrule 88 | $c$ & \SI{299792458}{\meter\per\second} \\ 89 | $h$ & \SI{6.62607015e-34}{\joule\per\hertz} \\\bottomrule 90 | \end{tblr} 91 | \end{table} 92 | 93 | \lipsum[9-10] 94 | 95 | 96 | \chapter{Conclusion}\label{chap:conclusion} 97 | \lipsum[11] 98 | 99 | \printbibliography 100 | 101 | \begin{abstract}[ko] 102 | \jiwon[1] 103 | \end{abstract} 104 | \end{document} 105 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/TeX,macOS 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=TeX,macOS 3 | 4 | ### macOS ### 5 | # General 6 | .DS_Store 7 | .AppleDouble 8 | .LSOverride 9 | 10 | # Icon must end with two 11 | Icon 12 | 13 | # Thumbnails 14 | ._* 15 | 16 | # Files that might appear in the root of a volume 17 | .DocumentRevisions-V100 18 | .fseventsd 19 | .Spotlight-V100 20 | .TemporaryItems 21 | .Trashes 22 | .VolumeIcon.icns 23 | .com.apple.timemachine.donotpresent 24 | 25 | # Directories potentially created on remote AFP share 26 | .AppleDB 27 | .AppleDesktop 28 | Network Trash Folder 29 | Temporary Items 30 | .apdisk 31 | 32 | ### macOS Patch ### 33 | # iCloud generated files 34 | *.icloud 35 | 36 | ### TeX ### 37 | ## Core latex/pdflatex auxiliary files: 38 | *.aux 39 | *.lof 40 | *.log 41 | *.lot 42 | *.fls 43 | *.out 44 | *.toc 45 | *.fmt 46 | *.fot 47 | *.cb 48 | *.cb2 49 | .*.lb 50 | 51 | ## Intermediate documents: 52 | *.dvi 53 | *.xdv 54 | *-converted-to.* 55 | # these rules might exclude image files for figures etc. 56 | # *.ps 57 | # *.eps 58 | # *.pdf 59 | 60 | ## Generated if empty string is given at "Please type another file name for output:" 61 | .pdf 62 | 63 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 64 | *.bbl 65 | *.bcf 66 | *.blg 67 | *-blx.aux 68 | *-blx.bib 69 | *.run.xml 70 | 71 | ## Build tool auxiliary files: 72 | *.fdb_latexmk 73 | *.synctex 74 | *.synctex(busy) 75 | *.synctex.gz 76 | *.synctex.gz(busy) 77 | *.pdfsync 78 | 79 | ## Build tool directories for auxiliary files 80 | # latexrun 81 | latex.out/ 82 | 83 | ## Auxiliary and intermediate files from other packages: 84 | # algorithms 85 | *.alg 86 | *.loa 87 | 88 | # achemso 89 | acs-*.bib 90 | 91 | # amsthm 92 | *.thm 93 | 94 | # beamer 95 | *.nav 96 | *.pre 97 | *.snm 98 | *.vrb 99 | 100 | # changes 101 | *.soc 102 | 103 | # comment 104 | *.cut 105 | 106 | # cprotect 107 | *.cpt 108 | 109 | # elsarticle (documentclass of Elsevier journals) 110 | *.spl 111 | 112 | # endnotes 113 | *.ent 114 | 115 | # fixme 116 | *.lox 117 | 118 | # feynmf/feynmp 119 | *.mf 120 | *.mp 121 | *.t[1-9] 122 | *.t[1-9][0-9] 123 | *.tfm 124 | 125 | #(r)(e)ledmac/(r)(e)ledpar 126 | *.end 127 | *.?end 128 | *.[1-9] 129 | *.[1-9][0-9] 130 | *.[1-9][0-9][0-9] 131 | *.[1-9]R 132 | *.[1-9][0-9]R 133 | *.[1-9][0-9][0-9]R 134 | *.eledsec[1-9] 135 | *.eledsec[1-9]R 136 | *.eledsec[1-9][0-9] 137 | *.eledsec[1-9][0-9]R 138 | *.eledsec[1-9][0-9][0-9] 139 | *.eledsec[1-9][0-9][0-9]R 140 | 141 | # glossaries 142 | *.acn 143 | *.acr 144 | *.glg 145 | *.glo 146 | *.gls 147 | *.glsdefs 148 | *.lzo 149 | *.lzs 150 | *.slg 151 | *.slo 152 | *.sls 153 | 154 | # uncomment this for glossaries-extra (will ignore makeindex's style files!) 155 | # *.ist 156 | 157 | # gnuplot 158 | *.gnuplot 159 | *.table 160 | 161 | # gnuplottex 162 | *-gnuplottex-* 163 | 164 | # gregoriotex 165 | *.gaux 166 | *.glog 167 | *.gtex 168 | 169 | # htlatex 170 | *.4ct 171 | *.4tc 172 | *.idv 173 | *.lg 174 | *.trc 175 | *.xref 176 | 177 | # hyperref 178 | *.brf 179 | 180 | # knitr 181 | *-concordance.tex 182 | # TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files 183 | # *.tikz 184 | *-tikzDictionary 185 | 186 | # listings 187 | *.lol 188 | 189 | # luatexja-ruby 190 | *.ltjruby 191 | 192 | # makeidx 193 | *.idx 194 | *.ilg 195 | *.ind 196 | 197 | # minitoc 198 | *.maf 199 | *.mlf 200 | *.mlt 201 | *.mtc[0-9]* 202 | *.slf[0-9]* 203 | *.slt[0-9]* 204 | *.stc[0-9]* 205 | 206 | # minted 207 | _minted* 208 | *.pyg 209 | 210 | # morewrites 211 | *.mw 212 | 213 | # newpax 214 | *.newpax 215 | 216 | # nomencl 217 | *.nlg 218 | *.nlo 219 | *.nls 220 | 221 | # pax 222 | *.pax 223 | 224 | # pdfpcnotes 225 | *.pdfpc 226 | 227 | # sagetex 228 | *.sagetex.sage 229 | *.sagetex.py 230 | *.sagetex.scmd 231 | 232 | # scrwfile 233 | *.wrt 234 | 235 | # svg 236 | svg-inkscape/ 237 | 238 | # sympy 239 | *.sout 240 | *.sympy 241 | sympy-plots-for-*.tex/ 242 | 243 | # pdfcomment 244 | *.upa 245 | *.upb 246 | 247 | # pythontex 248 | *.pytxcode 249 | pythontex-files-*/ 250 | 251 | # tcolorbox 252 | *.listing 253 | 254 | # thmtools 255 | *.loe 256 | 257 | # TikZ & PGF 258 | *.dpth 259 | *.md5 260 | *.auxlock 261 | 262 | # titletoc 263 | *.ptc 264 | 265 | # todonotes 266 | *.tdo 267 | 268 | # vhistory 269 | *.hst 270 | *.ver 271 | 272 | # easy-todo 273 | *.lod 274 | 275 | # xcolor 276 | *.xcp 277 | 278 | # xmpincl 279 | *.xmpi 280 | 281 | # xindy 282 | *.xdy 283 | 284 | # xypic precompiled matrices and outlines 285 | *.xyc 286 | *.xyd 287 | 288 | # endfloat 289 | *.ttt 290 | *.fff 291 | 292 | # Latexian 293 | TSWLatexianTemp* 294 | 295 | ## Editors: 296 | # WinEdt 297 | *.bak 298 | *.sav 299 | 300 | # Texpad 301 | .texpadtmp 302 | 303 | # LyX 304 | *.lyx~ 305 | 306 | # Kile 307 | *.backup 308 | 309 | # gummi 310 | .*.swp 311 | 312 | # KBibTeX 313 | *~[0-9]* 314 | 315 | # TeXnicCenter 316 | *.tps 317 | 318 | # auto folder when using emacs and auctex 319 | ./auto/* 320 | *.el 321 | 322 | # expex forward references with \gathertags 323 | *-tags.tex 324 | 325 | # standalone packages 326 | *.sta 327 | 328 | # Makeindex log files 329 | *.lpz 330 | 331 | # xwatermark package 332 | *.xwm 333 | 334 | # REVTeX puts footnotes in the bibliography by default, unless the nofootinbib 335 | # option is specified. Footnotes are the stored in a file with suffix Notes.bib. 336 | # Uncomment the next line to have this generated file ignored. 337 | #*Notes.bib 338 | 339 | ### TeX Patch ### 340 | # LIPIcs / OASIcs 341 | *.vtc 342 | 343 | # glossaries 344 | *.glstex 345 | 346 | # End of https://www.toptal.com/developers/gitignore/api/TeX,macOS 347 | n 348 | -------------------------------------------------------------------------------- /snu-ece-bsc-thesis.cls: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `snu-ece-bsc-thesis.cls'. 3 | %% 4 | %% ----------------------------------------------------------------- 5 | %% The snu-ece-bsc-thesis class --- A class for SNU ECE BSc theses 6 | %% Maintained by Jay Lee 7 | %% E-mail: jaeho.lee@snu.ac.kr 8 | %% Released under the MIT License. 9 | %% ----------------------------------------------------------------- 10 | %% 11 | \NeedsTeXFormat{LaTeX2e}[2022-06-01] 12 | \RequirePackage{expl3} 13 | \ProvidesExplClass 14 | {snu-ece-bsc-thesis} 15 | {2023/09/08} 16 | {0.1} 17 | {A class for SNU ECE BSc theses} 18 | 19 | 20 | %%%%%%%%%%%%%%%%%%%%%%%%% 21 | % Options for the class % 22 | %%%%%%%%%%%%%%%%%%%%%%%%% 23 | \DeclareKeys { 24 | en .code = { \bool_set_true:N \l_snu_ece_bsc_thesis_en_bool }, 25 | ko .code = { \bool_set_false:N \l_snu_ece_bsc_thesis_en_bool }, 26 | } 27 | \SetKeys { ko } 28 | \ProcessKeyOptions 29 | 30 | 31 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 32 | % XeLaTeX or LuaLaTeX required % 33 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 34 | \RequirePackage{iftex} 35 | \ifXeTeX\else\ifLuaTeX\else 36 | \ClassError {snu-ece-bsc-thesis} 37 | { This~class~only~supports~XeLaTeX~and~LuaLaTeX. } 38 | { Please~use~either~XeLaTeX~or~LuaLaTeX. } 39 | \fi\fi 40 | 41 | 42 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 43 | % Language-specific settings % 44 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 45 | \tl_const:Nn \l_snu_ece_bsc_thesis_abstractname_ko { 초~록 } 46 | \tl_const:Nn \l_snu_ece_bsc_thesis_contentsname_ko { 목~차 } 47 | \tl_const:Nn \l_snu_ece_bsc_thesis_listtablename_ko { 표~목차 } 48 | \tl_const:Nn \l_snu_ece_bsc_thesis_listfigurename_ko { 그림~목차 } 49 | \tl_const:Nn \l_snu_ece_bsc_thesis_abstractname_en { Abstract } 50 | \tl_const:Nn \l_snu_ece_bsc_thesis_contentsname_en { Contents } 51 | \tl_const:Nn \l_snu_ece_bsc_thesis_listtablename_en { List~of~Tables } 52 | \tl_const:Nn \l_snu_ece_bsc_thesis_listfigurename_en { List~of~Figures } 53 | 54 | \tl_const:Nn \l_snu_ece_bsc_thesis_abstractstyle_ko { 초\hspace{3cm}록 } 55 | \tl_const:Nn \l_snu_ece_bsc_thesis_abstractstyle_en { ABSTRACT } 56 | 57 | \bool_if:NTF \l_snu_ece_bsc_thesis_en_bool 58 | { % English main 59 | \LoadClass[11pt, a4paper]{report} 60 | \RequirePackage{kotex} 61 | 62 | 63 | \RequirePackage[doublespacing]{setspace} 64 | \RequirePackage{caption} 65 | % If the setspace is used in conjuction with the caption package, 66 | % the caption will be typeset with single spacing as default. 67 | \captionsetup[table]{font=onehalfspacing} 68 | \captionsetup[figure]{font=onehalfspacing} 69 | 70 | \let\abstractname\l_snu_ece_bsc_thesis_abstractstyle_en 71 | \let\contentsname\l_snu_ece_bsc_thesis_contentsname_en 72 | \let\listtablename\l_snu_ece_bsc_thesis_listtablename_en 73 | \let\listfigurename\l_snu_ece_bsc_thesis_listfigurename_en 74 | 75 | % Title and ToC Formatting 76 | \RequirePackage{titlesec} 77 | 78 | \titlespacing*{\chapter}{0pt}{-10mm}{10mm} 79 | \titleformat{\chapter}[block]{\centering \huge \bfseries} 80 | {Chapter\ \thechapter}{22pt}{} 81 | } 82 | { % Korean main 83 | \LoadClass[10pt, a4paper]{report} 84 | \RequirePackage[hangul]{kotex} 85 | 86 | \RequirePackage[doublespacing]{setspace} 87 | \RequirePackage[ 88 | list=off, 89 | bi-separator=smallskip, 90 | font=onehalfspacing 91 | ]{bicaption} 92 | \bicaptionsetup[table]{name=표}{name=Table} 93 | \bicaptionsetup[figure]{name=그림}{name=Figure} 94 | 95 | \let\abstractname\l_snu_ece_bsc_thesis_abstractstyle_ko 96 | \let\contentsname\l_snu_ece_bsc_thesis_contentsname_ko 97 | \let\listtablename\l_snu_ece_bsc_thesis_listtablename_ko 98 | \let\listfigurename\l_snu_ece_bsc_thesis_listfigurename_ko 99 | 100 | % Title and ToC Formatting 101 | \RequirePackage{titlesec} 102 | 103 | \titlespacing*{\chapter}{0pt}{-10mm}{10mm} 104 | \titleformat{\chapter}[block]{\centering \huge \bfseries} 105 | {제\ \thechapter\ 장}{20pt}{} 106 | } 107 | 108 | 109 | %%%%%%%%%%%%%%%%%%%%%%%% 110 | % Package dependencies % 111 | %%%%%%%%%%%%%%%%%%%%%%%% 112 | % Subfigures 113 | \RequirePackage{subcaption} 114 | 115 | % Images 116 | \RequirePackage{graphicx} 117 | 118 | % Tables 119 | \RequirePackage{tabularray} 120 | \UseTblrLibrary{booktabs} 121 | 122 | % Math 123 | \RequirePackage{amssymb,amsmath,mathtools} % Before unicode-math 124 | % \RequirePackage[math-style=TeX,bold-style=TeX]{unicode-math} 125 | 126 | \RequirePackage{xcolor} 127 | 128 | % Bibliography 129 | \RequirePackage[style=ieee]{biblatex} 130 | 131 | 132 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%% 133 | % Page layout configuration % 134 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%% 135 | \addtolength{\hoffset}{-1in} 136 | \addtolength{\voffset}{-1in} 137 | \setlength{\topmargin}{30mm} 138 | \setlength{\headheight}{0mm} 139 | \setlength{\headsep}{0mm} 140 | \setlength{\marginparwidth}{0mm} 141 | \setlength{\marginparsep}{0mm} 142 | \setlength{\oddsidemargin}{25mm} 143 | \setlength{\textwidth}{160mm} 144 | \setlength{\textheight}{227mm} 145 | \setlength{\footskip}{20mm} 146 | 147 | 148 | %%%%%%%%%%%%%%%%%%%%%%%%%%%% 149 | % Document metadata fields % 150 | %%%%%%%%%%%%%%%%%%%%%%%%%%%% 151 | \clist_new:N \l_snu_ece_bsc_thesis_keywords_ko_clist 152 | \clist_new:N \l_snu_ece_bsc_thesis_keywords_en_clist 153 | 154 | \newcommand\authorspaced{ 155 | \tl_map_inline:Nn { \@author } { ##1~ } 156 | } 157 | 158 | \NewDocumentCommand \advisor { m } 159 | { \newcommand*\@advisor{#1} } 160 | \NewDocumentCommand \approvaldate { m } 161 | { \newcommand*\@approvaldate{#1} } 162 | \NewDocumentCommand \koreankeywords { m } 163 | { 164 | \clist_set:Nn \l_snu_ece_bsc_thesis_keywords_ko_clist { #1 } 165 | } 166 | \NewDocumentCommand \englishkeywords { m } 167 | { 168 | \clist_set:Nn \l_snu_ece_bsc_thesis_keywords_en_clist { #1 } 169 | } 170 | 171 | % https://github.com/latex3/hyperref/issues/242#issuecomment-1149845979 172 | \AddToHook {begindocument/before} { 173 | \hypersetup{ 174 | colorlinks, 175 | linkcolor={black}, 176 | citecolor={red!73!black}, 177 | urlcolor={blue!60!black}, 178 | 179 | pdflang = { \bool_if:NTF \l_snu_ece_bsc_thesis_en_bool { en } { ko } }, 180 | pdfsubject = {공학~학사~학위논문}, 181 | pdfkeywords = { 182 | \clist_use:Nnnn \l_snu_ece_bsc_thesis_keywords_en_clist { , } { , } { , }, 183 | \clist_use:Nnnn \l_snu_ece_bsc_thesis_keywords_ko_clist { , } { , } { , } 184 | }, 185 | } 186 | } 187 | 188 | % Redefine \maketitle 189 | \AtBeginDocument { 190 | % hyperref package redefines \@maketitle 191 | \def\HyOrg@maketitle{ 192 | \newpage 193 | \null 194 | 195 | % 외표지 196 | \thispagestyle{empty} 197 | \begin{center} 198 | \fontsize{16pt}{19pt}\selectfont 199 | 공학~학사~학위논문 \\ 200 | \vspace{2cm} 201 | \fontsize{21pt}{25pt}\selectfont 202 | \@title \\ 203 | \vfill 204 | \fontsize{16pt}{19pt}\selectfont 205 | \@date \\ 206 | \vspace{4cm} 207 | 서울대학교~공과대학 \\ 208 | \vspace{1cm} 209 | 전기·정보공학부 \\ 210 | \vspace{1cm} 211 | \authorspaced 212 | \end{center} 213 | \newpage 214 | 215 | % 인준지 216 | \thispagestyle{empty} 217 | \begin{center} 218 | \fontsize{21pt}{25pt}\selectfont 219 | \@title \\ 220 | \vspace{1cm} 221 | \fontsize{16pt}{19pt}\selectfont 222 | 지도교수~\@advisor \\ 223 | \vspace{1cm} 224 | 이~논문을~공학~학사학위~논문으로~제출함. \\ 225 | \vfill 226 | 서울대학교~공과대학 \\ 227 | \vspace{1cm} 228 | 전기·정보공학부 \\ 229 | \authorspaced \\ 230 | \vspace{1cm} 231 | \@author 의~학사~학위~논문을~인준함. \\ 232 | \vspace{1cm} 233 | \@approvaldate \\ 234 | \vspace{1cm} 235 | 지도교수 \hspace{1.5cm} \tl_map_inline:Nn { \@advisor } { ##1~ } 236 | \hspace{1.5cm} (인) 237 | \end{center} 238 | \newpage 239 | } 240 | } 241 | 242 | % Redefine \baselinestretch for ToCs 243 | \let\@starttoc@orig\@starttoc 244 | \def\@starttoc#1{ 245 | \begin{onehalfspace} 246 | \@starttoc@orig{#1} 247 | \end{onehalfspace} 248 | } 249 | 250 | \cs_generate_variant:Nn \text_purify:n {V} 251 | \cs_generate_variant:Nn \text_purify:n {e} 252 | 253 | \RenewDocumentEnvironment { abstract } { o } 254 | { 255 | \IfValueTF { #1 } 256 | { 257 | \tl_if_eq:nnTF { #1 } { ko } 258 | { % Korean abstract 259 | \chapter*{\l_snu_ece_bsc_thesis_abstractstyle_ko} 260 | \addcontentsline{toc}{chapter} 261 | {\text_purify:V\l_snu_ece_bsc_thesis_abstractname_ko} 262 | } 263 | { 264 | \tl_if_eq:nnTF { #1 } { en } 265 | { % English abstract 266 | \chapter*{\l_snu_ece_bsc_thesis_abstractstyle_en} 267 | \addcontentsline{toc}{chapter} 268 | {\text_purify:V\l_snu_ece_bsc_thesis_abstractname_en} 269 | } 270 | { % Unrecognized language 271 | \ClassError { snu-ece-bsc-thesis } 272 | { Unrecognized~language:~`#1' } 273 | { Please~use~either~`ko'~or~`en' } 274 | 275 | \chapter*{\abstractname} 276 | \addcontentsline{toc}{chapter}{\abstractname} 277 | } 278 | } 279 | } 280 | { % No language specified 281 | \tl_if_eq:NNTF \abstractname \l_snu_ece_bsc_thesis_abstractstyle_ko 282 | { % Abstract name is unchanged in Korean environment 283 | \chapter*{\abstractname} 284 | \addcontentsline{toc}{chapter} 285 | {\text_purify:V\l_snu_ece_bsc_thesis_abstractname_ko} 286 | } 287 | { 288 | \tl_if_eq:NNTF \abstractname \l_snu_ece_bsc_thesis_abstractstyle_en 289 | { % Abstract name is unchanged in English environment 290 | \chapter*{\abstractname} 291 | \addcontentsline{toc}{chapter} 292 | {\text_purify:V\l_snu_ece_bsc_thesis_abstractname_en} 293 | } 294 | { 295 | \chapter*{\abstractname} 296 | \addcontentsline{toc}{chapter}{\abstractname} 297 | } 298 | } 299 | } 300 | } 301 | { 302 | \vfill 303 | \IfValueTF { #1 } 304 | { 305 | \tl_if_eq:nnTF { #1 } { ko } 306 | { % Korean abstract 307 | \noindent 주요어: \clist_use:Nnnn \l_snu_ece_bsc_thesis_keywords_ko_clist { ,~ } { ,~ } { ,~ } 308 | } 309 | { 310 | \tl_if_eq:nnTF { #1 } { en } 311 | { % English abstract 312 | \noindent Keywords:~\clist_use:Nnnn \l_snu_ece_bsc_thesis_keywords_en_clist { ,~ } { ,~ } { ,~ } 313 | } 314 | { % Unrecognized language 315 | \noindent 주요어:~\clist_use:Nnnn \l_snu_ece_bsc_thesis_keywords_ko_clist { ,~ } { ,~ } { ,~ } 316 | } 317 | } 318 | } 319 | { % No language specified 320 | \bool_if:NTF \l_snu_ece_bsc_thesis_en_bool 321 | { % English main 322 | \noindent Keywords:~\clist_use:Nnnn 323 | \l_snu_ece_bsc_thesis_keywords_en_clist { ,~ } { ,~ } { ,~ } 324 | } 325 | { % Korean main 326 | \noindent 주요어:~\clist_use:Nnnn 327 | \l_snu_ece_bsc_thesis_keywords_ko_clist { ,~ } { ,~ } { ,~ } 328 | } 329 | } 330 | } 331 | -------------------------------------------------------------------------------- /example/jiwonlipsum.sty: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `jiwonlipsum.sty', 3 | %% Korean version of kantlipsum.sty, tr. by Karnes 4 | %% 5 | % 6 | \RequirePackage{expl3} 7 | \ProvidesExplPackage 8 | {jiwonlipsum}{2015/05/10}{0.5}{a Korean version of (kant)lipsum} 9 | \@ifpackagelater { expl3 } { 2012/07/15 } 10 | { } 11 | { 12 | \PackageError { jiwonlipsum } { Support~package~l3kernel~too~old. } 13 | { 14 | Please~install~an~up~to~date~version~of~l3kernel~ 15 | using~your~TeX~package~manager~or~from~CTAN.\\ \\ 16 | Loading~xparse~will~abort! 17 | } 18 | \tex_endinput:D 19 | } 20 | \DeclareOption { par } 21 | { 22 | \cs_set_protected:Nn \kgl_star: { \c_space_tl } 23 | \cs_set_protected:Nn \kgl_nostar: { \par } 24 | } 25 | 26 | \DeclareOption{ nopar } 27 | { 28 | \cs_set_protected:Nn \kgl_star: { \par } 29 | \cs_set_protected:Nn \kgl_nostar: { \c_space_tl } 30 | } 31 | 32 | \DeclareOption{ numbers } 33 | { \cs_set_protected:Nn \kgl_number:n { #1\nobreakspace\textbullet\nobreakspace } } 34 | 35 | \bool_new:N \g_kgl_makeindex_bool 36 | \bool_gset_false:N \g_kgl_makeindex_bool 37 | \DeclareOption{ index } 38 | { \bool_gset_true:N \g_kgl_makeindex_bool } 39 | 40 | \cs_new_eq:NN \kgl_number:n \use_none:n 41 | \ExecuteOptions{par} 42 | \ProcessOptions \scan_stop: 43 | \RequirePackage{xparse} 44 | \msg_new:nnn {jiwonlipsum}{how-many} 45 | {The~package~provides~paragraphs~1~to~#1.~ 46 | Values~outside~this~range~will~be~ignored.} 47 | \msg_new:nnnn {jiwonlipsum}{already-defined} 48 | {Control~sequence~#1~already~defined.} 49 | {The~control~sequence~#1~is~already~defined,~ 50 | I'll~ignore~it} 51 | \int_new:N \l_kgl_start_int 52 | \int_new:N \l_kgl_end_int 53 | \seq_new:N \g_kgl_pars_seq 54 | \seq_new:N \g_kgl_words_seq 55 | \NewDocumentCommand{\jiwon}{s>{\SplitArgument{1}{-}}O{1-7}} 56 | { 57 | \group_begin: 58 | \IfBooleanTF{#1} 59 | { \cs_set_eq:NN \kgl_par: \kgl_star: } 60 | { \cs_set_eq:NN \kgl_par: \kgl_nostar: } 61 | \kgl_process:nn #2 62 | \kgl_print: 63 | \group_end: 64 | } 65 | \NewDocumentCommand{\jiwondef}{mm} 66 | { 67 | \group_begin: 68 | \cs_set_eq:NN \kgl_number:n \use_none:n 69 | \cs_set_eq:NN \kgl_par: \prg_do_nothing: 70 | \cs_if_exist:NTF #1 71 | { 72 | \msg_error:nnn {jiwonlipsum} {already-defined} {#1} 73 | } 74 | { 75 | \tl_set:Nx \l_tmpa_tl { \seq_item:Nn \g_kgl_pars_seq {#2} } 76 | \cs_new:Npx #1 { \l_tmpa_tl } 77 | } 78 | \group_end: 79 | } 80 | \cs_new_protected:Nn \kgl_process:nn 81 | { 82 | \int_set:Nn \l_kgl_start_int {#1} 83 | \IfNoValueTF{#2} 84 | { \int_set:Nn \l_kgl_end_int {#1} } 85 | { \int_set:Nn \l_kgl_end_int {#2} } 86 | } 87 | \cs_new_protected:Nn \kgl_print: 88 | { 89 | \int_step_function:nnnN 90 | {\l_kgl_start_int} {1} {\l_kgl_end_int} \kgl_use:n 91 | } 92 | \cs_new:Nn \kgl_use:n 93 | { 94 | \kgl_number:n {#1} 95 | \bool_if:NT \g_kgl_makeindex_bool 96 | { 97 | \use:x { \exp_not:N \index{ \seq_item:Nn \g_kgl_words_seq {#1} } } 98 | } 99 | \seq_item:Nn \g_kgl_pars_seq {#1} 100 | } 101 | \cs_new_protected:Nn \kgl_newpara:n 102 | { \seq_gput_right:Nn \g_kgl_pars_seq {#1\kgl_par:} } 103 | \cs_new_protected:Nn \kgl_newword:n 104 | { \seq_gput_right:Nn \g_kgl_words_seq {#1} } 105 | \group_begin: 106 | \char_set_catcode_space:n {`\ } 107 | 108 | \kgl_newpara:n { 109 | 하수는 두 산 틈에서 나와 돌과 부딪쳐 싸우며, 그 놀란 파도와 성난 물머리와 우는 여울과 노한 물결과 슬픈 곡조와 원망하는 소리가 굽이쳐 돌면서, 우는 듯, 소리치는 듯, 바쁘게 호령하는 듯, 항상 장성을 깨뜨릴 형세가 있어, 전차 만승과 전기 만대나 전포 만가와 전고 만좌로써는 그 무너뜨리고 내뿜는 소리를 족히 형용할 수 없을 것이다. 모래 위에 큰 돌은 홀연히 떨어져 섰고, 강 언덕에 버드나무는 어둡고 컴컴하여 물지킴과 하수 귀신이 다투어 나와서 사람을 놀리는 듯한데, 좌우의 교리가 붙들려고 애쓰는 듯싶었다. 110 | 혹은 말하기를, 111 | ``여기는 옛 전쟁터이므로 강물이 저같이 우는 것이다'' 112 | 하지만 이는 그런 것이 아니니, 강물 소리는 듣기 여하에 달렸을 것이다. 113 | } 114 | 115 | \kgl_newpara:n { 116 | 산중의 내 집 문 앞에는 큰 시내가 있어 매양 여름철이 되어 큰 비가 한번 지나가면, 시냇물이 갑자기 불어서 항상 차기와 포고의 소리를 듣게 되어 드디어 귀에 젖어 버렸다. 내가 일찍이 문을 닫고 누워서 소리 종류를 비교해 보니, 깊은 소나무가 퉁소 소리를 내는 것은 듣는 이가 청아한 탓이요, 산이 찢어지고 언덕이 무너지는 듯한 것은 듣는 이가 분노한 탓이요, 뭇 개구리가 다투어 우는 것은 듣는 이가 교만한 탓이요, 천둥과 우레가 급한 것은 듣는 이가 놀란 탓이요, 찻물이 끓는 듯이 문무가 겸한 것은 듣는 이가 취미로운 탓이요, 거문고가 궁우에 맞는 것은 듣는 이가 슬픈 탓이요, 종이창에 바람이 우는 것은 듣는 이가 의심나는 탓이니, 모두 바르게 듣지 못하고 특히 흉중에 먹은 뜻을 가지고 귀에 들리는 대로 소리를 만든 것이다. 117 | } 118 | 119 | \kgl_newpara:n { 120 | 지금 나는 밤중에 한 강을 아홉 번 건넜다. 강은 새외로부터 나와서 장성을 뚫고 유하와 조하·황화·진천 등의 모든 물과 합쳐 밀운성 밑을 거쳐 백하가 되었다. 나는 어제 배로 백하를 건넜는데, 이것은 하류였다. 121 | } 122 | 123 | \kgl_newpara:n { 124 | 내가 막 요동 땅에 들어왔을 때는 바야흐로 한여름이라, 뜨거운 볕 밑을 가노라니 홀연 큰 강이 앞에 당하였다. 또한 물결이 산같이 일어나 끝을 볼 수 없으니, 이것은 대개 천리 밖에서 폭우가 온 것이다. 물을 건널 때는 사람들이 모두 머리를 우러러 하늘을 보는데, 나는 생각하기에 사람들이 머리를 들고 쳐다보는 것은 하늘에 묵도하는 것인 줄 알았더니, 나중에 알고 보니 물을 건너는 사람들이 물이 돌아 탕탕히 흐르는 것을 보면 자기 몸은 물이 거슬러 올라가는 것 같고 눈은 강물과 함께 따라 내려가는 것 같아서 갑자기 현기가 나면서 물에 빠지는 것이기 때문에, 그들이 머리를 들어 우러러보는 것은 하늘에 비는 것이 아니라 물을 피하여 보지 않으려 함이었다. 또한 어느 겨를에 잠깐 동안의 목숨을 위하여 기도할 수 있겠는가. 125 | } 126 | 127 | \kgl_newpara:n { 128 | 그 위험함이 이와 같으니, 물 소리를 들어보지 못하고 모두 말하기를, 129 | ``요동 들은 평평하고 넓기 때문에 물 소리가 크게 울지 않는 것이다'' 130 | 하지만 이것은 물을 알지 못하는 것이다. 요하가 울지 않는 것이 아니라 특히 밤에 건너 보지 않은 때문이니, 낮에는 눈으로 물을 볼 수 있으므로 눈이 오로지 위험한 데만 보면서 무서움을 느껴 도리어 눈이 있는 것을 걱정하는 판인데, 어찌 또 들리는 소리가 있겠는가. 지금 나는 밤중에 물을 건너는지라 눈으로 위험한 것을 볼 수 없으니, 위험은 오로지 듣는 데만 있어 바야흐로 귀로 무서움을 느끼니 걱정을 이기지 못하는 것이다. 131 | } 132 | 133 | \kgl_newpara:n { 134 | 나는 이제야 도를 알았도다. 마음이 어두운 자는 이목이 누가 되지 않고, 이목만을 믿는 자는 보고 듣는 것을 더욱 밝혀서 병이 되는 것이다. 이제 내 마부가 발을 말굽을 밟혀서 뒷차에 실리었으므로, 나는 드디어 혼자 고삐를 늦추어 강에 띄우고, 무릎을 구부려 발을 모으고 안장 위에 앉았으니, 한번 떨어지면 강이나 물로 땅을 삼고 물로 옷을 삼으며 물로 몸을 삼고 물로 성정을 삼으니, 이제야 내 마음은 한번 떨어질 것을 판단한 터이므로 내 귓속에 강물 소리가 없어지고, 무릇 아홉 번 건너는데도 걱정이 없어 의자 위에서 좌와하고 기거하는 것 같았다. 135 | } 136 | 137 | \kgl_newpara:n { 138 | 옛날 우는 강을 건너는데, 황룡이 배를 등으로 져서 지극히 위험했으나 사생의 판단이 먼저 마음 속에 밝고 보니, 용이거나 지렁이거나, 크거나 작거나 족히 관계될 바 없었다. 소리와 빛은 외물이니 외물이 항상 이목에 누가 되어 사람으로 하여금 똑바로 보고 듣는 것을 잃게 하는 것이 이같거든, 하물며 인생이 세상을 지나는 데 그 험하고 위태로운 것이 강물보다 심하고, 보고 듣는 것이 문득 병이 되는 것임에랴. 139 | } 140 | 141 | \kgl_newpara:n { 142 | 나는 산중의 내 집에 돌아와 다시 앞 시냇물 소리를 들으면서 이것을 증험해보고, 몸 가지는 데 교묘하고 스스로 총명한 것을 자신하는 자에게 경고하는 바이다. 143 | } 144 | 145 | \kgl_newpara:n { 146 | 정사 박명원과 같은 가마를 따고 삼류하를 건너 냉정에서 아침밥을 먹었다. 십여 리 남짓 가서 한 줄기 산기슭을 돌아 나서니 태복이 국궁을 하고 말 앞으로 달려나와 땅에 머리를 조아리고 큰 소리로, 147 | ``백탑이 현신함을 아뢰오.'' 148 | 한다. 149 | 태복이란 자는 정 진사의 말을 맡은 하인이다. 산기슭이 아직도 가리어 백탑은 보이지 않았다. 말을 채찍질하여 수십 보를 채 못 가서 겨우 산기슭을 벗어나자 눈앞이 아찔해지며 눈에 헛것이 오르락내리락하여 현란했다. 나는 오늘에서야 비로소 사람이란 본디 어디고 붙어 의지하는 데가 없이 다만 하늘을 이고 땅을 밟은 채 다니는 존재임을 알았다.} 150 | 151 | \kgl_newpara:n {말을 멈추고 사방을 돌아 보다가 나도 모르게 손을 이마에 대고 말했다. 152 | ``좋은 울음터로다. 한바탕 울어볼 만하구나!'' 153 | 정 진사가, 154 | ``이 천지간에 이런 넓은 안계를 만나 홀연 울고 싶다니 그 무슨 말씀이오?'' 155 | 하기에 나는, 156 | ``참 그렇겠네, 그러나 아니거든! 천고의 영웅은 잘 울고 미인은 눈물이 많다지만 불과 두어 줄기 소리 없는 눈물을 그저 옷깃을 적셨을 뿐이요, 아직까지 그 울음 소리가 쇠나 돌에서 짜 나온 듯하여 천지에 가득 찼다는 소리를 들어 보진 못했소이다. 사람들은 다만 안다는 것이 희로애락애오욕 칠정 중에서 `슬픈 감정[哀]'만이 울음을 자아내는 줄 알았지, 칠정이 모두 울음을 자아내는 줄은 모를 겝니다. 기쁨[喜]이 극에 달하면 울게 되고, 노여움[怒]이 사무치면 울게 되고, 즐거움[樂]이 극에 달하면 울게 되고, 사랑[愛]이 사무치면 울게 되고, 미움[惡]이 극에 달하여도 울게 되고, 욕심[欲]이 사무치면 울게 되니, 답답하고 울적한 감정을 확 풀어버리는 것으로 소리쳐 우는 것보다 더 빠른 방법은 없소이다. 울음이란 천지간에 있어서 뇌성벽력에 비할 수 있는 게요. 복받쳐 나오는 감정이 이치에 맞아 터지는 것이 웃음과 뭐 다르리요? 사람들의 보통 감정은 이러한 지극한 감정을 겪어 보지도 못한 채 교묘하게 칠정을 늘어놓고 `슬픈 감정[哀]'에다 울음을 짜 맞춘 것이오. 이러므로 사람이 죽어 초상을 치를 때 이내 억지로라도 `아이고', `어이'라고 부르짖는 것이지요. 그러나 정말 칠정에서 우러나오는 지극하고 참다운 소리는 참고 억눌리어 천지 사이에 쌓이고 맺혀서 감히 터져나올 수 없소이다. 저 한나라의 가의는 자기의 울음터를 얻지 못하고 참다 못하여 필경은 선실을 향하여 한번 큰 소리로 울부짖었으니, 어찌 사람들을 놀라게 하지 않을 수 있었으리요.'' 157 | } 158 | 159 | \kgl_newpara:n { 160 | ``그래, 지금 울 만한 자리가 저토록 넓으니 나도 당신을 따라 한바탕 통곡을 할 터인데 칠정 가운데 어느 `정'을 골라 울어야 하겠소?'' 161 | } 162 | 163 | \kgl_newpara:n { 164 | ``갓난아이에게 물어보게나. 아이가 처음 배 밖으로 나오며 느끼는 `정'이란 무엇이오? 처음에는 광명을 볼 것이요, 다음에는 부모 친척들이 눈앞에 가득히 차 있음을 보리니 기쁘고 즐겁지 않을 수 없을 것이오. 이 같은 기쁨과 즐거움은 늙을 때까지 두 번 다시 없을 일인데 슬프고 성이 날 까닭이 있으리오? 그 `정'인즉 응당 즐겁고 웃을 정이련만 도리어 분하고 서러운 생각에 복받쳐서 하염없이 울부짖는 것이라, 혹 누가 말하기를 인생은 잘나나 못나나 죽기는 일반이요, 그 중간에 허물·환란·근심·걱정을 백방으로 겪을 터이니 갓난아이는 세상에 태어난 것을 후회하여 먼저 울어서 제 조문(弔問)을 제가 하는 것이라고 한다면 이것은 결코 갓난아이의 본정이 아닐 겝니다. 아이가 어미 태 속에 자리잡고 있을 때는 어둡고 갑갑하고 얽매이고 비좁게 지내다가 하루 아침에 탁 트인 넓은 곳으로 빠져 나오자 팔을 펴고 다리를 뻗어 정신이 시원하게 될 터이니, 어찌 한번 감정이 다하도록 참된 소리를 질러 보지 않을 수 있으리오! 그러므로 갓난아이의 울음소리에는 거짓이 없다는 것을 마땅히 본받아야 하리이다. 165 | 비로봉 꼭대기에서 동해 바다를 굽어보는 곳에 한바탕 통곡할 `자리'를 잡을 것이요, 황해도 장연의 금사 바닷가에 가면 한바탕 통곡할 `자리'를 얻으리니, 오늘 요동 벌판에 이르러 이로부터 산해관 일천이백 리까지의 어간은 사방에 도무지 한 점 산을 볼 수 없고 하늘가와 땅끝이 풀로 붙인 듯, 실로 꿰맨 듯, 고금에 오고 간 비바람만이 이 속에서 창망할 뿐이니, 이 역시 한번 통곡할 만한 `자리'가 아니겠소.'' 166 | } 167 | 168 | \kgl_newpara:n { 169 | 하수(河水)는 두 산 틈에서 나와 돌과 부딪쳐 싸우며, 그 놀란 파도와 성난 물머리와 우는 여울과 노한 물결과 슬픈 곡조와 원망하는 소리가 굽이쳐 돌면서, 우는 듯, 소리치는 듯, 바쁘게 호령하는 듯, 항상 장성을 깨뜨릴 형세가 있어, 전차(戰車) 만승(萬乘)과 전기(戰騎) 만대(萬隊)나 전포(戰砲) 만가(萬架)와 전고(戰鼓) 만좌(滿座)로써는 그 무너뜨리고 내뿜는 소리를 족히 형용할 수 없을 것이다. 모래 위에 큰 돌은 홀연히 떨어져 섰고, 강 언덕에 버드나무는 어둡고 컴컴하여 물지킴과 하수 귀신이 다투어 나와서 사람을 놀리는 듯한데, 좌우의 교리(蛟螭)가 붙들려고 애쓰는 듯싶었다. 170 | 혹은 말하기를, 171 | ``여기는 옛 전쟁터이므로 강물이 저같이 우는 것이다'' 172 | 하지만 이는 그런 것이 아니니, 강물 소리는 듣기 여하에 달렸을 것이다. 173 | } 174 | 175 | \kgl_newpara:n { 176 | 산중의 내 집 문 앞에는 큰 시내가 있어 매양 여름철이 되어 큰 비가 한번 지나가면, 시냇물이 갑자기 불어서 항상 차기(車騎)와 포고(砲鼓)의 소리를 듣게 되어 드디어 귀에 젖어 버렸다. 내가 일찍이 문을 닫고 누워서 소리 종류를 비교해 보니, 깊은 소나무가 퉁소 소리를 내는 것은 듣는 이가 청아(淸雅)한 탓이요, 산이 찢어지고 언덕이 무너지는 듯한 것은 듣는 이가 분노(憤怒)한 탓이요, 뭇 개구리가 다투어 우는 것은 듣는 이가 교만(驕慢)한 탓이요, 천둥과 우레가 급한 것은 듣는 이가 놀란 탓이요, 찻물이 끓는 듯이 문무(文武)가 겸한 것은 듣는 이가 취미로운 탓이요, 거문고가 궁우(宮羽)에 맞는 것은 듣는 이가 슬픈 탓이요, 종이창에 바람이 우는 것은 듣는 이가 의심나는 탓이니, 모두 바르게 듣지 못하고 특히 흉중(胸中)에 먹은 뜻을 가지고 귀에 들리는 대로 소리를 만든 것이다. 177 | } 178 | 179 | \kgl_newpara:n {지금 나는 밤중에 한 강을 아홉 번 건넜다. 강은 새외(塞外)로부터 나와서 장성을 뚫고 유하(楡河)와 조하(潮河)·황화(黃花)·진천(鎭川) 등의 모든 물과 합쳐 밀운성 밑을 거쳐 백하(白河)가 되었다. 나는 어제 배로 백하를 건넜는데, 이것은 하류(下流)였다.} 180 | 181 | \kgl_newpara:n { 182 | 내가 막 요동(遼東) 땅에 들어왔을 때는 바야흐로 한여름이라, 뜨거운 볕 밑을 가노라니 홀연 큰 강이 앞에 당하였다. 또한 물결이 산같이 일어나 끝을 볼 수 없으니, 이것은 대개 천리 밖에서 폭우(暴雨)가 온 것이다. 물을 건널 때는 사람들이 모두 머리를 우러러 하늘을 보는데, 나는 생각하기에 사람들이 머리를 들고 쳐다보는 것은 하늘에 묵도(默禱)하는 것인 줄 알았더니, 나중에 알고 보니 물을 건너는 사람들이 물이 돌아 탕탕히 흐르는 것을 보면 자기 몸은 물이 거슬러 올라가는 것 같고 눈은 강물과 함께 따라 내려가는 것 같아서 갑자기 현기(眩氣)가 나면서 물에 빠지는 것이기 때문에, 그들이 머리를 들어 우러러보는 것은 하늘에 비는 것이 아니라 물을 피하여 보지 않으려 함이었다. 또한 어느 겨를에 잠깐 동안의 목숨을 위하여 기도할 수 있겠는가. 183 | } 184 | 185 | \kgl_newpara:n { 186 | 그 위험함이 이와 같으니, 물 소리를 들어보지 못하고 모두 말하기를, 187 | ``요동 들은 평평하고 넓기 때문에 물 소리가 크게 울지 않는 것이다'' 188 | 하지만 이것은 물을 알지 못하는 것이다. 요하(遼河)가 울지 않는 것이 아니라 특히 밤에 건너 보지 않은 때문이니, 낮에는 눈으로 물을 볼 수 있으므로 눈이 오로지 위험한 데만 보면서 무서움을 느껴 도리어 눈이 있는 것을 걱정하는 판인데, 어찌 또 들리는 소리가 있겠는가. 지금 나는 밤중에 물을 건너는지라 눈으로 위험한 것을 볼 수 없으니, 위험은 오로지 듣는 데만 있어 바야흐로 귀로 무서움을 느끼니 걱정을 이기지 못하는 것이다. 189 | } 190 | 191 | \kgl_newpara:n { 192 | 나는 이제야 도(道)를 알았도다. 마음이 어두운 자는 이목(耳目)이 누(累)가 되지 않고, 이목만을 믿는 자는 보고 듣는 것을 더욱 밝혀서 병이 되는 것이다. 이제 내 마부가 발을 말굽을 밟혀서 뒷차에 실리었으므로, 나는 드디어 혼자 고삐를 늦추어 강에 띄우고, 무릎을 구부려 발을 모으고 안장 위에 앉았으니, 한번 떨어지면 강이나 물로 땅을 삼고 물로 옷을 삼으며 물로 몸을 삼고 물로 성정(性情)을 삼으니, 이제야 내 마음은 한번 떨어질 것을 판단한 터이므로 내 귓속에 강물 소리가 없어지고, 무릇 아홉 번 건너는데도 걱정이 없어 의자 위에서 좌와(坐臥)하고 기거(起居)하는 것 같았다. 193 | } 194 | 195 | \kgl_newpara:n { 196 | 옛날 우(禹)는 강을 건너는데, 황룡(黃龍)이 배를 등으로 져서 지극히 위험했으나 사생(死生)의 판단이 먼저 마음 속에 밝고 보니, 용이거나 지렁이거나, 크거나 작거나 족히 관계될 바 없었다. 소리와 빛은 외물(外物)이니 외물이 항상 이목(耳目)에 누(累)가 되어 사람으로 하여금 똑바로 보고 듣는 것을 잃게 하는 것이 이같거든, 하물며 인생이 세상을 지나는 데 그 험하고 위태로운 것이 강물보다 심하고, 보고 듣는 것이 문득 병(病)이 되는 것임에랴. 197 | } 198 | 199 | \kgl_newpara:n { 200 | 나는 산중의 내 집에 돌아와 다시 앞 시냇물 소리를 들으면서 이것을 증험(證驗)해보고, 몸 가지는 데 교묘하고 스스로 총명한 것을 자신하는 자에게 경고하는 바이다. 201 | } 202 | 203 | 204 | \kgl_newpara:n { 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 | \kgl_newpara:n { 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 | \kgl_newpara:n { 260 | 今吾夜中, 261 | 一河九渡. 262 | 河出塞外, 263 | 穿長城, 264 | 會楡河潮河黃花鎭川諸水, 265 | 經密雲城下, 266 | 爲白河. 267 | 余昨舟渡白河, 268 | 乃此下流. 269 | } 270 | 271 | \kgl_newpara:n { 272 | 余始入遼時, 273 | 方盛夏, 274 | 行熱陽中, 275 | 而忽有大河當前. 276 | 亦濤山立, 277 | 不見涯涘, 278 | 蓋千里外暴雨也. 279 | 渡水之際, 280 | 人皆仰首視天. 281 | 余意諸人者仰首默禱于天. 282 | 久乃知渡水者視水洄駛洶蕩. 283 | 身若逆泝, 284 | 目若沿流, 285 | 輒致眩轉墮溺. 286 | 其仰首者, 287 | 非禱天也, 288 | 乃避水不見爾. 289 | 亦奚暇默祈其須臾之命也哉. 290 | } 291 | 292 | \kgl_newpara:n { 293 | 其危如此, 294 | 而不聞河聲. 295 | 皆曰: 296 | 「遼野平廣, 故水不怒嗚.」 297 | 此非知河也. 298 | 遼河未嘗不鳴, 299 | 特未夜渡爾. 300 | 晝能視水, 301 | 故目專於危, 302 | 方惴惴焉, 303 | 反憂其有目, 304 | 復安有所聽乎? 305 | 今吾夜中渡河, 306 | 目不視危, 307 | 則危專於聽, 308 | 而耳方惴惴焉, 309 | 不勝其憂. 310 | } 311 | 312 | \kgl_newpara:n { 313 | 吾乃今知夫道矣! 314 | 冥心者, 315 | 耳目不爲之累; 316 | 信耳目者, 317 | 視聽彌審而彌爲之病焉. 318 | 今吾控夫, 319 | 足爲馬所踐, 320 | 則載之後車, 321 | 遂縱鞚浮河, 322 | 攣膝聚足於鞍上. 323 | 一墜則河也. 324 | 以河爲地; 325 | 以河爲衣; 326 | 以河爲身; 327 | 以河爲性情. 328 | 於是心判一墜, 329 | 吾耳中遂無河聲, 330 | 凡九渡無虞, 331 | 如坐臥起居於几席之上. 332 | } 333 | 334 | \kgl_newpara:n { 335 | 昔禹渡河, 336 | 黃龍負舟, 337 | 至危也. 338 | 然而死生之辨, 339 | 先明於心, 340 | 則龍與蝘蜓, 341 | 不足大小於前也. 342 | 聲與色, 343 | 外物也. 344 | 外物常爲累於耳目, 345 | 令人失其視聽之正如此, 346 | 而況人生涉世, 347 | 其險且危, 348 | 有甚於河, 349 | 而視與聽, 350 | 輒爲之病者乎? 351 | } 352 | 353 | \kgl_newpara:n { 354 | 吾且歸吾之山中, 355 | 復聽前溪而驗之. 356 | 且以警巧於濟身而自信其聰明者. 357 | } 358 | 359 | \kgl_newword:n {하수} 360 | \kgl_newword:n {시내} 361 | \kgl_newword:n {흉중} 362 | \kgl_newword:n {소리} 363 | \kgl_newword:n {일야구도하기} 364 | \kgl_newword:n {호곡장론} 365 | \kgl_newword:n {황룡} 366 | \kgl_newword:n {요동} 367 | \kgl_newword:n {열하일기} 368 | \kgl_newword:n {요하} 369 | \kgl_newword:n {도} 370 | \kgl_newword:n {이목} 371 | \kgl_newword:n {외물} 372 | \kgl_newword:n {jiwon} 373 | \kgl_newword:n {박지원} 374 | \kgl_newword:n {연암} 375 | \group_end: 376 | \msg_info:nnx {jiwonlipsum} {how-many} 377 | { \int_eval:n {\seq_count:N \g_kgl_pars_seq} } 378 | %% 379 | %% 380 | %% End of file `jiwonlipsum.sty'. 381 | --------------------------------------------------------------------------------