我正在写一本数学书。对于每个示例,我想存储一些属性,包括:
-来源
-我是否已经检查过该问题
-问题的难度
(ETC。)
通常,我只需创建一个可以执行此操作的电子表格,但我经常重新排列示例,这使得更新电子表格变得很麻烦。
是否可以创建一个数据库来存储每个 \item(每个示例)的这些属性,以便可以方便地打印,并在重新排列 \item 时动态更新?
这是我想要的一个具体例子。
\section{Chapter 1}
\begin{enumerate}
%Source: X
%Checked: No
%Difficulty: Easy
\item (Example goes here)
%Source: Y
%Checked: Yes
%Difficulty: Hard
\item (Example goes here)
\end{enumerate}
输出将是 .PDF,类似于
Example 1.1
Source: X
Checked: No
Difficulty: Easy
Example 1.2
Source: Y
Checked: Yes
Difficulty: Hard
上面的内容以某种表格形式格式化。
提前感谢你的帮助!如果我需要澄清这个问题,请告诉我。
答案1
您可以轻松创建一个将信息写入文件的命令。这可能需要一些自定义,但它基本上可以满足您的需要。
\documentclass{article}
\makeatletter
\newwrite\@datawrite
\immediate\openout\@datawrite=\jobname.data
\newcommand\exampledata[3]{%
\immediate\write\@datawrite{Example \thesection.\theenumi}
\immediate\write\@datawrite{Source: #1}
\immediate\write\@datawrite{Checked: #2}
\immediate\write\@datawrite{Difficulty: #3}
\immediate\write\@datawrite{}}
\AtEndDocument{\closeout\@datawrite}
\makeatother
\begin{document}
\section{A section}
\begin{enumerate}
\item
\exampledata{A nice book}{yes}{easy}
Show that $a=b$.
\item
\exampledata{Another nice book}{no}{impossible}
Show that $c=d$
\end{enumerate}
\end{document}
编译后,.data
文件包含以下内容:
Example 1.1
Source: A nice book
Checked: yes
Difficulty: easy
Example 1.2
Source: Another nice book
Checked: no
Difficulty: impossible
编辑
要获得 pdf,只需添加一些额外的\immediate\write
命令来添加LaTeX
序言和\end{document}
,以及为每个条目添加一些格式说明。