我正在使用自定义日期时间格式和自定义环境来生成日期列表(用于课程大纲),并且想对其进行一些修改,以在数字日期后添加缩写的日期名称。
以下是我所拥有的:
\documentclass{article}
\usepackage{advdate}
\usepackage[dayofweek]{datetime}% http://ctan.org/pkg/{advdate,datetime}
\newdateformat{syldate}{\THEMONTH/\THEDAY ()}
\newenvironment{schedule}
{\par\syldate\renewcommand{\item}{\par%
\stepcounter{mycntr}\ifnum\value{mycntr}>2\relax%
\setcounter{mycntr}{0}\AdvanceDate[3]%
\else
\AdvanceDate[2]%
\fi\today\quad}
}{\par}
\SetDate[02/09/2013]
\newcounter{mycntr}
\begin{document}
\begin{schedule}
\item Something
\item Something else
\item Relax
\item Go to the sea
\item Something
\item Something else
\item Relax
\item Go to the sea
\end{schedule}
\end{document}
得出以下结论:
我想在那些空括号中添加相应日期的缩写星期名称。因此最终结果将如下所示:
9/4(W)某事
9/6(五)某事
9/9(男)某事
有什么提示吗?无法仅从软件包文档中弄清楚如何操作datetime
,我找到了dayofweek
软件包选项,但似乎只能修改\today
。
答案1
您可以根据需要使用\shortdayofweekname
由 3 个字符组成的标准缩写名称(Mon 等)。
对于不同的东西,您可以更改\shortdayofweeknameidenglish
或定义另一种语言的类似命令(texdoc datetime
,第 12 页)。
例如,定义两个字符的缩写:
\documentclass{article}
\usepackage{advdate}
\usepackage[dayofweek]{datetime}
\renewcommand{\shortdayofweeknameidenglish}[1]{%
\ifcase#1\relax
\or Su%
\or Mo%
\or Tu%
\or We%
\or Th%
\or Fr%
\or Sa%
\fi}
\newdateformat{syldate}{\THEMONTH/\THEDAY%
(\shortdayofweekname%
{\THEDAY}{\THEMONTH}{\THEYEAR})}
\newenvironment{schedule}
{\par\syldate\renewcommand{\item}{\par%
\stepcounter{mycntr}\ifnum\value{mycntr}>2\relax%
\setcounter{mycntr}{0}\AdvanceDate[3]%
\else
\AdvanceDate[2]%
\fi\today\quad}
}{\par}
\SetDate[01/07/2013]
\newcounter{mycntr}
\begin{document}
\begin{schedule}
\item Something
\item Something else
\item Relax
\item Go to the sea
\item Something
\item Something else
\item Relax
\item Go to the sea
\end{schedule}
\end{document}