= Source Code Listing ¹æ¹ý = [[TableOfContents]] == ÀϹÝÀûÀÎ ¾È³» == http://www.tex.ac.uk/cgi-bin/texfaq2html?label=codelist == °£´ÜÇÏ°Ô ÁÙ¹øÈ£¸¸ ³Ö±â == KTUGOperate:20535 {{{#!vim tex \usepackage{fancyvrb} \begin{Verbatim}[fontfamily=cmtt,frame=single,baselinestretch=1,fontsize= \footnotesize,numbers=left] ... \end{Verbatim} }}} ȤÀº {{{#!vim tex \usepackage{moreverb} ... \begin{listing}{1} [page 1 0 0 0 0 0 0 0 0 0] fnt: cmr10 at 50pt set: 'Hello, World!' \end{listing} ... }}} À§ÀÇ \begin{listing}{num} ¿¡¼­ num Àº ½ÃÀÛ¹øÈ£¸¦ ³ªÅ¸³»°í \begin{listing}{num} ÀÌÀü¿¡ \let\listinglabelsize\footnotesize ¿Í °°ÀÌ ¼ýÀÚÅ©±â¸¦ Á¶ÀýÇÒ ¼ö ÀÖ´Ù. == verbatim-like ¼Ò½ºÄÚµå ¸®½ºÆà == === verbatim ȯ°æ === verbatim ȯ°æÀ» ÀÌ¿ëÇÕ´Ï´Ù. {{{#!vim tex \begin{verbatim} for (int i = 0; i < 10; i++) { ... } \end{verbatim} }}} === verbatim ÆÐÅ°Áö ÀÌ¿ë === {{{#!vim tex \usepackage{verbatim} \verbatiminput{alltttest.tex} }}} verbatim ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÏ´Â ÀÌÀ¯´Â ´ÙÀ½°ú °°½À´Ï´Ù. * verbatim environment¸¦ »ç¿ëÇϴ°æ¿ì memory overflow°¡ ÀϾ ¼ö ÀÖ´Ù°í ÇÕ´Ï´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù. * comment ȯ°æÀ» ÀÌ¿ëÇؼ­ TeX ¹®¼­¿¡ commentingÀ» ÇØÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. * \verbatiminputÀ» Á¦°øÇÕ´Ï´Ù. === sverb ÆÐÅ°Áö === === fancyvrb ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÑ ¼Ò½ºÄÚµå ¸®½ºÆà === * ÁÙ³ª´©±â ³íÀÇ - KTUGOperate:15019 * Environment ¿¡¼­ Verbatim -KTUGOperate:15016 * listings ÆÐÅ°ÁöÀÇ ÇѱÛÁÖ¼® ó¸® ¹ö±× - KTUGOperate:11425 listings ÆÐÅ°Áö´Â ÁÖ¼®¹®ÀÇ ÇѱÛÀ» ÀÌ»óÇÏ°Ô Ç¥½ÃÇÕ´Ï´Ù. ±×·¯³ª fancyvrb ÆÐÅ°Áö´Â ÁÖ¼®ÀÇ ÇѱÛÀ» Ç¥½ÃÇϴµ¥ ¹®Á¦°¡ ¾ø½À´Ï´Ù. °Ô´Ù°¡ ±Û²ÃÀ» ÁöÁ¤ÇÏ°í Çà¹øÈ£¸¦ ºÙÀÏ ¼ö µµ ÀÖ½À´Ï´Ù. {{{#!vim tex \documentclass{article} \usepackage{hangul} \usepackage{fancyvrb} \title{fancyvrb ÆÐÅ°Áö Å×½ºÆ®} \begin{document} ÀÌ°ÍÀº Å×½ºÆ®ÀÔ´Ï´Ù. \begin{Verbatim} [fontfamily=cmtt,frame=single,baselinestretch=1,fontsize=\footnotesize,numbers=left] int main(int argc, char *argv[]) { //ÇÑ±Û ÁÖ¼®1 /* ÇѱÛÁÖ¼®2 */ printf("Çï·Î¿ì ¿ùµå\n\n\n"); printf("Hello, world\n"); return 0; } \end{Verbatim} \end{document} }}} °è¼Ó °°Àº ¿É¼ÇÀ» ¾²±â ½È´Ù¸é \DefineVerbatimEnvironment ¸¦ ¾µ ¼ö ÀÖ½À´Ï´Ù. {{{#!vim tex \DefineVerbatimEnvironment {source}{Verbatim} {frame=single, baselinestretch=1, fontsize=\footnotesize, numbers=left} \begin{source} void hello { printf("hello world"); } \end{source} }}} === alltt ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÏ´Â ¹ý === {{{#!vim tex \documentclass{article} \usepackage{alltt} \begin{document} \begin{alltt} void main(void)\{ printf("Hello, world"); printf("Hello,world"); /* \emph{°­Á¶µµ »ç¿ë°¡´ÉÇÔ} */ \} \end{alltt} \end{document} }}} °¡²û TeX ¼Ò½º¿Í ÇÔ²² ÇÁ·Î±×·¥ ¼Ò½º¸¦ »ç¿ëÇÏ°í ½ÍÀ» °æ¿ì°¡ ÀÖ´Ù. À̶§¿¡´Â alltt package¸¦ »ç¿ëÇÑ´Ù. * ÇÁ·Î±×·¥ÁßÀÇ { ¸¦ »ç¿ëÇϱâ À§Çؼ­´Â \{¶ó°í ½áÁØ´Ù. * \emph{} °°ÀÌ TeX ¸í·É¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. === Moreverb Package ¸¦ »ç¿ëÇÏ´Â ¹ý === from KTUGOperate:3173 (by [Progress]) moreverb ÆÐÅ°Áö´Â ¸®½ºÆà ȯ°æÀ» Á¦°øÇÕ´Ï´Ù. ÇÁ·Î±×·¥ °°Àº ±¸¹®ÀÇ ¿ÞÂÊ¿¡ ÁÙÀ» ´Þ¾ÆÁÖ´Â °ÍÀÌÁö¿ä. {{{#!vim tex \begin{listing}[1]{1} \begin{equation*} \begin{CD} A \cap B @>j>\mbox{\small projection}>B \\ @V i V \mbox{\small injection} V @VVgV \\ A @j>\mbox{\small projection}>B \\ @V i V \mbox{\small injection} V @VVgV \\ A @ #include #pragma hdrstop // words not recognised as keywords are considered // to be identifiers and are typeset in italic void main() { int n; hello(0x1C); silly_funct(); } \EndC \end{document}}}} ½ÇÇà°á°ú Uploads:c_pascal.jpg === Algorithmic Package¸¦ »ç¿ëÇÏ´Â ¹ý === [Algorithm] ½ÇÇà°á°ú Uploads:algorithmic.jpg === Program Package ¸¦ »ç¿ëÇÏ´Â ¹ý === {{{#!vim tex \documentclass{article} \usepackage{program} \begin{document} \begin{programbox} \mbox{A fast exponential procedure:} \BEGIN \FOR i := 1 \TO 10 \STEP 1 \DO |expt|(2,i); |newline| \OD \WHERE \rcomment{A comment here} \PROC |expt|(x,n) \BODY z := 1; \DO \IF n = 0 \THEN \EXIT \FI; \DO \IF |odd|(n) \THEN \EXIT \FI; n := n/2; x := x*x; \OD; n := n-1; z := z*x \OD; |print|(z) \ENDPROC \END \end{programbox} \end{document} }}} ½ÇÇà°á°ú Uploads:prog.jpg === Listings Package ¸¦ »ç¿ëÇÏ´Â ¹ý === KTUGOperate:8421 (by [hoze]) {{{#!vim tex \documentclass{article} \usepackage{listings} \begin{document} \lstset{numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt} \begin{lstlisting} fileviewer(Dir) :- new(F, frame('File Viewer')), send(F, append(new(B, browser))), send(new(D, dialog), below(B)), send(D, append(button(view, message(@prolog, view, B?selection?key)))), send(D, append(button(quit, message(F, destroy)))), send(B, members(directory(Dir)?files)), send(F, open). view(F) :- send(new(V, view(F)), open), send(V, load(F)). \end{lstlisting} \end{document} }}} /!\ Listings ÆÐÅ°Áö¿¡¼­ ¼Ò½º Äڵ忡 ÇѱÛÀÌ µé¾î ÀÖÀ» °æ¿ì À̸¦ Àß Ç¥ÇöÇØÁÖÁö ¸øÇÑ´Ù. ÇÑ ÁÙ ¾È¿¡¼­¸¸ Ç¥ÇöÇÏ·Á¸é ÇÑ±Û ºÎºÐÀ» escape ¹üÀ§ ¾È¿¡ µÒÀ¸·Î½á ¹®Á¦¸¦ ÀϺΠÇÇÇØ°¥ ¼ö ÀÖ´Ù. escape ¹üÀ§ÀÇ ½ÃÀÛ°ú ³¡À» ³ªÅ¸³»´Â ¹®ÀÚ´Â listingÇÏ·Á°í ÇÏ´Â ¾ð¾î¿¡¼­ À¯º¸¹®ÀÚ·Î »ç¿ëµÇÁö ¾Ê´Â ±ÛÀÚ Áß¿¡¼­ °ñ¶ó¾ß ÇÒ °ÍÀÌ´Ù. ¿¹¸¦ µé¸é tilde ¹®ÀÚ¸¦ escape·Î »ç¿ëÇϱâ·Î ÇÑ´Ù¸é {{{ \begin{lstlisting}[escapeinside=~~] #include int main(int argc, char *argv[]) { //~Çï·Î¿ì ¿ùµå¸¦ Ãâ·Â~ /*~¿©·¯ ÁÙ ÁÖ¼®ÀÇ °æ¿ì¿¡´Â Çະ·Î~ ~escape ¹üÀ§¸¦ ¼³Á¤ÇØÁØ´Ù.~ */ printf("Hello, world\n"); printf("~¾È³çÇϼ¼¿ä~\n"); return 0; } \end{lstlisting} }}} ¾Æ½¬¿î ´ë·Î ÇÑ±Û ¹®Á¦´Â ÀÌ·¸°Ô ÇÏ¿© ±×·°Àú·° ó¸®ÇÒ ¼ö ÀÖ´Â °ÍÀ¸·Î º¸ÀÓ. == Float °ú °áÇÕÇÏ¿© ¿¹»Ú°Ô ¸¸µé±â == === floatstyleÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ý === {{{#!vim tex \floatstyle{ruled} \newfloat{Program}{thp}{lop}[section] \listof{Program}{Program Listing} \begin{Program} \listing{png2jpgs.py} \caption{The Program} \end{Program} }}} The LaTeX Companion p.148 Âü°í. === algorithm ÆÐÅ°Áö === Âü°í [Algorithm] == ÆÁ: ÇÑÀå ÀÌ»óÀÇ ¼Ò½º Listing + TOC-like ÷°¡Çϱâ == À§¿¡¼­º» float À» ÀÌ¿ëÇϸé, ÀÚµ¿À¸·Î listof ¿¡ ³»¿ëÀ» ¸¸µé¾î ÁÖ°í, °£´ÜÇÑ Àå½ÄÀ» ÇØÁØ´Ù. ±×·¯³ª ÇÑÀå ÀÌ»óÀÇ ¼Ò½º¸¦ ¸®½ºÆÃÇϱâ À§Çؼ­´Â Á÷Á¢ ºñ½ÁÇÑ È¯°æÀ» ¸¸µé¾î ÁÖ¾î¾ß ÇÑ´Ù. === Ä«¿îÅÍ ¸¸µé±â === {{{#!vim tex \newcounter{example}[section] % section ¿¡ ÀÚµ¿À¸·Î Ä«¿îÅ͸¦ 0·Î ¸¸µé¾î ÁØ´Ù. \setcounter{example}{1} }}} === TOC like ±â´É Ãß°¡ === {{{#!vim tex \makeatletter \newcommand{\listofexamples}{\@starttoc{xmp}} \newcommand{\ecaption}[1]{\addcontentsline{xmp}{example}{#1} \begin{centering} \bf Example \thesection .\theexample : #1 \\[1cm] \end{centering} } \newcommand{\l@example}[2]{\par\noindent#1 \dotfill {\itshape #2}} \makeatother }}} === environment ¸¸µé±â === {{{#!vim tex \newenvironment{slist}{\noindent\rule{\textwidth}{1pt}\begin{list}{}{}\item[]} {\end{list}\noindent\rule{\textwidth}{1pt} \stepcounter{example}} }}} === ½ÇÁ¦ »ç¿ë === {{{#!vim tex \begin{slist} \verbatiminput{biorhythm.rb} \end{slist} \ecaption{¾È³çÇϼ¼¿ä?} }}} ´õ ÁÁÀº ¹æ¹ýÀÌ ÀÖÀ¸¸é Ãß°¡ÇØ Áֽñ⠹ٶø´Ï´Ù. --[smcho] == ±âŸ == === ¼Ò½ºÄڵ忡 ¶óÀιøÈ£ Ãß°¡ À¯Æ¿¸®Æ¼(python) === Äڵ忡 ¶óÀιøÈ£¸¦ Ãß°¡ÇÏ´Â °ÍÀº ´ÙÀ½°ú °°Àº Utility¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. {{{#!vim python #!/usr/bin/python # -*- coding: UTF-8 -*- import string import os.path ADDED_SPLIT = "_lineadd" class AddLine: def __init__(self, fileName_): self._fileName = fileName_ # ÆÄÀÏÀÇ À̸§¿¡¼­ È®ÀåÀÚ¸¸À» ºÐ¸®ÇØ ³½´Ù [name,ext] = os.path.splitext(fileName_) self._fileNameNew = name + ADDED_SPLIT + ext print self._fileNameNew def append(self): try: fp = open(self._fileName) fp2 = open(self._fileNameNew,"w") lines = fp.readlines(); # ÀÏ´Ü line stripÀ» ÇÑ´Ù. count = 1 for line in lines: #line = string.rstrip(line) newline = "%4d: %s" % (count, line) count += 1 fp2.write(newline) except IOError: print "ERROR opening file" if __name__ == "__main__": line = AddLine("add_line.py") line.append() }}} === framed ÆÐÅ°Áö ÀÌ¿ë === framed ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÏ¸é ¼Ò½º ÁÖÀ§¿¡ ½±°Ô ¼±À» µÎ¸¦ ¼ö°¡ ÀÖ´Ù. ¼Ò½ºÄڵ尡 1ÀåÀÌ ³Ñ¾î°¡µµ ¹®Á¦¾øÀÌ µ¿ÀÛÇÑ´Ù. {{{#!vim tex \begin{framed} \verbatiminput{framed.sty} \end{framed} }}} === ¼Ò½ºÄڵ带 LaTeX ÄÚµå·Î º¯È¯ÇÏ´Â À¯Æ¿¸®Æ¼ === from KTUGOperate:2479 ftp://axp3.sr.fh-mannheim.de/cvt2latex/cvt2ltx.zip === C++2LaTeX S/W === [http://www.arnoldarts.de/cpp2latex.html] == `LGrind` Package¸¦ »ç¿ëÇÏ´Â ¹ý == [http://www.ctan.org/tex-archive/support/lgrind/?action=/tex-archive/support/] À§ÀÇ ÁÖ¼Ò¿¡¼­ ¼Ò½ºÄڵ带 ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖÀ¸³ª ±×³É ÄÄÆÄÀÏÀº µÇÁö ¾Ê´Â´Ù. À§ÀÇ ¼Ò½ºÄڵ带 Win32 ȯ°æ¿¡¼­ ÄÄÆÄÀϸµ ÇÑ °ÍÀº ¿©±â¿¡¼­ ´Ù¿î·Îµå ¹ÞÀ¸¸é µÈ´Ù. Uploads:lgrind.zip === LGrind »ç¿ë¹ý === {{{ lgrind -i -lc -d lgrindef lgutil.c > res.tex }}} ÆĽºÄ® ÄÚµùÀÇ °æ¿ì -lpascal µîÀ¸·Î º¯°æÇÒ ¼ö ÀÖ´Ù. ÀÚ¼¼ÇÑ »çÇ×Àº lgrind.pdf ÂüÁ¶. === ¿¹Á¦ ÄÚµå === {{{#!vim tex \usepackage[leftno,lineno5]{lgrind} \usepackage{color} \LGnuminterval=1 % numbering interval \def\LGfsize{\small} % font size \def\BGfont{\ttfamily\color{cyan}} % default %\def\CMfont{\ttpfamily\bfseries\color{blue}} \def\KWfont{\ttfamily\color{blue}} % keyword \def\NOfont{\bfseries\color{red}} % Number \def\STfont{\ttfamily\color{green}} % String \def\TTfont{\ttfamily\upshape} \def\VRfont{\ttfamily\color{black}\small} % variable ... \lgrindfile{code/chap1/cradle.tex} }}} Uploads:csource.jpg === ¹ö±× === »ý¼ºµÈ tex ÆÄÀÏÀÇ Á¦ÀÏ ¸¶Áö¸·¿¡ °ø¶õÀ» Çϳª µÎ¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸ç \LGnuminterval=1 ·Î ¸¸µé¾î, ¸ðµç ¶óÀο¡ ¹øÈ£¸¦ ºÙÀÌ´Â °æ¿ì¿¡ ¹®Á¦°¡ »ý±ä´Ù. === ÀÚµ¿È­ === ´ÙÀ½°ú °°Àº ¹èÄ¡ ÆÄÀÏÀ» ¸¸µé¾î¼­ path ¿¡ ÀúÀåÇÑ´Ù. {{{#!vim lgrind -i -l%1 -d d:\prog\bin\lgrindef %2 > %3 rem ÀÚµ¿À¸·Î »ý¼ºµÈ ÆÄÀÏÀÇ Á¦ÀÏ ¸¶Áö¸·¿¡ °ø¶õÀ» Ãß°¡ÇÏ´Â ±â´ÉÀ» Ãß°¡ÇÏ¿©¾ß ÇÑ´Ù. python d:\prog\bin\addblankline.py %3 }}} ÀÚµ¿À¸·Î Á¦ÀÏ ¸¶Áö¸·¿¡ °ø¶õÀ» ³Ö´Â python ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°´Ù. {{{#!vim python #!/usr/bin/python import sys def process(val_): try: f = open(val_,"r+") except IOError: print "Error! no such file" sys.exit() f.seek(0,2) f.write('\n') f.close() if __name__ == '__main__': try: val = sys.argv[1] except IndexError: print "Error! no argumnet" sys.exit() process(val) }}} »ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù. {{{#!vim lg pascal cradle.dpr cradle.tex }}} == [Highlight] == ´Ù¾çÇÑ Å׸¶¿Í ½ºÅ¸ÀÏÀ» Á¦°øÇÏ´Â ¼Ò½º ÄÚµå ¸®½ºÆÃÀÇ ÃÖÀûÀÇ Åø. * http://www.andre-simon.de/ * CTAN:/support/highlight/ [smcho] ´ÔÀÇ ³ë·ÂÀ¸·Î ÀúÀÚ¿Í Á¢ÃËÇÑ ³¡¿¡ ÇѱÛ(EUC-KR, UTF-8) ÁÖ¼®¹®ÀÇ Ã³¸®°¡ °¡´ÉÇØÁø º£Å¸ ¹öÀüÀÌ ³ª¿Ô´Ù. == ¿¹Á¦ ¼Ò½º == ÀÌÁ¦±îÁö ³ª¿Â µµ±¸µéÀ» Á¾ÇÕÇÏ¿© ´ÙÀ½°ú °°Àº °£´ÜÇÑ ¿¹¸¦ ¸¸µé¾ú´Ù. ÀÌ´Â python ¼Ò½º¸¦ hightlight ¸¦ ÀÌ¿ëÇÏ¿© LaTeX À¸·Î ¸¸µç´ÙÀ½ À̸¦ listofsource µîÀÇ È¯°æÀ» ÀÌ¿ëÇÏ¿© ó¸®ÇÑ °ÍÀÌ´Ù. [PDFHyperLink] ¸¦ ÀÌ¿ëÇؼ­ pdf »ó¿¡¼­ ´Ù¸¥ ¼Ò½º³ª ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°´Â °Íµµ °¡´ÉÇÏ´Ù. ´Ü ÀÌ°æ¿ì¿¡ python interpreter °¡ ±ò·Á ÀÖ¾î¾ß ÇÑ´Ù. * Uploads:s.jpg * Uploads:tkinter.zip ---- Contributors: [smcho] ---- CategoryFaq