moderntimeline:\tllabelcventry 在时间线下打印多余的日期

moderntimeline:\tllabelcventry 在时间线下打印多余的日期

\tllabelcventry无法正常工作,在时间线下显示额外的日期:

相反,它应该只打印手动插入的标签,而不打印自动日期,如第 3 页所述文档

问题是:如何修复它?

我相信它在一年前就运行良好。我编写了最小示例(如下)。背页在我的计算机上使用也pdfTeX 3.14159265-2.6-1.40.20得到同样的结果。

最小的例子:

\documentclass{moderncv}
\moderncvstyle{casual}
\usepackage[firstyear=2000,lastyear=2021]{moderntimeline}

\firstname{A.}
\familyname{B.}

\begin{document}

\tllabelcventry{2002}{2012}{2002-2012 label}{Test}{test}{test}{}{test}

\end{document}

答案1

您需要删除\tl@endlabel命令定义中以下一行中的宏\tllabelcventry

node [tl@endyear] {\tl@endlabel}

使用以下 MWE(参见标有 的代码更改<=======

\documentclass{moderncv}

\moderncvstyle{casual}
\usepackage[firstyear=2000,lastyear=2021]{moderntimeline}

\makeatletter
\renewcommand{\tllabelcventry}[9][color1]{%
  \tl@formatendyear{#3}
  \tl@formatstartyear{#2}
  \tl@splitlabels{#4}
  \cventry{\tikz[baseline=0pt]{
    \tl@tlcvbar
    \fill [#1] (0,0)
      ++(\tl@startfraction*\hintscolumnwidth,0pt)
      node [tl@startyear] {\tl@startlabel}
      rectangle (\tl@endfraction*\hintscolumnwidth,\tl@width-1pt)
      node [tl@endyear] {} % <========================\tl@endlabel
      (\hintscolumnwidth,0pt) ;
    \ifissince
      \newdimen\fullcolorwidth
      \pgfmathsetlength\fullcolorwidth{\tl@startfraction*(1+(1-\tl@startfraction)*\tl@nsfrac)*\hintscolumnwidth}
      \shade [left color=#1,right color=#1]
        (\tl@startfraction*\hintscolumnwidth,0)
        rectangle (\fullcolorwidth,\tl@width);
      \shade [left color=#1] (\fullcolorwidth,0)
        rectangle (\tl@endfraction*\hintscolumnwidth,\tl@width);
    \else
      \fill [#1] (\tl@startfraction*\hintscolumnwidth,0)
        rectangle (\tl@endfraction*\hintscolumnwidth,\tl@width);
    \fi
    }
  }
  {#5}{#6}{#7}{#8}{#9}%
}
\makeatother

\name{A.}{B.}

\begin{document}

\tllabelcventry{2002}{2012}{2002-2012 label}{Test a}{test b}{test c}{}{test e}

\end{document}

您将获得以下期望结果:

生成的 pdf

相关内容