KTUGFaq

KTUG FAQ

noweb (rev. 1.6)

·Î±×ÀÎ:
ºñ¹Ð¹øÈ£:
°¡ÀÔ
A well-known friend is a treasure.
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 ¸í·ÉÀ» ÀÌ¿ëÇÑ´Ù.

À妽º

noweb Àº ¾î¶°ÇÑ Á¤ÀÇ°¡ ¾îµð¿¡¼­ »ç¿ëµÇ¾ú´ÂÁö¸¦ ¾Ë·ÁÁÖ´Â index ¸¦ ¸¸µé ¼ö ÀÖ´Ù.

À妽º Á¤ÀÇ

[[main]] °ú °°ÀÌ »ç¿ëÇϸé main ÀÌ À妽º·Î ±â·ÏµÈ´Ù.

À妽º ÁöÁ¤

@ %def main À» ÄÚµåûũ ´ÙÀ½¿¡ ±â·ÏÇϸé À妽º¿Í ÄÚµåûũ°¡ ¿¬°áÀÌ µÈ´Ù. main Àº À妽º·Î »ç¿ëÇÒ, ¹Ì¸® Á¤ÀÇµÈ °ªÀÌ´Ù.

À妽º »ý¼º

\nowebindex ¸¦ »ç¿ëÇÏ¿© »ý¼ºÇÑ´Ù.
  • noweb ¸í·É¿¡¼­ -index ¸¦ Ãß°¡ÇÑ´Ù.

Ã¥°¥ÇÇ

º¸ÅëÀÇ hyperref ¸¦ »ç¿ëÇÏ´Â °Í ¸¸À¸·Îµµ ÄÚµå ûũ ³¢¸®ÀÇ ¿¬°áÀÌ ÀÚµ¿À¸·Î »ý¼ºµÈ´Ù.

Å« ÇÁ·Î±×·¥ ¸¸µé±â

À¥Àº ÇϳªÀÇ nw ÆÄÀÏ¿¡¼­ ¿©·¯°³ÀÇ ¼Ò½ºÆÄÀÏÀ» ¸¸µé¾î ³¾ ¼ö°¡ ÀÖ´Ù. -R ¿É¼ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù.

¶ÇÇÑ À¥Àº ¿©·¯°³ÀÇ nw ÆÄÀÏÀ» ¸¸µé°í, °¢°¢À» tex À¸·Î º¯È¯ÇÑ ´ÙÀ½¿¡ \input À» ÀÌ¿ëÇؼ­ ÇϳªÀÇ 'Å«' ÅØ ÆÄÀÏÀ» ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù.

ÀÌ µÎ°¡Áö¸¦ Á¾ÇÕÇÏ¸é ¾ÆÁÖÅ« ÇÁ·ÎÁ§Æ®¸¦ À¥À¸·Î ¸¸µé¾î ³¾ ¼ö°¡ ÀÖ´Ù. ±×·¯³ª ÀÌ °æ¿ì make ÆÄÀϵµ µ¿½Ã¿¡ ¸¸µé¾î¾ß ÇÑ´Ù.

±âŸ

  • notangle ÀÌ ¸¸µé¾î ÁÖ´Â ¼Ò½ºÄÚµå´Â Á¶±Ý ´ä´äÇÑ ´À³¦À» ÁØ´Ù. ÀÌ°æ¿ì bcpp µîÀ» ÀÌ¿ëÇÏ¿© ¼Ò½º¸¦ ¿¹»Ú°Ô º¯È¯ÇÒ ¼ö ÀÖ´Ù.

¿¹Á¦

À¯¸íÇÑ wc ¸¦ noweb À» ÀÌ¿ëÇؼ­ ¸¸µé¾î º»´Ù.

´Ù¿î·Îµå

@wc.zip (12.41 KB)

ÄÄÆÄÀÏ

noweave -delay -index wc.nw > wc.tex
pdflatex wc.tex
À¸·Î pdf ¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù.

noweave wc.nw > wc.c
·Î C ¼Ò½ºÄڵ带 »ý¼ºÇÒ ¼ö ÀÖ´Ù. ¿¹Á¦ÀÇ °æ¿ì, ¿ÏÀüÇÑ ¿¹°¡ ¾Æ´Ï¹Ç·Î ÄÄÆÄÀÏ À̳ª ½ÇÇàÀº µÇÁö ¾Ê´Â´Ù.

°á°ú

@wc.pdf (204.25 KB)