现代时间轴中的反向渐变

现代时间轴中的反向渐变

我正在使用moderncv和,并且我知道我可以通过将moderntimeline的第二个参数设置为来添加一个开放间隔,就像这样\tlcventry0\tlcventry{2000}{0}{My current position}{etc}{foo}{bar}{baz}

我想要做的是相反的操作,即一个间隔从很早开始,然后结束。这样,我可以使用 narrower \tlmaxdates{}{},这样看起来会更好。

所以我想要做的是\tlcventry{0}{2000}{My early education}{etc}{foo}{bar}{baz},当然这不是开箱即用的。

我尝试查看的代码\tlcventry,并且出现了\ifissince,但是,我不明白如何将其应用于第一个和第二个变量。

演示我的问题的 MWE 如下MWE 的屏幕截图

\documentclass{moderncv} 
\usepackage{moderntimeline}
\tlmaxdates{1990}{2020}
\tlsetnotshadedfraction{0.4}
\moderncvstyle{classic} 
\moderncvcolor{blue}
\name{John}{Doe}
\title{CV}
\address{street and number}{postcode city}{country}
\begin{document}
\makecvtitle
\section{Education}
\tlcventry{2000}{2010}{Some Job}{}{}{}{}
\tlcventry{2010}{0}{Current Job}{}{}{}{}
\tlcventry{0}{2000}{School}{}{}{}{}%Doesn't work
\end{document}

如何\tlcventry修改命令,使得第三行给出与第二行类似的结果(颜色渐变增加而不是减少)

答案1

以下代码提供了 的重新定义,\tlcventry该定义也向左淡出。原始定义在两处进行了更改。

首先,绘制标签的代码会进行扩展,检查第二个参数是否#2为零(如果没有使用可选参数,则为第一个参数,即保存起始年份的参数)。如果是这种情况,则只会绘制结束标签,而不会绘制由于某种原因而存在的填充。

其次,在绘制实心或渐变条时,会使用相同的检查。如果起始年份为零,则使用左渐变,否则绘制正常的实心填充。

请注意,现有的淡入淡出实际上是由两个部分组成的,一个短实心条和旁边的淡入淡出条,而新定义只是淡入淡出条。实际上,我更喜欢淡入淡出条,因为组合条可能会留下瑕疵(我的查看器中有一些细灰线),因此您甚至可以考虑将其从原始定义中删除 - 或者如果您确实喜欢它,则将其添加到新定义中。

\documentclass{moderncv} 
\usepackage{moderntimeline}
\tlmaxdates{1990}{2020}
\tlsetnotshadedfraction{0.4}
\moderncvstyle{classic} 
\moderncvcolor{blue}
\name{John}{Doe}
\title{CV}
\address{street and number}{postcode city}{country}

\makeatletter
\renewcommand{\tlcventry}[8][color1]{%
\tl@formatendyear{#3}
\tl@formatstartyear{#2}
 \cventry{\tikz[baseline=0pt]{
    \useasboundingbox (0,-1.5ex) rectangle (\hintscolumnwidth,1ex);
    \fill [\tl@runningcolor] (0,0)
       rectangle (\hintscolumnwidth,\tl@runningwidth);
    \ifnum#2=0% FIRST MODIFICATION HERE
    \node[#1, tl@endyear] at (\tl@endfraction*\hintscolumnwidth,\tl@width-1pt) {\tl@endlabel};
    \else
    \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) ;%
    \fi
    \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%
       \ifnum#2=0% SECOND MODIFICATION HERE
       \shade [left color=white, right color=#1] (0,0) rectangle (\tl@endfraction*\hintscolumnwidth,\tl@width);
       \else
       \fill [#1] (\tl@startfraction*\hintscolumnwidth,0)
           rectangle (\tl@endfraction*\hintscolumnwidth,\tl@width);
       \fi
    \fi
    }%
}%
{#4}{#5}{#6}{#7}{#8}%
}
\makeatother

\begin{document}
\makecvtitle
\section{Education}
\tlcventry{2000}{2010}{Some Job}{}{}{}{}
\tlcventry{2010}{0}{Current Job}{}{}{}{}
\tlcventry{0}{2000}{School}{}{}{}{}%Works now
\end{document}

结果:

在此处输入图片描述

相关内容