“真好难得呢,你竟然这么努力在敲数据!给下一张论文做准备吗?”
“!!别、别突然在人家身后说话!!”
“咦?好像不太对……这些……不是考研知识点资料吗?”
“就、就说别偷看人家干活啦!!”
“学姐有所不知,他有个心仪的妹子在准备考研,他是想给人家献殷勤。”
(好个多情种……)
(你不说话没人当你哑巴!)
“……然后,你就一个一个,从这 Excel 列表敲进 LaTeX,做复习卡片?”
“对对,嘿嘿,整齐又好看!”
“你、一、个、一、个、敲?!”
“呃……是啊,有什么不对吗?”
“大大的不对!如此低效率的作法!难怪每次叫你做报告都拉三拖四!不只在干工作外的活儿,方法还笨!!!!你还是计算机系的吗!!”
(哇~~~!久违的“学姐发飙”!!!不对,学姐,重点好像不对了吧!)
“啊啊啊啊——我该把知识点弄进 SQL 资料库再写个脚本生成个 LaTeX 档再编译吗!那不花更多时间吗!”
“所以说你!没效率!何必弄得那么复杂!从 Excel 输出一个 termlist.csv
档再配合 data tool
不就行了吗!”
Subject,Term,Description
管理学,奥卡姆剃刀定律 (Occam's Razor),“如无必要,勿增实体”,……
管理学,零和博弈 (zero-sum game),又称零和游戏,……
管理学,不值得定律,不值得定律最直观……
管理学,蘑菇管理,组织或个人对待新进者……
计算机,进程控制块(PCB),系统为了管理……
计算机,文件控制块(FCB),文件控制块是……
“datatool
不是用来把 .csv
转 tabular
的吗?”
\usepackage{varwidth}
\usepackage{datatool}
\DTLloaddb{termlist}{termlist.csv}
\renewcommand{\dtlstringformat}[1]{\begin{varwidth}[t]{8cm}#1\end{varwidth}}
\DTLdisplaydb{termlist}
“何止这样,datatool
可以把 .csv 档当成 foreach 循环来做更仔细的处理啊!真是,只拿来做列表真是太暴殄天物了……”
(学姐,气上心头也别乱用成语啊……)
\documentclass[frontgrid,backgrid,a4paper,10pt]{flacards}
\usepackage{xeCJK}
\usepackage{datatool}
% 每一页A4有 2x6 卡片
\pagesetup{2}{6}
% 正面定制
\renewcommand{\cardtextstylef}{\Large\rmfamily}
% 背面定制
\renewcommand{\cardtextstyleb}{\rmfamily}
% 正面(f)左(l)上(head)定制
\renewcommand{\flhead}{\footnotesize\sffamily\Subject}
% 背面(b)右(r)上(head)定制
\renewcommand{\brhead}{\footnotesize\sffamily\Subject}
% 从 termlist.csv 读档为 termlist 资料库
\DTLloaddb{termlist}{termlist.csv}
\begin{document}
\DTLforeach{termlist}{
% .csv 档里对应每一列的宏
\Subject=Subject,
\Term=Term,
\Desc=Description}{
% 拿这些宏来loop
\card{\Term}{\Desc}
}
\end{document}
正面:背面:
“嗯——嗯。不错,不错。”
“教授!您什么时候来的?!(今天到底怎么了,全都神没鬼出的,是要吓死我啊!)”
“刚才就在了。那么,上个星期的实验数据,就交给你整理了。刚好,我们有张 paper 后天 submission deadline,你学姐都把内容写好了,只差数据,就靠你啦。”
“…………是的,教授。_(:з」∠)_
”
“还有,刚刚的卡片代码,电邮给我一份。”
“???”
“我回去弄些猜谜游戏卡片给孙儿啦。”
“!!!”
【后记:自然还有其它用来作卡片的宏包,如 flashcards
,用法稍有不同不过大同小异,读者可以自己找来试试。】
发表评论 取消回复