Advertisement
Guest User

Untitled

a guest
Oct 1st, 2016
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.60 KB | None | 0 0
  1. NeedsTeXFormat{LaTeX2e}
  2. ProvidesClass{cv}
  3. DeclareOption*{PassOptionsToClass{CurrentOption}{article}}
  4. ProcessOptions
  5. LoadClass{article}
  6. RequirePackage{ltxtable}
  7. RequirePackage{ifthen}
  8. RequirePackage{color}
  9. RequirePackage[
  10. pdftex,
  11. pdfstartview={XYZ 0 1000 1.0},
  12. bookmarks=false,
  13. colorlinks,
  14. breaklinks=true,
  15. citecolor=black,
  16. filecolor=black,
  17. linkcolor=black,
  18. urlcolor=urlcolor,
  19. pdfborder={0 0 0}
  20. ]{hyperref}
  21. RequirePackage{geometry}
  22. RequirePackage{graphicx}
  23.  
  24. pagestyle{empty}
  25. parindent=0pt
  26.  
  27. newlength{colwidth}
  28.  
  29. toksdefta=0
  30. toksdeftb=2
  31. defCV@AppendItem#1#2{
  32. ta={#1}
  33. tb=expandafter{#2}
  34. globaledef#2{thetbtheta}
  35. }
  36.  
  37. newcommand{CV@init}[1]{
  38. expandafterglobalexpandafterdefcsname @@#1endcsname{}
  39. }
  40.  
  41. newcommand{superscript}[1]{ensuremath{^textrm{scriptsize#1}}}
  42. newcommand{subscript}[1]{ensuremath{_textrm{scriptsize#1}}}
  43.  
  44. newcommand{xst}[0]{superscript{st}}
  45. newcommand{xnd}[0]{superscript{nd}}
  46. newcommand{xrd}[0]{superscript{rd}}
  47. newcommand{xth}[0]{superscript{th}}
  48.  
  49. defdetailedOnly{0}
  50. def@@language{}
  51. def@@detailed{}
  52.  
  53. newcommand{Language}[1]{
  54. globaldef@@language{#1}
  55. }
  56.  
  57. newcommand{Detailed}[1]{
  58. globaldef@@detailed{#1}
  59. }
  60.  
  61. newlength{scolwidth}
  62. newlength{mcolwidth}
  63. newlength{cmedskip}
  64. newlength{sbigskip}
  65. newlength{smedskip}
  66. newlength{ssmallskip}
  67.  
  68. newcommand{CV@initLength}{
  69. setlength{scolwidth}{textwidth}
  70. addtolength{scolwidth}{-colwidth}
  71. addtolength{scolwidth}{-8.72mm} % Je ne comprends pas d'où vient cette dimension, mais ça marche bien...
  72.  
  73. setlength{mcolwidth}{colwidth}
  74. addtolength{mcolwidth}{scolwidth}
  75. addtolength{mcolwidth}{4.36mm} % Idem (si ce n'est que c'est la moitié de la première)
  76.  
  77. setlength{cmedskip}{medskipamount}
  78. addtolength{cmedskip}{-smallskipamount}
  79. addtolength{cmedskip}{-baselineskip}
  80.  
  81. setlength{sbigskip}{bigskipamount}
  82. addtolength{sbigskip}{-baselineskip}
  83. setlength{smedskip}{medskipamount}
  84. addtolength{smedskip}{-baselineskip}
  85. setlength{ssmallskip}{smallskipamount}
  86. addtolength{ssmallskip}{-baselineskip}
  87. }
  88.  
  89. def@@name{}
  90. def@@address{}
  91. def@@telephone{}
  92. def@@email{}
  93. def@@nationality{}
  94. def@@dateofbirth{}
  95. def@@age{}
  96. def@@gender{}
  97. def@@maritalstatus{}
  98. def@@drivinglicense{}
  99.  
  100. newenvironment{heading}{
  101. CV@init{name}
  102. CV@init{address}
  103. CV@init{telephone}
  104. CV@init{email}
  105. CV@init{nationality}
  106. CV@init{dateofbirth}
  107. CV@init{age}
  108. CV@init{gender}
  109. CV@init{maritalstatus}
  110. CV@init{mobility}
  111. CV@init{photo}
  112. newcommand{Name}[1]{globaldef@@name{##1}}
  113. newcommand{Address}[1]{globaldef@@address{##1}}
  114. newcommand{Telephone}[1]{globaldef@@telephone{##1}}
  115. newcommand{Email}[1]{globaldef@@email{##1}}
  116. newcommand{Nationality}[1]{globaldef@@nationality{##1}}
  117. newcommand{DateOfBirth}[1]{globaldef@@dateofbirth{##1}}
  118. newcommand{Age}[1]{globaldef@@age{##1}}
  119. newcommand{Gender}[1]{globaldef@@gender{##1}}
  120. newcommand{MaritalStatus}[1]{globaldef@@maritalstatus{##1}}
  121. newcommand{Mobility}[1]{globaldef@@mobility{##1}}
  122. newcommand{Photo}[1]{globaldef@@photo{##1}}
  123. }{
  124. globaldefCV@delayed{}
  125.  
  126. CV@AppendItem{
  127. hspace*{tabcolsep}
  128. begin{minipage}{0.5linewidth}
  129. vspace{-baselineskip} % Mais pourquoi ?
  130. }{CV@delayed}
  131.  
  132. ifx@@nameemptyelse
  133. CV@AppendItem{{large @@name}newline}{CV@delayed}
  134. fi
  135.  
  136. ifx@@addressemptyelse
  137. CV@AppendItem{@@addressnewline}{CV@delayed}
  138. fi
  139.  
  140. ifx@@telephoneemptyelse
  141. ifthenelse{equal{@@language}{francais}}{
  142. CV@AppendItem{Tél.~: @@telephonenewline}{CV@delayed}
  143. }{}
  144. ifthenelse{equal{@@language}{english}}{
  145. CV@AppendItem{Phone: @@telephonenewline}{CV@delayed}
  146. }{}
  147. fi
  148.  
  149. ifx@@emailemptyelse
  150. ifthenelse{equal{@@language}{francais}}{
  151. CV@AppendItem{Email~: href{mailto:@@email}{@@email}}{CV@delayed}
  152. }{}
  153. ifthenelse{equal{@@language}{english}}{
  154. CV@AppendItem{Email: href{mailto:@@email}{@@email}}{CV@delayed}
  155. }{}
  156. fi
  157.  
  158. CV@AppendItem{
  159. end{minipage}
  160. begin{minipage}{0.3linewidth}
  161. % vspace{baselineskip}
  162. }{CV@delayed}
  163.  
  164. ifx@@dateofbirthemptyelse
  165. ifthenelse{equal{@@language}{francais}}{
  166. ifthenelse{equal{@@gender}{M}}{
  167. CV@AppendItem{Né le }{CV@delayed}
  168. }{
  169. CV@AppendItem{Née le }{CV@delayed}
  170. }
  171. CV@AppendItem{@@dateofbirth}{CV@delayed}
  172. ifx@@ageemptyelse
  173. CV@AppendItem{ (@@age{} ans)}{CV@delayed}
  174. fi
  175. }{}
  176. ifthenelse{equal{@@language}{english}}{
  177. CV@AppendItem{Date of birth: @@dateofbirth}{CV@delayed}
  178. ifx@@ageemptyelse
  179. CV@AppendItem{ (@@age{} year old)}{CV@delayed}
  180. fi
  181. }{}
  182. fi
  183.  
  184. ifx@@nationalityemptyelse
  185. ifthenelse{equal{@@language}{francais}}{
  186. CV@AppendItem{newline{}Nationalité @@nationality}{CV@delayed}
  187. }{}
  188. ifthenelse{equal{@@language}{english}}{
  189. CV@AppendItem{newline{}Nationality: @@nationality}{CV@delayed}
  190. }{}
  191. fi
  192.  
  193. ifx@@maritalstatusemptyelse
  194. ifthenelse{equal{@@language}{francais}}{
  195. CV@AppendItem{newline{}@@maritalstatus}{CV@delayed}
  196. }{}
  197. ifthenelse{equal{@@language}{english}}{
  198. CV@AppendItem{newline{}Marital status: @@maritalstatus}{CV@delayed}
  199. }{}
  200. fi
  201.  
  202. ifx@@mobilityemptyelse
  203. CV@AppendItem{newline{}@@mobility}{CV@delayed}
  204. fi
  205.  
  206. ifx@@photoemptyelse
  207. CV@AppendItem{
  208. end{minipage}
  209. begin{minipage}{0.17linewidth}
  210. flushright
  211. vspace{-baselineskip}
  212. includegraphics[height=3cm]{@@photo}
  213. }{CV@delayed}
  214. fi
  215.  
  216. CV@AppendItem{
  217. end{minipage}
  218. vspace{-baselineskip}
  219. bigskip
  220. }{CV@delayed}
  221.  
  222. aftergroupCV@delayed
  223. }
  224.  
  225. newenvironment{objective}{
  226. CV@initLength
  227.  
  228. begin{longtable}{p{colwidth}p{scolwidth}}
  229.  
  230. ifthenelse{equal{@@language}{francais}}{
  231. largeitshape Objectif~: & largeitshape
  232. }{}ignorespaces
  233. ifthenelse{equal{@@language}{english}}{
  234. largeitshape Objective: & largeitshape
  235. }{}ignorespaces
  236. }{
  237. \
  238. end{longtable}
  239. medskip
  240. }
  241.  
  242. renewenvironment{section}[1]{
  243. CV@initLength
  244.  
  245. vspace{cmedskip}
  246. textbf{large #1}par
  247. rule[3mm]{textwidth}{0.1mm}par
  248. vspace{-4mm}
  249. begin{longtable}{p{colwidth}p{scolwidth}}
  250. % tabularx{linewidth}{p{colwidth}X}
  251. }{
  252. % endtabularx
  253. end{longtable}
  254. }
  255.  
  256. def@@date{}
  257. def@@duration{}
  258. def@@place{}
  259. def@@locality{}
  260. def@@country{}
  261. def@@activities{}
  262. def@@events{}
  263.  
  264. newcommand{CV@add@activity}[2][1]{
  265. ifthenelse{equal{@@detailed}{1} or equal{#1}{1}}{
  266. ifx@@activitiesemptyelse
  267. CV@AppendItem{newline}{@@activities}
  268. fi
  269.  
  270. CV@AppendItem{#2.}{@@activities}
  271. }{}
  272. }
  273.  
  274. newcommand{CV@add@event}[2][1]{
  275. ifthenelse{equal{@@detailed}{1} or equal{#1}{1}}{
  276. ifx@@eventsemptyelse
  277. CV@AppendItem{newline}{@@events}
  278. fi
  279.  
  280. CV@AppendItem{#2.}{@@events}
  281. }{}
  282. }
  283.  
  284. newcommand{CV@add@course}[1]{
  285. ifthenelse{equal{@@detailed}{1}}{
  286. CV@AppendItem{ensuremath{triangleright}~#1. }{@@courses}
  287. }{}
  288. }
  289.  
  290. newcommand{singleEntry}[2][1]{
  291. ifthenelse{equal{@@detailed}{1} or equal{#1}{1}}{
  292. \kill
  293. multicolumn{2}{p{mcolwidth}}{#2.}\
  294. }{}
  295. % \[ssmallskip]
  296. }
  297.  
  298. newcommand{bigSkip}{
  299. \[sbigskip]
  300. }
  301.  
  302. newcommand{medSkip}{
  303. \[smedskip]
  304. }
  305.  
  306. newcommand{smallSkip}{
  307. \[ssmallskip]
  308. }
  309.  
  310. newenvironment{entry}[1][1]{
  311. globaldef@@detail{#1}
  312.  
  313. CV@init{date}
  314. CV@init{duration}
  315. CV@init{skill}
  316. CV@init{place}
  317. CV@init{locality}
  318. CV@init{country}
  319. CV@init{activities}
  320. CV@init{events}
  321. CV@init{courses}
  322. newcommand{Date}[1]{globaldef@@date{##1}}
  323. newcommand{Duration}[1]{globaldef@@duration{##1}}
  324. newcommand{Skill}[1]{globaldef@@skill{##1}}
  325. newcommand{Place}[1]{globaldef@@place{##1}}
  326. newcommand{Locality}[1]{globaldef@@locality{##1}}
  327. newcommand{Country}[1]{globaldef@@country{##1}}
  328. letActivityCV@add@activity
  329. letEventCV@add@event
  330. letCourseCV@add@course
  331. }{
  332. globaldefCV@delayed{}
  333. CV@AppendItem{\kill}{CV@delayed}
  334.  
  335. ifthenelse{equal{@@detailed}{1} or equal{@@detail}{1}}{
  336. ifx@@dateemptyelse
  337. CV@AppendItem{textbf{@@date}}{CV@delayed}
  338. ifx@@durationemptyelse
  339. CV@AppendItem{newline}{CV@delayed}
  340. fi
  341. fi
  342.  
  343. ifx@@durationemptyelse
  344. CV@AppendItem{(@@duration)}{CV@delayed}
  345. fi
  346.  
  347. ifx@@skillemptyelse
  348. CV@AppendItem{@@skill}{CV@delayed}
  349. fi
  350.  
  351. CV@AppendItem{&}{CV@delayed}
  352.  
  353. ifx@@placeemptyelse
  354. CV@AppendItem{textsc{@@place}}{CV@delayed}
  355. ifx@@localityemptyelse
  356. CV@AppendItem{, @@locality}{CV@delayed}
  357. fi
  358. ifx@@countryemptyelse
  359. CV@AppendItem{, @@country}{CV@delayed}
  360. fi
  361. CV@AppendItem{.}{CV@delayed}
  362.  
  363. ifthenelse{equal{@@activities}{empty} and equal{@@events}{empty} and equal{@@courses}{empty}}{}{
  364. CV@AppendItem{newline}{CV@delayed}
  365. }
  366. fi
  367.  
  368. ifx@@activitiesemptyelse
  369. CV@AppendItem{@@activities}{CV@delayed}
  370.  
  371. ifthenelse{equal{@@events}{empty} and equal{@@courses}{empty}}{}{
  372. CV@AppendItem{newline}{CV@delayed}
  373. }
  374. fi
  375.  
  376. ifx@@eventsemptyelse
  377. CV@AppendItem{@@events}{CV@delayed}
  378.  
  379. ifthenelse{equal{@@courses}{empty}}{}{
  380. CV@AppendItem{newline}{CV@delayed}
  381. }
  382. fi
  383.  
  384. ifx@@coursesemptyelse
  385. CV@AppendItem{textit{@@courses}}{CV@delayed}
  386. fi
  387.  
  388. CV@AppendItem{\[smallskipamount]}{CV@delayed}
  389. }{}
  390.  
  391. aftergroupCV@delayed
  392. }
  393.  
  394. documentclass[12pt,a4paper]{cv}
  395.  
  396. usepackage[francais]{babel}
  397. usepackage[latin1]{inputenc}
  398. usepackage[T1]{fontenc}
  399.  
  400. usepackage[libertine]{newtxmath}%
  401. renewcommand*oldstylenums[1]{{fontfamily{fxlj}selectfont #1}}
  402. usepackage[scaled=0.8]{luximono}
  403. usepackage{libertine}
  404. usepackage[protrusion=true,expansion,final,babel=true]{microtype}
  405.  
  406. usepackage{lastpage}
  407. usepackage{fancyhdr}
  408. usepackage{xcolor}
  409. pagestyle{fancy}
  410. renewcommand{headrulewidth}{0.0 pt}%
  411. renewcommand{footrulewidth}{0.0 pt}
  412. rfoot{textit{{fontfamily{lmr}selectfont thepage/pageref{LastPage}}}}
  413. cfoot{}
  414.  
  415. Language{francais}
  416.  
  417.  
  418. hypersetup{
  419. pdfauthor = {Gilles Zigobet}, % C'est vous qui avez fait le PDF
  420. pdftitle = {Curriculum Vitae},
  421. % pdfsubject = {},
  422. % pdfkeywords = {},
  423. pdfcreator = {PDFLaTeX}, % Vous l'avez fait avec LateX !
  424. pdfproducer = {PDFLaTeX}
  425. }
  426.  
  427. % Couleur des liens hypertextes, si vous voulez les faire ressortir
  428. definecolor{urlcolor}{rgb}{0, 0, 0.5}
  429.  
  430.  
  431. Detailed{1}
  432.  
  433. % Marges
  434. geometry{
  435. hmargin=2.3cm, % Marges gauche-droite
  436. vmargin=2.5cm % Marges haut-bas
  437. }
  438.  
  439. % Largeur de la colonne de gauche
  440. setlength{colwidth}{2.5cm}
  441.  
  442. % Espacements
  443. smallskipamount=1mm % Espace entre les différents entrées d'une section
  444. medskipamount=3mm % Espace entre les sections
  445. bigskipamount=5mm % Espace entre le chapeau et l'objectif ou la première section
  446.  
  447.  
  448. % Redéfinition rubrique pour modifier l'apparence du titre - largeur du cadre
  449. % fixée à 5cm
  450.  
  451. begin{document}
  452.  
  453. ...
  454.  
  455. end{document}
  456.  
  457. begin{center}
  458. begin{tabular}{lcll}
  459. & bf Read & bf Spoken & bf Writen \
  460. bf English & Good & Good & Good \
  461. bf French & Excellent & Excellent & Excellent \
  462.  
  463. end{tabular}
  464. end{center}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement