其他观察:

其他观察:

我正在为秋季准备课程文件,使用课程tufte-handout,我想使用 来整合日历termcal。所以我这样做:

\documentclass{tufte-handout}
\usepackage{fontspec}
\usepackage{termcal}

\defaultfontfeatures{Mapping=tex-text}

  \renewcommand{\allcapsspacing}[1]{{\addfontfeature{LetterSpace=20.0}#1}}
      \renewcommand{\smallcapsspacing}[1]{{\addfontfeature{LetterSpace=5.0}#1}}
      \renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}
\renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}

\renewcommand{\calprintclass}{}

\title{Course overview}
\author{English 220}
\date{Fall 2017}

    \begin{document}

        \maketitle

        \begin{fullwidth}

            \setlength{\calwidth}{6in}
            \begin{calendar}{9/4/17}{10}

                \calday[Monday]{\classday} % Monday
                \calday[Tuesday]{\classday} % Wednesday
                \calday[Wednesday]{\classday}
                \calday[Thursday]{\classday} % Thursday (unnumbered)
                \calday[Friday]{\classday} % Friday
                \skipday\skipday % weekend (no class)
                % Holidays
                \options{9/21/17}{\noclassday}
                \caltext{9/21/17}{No Class\\Rosh Hashanah}

                % Key dates

                \caltext{9/5/17}{Introductions}

                \caltext{9/18/17}{Bring to class \emph{TOTC} \& \emph{The Passion}}

                % Exams
                \caltext{9/15/17}{Review test on 9th grade grammar \& vocab}
                \caltext{9/29/17}{Quiz on vocab list 7}
                \caltext{10/20/17}{Quiz on vocab lists 7--8}
                \caltext{10/27/17}{Quiz on adj. \& adv. clauses}



            \end{calendar}
        \end{fullwidth}
    \end{document}

输出结果很奇怪。我本来想发布一张图片,但出于某种原因,我现在无法做到这一点(关注那出戏这里如果你好奇的话),所以我必须描述一下。

  • 日历中的第一个日期是正确的(9 月 4 日);后续日期是 10 月 -25 日、11 月 -55 日、12 月 -84 日、1 月 -114 日等等。(是的,日期是负数。)
  • 9 月 4 日的单元格还包含表达式“2017 年秋季 > 30”。第二个单元格(10 月 -25 日)包含“2017 年秋季 > 31”,依此类推。

看起来termcal线路有问题

\date{Fall 2017}

其他观察:

  • 如果我将该行更改为\date{},我会收到一堆错误消息,并且标题栏中没有日期行,但日历显示正确。
  • 如果我完全删除日期行,标题栏将包含今天的日期(我不想要),但日历会正确显示。
  • 如果我将文档类更改为article,问题就完全消失了。

有没有办法date像我通常那样使用命令,并且仍然termcal正常工作?或者这个包只是与这个文档类不兼容?

答案1

责备termcaltufte-common.def——定义并使用\thedate;-)

tufte-common.def\thedate使用哪个参数来设置\date是个坏主意,因为\the...宏通常只用于计数器输出。

termcal定义一个名为 的新计数器date,这意味着 的自动定义\thedate,但是,这是用 完成的\gdef\thedate{...},用 覆盖旧定义tufte-common.def

实际上,tufte-common.def这里做的事情是设计不当的。

一个解决方案是,不是改变的明显正确行为,而是在开始执行之前termcal抓住\date设计的原始命令,比如说用,而不是说,这会搞乱系统。LaTeX\documentclass\let\latexdate\date\latexdate{Fall 2017}\date{Fall 2017}

\let\latexdate\date

\documentclass{tufte-handout}
\usepackage{fontspec}
\usepackage{termcal}

\defaultfontfeatures{Mapping=tex-text}

\renewcommand{\allcapsspacing}[1]{{\addfontfeature{LetterSpace=20.0}#1}}
\renewcommand{\smallcapsspacing}[1]{{\addfontfeature{LetterSpace=5.0}#1}}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}
\renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}

\renewcommand{\calprintclass}{}

\title{Course overview}
\author{English 220}
\latexdate{Fall 2017}

\begin{document}

\maketitle

\begin{fullwidth}

  \setlength{\calwidth}{6in}
  \begin{calendar}{9/4/17}{10}

    \calday[Monday]{\classday} % Monday
    \calday[Tuesday]{\classday} % Wednesday
    \calday[Wednesday]{\classday}
    \calday[Thursday]{\classday} % Thursday (unnumbered)
    \calday[Friday]{\classday} % Friday
    \skipday\skipday % weekend (no class)
    % Holidays
    \options{9/21/17}{\noclassday}
    \caltext{9/21/17}{No Class\\Rosh Hashanah}

    % Key dates

    \caltext{9/5/17}{Introductions}

    \caltext{9/18/17}{Bring to class \emph{TOTC} \& \emph{The Passion}}

    % Exams
    \caltext{9/15/17}{Review test on 9th grade grammar \& vocab}
    \caltext{9/29/17}{Quiz on vocab list 7}
    \caltext{10/20/17}{Quiz on vocab lists 7--8}
    \caltext{10/27/17}{Quiz on adj. \& adv. clauses}



  \end{calendar}
\end{fullwidth}
\end{document}

更好的版本重新定义了\date是否加载 termcal

\documentclass{tufte-handout}
\usepackage{fontspec}
\usepackage{termcal}

\makeatletter
\providecommand\tuftedate{}
\@ifpackageloaded{termcal}{%
  \renewcommand{\date}[1]{%
    \gdef\@date{#1}%
    \begingroup%
    % TODO store contents of \thanks command
    \renewcommand{\thanks}[1]{}% swallow \thanks contents
    \protected@xdef\tuftedate{#1}%
    \endgroup%
  }{%
    % Do nothing else, there's no need to redefine \date
  }
}
\makeatother
\defaultfontfeatures{Mapping=tex-text}

\renewcommand{\allcapsspacing}[1]{{\addfontfeature{LetterSpace=20.0}#1}}
\renewcommand{\smallcapsspacing}[1]{{\addfontfeature{LetterSpace=5.0}#1}}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}
\renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}

\renewcommand{\calprintclass}{}

\title{Course overview}
\author{English 220}
\date{Fall 2017}

\begin{document}
\maketitle

\begin{fullwidth}

  \setlength{\calwidth}{6in}
  \begin{calendar}{9/4/17}{10}

    \calday[Monday]{\classday} % Monday
    \calday[Tuesday]{\classday} % Wednesday
    \calday[Wednesday]{\classday}
    \calday[Thursday]{\classday} % Thursday (unnumbered)
    \calday[Friday]{\classday} % Friday
    \skipday\skipday % weekend (no class)
    % Holidays
    \options{9/21/17}{\noclassday}
    \caltext{9/21/17}{No Class\\Rosh Hashanah}

    % Key dates

    \caltext{9/5/17}{Introductions}

    \caltext{9/18/17}{Bring to class \emph{TOTC} \& \emph{The Passion}}

    % Exams
    \caltext{9/15/17}{Review test on 9th grade grammar \& vocab}
    \caltext{9/29/17}{Quiz on vocab list 7}
    \caltext{10/20/17}{Quiz on vocab lists 7--8}
    \caltext{10/27/17}{Quiz on adj. \& adv. clauses}



  \end{calendar}
\end{fullwidth}
\end{document}

在此处输入图片描述

相关内容