我正在使用moderncv
和,并且我知道我可以通过将moderntimeline
的第二个参数设置为来添加一个开放间隔,就像这样\tlcventry
0
\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 如下:
\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}
结果: