SetDirectory[NotebookDirectory[]] (* Variable names *) vars = Import["1042.tsv", CharacterEncoding -> "UTF8"][[1]]; (* data file *) data = Import["1042.tsv", CharacterEncoding -> "UTF8"][[2 ;; -1]]; (* Split data file by department *) mydata = GatherBy[data, #[[29]] &]; mydep[depnum_] := mydep[depnum_]:=Block[{mystr,mytex},mystr=#[[1]]<> " & " <>#[[2]]<>"\\\\ \\hline"&/@ (Partition["\\raisebox{-\\totalheight}{\\includegraphics[width=0.14\\textwidth]{"<> #[[3]] <>"}} & "<>"姓名 "<>#[[4]]<>"\\par 原讀學校系所\\par "<>#[[25]]<>"\\par "<>#[[26]]<>"\\par 籍貫 "<>#[[15]]<> "\\par 生日 "<> #[[8]]<>"\\par 電話 "<>ToString@ #[[12]]&/@mydata[[depnum]],2]); mytex=StringJoin[ (*LaTeX preamble and Longtable code *) "\ \documentclass[11pt, a4paper]{article} \\usepackage{CJKutf8} \\usepackage{geometry} \\geometry{verbose,a4paper,tmargin=1.5in,bmargin=1.5in,lmargin=1in,rmargin=1in,footskip=1cm} \\usepackage[pdftex]{graphicx} \\usepackage{longtable} \\begin{document} \\begin{CJK}{UTF8}{cwmc} \\tabcolsep=3pt \\begin{center} \\begin{longtable}{|p{0.15\\textwidth}|p{0.3\\textwidth}|p{0.15\\textwidth}|p{0.3\\textwidth}|}\\hline", (* LaTeX Report *) mystr, (* LaTeX code *) " \\end{longtable} \\end{center} \\end{CJK} \\end{document}"]; mytex=StringReplace[mytex,"\\raisebox{-\\totalheight}{\\includegraphics[width=0.14\\textwidth]{取消來台}}"->"取消來台"]; (* Generate TeX file*) RenameFile[Export[mydata[[depnum,1,-4]]<>".txt",mytex],ToString@depnum<>".tex"]; (* Generate PDF file *) Run["cd "<>NotebookDirectory[]<>"; /Library/TeX/texbin/pdflatex "<>ToString[depnum]]; RenameFile[ToString@depnum<>".pdf", mydata[[depnum,1,-4]]<>".pdf"]; (* Remove Relevant files *) DeleteFile[ToString@depnum<>".aux"]; DeleteFile[ToString@depnum<>".tex"]; DeleteFile[ToString@depnum<>".log"]; ]
Mathematica 教學:Generate relevant reports with LaTeX
由 戴忠淵 於 2016年2月7日星期日
上午10:57 發表
讀者回應 ( 0 意見 )
訂閱發佈留言 (Atom)
發佈留言
Please leave your name and tell me what you thought about this site. Comments, suggestions and views are welcomed.
如果這篇文章對你有幫助,那請留個訊息給我~