在简历中使用平面矩形展示技能/知识

在简历中使用平面矩形展示技能/知识

我想重新构建简历中的“知识”部分(技能水平)。从结构上讲,我希望使其类似于此,只是使用“平面”矩形:文本中的内嵌图形表示加载

不幸的是,我没能把这些点调整成一个平面矩形。

其次,我仍然有点不确定应该采用哪种变体(我需要先在完成的简历中看到它 - 但猜测它将是变体 2):

变体 1:

变体 1

变体 2:

在此处输入图片描述

我会尝试通过坐标来定义单个矩形,即将它们预定义为“固定”。

例如通过:

\begin{tikzpicture}

\coordinate (Level1_Start) at (0,2.3);
\coordinate (Level1_14) at (0.5,2.3);       %Level 1 - 1/4
\coordinate (Level1_12) at (1,2.3);         %Level 1 - 1/2
\coordinate (Level1_34) at (1.5,2.3);       %Level 1 - 3/4
\coordinate (Level1_End) at (2,2.3);

\coordinate (Level2_Start) at (2.5,2.3);
\coordinate (Level2_14) at (3,2.3);         %Level 2 - 1/4
\coordinate (Level2_12) at (3.5,2.3);       %Level 2 - 1/2
\coordinate (Level2_34) at (4,2.3);         %Level 2 - 3/4
\coordinate (Level2_End) at (4.5,2.3);


\coordinate (A) at (Level1_Start);
\coordinate (B) at (Level1_14);
\coordinate (C) at (Level1_12);
\coordinate (D) at (Level1_34);
\coordinate (E) at (Level1_End);

\draw[red!50,  line width=6pt] (A) -- (E);  %Draw Level 1 from start to end (6pt red)

\coordinate (A) at (Level2_Start);
\coordinate (B) at (Level2_14);
\coordinate (C) at (Level2_12);
\coordinate (D) at (Level2_34);
\coordinate (E) at (Level2_End);

\draw[red!50,  line width=6pt] (A) -- (B);  %Draw Level 2 from start to 1/4 (6pt red)
\draw[gray!50, line width=4pt] (B) -- (E);  %Draw Level 2 from 1/4 to end (4pt gray)

%and so on
\end{tikzpicture}

有了技能/名字等,我也会做类似的事情。

有没有更好、更优雅的解决方案?

答案1

这里有一个使用非常具体的建议dash pattern。首先在整个长度上绘制灰色部分,该部分将被红色部分覆盖。

红色部分也是比较有趣的部分,为此我设置x为一个单条长度的值,这样我们就可以#2直接用作X坐标值。但是,我们需要再次添加分隔空间,这是通过 来完成的xshift

您可以使用值skill bar widthskill bar itemsskill bar sep来更改值的解释和绘制方式。
样式skill barskill bar bgskill bar fg可用于更改可视化效果(其他颜色、其他线宽)。

和键指示 TikZ 生成宽度恰好为 的图表。键用于垂直对齐图表,并且可能会根据您实际使用的字体进行调整trim lefttrim right\linewidthbaseline


默认情况下,\tikzskillbar使用 的宽度。这允许它在的列内或具有固定长度的任何其他列\linewidth内使用(即、或)。Xtabularxtabularpmb

我添加了显示所有步骤的循环(不过,您始终可以使用 0 到 之间的任意数字skill bar items)。

减法.00001避免了整数值的渲染问题,因为这可能会导致红色碎片:
在此处输入图片描述


红色部分也可以用以下定义\tikzskillbar(不同的x值和禁用skill bar样式)分成单独的部分来绘制:

\newcommand*\tikzskillbar[2][]{%
\begin{tikzpicture}[
  skill bar diagram,#1,skill bar diagram init,
  x=\tsbbarlength+\tsbseplength,skill bar/.code=]
\draw[skill bar bg, dash pattern=on \tsbbarlength off \tsbseplength]
  (0,0) -- (\linewidth,0);
\foreach[parse=true] \step in {0,...,(int(#2)-1)}
  \draw[skill bar fg] (right:\step) -- ++(right:\tsbbarlength);
\draw[skill bar fg] (right:{int(#2-.00001)})
  --++(right:{\tsbbarlength*frac(#2)});
\end{tikzpicture}}

代码

\documentclass[a5paper]{article}
\usepackage{tikz}
\tikzset{
  skill bar width/.initial=\linewidth,
  skill bar items/.initial=5,
  skill bar sep/.initial=1mm,
  skill bar diagram/.style={baseline=+-.75ex,trim left=+0pt},
  skill bar diagram init/.style={
    trim right=\pgfkeysvalueof{/tikz/skill bar width},
    /utils/exec=%
    \pgfmathsetlengthmacro\tsbseplength{\pgfkeysvalueof{/tikz/skill bar sep}}%
    \pgfmathsetlengthmacro\tsbbarlength{%
      (\pgfkeysvalueof{/tikz/skill bar width}-(\pgfkeysvalueof{/tikz/skill bar items}-1)
     *(\pgfkeysvalueof{/tikz/skill bar sep}))/(\pgfkeysvalueof{/tikz/skill bar items})}},
  skill bar/.style={dash pattern=on \tsbbarlength off \tsbseplength},
  skill bar bg/.style={skill bar, draw=gray, line width=2pt},
  skill bar fg/.style={skill bar, draw=red,  line width=6pt}}
\newcommand*\tikzskillbar[2][]{%
\begin{tikzpicture}[skill bar diagram,#1,skill bar diagram init,x=\tsbbarlength]
\draw[skill bar bg](0,0)--(right:{\pgfkeysvalueof{/tikz/skill bar width}});
\draw[skill bar fg](0,0)
  --++([xshift={int(#2-.00001)*\pgfkeysvalueof{/tikz/skill bar sep}}]right:{#2});
\end{tikzpicture}}
\usepackage{tabularx}
\newenvironment*{skilltab}{\tabularx{\linewidth}{@{}lX@{}}}{\endtabularx}
\begin{document}
\section*{Knowledge}
\subsection*{Language}
\begin{skilltab}
  German  & \tikzskillbar{4.5}   \\
  English & \tikzskillbar{3.75}
\end{skilltab}

\subsection*{IT}
\begin{skilltab}
  Word       & \tikzskillbar{4.5}  \\
  Excel      & \tikzskillbar{3}    \\
  Powerpoint & \tikzskillbar{2.25}
\end{skilltab}

\vspace{1em}
\foreach \STEP in {0, ..., 12}{%
  \noindent\tikzskillbar[
    skill bar width=3cm, skill bar sep=.5mm, skill bar items=3]{\STEP/4}\par}
\end{document}

输出

在此处输入图片描述

答案2

欢迎来到 TeX.SE!!!

这将创建一个 TiZ 宏绘制所需的矩形并\clip绘制红色矩形。

\documentclass{article}
\usepackage{lipsum} % dummy text
\usepackage{tikz}   % beautiful drawings

\newcommand{\level}[1]
{%
  \begin{tikzpicture}[xscale=1.6,yscale=0.4]
    \pgfmathsetmacro\xmax{#1+0.25*int(#1)}
    \foreach\i in {0,...,4}
      \fill[gray] (1.25*\i em,0.25ex) rectangle ++(1em,0.75ex);
    \clip         (0em,-0.75ex)       rectangle ++(\xmax em,2.75ex);
    \foreach\i in {0,...,4}
      \fill[red] (1.25*\i em,-0.25ex) rectangle ++(1em,1.75ex);
  \end{tikzpicture}%  
}

\begin{document}
\lipsum[1]
\begin{table}[ht]\centering
\begin{tabular}{ll}
Word       & \level{4.5}\\
Excel      & \level{3}\\
Powerpoint & \level{2.25}
\end{tabular}
\end{table}

\lipsum[2]
\end{document}

在此处输入图片描述

相关内容