KTUGFaq

KTUG FAQ

LuaTeX (rev. 1.3)

로그인:
비밀번호:
가입
His heart was yours from the first moment that you met.
FrontPage › LuaTeX

발주서 만들기

pdflualatex을 사용하였다.

발주서(견적서 또는 청구서)의 요소를 먼저 살펴 보자.
  1. 보내는 사람(곳)의 정보가 있다.
  2. 받는 사람(곳)의 정보가 있다.
  3. 보내는 날짜와 문서의 번호가 있다.
  4. 수량, 단가, 총액 등의 표시된 표가 있다.
  5. 직인 또는 서명이 있다.

워드 프로세서로 만든다면,
  1. 계산을 따로 해서 값을 넣어줘야 한다.
  2. 천 자리 띄어 쓰기나 소수점 표기를 국가 표준에 맞게 고쳐줘야 한다.

그렇다면 왜 엑셀을 쓰지 않고, 루어텍을 쓰는가?
  1. 발주서의 각 요소를 모듈로 만들 수 있다.
  2. PDF를 쉽게 만들 수 있다.
  3. 문서를 보기 좋게 만들 수 있다.
  4. 계산이 가능하고 금액 표시를 각 국가 표준에 맞게 할 수 있다.

\documentclass[a4paper,11pt]{memoir}
\input{po}

\ServiceProvider{%
SAMSONG\\
763-10 Bugok-dong Sangnok-gu\\
Ansan 
}

\ProviderContact{James Bond}

\PurchaseOrderNumber{J9216A}
\PurchaseOrderDate{16th February 2009}

\SIstyle{Switzerland}

\begin{document}

\thispagestyle{empty}

\directlua0{	
	array = {
		{"Desktop computer: DW-101X", 8, 1200},
		{"Laptop computer: LW-804K", 4, 2500}
	}
}
\PurchaseOrder
\end{document}

po.tex은 이렇다.
\usepackage{sistyle}

\newcommand{\paymentcurrency}{}
\newcommand{\PaymentCurrency}[1]{\renewcommand\paymentcurrency{#1}}
\PaymentCurrency{\EUR}


\AddToSIstyle{Europe}{
\SIgroupfourfalse
\SIthousandsep{\,}
\SIdecimalsign{,}
\PaymentCurrency{\EUR}
}

\AddToSIstyle{Switzerland}{
\SIgroupfourfalse
\SIthousandsep{'}
\SIdecimalsign{,}
\PaymentCurrency{CHF}
}

\AddToSIstyle{UK}{
\SIgroupfourfalse
\SIthousandsep{,}
\SIdecimalsign{.}
\PaymentCurrency{\pounds}
}

\AddToSIstyle{USA}{
\SIgroupfourfalse
\SIthousandsep{,}
\SIdecimalsign{.}
\PaymentCurrency{\$}
}

\setulmarginsandblock{3cm}{3cm}{*}
\setheadfoot{1.5cm}{1cm}
\setlrmarginsandblock{2.5cm}{2.5cm}{*} 
\checkandfixthelayout
\makeoddhead{empty}{}{}{KTUG}

\newcommand{\purchaseordernumber}{}
\newcommand{\PurchaseOrderNumber}[1]{\renewcommand\purchaseordernumber{#1}}
\newcommand{\purchaseorderdate}{}
\newcommand{\PurchaseOrderDate}[1]{\renewcommand\purchaseorderdate{#1}}

\newcommand{\serviceprovider}{}
\newcommand{\ServiceProvider}[1]{\renewcommand\serviceprovider{#1}}
\newcommand{\providercontact}{}
\newcommand{\ProviderContact}[1]{\renewcommand\providercontact{\textbf{#1} }}

\newcommand{\servicepurchaser}{}
\newcommand{\ServicePurchaser}[1]{\renewcommand\servicepurchaser{#1}}
\newcommand{\purchasercontact}{}
\newcommand{\PurchaserContact}[1]{\renewcommand\purchasercontact{\textbf{#1} }}
\newcommand{\purchasersignature}{}
\newcommand{\PurchaserSignature}[1]{\renewcommand\purchasersignature{#1}}
\newcommand{\purchaserremark}{}
\newcommand{\PurchaserRemark}[1]{\renewcommand\purchaserremark{\textbf{Remark}:\\#1}}

\newcommand{\breakdownfont}{}

\newcommand{\tmpamount}{}

\ServicePurchaser{%
TOPFIELD Co., Ltd.\\
Topfield Bldg. 207 Geumgok-dong Bundang-gu Seongnam Korea 463-869\\
+82 31 778 0845
}
\PurchaserContact{Jimmy LEE}
\PurchaserSignature{JimmyLEE}

\newcommand{\PurchaseOrder}{
\sffamily\vspace*{2ex}

\serviceprovider

\providercontact

\vspace{2ex}
\centerline{\Huge\textsc{Purchase Order}}
\vspace{2ex}

Number \purchaseordernumber

Please execute the following order under the terms and conditions stated below.

\PurchaseOrderBreakdown

\vspace{4ex}
\purchaserremark

\purchaseorderdate
\vspace{2ex}

\servicepurchaser

\purchasercontact

\hspace*{1cm}\purchasersignature
}

\newcommand{\PurchaseOrderBreakdown}{
\breakdownfont
\begin{tabularx}{\textwidth}{|X|r|r|r|}
\hline
Description & Quantity & Unit Price & Amount \tabularnewline
\hline
%
\directlua0{	
	CurRow = 1
	TotRow = 10
	i = 1	
	total = 0
	while array[i] do
		array[i][4] = array[i][2] * array[i][3]
		total = total + array[i][4]								
		str = array[i][1].."&"..array[i][2].."& \string\\num{"..array[i][3].."}\string\\,\string\\paymentcurrency & \string\\num{"..array[i][4].."}\string\\,\string\\paymentcurrency\string\\tabularnewline\string\\hline"
		tex.print(str)
		CurRow = CurRow + 1
		i=i+1		
	end
	while CurRow <= TotRow do
		str = "& & & \string\\tabularnewline\string\\hline"
		tex.print(str)
		CurRow = CurRow + 1
	end		
}
\multicolumn{3}{|r|}{\textsc{Total}} & \num{\directlua0{tex.print(total)}}\,\paymentcurrency\tabularnewline
\hline
\end{tabularx}
}

\setlength{\parindent}{0em}
\endinput


pdflualatex을 이용하였다.

po_sample.jpg

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-02-24 07:43:35
Processing time 0.0353 sec