我想设置一个按两种不同顺序编写的日记:一种是按天工作,另一种是按项目工作,根据我为每天所做的特定工作块赋予的标签。
例如,我像往常一样以工作日形式写日记:
2/2/15
-- bought a new screwdriver (tag: car maintainence)
-- scetched my plan for world domination (tag: world domination)
3/4/15
-- started studying physics (tag: world domination)
-- finished tax declaraction (tag: burocracy)
按项目编译将产生以下部分标签:
car maintainence
-- 2/2/15: bought a new screwdriver
world domination
-- 2/2/15: scetched my plan for world domination
-- 3/4/15: started studying physics
burocracy
-- 3/4/15: finished tax declaraction
我知道这非常接近整个 LaTex 文档所遵循的文字编程范式:文档中的代码块可以编译为两种不同的顺序:供人类理解和供机器使用。但是,我想要两个人类可读的版本(例如 pdf 文件)作为输出。有没有什么软件包可以提供帮助?
答案1
这是一个解决方案。我只用了 2 个标签,但你可以添加更多
\documentclass{article}
\newif\ifbytag
%-------------- here we make the chice by tag or by date (if false)
\bytagtrue
%\bytagfalse
\newcommand{\cartag}{car maintainence} % may one add formatting : bold, space ...
\newcommand{\worldtag}{world domination} % may one add formatting
\makeatletter
\ifbytag
\newcommand{\mtdate}[1]{%
\g@addto@macro\cartag{\par #1}%
\g@addto@macro\worldtag{\par #1}}
\newcommand{\mtcar}[1]{%
\g@addto@macro\cartag{\par -- #1}}
\newcommand{\mtworld}[1]{%
\g@addto@macro\worldtag{\par -- #1}}
\else
\newcommand{\mtdate}[1]{\par #1}
\newcommand{\mtcar}[1]{\par -- #1 (tag: car maintainence)}
\newcommand{\mtworld}[1]{\par -- #1 (tag: world domination)}
\let\cartag\empty\let\worldtag\empty
\fi
\makeatother
\begin{document}
\mtdate{2/2/15}
\mtcar{bought a new screwdriver}
\mtworld{scetched my plan for world domination}
\mtdate{3/4/15}
\mtworld{started studying physics}
\mtcar{finished tax declaraction}
%--------------------------here we print tages if by tag
\cartag
\worldtag
\end{document}