我正在尝试使用该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@{}|
,这会吞噬最后两列(周末)。不过,您仍然必须在使用中设置它们……