KTUGFaq
KTUG FAQ
FrontPage › noweb
[ÆíÁý]
nowebÀ̶õ ¶
noweb Àº LaTeX À» »ç¿ëÇÏ´Â cweb ÀÌ´Ù.
web/cweb ÀÌ TeX À» ´ë»óÀ¸·Î ÇÏ´Â °Íó·³ noweb Àº LaTeX À» ´ë»óÀ¸·Î ÇÑ´Ù.
Áï, ±âÁ¸ÀÇ ¸ðµç LaTeX ÀÇ ÆÐÅ°Áö¸¦ cweb ¿¡¼ Á¦°øÇÏ´Â literate programming °ú ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ´Ù.
[ÆíÁý]
´Ù¿î·Îµå/ÀνºÅç ¶
http://www.eecs.harvard.edu/nr/noweb/
¿¡¼ ¼Ò½º¸¦ ´Ù¿î·Îµå ÇÏ¿© ÄÄÆÄÀÏ ÇØÁÖ¸é µÈ´Ù.
[ÆíÁý]
knoweb ¶
±âÁ¸ÀÇ noweb À» °³¼±ÇÑ ½ºÅ¸ÀÏ ÆÄÀÏ, http://www.k-online.com/~joer/noweb/knoweb.html ¿¡¼ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù.
ÀÌ ¹öÀüÀÌ ¹®Á¦°¡ ¾ø°í ´õ ¾ÈÁ¤ÀûÀ̹ǷΠ°¡´ÉÇϸé knoweb.sty ¸¦ »ç¿ëÇϵµ·Ï ÇÑ´Ù.
[ÆíÁý]
¿¹Á¦ ¸¸µé±â ¶
°£´ÜÈ÷ ±¸±¸´ÜÀ» ÇØÁÖ´Â ¿¹Á¦¸¦ ¸¸µé¾î º¸¾Ò´Ù.
\documentclass{article} \usepackage{noweb} \usepackage{dhucs} \begin{document} \section{±¸±¸´Ü ¸¸µé±â} ±¸±¸´ÜÀ» ÇØÁÖ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ º¸ÀÚ. @ °¡Àå ³ôÀº ·¹º§¿¡¼´Â ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Ù. <<nine.c>>= <<headers>> <<engine>> <<main>> <<print>> <<test>> @ »óÅ´ [[status]]·Î Ç¥½Ã°¡ °¡´ÉÇÏ´Ù. <<headers>>= /* Çì´õÆÄÀÏ */ #include <stdio.h> #include <assert.h> @ <<engine>>= /* DoxyGen string */ int engine(int x, int y) { assert(x >= 0 && y >= 0); return (x * y); } @ <<print>>= /* Write down the result. */ int print(int x, int y, int z) { printf("(%d) X (%d) = (%d)\n",x,y,z); } @ <<main>>= /* Main Routine */ int main() { int i, j; for (i = 1; i < 3; i++) { for (j = 1; j < 3; j++) { int z = engine(i,j); print(i,j,z); } } } @ <<test>>= /* Test routine */ int test() { printf("testme\n"); } @ \end{document}
[ÆíÁý]
»ç¿ë¹ý ¶
ÅØÆÄÀÏ ¾ò±â
noweave -delay nine.nw > nine.tex
¼Ò½ºÄÚµå ¾ò±â
notangle nine.nw -Rnine.c > nine.c
[ÆíÁý]
°á°ú ¶
Åؼҽº¸¦ ÄÄÆÄÀÏ Çϸé pdf ¸¦ ¾òÀ» ¼ö ÀÖ´Ù.
¼Ò½ºÄڵ带 ÄÄÆÄÀÏ Çϸé ÇÁ·Î±×·¥À» ¾òÀ» ¼ö ÀÖ´Ù.
$ gcc nine.c -o nine $ ./nine (1) X (1) = (1) (1) X (2) = (2) (2) X (1) = (2) (2) X (2) = (4)
[ÆíÁý]
ÄÚµå ûũ ¶
noweb Àº <<>> ·Î »ó¡µÇ´Â ÄÚµå ûũµéÀ» Çϳª·Î ¸ð¾ÆÁÖ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù.
\nowebchunks
¸í·ÉÀ» ÀÌ¿ëÇÑ´Ù.
[ÆíÁý]
À妽º ÁöÁ¤ ¶
@ %def main À» ÄÚµåûũ ´ÙÀ½¿¡ ±â·ÏÇϸé À妽º¿Í ÄÚµåûũ°¡ ¿¬°áÀÌ µÈ´Ù. main Àº À妽º·Î »ç¿ëÇÒ, ¹Ì¸® Á¤ÀÇµÈ °ªÀÌ´Ù.
[ÆíÁý]
Å« ÇÁ·Î±×·¥ ¸¸µé±â ¶
À¥Àº ÇϳªÀÇ nw ÆÄÀÏ¿¡¼ ¿©·¯°³ÀÇ ¼Ò½ºÆÄÀÏÀ» ¸¸µé¾î ³¾ ¼ö°¡ ÀÖ´Ù.
-R ¿É¼ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù.
¶ÇÇÑ À¥Àº ¿©·¯°³ÀÇ nw ÆÄÀÏÀ» ¸¸µé°í, °¢°¢À» tex À¸·Î º¯È¯ÇÑ ´ÙÀ½¿¡ \input À» ÀÌ¿ëÇؼ ÇϳªÀÇ 'Å«' ÅØ ÆÄÀÏÀ»
¸¸µé¾î ³¾ ¼ö ÀÖ´Ù.
ÀÌ µÎ°¡Áö¸¦ Á¾ÇÕÇÏ¸é ¾ÆÁÖÅ« ÇÁ·ÎÁ§Æ®¸¦ À¥À¸·Î ¸¸µé¾î ³¾ ¼ö°¡ ÀÖ´Ù. ±×·¯³ª ÀÌ °æ¿ì make ÆÄÀϵµ µ¿½Ã¿¡ ¸¸µé¾î¾ß ÇÑ´Ù.
[ÆíÁý]
±âŸ ¶
- notangle ÀÌ ¸¸µé¾î ÁÖ´Â ¼Ò½ºÄÚµå´Â Á¶±Ý ´ä´äÇÑ ´À³¦À» ÁØ´Ù. ÀÌ°æ¿ì bcpp µîÀ» ÀÌ¿ëÇÏ¿© ¼Ò½º¸¦ ¿¹»Ú°Ô º¯È¯ÇÒ ¼ö ÀÖ´Ù.
- -ylcnc ¸¦ »ç¿ëÇϸé Ä¿¸àÆ®°¡ ÄÚµå¿Í Àß ¿¬°áµÈ´Ù.