我正在创建一个显示文档标准模板的文档。我想为模板占位符添加一些杂项注释。例如
[date1] [COMMENT: Please use only dates obtained from
[date2] the Center for Dates.]
[date3]
由于日期列表右侧会有很多空白,我希望评论出现在那里。这样更贴近主题,节省空间。我找到的最接近我想要的是这样,\marginpar{}
但它并没有完全解决问题。
我怎样才能在 LaTeX 中做到这一点?
答案1
这种布局的难点在于,日期的打印网格与注释的网格不同,也就是说,表格环境不适合排版这种布局。在某种程度上,注释被排版为“侧边脚注”!
为了方便作者输入行,我们提供了一个用户命令:
\adddate{date..}{Please ....}
我们创建一个列表来保存所有数据。然后我们遍历列表并使用两个小页面进行排版。添加一些盐和胡椒以及一些 LaTeX 内核黑魔法命令,我们得到以下最简版本:
\documentclass{article}
\makeatletter
\def\listone{}
\def\adddate#1#2{
\ifx\@empty\listone
\g@addto@macro{\listone}{#1}
\else \g@addto@macro{\listone}{,#1}
\fi
\expandafter\def\csname#1\endcsname{\footnotesize #2}
}
\parindent0pt
\begin{document}
% add some data
\adddate{date1}{1 Please use only dates obtained from the Center for Dates.}
\adddate{date2}{2 Please use original dates.}
\adddate{date3}{3 Please use original dates.}
% print the data
% define a macro for this for convenience
% if you want
\begin{minipage}[t]{2.5cm}
\@for\next:=\listone\do{%
\next \par
}
\end{minipage}
\begin{minipage}[t]{3cm}
\@for\next:=\listone\do{%
\@nameuse\next \par
}
\end{minipage}
\end{document}
如果您要广泛使用此类代码,可以添加额外的宏来保存循环的代码。