日历包

日历包

我正在尝试使用该calendar包,但遇到了问题。该\DaysInWeek命令不起作用。我无法删除星期六和星期日的列。

有没有人有办法解决吗?

这是我的代码(我使用在latextemplate.com):

\documentclass[]{article}
\usepackage{calendar}

\begin{document}
\pagestyle{empty}
\noindent
\StartingDayNumber=2

\begin{calendar}{\hsize}

\day{}{My appointment}

\day{}{}

\day{}{}

\day{}{}

\day{}{} 

\finishCalendar
\end{calendar}
\end{document}

我也使用calendar.sty使用同一地址

答案1

您列出的软件包calendar非常死板,并且没有提供实现\DaysInWeek。死板的意思是它假设一个固定的 7 天日历视图。解决这个问题的一种方法是设置一个常规的 7 天日历,但使用来自的技术吞噬最后两列(周末)删除列的最简单方法?

在此处输入图片描述

\documentclass{article}
% For this example, adjust the margins
\usepackage[margin=1in]{geometry}% http://ctan.org/pkg/geometry
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\usepackage{calendar}% http://www.latextemplates.com/template/weekly-timetable

\newsavebox{\columngobble}
\newcolumntype{d}{>{\lrbox{\columngobble}}l<{\endlrbox}}
% \patchcmd{<cmd>}{<search>}{<replace>}{<succes>}{<failure>}
\patchcmd{\calendar}{|X|X|X|X|X|X|X|}{|X|X|X|X|Xd@{}d@{}|}{}{}

\begin{document}
\pagestyle{empty}
\noindent
\StartingDayNumber=2

\setlength{\parindent}{0pt}
\begin{calendar}{\linewidth}
  \day{}{My appointment}% Monday
  \day{}{}% Tuesday
  \day{}{}% Wednesday
  \day{}{}% Thursday
  \day{}{}% Friday 
  \day{}{}% Saturday (will be gobbled)
  \day{}{}% Sunday (will be gobbled)
  \day{}{Something}% Monday
  \finishCalendar
\end{calendar}
\end{document}

上述解决方案创建了一个新列d(使用array's \newcolumntype- 已加载tabularx) 并将其作为环境tabularx内使用的最后两列插入calendar。好吧,从技术上讲,它将严格的|X|X|X|X|X|X|X|列规范替换为|X|X|X|X|X|@{}dd@{}|,这会吞噬最后两列(周末)。不过,您仍然必须在使用中设置它们……

相关内容