“真好难得呢,你竟然这么努力在敲数据!给下一张论文做准备吗?” “!!别、别突然在人家身后说话!!” “咦?好像不太对……这些……不是考研知识点资料吗?” “就、就说别偷看人家干活啦!!” “学姐有所不知,他有个心仪的妹子在准备考研,他是想给人家献殷勤。” (好个多情种……) (你不说话没人当你哑巴!) “……然后,你就一个一个,从这 Excel 列表敲进 LaTeX,做复习卡片?” “对对,嘿嘿,整齐又好看!” “你、一、个、一、个、敲?!” “呃……是啊,有什么不对吗?” “大大的不对!如此低效率的作法!难怪每次叫你做报告都拉三拖四!不只在干工作外的活儿,方法还笨!!!!你还是计算机系的吗!!” (哇~~~!久违的“学姐发飙”!!!不对,学姐,重点好像不对了吧!) “啊啊啊啊——我该把知识点弄进 SQL 资料库再写个脚本生成个 LaTeX 档再编译吗!那不花更多时间吗!” “所以说你!没效率!何必弄得那么复杂!从 Excel 输出一个 termlist.csv 档再配合 data tool 不就行了吗!”

Subject,Term,Description
管理学,奥卡姆剃刀定律 (Occam's Razor),“如无必要,勿增实体”,……
管理学,零和博弈 (zero-sum game),又称零和游戏,……
管理学,不值得定律,不值得定律最直观……
管理学,蘑菇管理,组织或个人对待新进者……
计算机,进程控制块(PCB),系统为了管理……
计算机,文件控制块(FCB),文件控制块是……
datatool 不是用来把 .csvtabular 的吗?”
\usepackage{varwidth}
\usepackage{datatool}

\DTLloaddb{termlist}{termlist.csv}
\renewcommand{\dtlstringformat}[1]{\begin{varwidth}[t]{8cm}#1\end{varwidth}}
\DTLdisplaydb{termlist}
  datatool-table “何止这样,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}
正面:datatool-flashcard-0背面:datatool-flashca   “嗯——嗯。不错,不错。” “教授!您什么时候来的?!(今天到底怎么了,全都神没鬼出的,是要吓死我啊!)” “刚才就在了。那么,上个星期的实验数据,就交给你整理了。刚好,我们有张 paper 后天 submission deadline,你学姐都把内容写好了,只差数据,就靠你啦。” “…………是的,教授。_(:з」∠)_” “还有,刚刚的卡片代码,电邮给我一份。” “???” “我回去弄些猜谜游戏卡片给孙儿啦。” “!!!” 【后记:自然还有其它用来作卡片的宏包,如 flashcards,用法稍有不同不过大同小异,读者可以自己找来试试。】

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部