从个人目录的中文简历迁移为第 11 个模板,三处字体重做:
1) 字体三层依赖全部拆掉
- 删 zh_cn-adobefonts_external/internal.sty(Adobe 宋/黑/楷/仿,56 MB,
商业授权不可分发),中文字体改由 ../fonts.tex 提供
- awesome-source-cv.cls 的 localFont 分支(SourceSansPro 9 个 .otf)
整段删除,西文改走 ../fonts.tex 的 TeX Gyre Termes
- fontawesome.sty 原按字体名找系统 FontAwesome,改成显式
Path=../fonts/fontawesome/,并把 FontAwesome.otf 收进仓库
顺带修掉一个设计缺陷:原 adobefonts 里 BoldFont/ItalicFont/SmallCapsFont
全部指向 Regular,等于加粗不变、斜体不变。现用字体自带的真粗体。
2) 占位化:真实姓名/手机/邮箱/住址/出生年月/论文题名与 DOI/专利号/
软著号/33 条获奖全部改为 ××× / 20××;真人照 a.jpg/a.png 换成
PIL 生成的 400×400 中性剪影 photo.jpg
3) 排版修正
- 左栏宽度改为 \dimexpr\linewidth-\leftcolumn-4\tabcolsep\relax 自适应,
修掉长表格 Overfull 4.48pt(原来没把 4 个 \tabcolsep 算进去)
- 抬头两处 \vspace*{...}\\、\smallskip\\ 改为 \\[...],
修掉 Underfull \hbox (badness 10000)
- \socialinfo 末尾多余的 \\ 去掉
fonts.tex 的改动(全库共享):\textsc 用的 sc 档改用
\DeclareFontShape{TU}{OUCSerif(0)}{m}{sc}{<->ssub * OUCSerif(0)/m/n}{}
做形状替换,而不是 SmallCapsFont 选项 —— 后者与本文件 ItalicFeatures 的
跨目录 Path 互斥,任何写法都报 The font "OUCSerif-Regular" cannot be found.
回归:11 个模板全部零 error 编译通过;科技报告/试卷/课程执行大纲
文本与改动前逐字一致,4 个既有 boxwarn 为改动前基线,未新增。
编译:cd 简历 && xelatex 简历.tex 跑两遍,3 页,零 error/Underfull/Overfull。
嵌入字体仅 OUCSerif-{Regular,Bold}、TeXGyreTermes-{Regular,Bold}、FontAwesome。
452 lines
15 KiB
OpenEdge ABL
452 lines
15 KiB
OpenEdge ABL
%% Copyright 2016 Christophe Roger
|
||
%
|
||
% Author:
|
||
% Christophe Roger (Darwiin)
|
||
%
|
||
% This work may be distributed and/or modified under the
|
||
% conditions of the LaTeX Project Public License, either version 1.3c
|
||
% of this license or (at your option) any later version.
|
||
% The latest version of this license is in
|
||
% http://www.latex-project.org/lppl.txt
|
||
% and version 1.3 or later is part of all distributions of LaTeX
|
||
% version 2005/12/01 or later.
|
||
%
|
||
% This work has the LPPL maintenance status `maintained'.
|
||
%
|
||
% The Current Maintainer of this work is M. C. Roger.
|
||
%
|
||
% This work consists of the files awesome-source-cv.cls
|
||
|
||
\ProvidesClass{awesome-source-cv}[2016/11/05 v1.6.1 Awesome Source CV Class]
|
||
|
||
\LoadClass[a4paper]{article}
|
||
|
||
\DeclareOption{green}{
|
||
\def\@green{green}
|
||
}
|
||
|
||
\DeclareOption{red}{
|
||
\def\@red{red}
|
||
}
|
||
|
||
\DeclareOption{indigo}{
|
||
\def\@indigo{indigo}
|
||
}
|
||
\DeclareOption{orange}{
|
||
\def\@orange{orange}
|
||
}
|
||
|
||
\DeclareOption{localFont}{
|
||
\def\@local{local}
|
||
}
|
||
|
||
\DeclareOption{alternative}{
|
||
\def\@alternative{alternate}
|
||
}
|
||
|
||
\ProcessOptions
|
||
|
||
% Dependences
|
||
%A Few Useful Packages
|
||
\RequirePackage[frenchb]{babel}
|
||
%\RequirePackage[utf8]{luainputenc} % luatex
|
||
\RequirePackage{fontspec} % for loading fonts
|
||
\RequirePackage{url,parskip} % other packages for formatting
|
||
\RequirePackage[usenames,dvipsnames]{xcolor}
|
||
\RequirePackage{fullpage}
|
||
\RequirePackage[margin=1.5cm]{geometry}
|
||
\RequirePackage{fontawesome}
|
||
\RequirePackage{hyperref}\hypersetup{hidelinks}
|
||
\RequirePackage{titlesec}
|
||
\RequirePackage{array}
|
||
\RequirePackage{enumitem}
|
||
\RequirePackage{longtable}
|
||
\RequirePackage{etoolbox}
|
||
\RequirePackage{tikz}
|
||
\RequirePackage[skins]{tcolorbox}
|
||
|
||
|
||
% \DeclareUnicodeCharacter{00E9}{\'{e}} %luatex
|
||
|
||
% Define default accent colors
|
||
%\definecolor{basecolor}{HTML}{000066} %BLUE
|
||
\definecolor{basecolor}{HTML}{0f4c81}
|
||
\ifundef{\@green} {
|
||
\ifundef{\@red} {
|
||
\ifundef{\@indigo}{
|
||
\ifundef{\@orange} {}
|
||
{ \definecolor{basecolor}{HTML}{e68a00} }
|
||
}
|
||
{ \definecolor{basecolor}{rgb}{0.2, 0.07, 0.48} }
|
||
}
|
||
{ \definecolor{basecolor}{HTML}{b30000} } %RED
|
||
}
|
||
{ \definecolor{basecolor}{rgb}{0.0, 0.62, 0.38} }
|
||
|
||
\definecolor{darkGrey}{HTML}{989898}
|
||
|
||
\colorlet{linkcolor}{basecolor}
|
||
\colorlet{accentcolor}{linkcolor!90}
|
||
\colorlet{symbolcolor}{linkcolor!85}
|
||
|
||
% Setup hyperref package, and colours for links
|
||
%\definecolor{linkcolour}{rgb}{0,0.2,0.6}
|
||
\hypersetup{breaklinks}
|
||
|
||
\pagestyle{empty} % non-numbered pages
|
||
%\font\fb=''[cmr10]'' % for use with \LaTeX command
|
||
|
||
% Setup CV sections
|
||
\titleformat{\section}{\Large\raggedright}{}{0em}{}[\titlerule]
|
||
\titlespacing{\section}{0pt}{2pt}{2pt}
|
||
|
||
% Configure list
|
||
\setlist[itemize,1]{label=\faAngleRight, nosep, leftmargin=2em}
|
||
|
||
% Setup Array : new column type
|
||
\newcolumntype{R}[1]{>{\hfill}m{#1}}
|
||
|
||
%Italian hyphenation for the word: ''corporations''
|
||
\hyphenation{im-pre-se}
|
||
|
||
% Setup fonts
|
||
\defaultfontfeatures{Mapping=tex-text}
|
||
%
|
||
|
||
%-------------------------------------------------------------------------------
|
||
% Configuration for fonts
|
||
%-------------------------------------------------------------------------------
|
||
% ⚠️⚠️ 本文件已被改写:字体**全部**取自仓库公共字体包 ../fonts.tex。
|
||
%
|
||
% 上游 awesom e-cv 的中文版原来这么配(共三处,都已删除):
|
||
% ① zh_cn-adobefonts_external.sty 里 \setCJKmainfont{AdobeSongStd-Light.otf}
|
||
% —— Adobe 宋/黑/楷/仿四款共 56 MB,商业授权,**不能随仓库分发**。
|
||
% 而且那份文件还拿 HarmonyOS Sans 去冒充 Bold/Italic/SmallCaps:
|
||
% BoldFont = HarmonyOS_Sans_SC_Regular.ttf
|
||
% ItalicFont = HarmonyOS_Sans_SC_Regular.ttf
|
||
% 等于"加粗=不变"、"斜体=不变",标题的层次全靠字号撑,是个将就做法。
|
||
% ② \setmainfont{SourceSansPro-Light}(localFont 分支)
|
||
% 9 个 .otf,SIL OFL 1.1 可用,但本仓库不打算为一份字体再带 4 MB。
|
||
% ③ \setfontfamily\FA[Path=fonts/]{FontAwesome}
|
||
% Path 指向本目录下不存在的 fonts/ —— 那份图标字体在 TeX Live 里。
|
||
%
|
||
% 现在的映射:
|
||
% 西文正文 Source Sans Pro Light → TeX Gyre Termes(本仓库自带)
|
||
% 中文正文 Adobe Song / HarmonyOS → OUC Serif(思源宋体子集,自带)
|
||
% 中文粗体 (原来=不变) → OUC Serif Bold(真粗体)
|
||
% 中文斜体 无 → OUC Kai(楷体代斜体,中文惯例)
|
||
% FontAwesome TeX Live 系统包 → 仓库 fonts/fontawesome/
|
||
%
|
||
% ⚠️ 字体文件本体在 ../fonts/ 下,由 ../fonts.tex 统一设置,
|
||
% **不要在本文档或 .tex 里再写 \setCJKmainfont / \setmainfont**。
|
||
% 下面只做"西文用哪一档"的局部调整。
|
||
%-------------------------------------------------------------------------------
|
||
|
||
% FontAwesome:图标字体已经放进仓库公共字体目录,
|
||
% ⚠️ 但**不要在这里重新声明 \FA** —— fontawesome.sty 自己在正文里就做了
|
||
% \newfontfamily{\FA}[Path=../fonts/fontawesome/]{FontAwesome.otf}
|
||
% 且它在 \RequirePackage{fontawesome} 时就执行(早于本 cls 的后面几句)。
|
||
% 这里再声明一次会报 "Font \FA already defined"(LaTeX3 的
|
||
% \NewDocumentCommand 语义),所以只留注释说明。
|
||
%
|
||
% 上游原来是 \setfontfamily\FA[Path=fonts/]{FontAwesome},
|
||
% Path 指向本目录下并不存在的 fonts/ —— 只能靠系统字体兜底。
|
||
% 现在路径写进 fontawesome.sty 了。
|
||
|
||
% 西文正文:上游用 Source Sans Pro Light(很细),本模板改用 Termes。
|
||
% 注意这里**不能**再 \setmainfont —— 那会把 fonts.tex 设好的 Termes
|
||
% 整套换掉。只把上游代码里对 Light/Semibold 的引用映射到 Termes 的
|
||
% 常规/粗体两档,保持"正文常规、强调加粗"的层级不变。
|
||
\providecommand{\sourcesanslight}{\tnr}
|
||
\providecommand{\sourcesanssemibold}{\tnrb}
|
||
|
||
%New length definition
|
||
%
|
||
% ⚠️ 这两个长度原来写死 14.8cm / 2.5cm,加起来 17.3cm,看着小于版心宽
|
||
% 18cm(A4 21cm − 2×1.5cm 边距)。但 longtable 每列还有 \tabcolsep
|
||
% 各占左右一侧(默认 6pt),两列共 4 个 \tabcolsep = 24pt ≈ 0.85cm,
|
||
% 于是实际占宽 18.15cm → 溢出 4.48pt,报
|
||
% Overfull \hbox (4.48311pt too wide) in alignment at lines 20--70
|
||
% 这种"算着够、实际差一点"的溢出,换字号/字体后会时有时无,很难查。
|
||
%
|
||
% 改法:不让它猜,直接用 \linewidth 减去左列与列间距。
|
||
% 这样改页边距(geometry)后不用再跟着调数字。
|
||
\newlength{\rightcolumnlength}
|
||
\newlength{\leftcolumn}
|
||
\setlength{\leftcolumn}{2.5cm}
|
||
\setlength{\rightcolumnlength}{%
|
||
\dimexpr\linewidth-\leftcolumn-4\tabcolsep\relax}
|
||
|
||
% Font Awesome icons aliases
|
||
\newcommand{\mailSymbol}{\faEnvelope}
|
||
\newcommand{\mailSymbolO}{\faEnvelopeO}
|
||
\newcommand{\locationSymbol}{\faMapMarker}
|
||
\newcommand{\infoSymbol}{\faInfo}
|
||
\newcommand{\homeSymbol}{\faLink}
|
||
\newcommand{\weiboSymbol}{\faWeibo}
|
||
\newcommand{\linkedinSymbol}{\faLinkedin}
|
||
\newcommand{\mobileSymbol}{\faMobilePhone}
|
||
\newcommand{\githubSymbol}{\faGithub}
|
||
|
||
\newcommand\link[2]{\color{linkcolor}\href{#1}{#2}\color{Black} }
|
||
\newcommand\important[1]{\textbf #1}
|
||
|
||
% Create a tag
|
||
% Usage: \cvtag{<tag label>}
|
||
\newcommand{\cvtag}[1]{%
|
||
%\tikz[baseline]\node[anchor=base,draw=darkGrey!70,rounded corners=0.5ex,inner xsep=1ex,inner ysep =0.55ex,text height=1.3ex,text depth=.25ex]{#1};
|
||
\begin{tikzpicture}
|
||
\node[anchor=base,draw=darkGrey!70,rounded corners=0.5ex,inner xsep=1ex,inner ysep =0.4ex,text height=2ex,text depth=.25ex]{#1};
|
||
\end{tikzpicture}
|
||
}
|
||
|
||
% Create a chinese tag
|
||
% Usage: \cvtag{<tag label>}
|
||
\newcommand{\cvtagcn}[1]{%
|
||
%\tikz[baseline]\node[anchor=base,draw=darkGrey!70,rounded corners=0.5ex,inner xsep=1ex,inner ysep =0.55ex,text height=1.3ex,text depth=.25ex]{#1};
|
||
\begin{tikzpicture}
|
||
\node[anchor=base,draw=darkGrey!70,rounded corners=0.5ex,inner xsep=1ex,inner ysep =0.4ex,text height=2ex,text depth=.25ex]{#1};
|
||
\end{tikzpicture}
|
||
}
|
||
|
||
% Render author's name
|
||
% Usage: \user{<firstanme>}{<lastname>}
|
||
\newcommand\user[2]{\color{accentcolor}{\LARGE #1 \textbf{#2}}\color{Black}}
|
||
|
||
% Render a text with its symbol
|
||
% Usage; \socialtext{<icon>}{<label>}
|
||
\newcommand{\socialtext}[2]{\mbox{\textcolor{symbolcolor}{#1}\hspace{0.5em}#2\hspace{1em}}}
|
||
|
||
% Render a link with its symbol
|
||
% Usage; \sociallink{<icon>}{<label>}
|
||
%\newcommand{\sociallink}[3]{\mbox{\textcolor{symbolcolor}{#1}\hspace{0.5em}#2\hspace{1em}}}
|
||
\newcommand{\sociallink}[3]{\mbox{\textcolor{symbolcolor}{#1}\hspace{0.5em}\link{#2}{#3}\hspace{1em}}}
|
||
|
||
% Define author's name
|
||
% Usage: \name{<firstname>}{<lastname>}
|
||
% Usage: \firstname{<firstname>}
|
||
% Usage: \lastname{<lastname>}
|
||
% Usage: \familyname{<familyname>}
|
||
\newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}}
|
||
\newcommand*{\firstname}[1]{\def\@firstname{#1}}
|
||
\newcommand*{\lastname}[1]{\def\@lastname{#1}}
|
||
\newcommand*{\familyname}[1]{\def\@lastname{#1}}
|
||
\def\@familyname{\@lastname}
|
||
|
||
% Define author's tagline
|
||
% Usage: \tagline{<tag line>}
|
||
\newcommand*{\tagline}[1]{\def\@tagline{#1}}
|
||
|
||
% Define author's photo
|
||
% Usage \photo{<diameter>}{<photo>}
|
||
\newcommand{\photo}[2]{\def\@photo{#2}\def\@photodiameter{#1}}
|
||
|
||
% Render author's address
|
||
% Usage: \address{<address>}
|
||
\newcommand*{\address}[1]{\socialtext{\locationSymbol}{#1}}
|
||
|
||
% Render author's infos
|
||
% Usage: \infos{<infos>}
|
||
\newcommand*{\infos}[1]{\socialtext{\infoSymbol}{#1}}
|
||
|
||
% Render author's homepage
|
||
% Usage: \homepage{<homepage>}
|
||
\newcommand*{\homepage}[1]{\sociallink{\homeSymbol}{http://#1}{#1}}
|
||
|
||
% Render author's homepage
|
||
% Usage: \weibo{<weibo>}
|
||
\newcommand*{\weibo}[1]{\sociallink{\weiboSymbol}{http://www.weibo.com/#1}{weibo.com/#1}}
|
||
|
||
|
||
% Render author's linked-in (optional)
|
||
% Usage: \linkedin{<linked-in-nick>}
|
||
\newcommand*{\linkedin}[1]{\sociallink{\linkedinSymbol}{http://www.linkedin.com/in/#1}{linkedin.com/in/#1}}
|
||
|
||
% Render author's viadeo(optional)
|
||
% Usage: \viadeo{<viadeo-nick>}
|
||
\newcommand*{\viadeo}[1]{\sociallink{\viadeoSymbol}{http://www.viadeo.com/fr/profile/#1}{viadeo.com/fr/profile/#1}}
|
||
|
||
% Render author's github (optional)
|
||
% Usage: \github{<github-nick>}
|
||
\newcommand*{\github}[1]{\sociallink{\githubSymbol}{https://www.github.com/#1}{github.com/#1}} % Github icon + URL
|
||
|
||
% Render author's email (optional)
|
||
% Usage: \email{<email adress>}
|
||
\newcommand*{\email}[1]{\sociallink{\mailSymbol}{mailto:#1}{#1}}
|
||
\newcommand*{\emailO}[1]{\sociallink{\mailSymbolO}{mailto:#1}{#1}}
|
||
|
||
% Render author's mobile phone (optional)
|
||
% Usage: \smartphone{<mobile phone number>}
|
||
\newcommand*\smartphone[1]{\socialtext{\mobileSymbol}{#1}}
|
||
|
||
% Render author's tagline
|
||
\newcommand\resumetitle[1]{
|
||
\ifundef{\@
|
||
}{
|
||
\par{
|
||
\bigskip\center{\Large \color{accentcolor}\textsc{#1}\color{Black}}\par
|
||
}
|
||
\bigskip
|
||
}{
|
||
% \color{accentcolor}\textsc{\large{#1}}\color{black}
|
||
\par{
|
||
\bigskip\center{\Large \color{accentcolor}\textsc{#1}\color{Black}}\par
|
||
}
|
||
\bigskip
|
||
}
|
||
}
|
||
|
||
% Define social entries to print in header
|
||
\newcommand{\socialinfo}[1]{\def\@socialinfo{#1}}
|
||
|
||
|
||
% Render CV header
|
||
% Needs \@firstname, \@lastname and \@tagline to be defined
|
||
\newcommand*{\makecvheader}{
|
||
\ifundef{\@alternative}{
|
||
|
||
\ifundef{\@photodiameter}{
|
||
\begin{minipage}{\linewidth}
|
||
}{
|
||
\begin{minipage}{\dimexpr\linewidth-\@photodiameter-2em}
|
||
}
|
||
% ⚠️ 原文是 \vspace*{0.3cm}\\ —— \vspace 后面紧跟 \\ 会在
|
||
% 换行前多出一个**空的 hbox**,日志每条都刷
|
||
% Underfull \hbox (badness 10000) in paragraph at lines 75--75
|
||
% 改用 \\[0.3cm](换行并附垂直间距,LaTeX 标准写法),
|
||
% 间距效果完全一样,但不产生空盒。下面的 \smallskip\\
|
||
% 同理改成 \\[\smallskipamount]。
|
||
\color{accentcolor}\user{\@firstname}{\@lastname}\color{black}\\[0.3cm]
|
||
\small{\@socialinfo}
|
||
\end{minipage}
|
||
\ifdef{\@photodiameter}{
|
||
\begin{minipage}{\@photodiameter}
|
||
\begin{tikzpicture}%
|
||
\node[circle, text=white, minimum size=2.5cm,
|
||
path picture={\node at (path picture bounding box.center){
|
||
\includegraphics[width=2.5cm]{\@photo}
|
||
};
|
||
}]{ };
|
||
\end{tikzpicture}
|
||
\end{minipage}
|
||
}{}
|
||
\resumetitle{\@tagline}
|
||
}{
|
||
\ifundef{\@photodiameter}{
|
||
\begin{minipage}{\linewidth}
|
||
}{
|
||
\begin{minipage} {\dimexpr\linewidth-\@photodiameter-2em}
|
||
}
|
||
\user{\@firstname}{\@lastname}\\[0.3cm]
|
||
\resumetitle{\@tagline}
|
||
\\[\smallskipamount]
|
||
\small{\@socialinfo}
|
||
\end{minipage}
|
||
\ifdef{\@photodiameter}{
|
||
\begin{minipage}{\@photodiameter}
|
||
\begin{tikzpicture}%
|
||
\node[circle, text=white, minimum size=2.5cm,
|
||
path picture={\node at (path picture bounding box.center){
|
||
\includegraphics[width=2.5cm]{\@photo}
|
||
};
|
||
}]{ };
|
||
\end{tikzpicture}
|
||
\end{minipage}
|
||
% \begin{minipage}{\@photodiameter}
|
||
% \tikz\path[fill overzoom image={\@photo}]circle[radius=0.5\linewidth];
|
||
% \end{minipage}
|
||
|
||
}{}
|
||
\bigskip
|
||
}
|
||
}
|
||
|
||
% Resume part title definition
|
||
\newcommand\sectionTitle[2]{\section{\texorpdfstring{\color{accentcolor}#2\enspace \textbf{#1}}{#1}}}
|
||
|
||
% Define a new column type for the scholarship environment
|
||
\newcolumntype{Y}{>{\raggedleft}p{\leftcolumn}}
|
||
|
||
% Define the 'scholarship' environment
|
||
\newenvironment{scholarship}{%
|
||
\begin{tabular}{Y p{\rightcolumnlength}}
|
||
}{%
|
||
\end{tabular}
|
||
}
|
||
|
||
% Render a scholarshipentry in the scolarship environment
|
||
% Usage: \scholarshipentry{<date>}{<description>}
|
||
\newcommand\scholarshipentry[2]{
|
||
#1 & #2 \\
|
||
}
|
||
|
||
% Define the 'skills' environment
|
||
\newenvironment{skills}{%
|
||
\begin{longtable}{R{\leftcolumn}p{\rightcolumnlength}}
|
||
}{%
|
||
\end{longtable}
|
||
}
|
||
|
||
% Render a skill in the skills environment
|
||
% Usage: \skill{<skill>}{<level>}
|
||
\newcommand\skill[2]{
|
||
\textsc{#1} & \foreach \x in {1,...,5}{{\color{accentcolor!80} \ifnumgreater{\x}{#2}{\faCircleO}{\faCircle}}\enspace }
|
||
}
|
||
|
||
\newcolumntype{E}{>{\raggedright\arraybackslash}p{\rightcolumnlength}}
|
||
|
||
% Define the 'experiences' environment
|
||
\newenvironment{experiences}{%
|
||
\begin{longtable}{R{\leftcolumn}|E}
|
||
}{%
|
||
\end{longtable}
|
||
}
|
||
|
||
|
||
% Render an experience in the experiences environment
|
||
% Usage:
|
||
% \tags {<Technology list>}
|
||
|
||
\newcommand\tags[1]{
|
||
\foreach \n in {#1}{\cvtagcn{\n}}
|
||
}
|
||
|
||
|
||
|
||
% Render an experience in the experiences environment
|
||
% Usage:
|
||
% \experience
|
||
% {<End date>} {<Title>}{<Enterprise>}{<Country>}
|
||
% {<Start date} {
|
||
% <Experience description (Could be a list)>
|
||
% }
|
||
% {<Technology list>}
|
||
\newcommand\experience[7]{
|
||
\textsc{#1} & \textsc{#2, #3, #4} \\*
|
||
\textsc{#5} & \begin{minipage}[t]{\rightcolumnlength}
|
||
#6
|
||
\end{minipage} \\*
|
||
& \footnotesize{\foreach \n in {#7}{\cvtag{\n}}} \\
|
||
}
|
||
|
||
% Render a consultant experience in the experiences environment
|
||
% Usage:
|
||
% \consultantexperience
|
||
% {<End date>} {<Consultant title>}{<Consulting Enterprise>}{<Country>}
|
||
% {<Start date} {<Client title>}{<Client business unit>}
|
||
% {
|
||
% <Experience description (Could be a list)>
|
||
% }
|
||
% {<Technology list>}
|
||
\newcommand\consultantexperience[9]{
|
||
\textsc{#1} & \textsc{#2, #3, #4} \\*
|
||
\textsc{#5} & \emph{#6} pour #7 \\*
|
||
& \begin{minipage}[t]{\rightcolumnlength}
|
||
#8
|
||
\end{minipage} \\*
|
||
& \footnotesize{\foreach \n in {#9}{\cvtag{\n}}} \\
|
||
}
|
||
|
||
|
||
\newcommand\emptySeparator{\multicolumn{2}{c}{}\\}
|