summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/moderncv
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-01-23 03:02:06 +0000
committerNorbert Preining <norbert@preining.info>2021-01-23 03:02:06 +0000
commitfcf66e0c8c8c0f5d590d5ac4411b13977aef8a30 (patch)
treec3e833039bb26ff1b8a5730bff18f6f3c5f6ae56 /macros/latex/contrib/moderncv
parente1a7798f45cd37c0aa0bfaaef5f0acb4e48bc867 (diff)
CTAN sync 202101230302
Diffstat (limited to 'macros/latex/contrib/moderncv')
-rw-r--r--macros/latex/contrib/moderncv/CHANGELOG11
-rw-r--r--macros/latex/contrib/moderncv/KNOWN_BUGS4
-rw-r--r--macros/latex/contrib/moderncv/LICENSE.txt415
-rw-r--r--macros/latex/contrib/moderncv/README16
-rw-r--r--macros/latex/contrib/moderncv/README.md17
-rw-r--r--macros/latex/contrib/moderncv/examples/Makefile18
-rw-r--r--macros/latex/contrib/moderncv/examples/template-es.pdfbin36050 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template-es.tex131
-rw-r--r--macros/latex/contrib/moderncv/examples/template-multibib.pdfbin99683 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template-multibib.tex165
-rw-r--r--macros/latex/contrib/moderncv/examples/template-zh.pdfbin239848 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template-zh.tex130
-rw-r--r--macros/latex/contrib/moderncv/examples/template_banking_red-fullrules-center.pdfbin108721 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template_banking_red-norules.pdfbin91945 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template_banking_red-shortrules-right.pdfbin105870 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template_banking_red.pdfbin108599 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template_casual_orange-left.pdfbin99448 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template_casual_orange.pdfbin99451 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template_classic_green-right.pdfbin279661 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template_classic_green.pdfbin279661 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template_fancy_purple.pdfbin90269 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/examples/template_oldstyle_grey.pdfbin70822 -> 0 bytes
-rw-r--r--macros/latex/contrib/moderncv/manual/moderncv_userguide.pdfbin0 -> 320611 bytes
-rw-r--r--macros/latex/contrib/moderncv/manual/moderncv_userguide.tex462
-rw-r--r--macros/latex/contrib/moderncv/moderncv.cls174
-rw-r--r--macros/latex/contrib/moderncv/moderncvbodyi.sty10
l---------[-rw-r--r--]macros/latex/contrib/moderncv/moderncvbodyii.sty175
-rw-r--r--macros/latex/contrib/moderncv/moderncvbodyiii.sty27
-rw-r--r--macros/latex/contrib/moderncv/moderncvbodyiv.sty9
-rw-r--r--macros/latex/contrib/moderncv/moderncvbodyv.sty19
-rw-r--r--macros/latex/contrib/moderncv/moderncvcollection.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorblack.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorblue.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorburgundy.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorgreen.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorgrey.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolororange.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorpurple.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorred.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvcompatibility.sty7
-rw-r--r--macros/latex/contrib/moderncv/moderncvdebugtools.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvfooti.sty8
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadi.sty11
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadii.sty8
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadiii.sty20
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadiv.sty13
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadv.sty10
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadvi.sty6
-rw-r--r--macros/latex/contrib/moderncv/moderncviconsawesome.sty39
-rw-r--r--macros/latex/contrib/moderncv/moderncviconsletters.sty32
-rw-r--r--macros/latex/contrib/moderncv/moderncviconsmarvosym.sty46
-rw-r--r--macros/latex/contrib/moderncv/moderncvskillmatrix.sty1051
-rw-r--r--macros/latex/contrib/moderncv/moderncvstylebanking.sty11
-rw-r--r--macros/latex/contrib/moderncv/moderncvstylecasual.sty11
-rw-r--r--macros/latex/contrib/moderncv/moderncvstyleclassic.sty11
-rw-r--r--macros/latex/contrib/moderncv/moderncvstyleempty.sty4
-rw-r--r--macros/latex/contrib/moderncv/moderncvstylefancy.sty11
-rw-r--r--macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty4
-rw-r--r--macros/latex/contrib/moderncv/picture.eps (renamed from macros/latex/contrib/moderncv/examples/picture.eps)0
-rw-r--r--macros/latex/contrib/moderncv/picture.jpg (renamed from macros/latex/contrib/moderncv/examples/picture.jpg)bin1645 -> 1645 bytes
-rw-r--r--macros/latex/contrib/moderncv/publications.bib (renamed from macros/latex/contrib/moderncv/examples/publications.bib)0
-rw-r--r--macros/latex/contrib/moderncv/template.tex (renamed from macros/latex/contrib/moderncv/examples/template.tex)98
-rw-r--r--macros/latex/contrib/moderncv/tweaklist.sty4
63 files changed, 2404 insertions, 824 deletions
diff --git a/macros/latex/contrib/moderncv/CHANGELOG b/macros/latex/contrib/moderncv/CHANGELOG
index 8e300badd1..41cbe5fb47 100644
--- a/macros/latex/contrib/moderncv/CHANGELOG
+++ b/macros/latex/contrib/moderncv/CHANGELOG
@@ -1,3 +1,14 @@
+version 2.1.0 (21 Jan 2021)
+- maintainer change: now team maintained (https://github.com/moderncv), since
+ original repository is basically dead since 2016.
+- new \social options: Xing, Skype, GitLab, Bitbucket, stack overflow, ORCID,
+ ResearcherID, ResearchGate, Telegram and Google Scholar
+- hyperlinks in phone numbers
+- switch from l3regex to expl3
+- new skill matrix feature
+- move to fonawesome5 package
+- default to https
+
version 2.0.0 (28 Jul 2015)
- refactored the code into heads, body, foot and icon substyles. All styles
(classic, casual, banking and oldstyle) are just a combination of these and
diff --git a/macros/latex/contrib/moderncv/KNOWN_BUGS b/macros/latex/contrib/moderncv/KNOWN_BUGS
index 6566076706..15b86eccbc 100644
--- a/macros/latex/contrib/moderncv/KNOWN_BUGS
+++ b/macros/latex/contrib/moderncv/KNOWN_BUGS
@@ -9,7 +9,7 @@
when used with bibentry, through the output is actually correct. Amongst other,
this causes compilation by LyX to stop.
- The space after a cventry gets eaten up when the last argument contains a nested
- itemize environment. An ugly hack and uncomplete solution was implemented by
+ itemize environment. An ugly hack and incomplete solution was implemented by
including a \strut in every item label, but this doesn't solve the problem for
- multi-line items. Ideally, the strut should end the item, but there seem to be
+ multi-line items. Ideally, the strut should end the item, but there seems to be
no way to do this.
diff --git a/macros/latex/contrib/moderncv/LICENSE.txt b/macros/latex/contrib/moderncv/LICENSE.txt
new file mode 100644
index 0000000000..f8b699e6eb
--- /dev/null
+++ b/macros/latex/contrib/moderncv/LICENSE.txt
@@ -0,0 +1,415 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % 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. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
diff --git a/macros/latex/contrib/moderncv/README b/macros/latex/contrib/moderncv/README
deleted file mode 100644
index 3f17b081ac..0000000000
--- a/macros/latex/contrib/moderncv/README
+++ /dev/null
@@ -1,16 +0,0 @@
-moderncv -- a modern curriculum vitae class
-
-Moderncv provides a documentclass for typesetting curricula vitae in various
-styles. Moderncv aims to be both straightforward to use and customizable,
-providing four ready-made styles (classic, casual, banking and oldstyle)
-and allowing one to define his own by modifying colors, fonts, icons, etc.
-
-Most commands are defined in such a way that arguments are optional.
-
-Until a decent manual is written, one can always look in the "examples"
-directory for some examples. Documents can be compiled into dvi, ps or pdf.
-
-
-Author: Xavier Danaux <xdanaux@gmail.com>
-Licence: The LaTeX Project Public Li­cense, version 1.3c
-URL: https://github.com/xdanaux/moderncv
diff --git a/macros/latex/contrib/moderncv/README.md b/macros/latex/contrib/moderncv/README.md
new file mode 100644
index 0000000000..d87ba73ad0
--- /dev/null
+++ b/macros/latex/contrib/moderncv/README.md
@@ -0,0 +1,17 @@
+# moderncv
+
+## A modern curriculum vitae class for LaTeX
+
+**moderncv** provides a documentclass for typesetting curricula vitae in various styles. Moderncv aims to be both straightforward to use and customizable, providing five ready-made styles (classic, casual, banking, oldstyle and fancy) and allowing one to define his own by modifying colors, fonts, icons, etc.
+
+Most commands are defined in such a way that arguments are optional.
+
+Until a decent manual is written, one can always look in the `template.tex` file for an example. It can be compiled to pdf via `latexmk -pdf ./template.tex`.
+
+## Licence
+moderncv is licensed under the [LPPL-1.3c](https://spdx.org/licenses/LPPL-1.3c.html).
+
+## Origin
+Original author: Xavier Danaux <xdanaux@gmail.com><br/>
+Original repository: https://github.com/xdanaux/moderncv<br/>
+This repository is a fork aiming to maintain moderncv inside CTAN, since upstream is dead since 2016.
diff --git a/macros/latex/contrib/moderncv/examples/Makefile b/macros/latex/contrib/moderncv/examples/Makefile
deleted file mode 100644
index 66f85dbead..0000000000
--- a/macros/latex/contrib/moderncv/examples/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-SHAREDFILES = moderncv.cls moderncvcompatibility.sty moderncvcolor*.sty moderncvdebugtools.sty
-
-
-template_classic_*.pdf: $(SHAREDFILES) template.tex template_classic_green.diff moderncvstyleclassic.sty moderncvheadi.sty moderncvbodyi.sty moderncviconsmarvosym.sty
- TARGET=basename($<)
- echo -e "Generating $<\c";
- cp template.tex $TARGET.tex && echo -e ".\c";
- patch --silent $TARGET.tex < $TARGET.diff && echo -e ".\c";
- lualatex --interaction=batchmode --draftmode $TARGET > /dev/null && echo -e ".\c";
- bibtex $TARGET > /dev/null && echo -e ".\c";
- lualatex --interaction=batchmode $TARGET > /dev/null && echo -e ".\c";
- lualatex --interaction=batchmode $TARGET > /dev/null && echo -e " done";
-
-clean:
- rm *.aux *.log *.bbl *.blg *.out;
- rm template_*.tex;
- rm *.sty moderncv.cls;
-
diff --git a/macros/latex/contrib/moderncv/examples/template-es.pdf b/macros/latex/contrib/moderncv/examples/template-es.pdf
deleted file mode 100644
index 450ce70e3a..0000000000
--- a/macros/latex/contrib/moderncv/examples/template-es.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template-es.tex b/macros/latex/contrib/moderncv/examples/template-es.tex
deleted file mode 100644
index e2dae8651c..0000000000
--- a/macros/latex/contrib/moderncv/examples/template-es.tex
+++ /dev/null
@@ -1,131 +0,0 @@
-%% Inicio del archivo `template-es.tex'.
-%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License version 1.3c,
-% available at http://www.latex-project.org/lppl/.
-
-
-\documentclass[11pt,a4paper,sans]{moderncv} % opciones posibles incluyen tamaño de fuente ('10pt', '11pt' and '12pt'), tamaño de papel ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' y 'landscape') y familia de fuentes ('sans' y 'roman')
-
-% temas de moderncv
-\moderncvstyle{casual} % las opciones de estilo son 'casual' (por omision),'classic', 'oldstyle' y 'banking'
-\moderncvcolor{blue} % opciones de color 'blue' (por omision), 'orange', 'green', 'red', 'purple', 'grey' y 'black'
-%\renewcommand{\familydefault}{\sfdefault} % para seleccionar la fuente por omision, use '\sfdefault' para la fuente sans serif, '\rmdefault' para la fuente roman, o cualquier nombre de fuente
-%\nopagenumbers{} % elimine el comentario para suprimir la numeracion automatica de las paginas para CVs mayores a una pagina
-
-% codificacion de caracteres
-%\usepackage[utf8]{inputenc} % reemplace con su codificacion
-%\usepackage{CJKutf8} % si necesita usa CJK para redactar su CV en chino, japones o coreano
-
-% ajustes para los margenes de pagina
-\usepackage[scale=0.75]{geometry}
-%\setlength{\hintscolumnwidth}{3cm} % si desea cambiar el ando de la columna para las fechas
-
-% datos personales
-\name{John}{Doe}
-\title{T\'itulo del CV (opcional)} % dato opcional, elimine la linea si no desea el dato
-\address{calle y n\'umero}{c\'odigo postal y ciudad} % dato opcional, elimine la linea si no desea el dato
-\phone[mobile]{+1~(234)~567~890} % dato opcional, elimine la linea si no desea el dato
-\phone[fixed]{+2~(345)~678~901} % dato opcional, elimine la linea si no desea el dato
-\phone[fax]{+3~(456)~789~012} % dato opcional, elimine la linea si no desea el dato
-\email{john@doe.org} % dato opcional, elimine la linea si no desea el dato
-\homepage{www.johndoe.com} % dato opcional, elimine la linea si no desea el dato
-\extrainfo{informacion adicional} % dato opcional, elimine la linea si no desea el dato
-\photo[64pt][0.4pt]{picture} % '64pt' es la altura a la que la imagen debe ser ajustada, 0.4pt es grosor del marco que lo contiene (eliga 0pt para eliminar el marco) y 'picture' es el nombre del archivo; dato opcional, elimine la linea si no desea el dato
-\quote{Alguna cita (opcional)} % dato opcional, elimine la linea si no desea el dato
-
-% para mostrar etiquetas numericas en la bibliografia (por omision no se muestran etiquetas), solo es util si desea incluir citas en en CV
-%\makeatletter
-%\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}
-%\makeatother
-
-% bibliografia con varias fuentes
-%\usepackage{multibib}
-%\newcites{book,misc}{{Libros},{Otros}}
-%----------------------------------------------------------------------------------
-% contenido
-%----------------------------------------------------------------------------------
-\begin{document}
-%\begin{CJK*}{UTF8}{gbsn} % para redactar el CV en chino usando CJK
-\maketitle
-
-\section{Formaci\'on acad\'emica}
-\cventry{a\~no--a\~no}{Grado}{Instituci\'on}{Ciudad}{\textit{Grade}}{Descripci\'on} % Los argumentos del 3 al 6 pueden permanecer vacios
-\cventry{a\~no--a\~no}{Grado}{Instituci\'on}{Ciudad}{\textit{Grade}}{Descripci\'on}
-
-\section{Tesis de maestr\'ia}
-\cvitem{t\'itulo}{\emph{T\'itulo}}
-\cvitem{sinodares}{Sinodales}
-\cvitem{descripci\'on}{Una breve descripci\'on de la tesis}
-
-\section{Experiencia}
-\subsection{Vocacional}
-\cventry{a\~no--a\~no}{t\'itulo del puesto}{Empleador}{Ciudad}{}{Descripci\'on general, no m\'as de 1 \'o 2 l\'ineas.\newline{}%
-Detalle de logros:%
-\begin{itemize}%
-\item Logro 1;
-\item Logro 2, con sub-logros:
- \begin{itemize}%
- \item Sub-logro (a);
- \item Sub-logro (b), con sub-sub-logros (¡evite hacer esto!);
- \begin{itemize}
- \item Sub-sub-logro i;
- \item Sub-sub-logro ii;
- \item Sub-sub-logro iii;
- \end{itemize}
- \item Sub-logro (c);
- \end{itemize}
-\item Logro 3.
-\end{itemize}}
-\cventry{a\~no--a\~no}{t\'itulo del puesto}{Empleador}{Ciudad}{}{Descripci\'on l\'inea 1\newline{}Descripci\'on l\'inea 2}
-\subsection{Miscel\'aneo}
-\cventry{a\~no--a\~no}{t\'itulo del puesto}{Empleador}{Ciudad}{}{Descripci\'on}
-
-\section{Idiomas}
-\cvitemwithcomment{Idioma 1}{nivel}{Comentario}
-\cvitemwithcomment{Idioma 2}{nivel}{Comentario}
-\cvitemwithcomment{Idioma 3}{nivel}{Comentario}
-
-\section{Conocimientos de computaci\'on}
-\cvdoubleitem{categor\'ia 1}{XXX, YYY, ZZZ}{categor\'ia 4}{XXX, YYY, ZZZ}
-\cvdoubleitem{categor\'ia 2}{XXX, YYY, ZZZ}{categor\'ia 5}{XXX, YYY, ZZZ}
-\cvdoubleitem{categor\'ia 3}{XXX, YYY, ZZZ}{categor\'ia 6}{XXX, YYY, ZZZ}
-
-\section{Interests}
-\cvitem{hobby 1}{Descripci\'on}
-\cvitem{hobby 2}{Descripci\'on}
-\cvitem{hobby 3}{Descripci\'on}
-
-\section{Extra 1}
-\cvlistitem{Tema 1}
-\cvlistitem{Tema 2}
-\cvlistitem{Tema 3}
-
-\renewcommand{\listitemsymbol}{-~} % para cambiar el simbolo para las listas
-
-\section{Extra 2}
-\cvlistdoubleitem{Tema 1}{Tema 4}
-\cvlistdoubleitem{Tema 2}{Tema 5\cite{book1}}
-\cvlistdoubleitem{Tema 3}{}
-
-% Las publicaciones tomadas de un archivo de BibTeX sin usar multibib\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}
-
-\nocite{*}
-\bibliographystyle{plain}
-\bibliography{publications} % 'publications' es el nombre del archivo BibTeX
-
-% Las publicaciones tomadas de un archivo BibTeX usando el paquete multibib
-%\section{Publicaciones}
-%\nocitebook{book1,book2}
-%\bibliographystylebook{plain}
-%\bibliographybook{publications} % 'publications' es el nombre del archivo BibTeX
-%\nocitemisc{misc1,misc2,misc3}
-%\bibliographystylemisc{plain}
-%\bibliographymisc{publications} % 'publications' es el nombre del archivo BibTeX
-
-%\clearpage\end{CJK*} % si esta redactando su CV en chino usando CJK, \clearpage es requerido por fancyhdr para que funcione correctamente con CJK, aunque esto eliminara la numeracion de pagina al dejar \lastpage como no definido
-\end{document}
-
-
-%% fin del archivo `template-es.tex'.
diff --git a/macros/latex/contrib/moderncv/examples/template-multibib.pdf b/macros/latex/contrib/moderncv/examples/template-multibib.pdf
deleted file mode 100644
index 2346de10d7..0000000000
--- a/macros/latex/contrib/moderncv/examples/template-multibib.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template-multibib.tex b/macros/latex/contrib/moderncv/examples/template-multibib.tex
deleted file mode 100644
index cade26db91..0000000000
--- a/macros/latex/contrib/moderncv/examples/template-multibib.tex
+++ /dev/null
@@ -1,165 +0,0 @@
-%% start of file `template.tex'.
-%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License version 1.3c,
-% available at http://www.latex-project.org/lppl/.
-
-
-\documentclass[11pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')
-
-% moderncv themes
-\moderncvstyle{casual} % style options are 'casual' (default), 'classic', 'oldstyle' and 'banking'
-\moderncvcolor{blue} % color options 'blue' (default), 'orange', 'green', 'red', 'purple', 'grey' and 'black'
-%\renewcommand{\familydefault}{\sfdefault} % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name
-%\nopagenumbers{} % uncomment to suppress automatic page numbering for CVs longer than one page
-
-% character encoding
-%\usepackage[utf8]{inputenc} % if you are not using xelatex ou lualatex, replace by the encoding you are using
-%\usepackage{CJKutf8} % if you need to use CJK to typeset your resume in Chinese, Japanese or Korean
-
-% adjust the page margins
-\usepackage[scale=0.75]{geometry}
-%\setlength{\hintscolumnwidth}{3cm} % if you want to change the width of the column with the dates
-%\setlength{\makecvtitlenamewidth}{10cm} % for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks...
-
-% personal data
-\name{John}{Doe}
-\title{Resumé title} % optional, remove / comment the line if not wanted
-\address{street and number}{postcode city}{country}% optional, remove / comment the line if not wanted; the "postcode city" and "country" arguments can be omitted or provided empty
-\phone[mobile]{+1~(234)~567~890} % optional, remove / comment the line if not wanted; the optional "type" of the phone can be "mobile" (default), "fixed" or "fax"
-\phone[fixed]{+2~(345)~678~901}
-\phone[fax]{+3~(456)~789~012}
-\email{john@doe.org} % optional, remove / comment the line if not wanted
-\homepage{www.johndoe.com} % optional, remove / comment the line if not wanted
-\social[linkedin]{john.doe} % optional, remove / comment the line if not wanted
-\social[twitter]{jdoe} % optional, remove / comment the line if not wanted
-\social[github]{jdoe} % optional, remove / comment the line if not wanted
-\extrainfo{additional information} % optional, remove / comment the line if not wanted
-\photo[64pt][0.4pt]{picture} % optional, remove / comment the line if not wanted; '64pt' is the height the picture must be resized to, 0.4pt is the thickness of the frame around it (put it to 0pt for no frame) and 'picture' is the name of the picture file
-\quote{Some quote} % optional, remove / comment the line if not wanted
-
-% to show numerical labels in the bibliography (default is to show no labels); only useful if you make citations in your resume
-%\makeatletter
-%\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}
-%\makeatother
-%\renewcommand*{\bibliographyitemlabel}{[\arabic{enumiv}]}% CONSIDER REPLACING THE ABOVE BY THIS
-
-% bibliography with mutiple entries
-\usepackage{multibib}
-\newcites{book,misc}{{Books},{Others}}
-%----------------------------------------------------------------------------------
-% content
-%----------------------------------------------------------------------------------
-\begin{document}
-%\begin{CJK*}{UTF8}{gbsn} % to typeset your resume in Chinese using CJK
-%----- resume ---------------------------------------------------------
-\makecvtitle
-
-\section{Education}
-\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description} % arguments 3 to 6 can be left empty
-\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description}
-
-\section{Master thesis}
-\cvitem{title}{\emph{Title}}
-\cvitem{supervisors}{Supervisors}
-\cvitem{description}{Short thesis abstract}
-
-\section{Experience}
-\subsection{Vocational}
-\cventry{year--year}{Job title}{Employer}{City}{}{General description no longer than 1--2 lines.\newline{}%
-Detailed achievements:%
-\begin{itemize}%
-\item Achievement 1;
-\item Achievement 2, with sub-achievements:
- \begin{itemize}%
- \item Sub-achievement (a);
- \item Sub-achievement (b), with sub-sub-achievements (don't do this!);
- \begin{itemize}
- \item Sub-sub-achievement i;
- \item Sub-sub-achievement ii;
- \item Sub-sub-achievement iii;
- \end{itemize}
- \item Sub-achievement (c);
- \end{itemize}
-\item Achievement 3.
-\end{itemize}}
-\cventry{year--year}{Job title}{Employer}{City}{}{Description line 1\newline{}Description line 2}
-\subsection{Miscellaneous}
-\cventry{year--year}{Job title}{Employer}{City}{}{Description}
-
-\section{Languages}
-\cvitemwithcomment{Language 1}{Skill level}{Comment}
-\cvitemwithcomment{Language 2}{Skill level}{Comment}
-\cvitemwithcomment{Language 3}{Skill level}{Comment}
-
-\section{Computer skills}
-\cvdoubleitem{category 1}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ}
-\cvdoubleitem{category 2}{XXX, YYY, ZZZ}{category 5}{XXX, YYY, ZZZ}
-\cvdoubleitem{category 3}{XXX, YYY, ZZZ}{category 6}{XXX, YYY, ZZZ}
-
-\section{Interests}
-\cvitem{hobby 1}{Description}
-\cvitem{hobby 2}{Description}
-\cvitem{hobby 3}{Description}
-
-\section{Extra 1}
-\cvlistitem{Item 1}
-\cvlistitem{Item 2}
-\cvlistitem{Item 3. This item is particularly long and therefore normally spans over several lines. Did you notice the indentation when the line wraps?}
-
-\section{Extra 2}
-\cvlistdoubleitem{Item 1}{Item 4}
-\cvlistdoubleitem{Item 2}{Item 5\cite{book1}}
-\cvlistdoubleitem{Item 3}{Item 6. Like item 3 in the single column list before, this item is particularly long to wrap over several lines.}
-
-\section{References}
-\begin{cvcolumns}
- \cvcolumn{Category 1}{\begin{itemize}\item Person 1\item Person 2\item Person 3\end{itemize}}
- \cvcolumn{Category 2}{Amongst others:\begin{itemize}\item Person 1, and\item Person 2\end{itemize}(more upon request)}
- \cvcolumn[0.5]{All the rest \& some more}{\textit{That} person, and \textbf{those} also (all available upon request).}
-\end{cvcolumns}
-
-% Publications from a BibTeX file without multibib
-% for numerical labels: \renewcommand{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}% CONSIDER MERGING WITH PREAMBLE PART
-% to redefine the heading string ("Publications"): \renewcommand{\refname}{Articles}
-%\nocite{*}
-%\bibliographystyle{plain}
-%\bibliography{publications} % 'publications' is the name of a BibTeX file
-
-% Publications from a BibTeX file using the multibib package
-\section{Publications}
-\nocitebook{book1,book2}
-\bibliographystylebook{plain}
-\bibliographybook{publications} % 'publications' is the name of a BibTeX file
-\nocitemisc{misc1,misc2,misc3}
-\bibliographystylemisc{plain}
-\bibliographymisc{publications} % 'publications' is the name of a BibTeX file
-
-\clearpage
-%----- letter ---------------------------------------------------------
-% recipient data
-\recipient{Company Recruitment team}{Company, Inc.\\123 somestreet\\some city}
-\date{January 01, 1984}
-\opening{Dear Sir or Madam,}
-\closing{Yours faithfully,}
-\enclosure[Attached]{curriculum vit\ae{}} % use an optional argument to use a string other than "Enclosure", or redefine \enclname
-\makelettertitle
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ullamcorper neque sit amet lectus facilisis sed luctus nisl iaculis. Vivamus at neque arcu, sed tempor quam. Curabitur pharetra tincidunt tincidunt. Morbi volutpat feugiat mauris, quis tempor neque vehicula volutpat. Duis tristique justo vel massa fermentum accumsan. Mauris ante elit, feugiat vestibulum tempor eget, eleifend ac ipsum. Donec scelerisque lobortis ipsum eu vestibulum. Pellentesque vel massa at felis accumsan rhoncus.
-
-Suspendisse commodo, massa eu congue tincidunt, elit mauris pellentesque orci, cursus tempor odio nisl euismod augue. Aliquam adipiscing nibh ut odio sodales et pulvinar tortor laoreet. Mauris a accumsan ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse vulputate sem vehicula ipsum varius nec tempus dui dapibus. Phasellus et est urna, ut auctor erat. Sed tincidunt odio id odio aliquam mattis. Donec sapien nulla, feugiat eget adipiscing sit amet, lacinia ut dolor. Phasellus tincidunt, leo a fringilla consectetur, felis diam aliquam urna, vitae aliquet lectus orci nec velit. Vivamus dapibus varius blandit.
-
-Duis sit amet magna ante, at sodales diam. Aenean consectetur porta risus et sagittis. Ut interdum, enim varius pellentesque tincidunt, magna libero sodales tortor, ut fermentum nunc metus a ante. Vivamus odio leo, tincidunt eu luctus ut, sollicitudin sit amet metus. Nunc sed orci lectus. Ut sodales magna sed velit volutpat sit amet pulvinar diam venenatis.
-
-Albert Einstein discovered that $e=mc^2$ in 1905.
-
-\[ e=\lim_{n \to \infty} \left(1+\frac{1}{n}\right)^n \]
-
-\makeletterclosing
-
-%\clearpage\end{CJK*} % if you are typesetting your resume in Chinese using CJK; the \clearpage is required for fancyhdr to work correctly with CJK, though it kills the page numbering by making \lastpage undefined
-\end{document}
-
-
-%% end of file `template.tex'.
diff --git a/macros/latex/contrib/moderncv/examples/template-zh.pdf b/macros/latex/contrib/moderncv/examples/template-zh.pdf
deleted file mode 100644
index de7171771c..0000000000
--- a/macros/latex/contrib/moderncv/examples/template-zh.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template-zh.tex b/macros/latex/contrib/moderncv/examples/template-zh.tex
deleted file mode 100644
index 6d29b828aa..0000000000
--- a/macros/latex/contrib/moderncv/examples/template-zh.tex
+++ /dev/null
@@ -1,130 +0,0 @@
-%% start of file `template-zh.tex'.
-%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License version 1.3c,
-% available at http://www.latex-project.org/lppl/.
-
-
-\documentclass[11pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')
-
-% moderncv 主题
-\moderncvstyle{casual} % 选项参数是 ‘casual’, ‘classic’, ‘oldstyle’ 和 ’banking’
-\moderncvcolor{blue} % 选项参数是 ‘blue’ (默认)、‘orange’、‘green’、‘red’、‘purple’ 和 ‘grey’
-%\nopagenumbers{} % 消除注释以取消自动页码生成功能
-
-% 字符编码
-\usepackage[utf8]{inputenc} % 替换你正在使用的编码
-\usepackage{CJKutf8}
-
-% 调整页面出血
-\usepackage[scale=0.75]{geometry}
-%\setlength{\hintscolumnwidth}{3cm} % 如果你希望改变日期栏的宽度
-
-% 个人信息
-\name{小龙}{李}
-\title{简历题目 (可选项)} % 可选项、如不需要可删除本行
-\address{街道及门牌号}{邮编及城市} % 可选项、如不需要可删除本行
-\phone[mobile]{+1~(234)~567~890} % 可选项、如不需要可删除本行
-\phone[fixed]{+2~(345)~678~901} % 可选项、如不需要可删除本行
-\phone[fax]{+3~(456)~789~012} % 可选项、如不需要可删除本行
-\email{xiaolong@li.com.cn} % 可选项、如不需要可删除本行
-\homepage{www.xialongli.com} % 可选项、如不需要可删除本行
-\extrainfo{附加信息 (可选项)} % 可选项、如不需要可删除本行
-\photo[64pt][0.4pt]{picture} % ‘64pt’是图片必须压缩至的高度、‘0.4pt‘是图片边框的宽度 (如不需要可调节至0pt)、’picture‘ 是图片文件的名字;可选项、如不需要可删除本行
-\quote{引言(可选项)} % 可选项、如不需要可删除本行
-
-% 显示索引号;仅用于在简历中使用了引言
-%\makeatletter
-%\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}
-%\makeatother
-
-% 分类索引
-%\usepackage{multibib}
-%\newcites{book,misc}{{Books},{Others}}
-%----------------------------------------------------------------------------------
-% 内容
-%----------------------------------------------------------------------------------
-\begin{document}
-\begin{CJK}{UTF8}{gbsn} % 详情参阅CJK文件包
-\maketitle
-
-\section{教育背景}
-\cventry{年 -- 年}{学位}{院校}{城市}{\textit{成绩}}{说明} % 第3到第6编码可留白
-\cventry{年 -- 年}{学位}{院校}{城市}{\textit{成绩}}{说明}
-
-\section{毕业论文}
-\cvitem{题目}{\emph{题目}}
-\cvitem{导师}{导师}
-\cvitem{说明}{\small 论文简介}
-
-\section{工作背景}
-\subsection{专业}
-\cventry{年 -- 年}{职位}{公司}{城市}{}{不超过1--2行的概况说明\newline{}%
-工作内容:%
-\begin{itemize}%
-\item 工作内容 1;
-\item 工作内容 2、 含二级内容:
- \begin{itemize}%
- \item 二级内容 (a);
- \item 二级内容 (b)、含三级内容 (不建议使用);
- \begin{itemize}
- \item 三级内容 i;
- \item 三级内容 ii;
- \item 三级内容 iii;
- \end{itemize}
- \item 二级内容 (c);
- \end{itemize}
-\item 工作内容 3。
-\end{itemize}}
-\cventry{年 -- 年}{职位}{公司}{城市}{}{说明行1\newline{}说明行2}
-\subsection{其他}
-\cventry{年 -- 年}{职位}{公司}{城市}{}{说明}
-
-\section{语言技能}
-\cvitemwithcomment{语言 1}{水平}{评价}
-\cvitemwithcomment{语言 2}{水平}{评价}
-\cvitemwithcomment{语言 3}{水平}{评价}
-
-\section{计算机技能}
-\cvdoubleitem{类别 1}{XXX, YYY, ZZZ}{类别 4}{XXX, YYY, ZZZ}
-\cvdoubleitem{类别 2}{XXX, YYY, ZZZ}{类别 5}{XXX, YYY, ZZZ}
-\cvdoubleitem{类别 3}{XXX, YYY, ZZZ}{类别 6}{XXX, YYY, ZZZ}
-
-\section{个人兴趣}
-\cvitem{爱好 1}{\small 说明}
-\cvitem{爱好 2}{\small 说明}
-\cvitem{爱好 3}{\small 说明}
-
-\section{其他 1}
-\cvlistitem{项目 1}
-\cvlistitem{项目 2}
-\cvlistitem{项目 3}
-
-\renewcommand{\listitemsymbol}{-} % 改变列表符号
-
-\section{其他 2}
-\cvlistdoubleitem{项目 1}{项目 4}
-\cvlistdoubleitem{项目 2}{项目 5\cite{book1}}
-\cvlistdoubleitem{项目 3}{}
-
-% 来自BibTeX文件但不使用multibib包的出版物
-%\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}% BibTeX的数字标签
-\nocite{*}
-\bibliographystyle{plain}
-\bibliography{publications} % 'publications' 是BibTeX文件的文件名
-
-% 来自BibTeX文件并使用multibib包的出版物
-%\section{出版物}
-%\nocitebook{book1,book2}
-%\bibliographystylebook{plain}
-%\bibliographybook{publications} % 'publications' 是BibTeX文件的文件名
-%\nocitemisc{misc1,misc2,misc3}
-%\bibliographystylemisc{plain}
-%\bibliographymisc{publications} % 'publications' 是BibTeX文件的文件名
-
-\clearpage\end{CJK}
-\end{document}
-
-
-%% 文件结尾 `template-zh.tex'.
diff --git a/macros/latex/contrib/moderncv/examples/template_banking_red-fullrules-center.pdf b/macros/latex/contrib/moderncv/examples/template_banking_red-fullrules-center.pdf
deleted file mode 100644
index 5e4ed3adbf..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_banking_red-fullrules-center.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template_banking_red-norules.pdf b/macros/latex/contrib/moderncv/examples/template_banking_red-norules.pdf
deleted file mode 100644
index 212e81cec3..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_banking_red-norules.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template_banking_red-shortrules-right.pdf b/macros/latex/contrib/moderncv/examples/template_banking_red-shortrules-right.pdf
deleted file mode 100644
index a1303b4f83..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_banking_red-shortrules-right.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template_banking_red.pdf b/macros/latex/contrib/moderncv/examples/template_banking_red.pdf
deleted file mode 100644
index fed8f9e52e..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_banking_red.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template_casual_orange-left.pdf b/macros/latex/contrib/moderncv/examples/template_casual_orange-left.pdf
deleted file mode 100644
index f770841377..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_casual_orange-left.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template_casual_orange.pdf b/macros/latex/contrib/moderncv/examples/template_casual_orange.pdf
deleted file mode 100644
index 372f62e7bc..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_casual_orange.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template_classic_green-right.pdf b/macros/latex/contrib/moderncv/examples/template_classic_green-right.pdf
deleted file mode 100644
index 250643fcc7..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_classic_green-right.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template_classic_green.pdf b/macros/latex/contrib/moderncv/examples/template_classic_green.pdf
deleted file mode 100644
index 988f94304c..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_classic_green.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template_fancy_purple.pdf b/macros/latex/contrib/moderncv/examples/template_fancy_purple.pdf
deleted file mode 100644
index eb447daa9b..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_fancy_purple.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/template_oldstyle_grey.pdf b/macros/latex/contrib/moderncv/examples/template_oldstyle_grey.pdf
deleted file mode 100644
index 4d914260e2..0000000000
--- a/macros/latex/contrib/moderncv/examples/template_oldstyle_grey.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/moderncv/manual/moderncv_userguide.pdf b/macros/latex/contrib/moderncv/manual/moderncv_userguide.pdf
new file mode 100644
index 0000000000..cadbefe386
--- /dev/null
+++ b/macros/latex/contrib/moderncv/manual/moderncv_userguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/moderncv/manual/moderncv_userguide.tex b/macros/latex/contrib/moderncv/manual/moderncv_userguide.tex
new file mode 100644
index 0000000000..26d2016178
--- /dev/null
+++ b/macros/latex/contrib/moderncv/manual/moderncv_userguide.tex
@@ -0,0 +1,462 @@
+%% moderncv_userguide.tex (compiled with pdfLaTeX)
+%% Copyright 2007 Cristina Sambo
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License version 1.3c,
+% available at http://www.latex-project.org/lppl/.
+
+\documentclass[a4paper,11pt]{article}
+
+\title{\bfseries Moderncv -- v. 0.6}
+\author{Package by Xavier Danaux \\ \begin{small}Documentation by Cristina Sambo \end{small}}
+\date{}
+
+%language and encoding options
+\usepackage[english]{babel}
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+
+%font options
+\usepackage{txfonts}
+\usepackage{marvosym}
+\usepackage{pifont}
+
+%margins, spacing and page layout
+\usepackage[pdftex,colorlinks=true]{hyperref} %(hyperref must be loaded before geometry)
+\usepackage[pdftex]{geometry}
+\geometry{top=2.5cm, bottom=3cm}
+\setlength{\parindent}{0pt} %(to soppress indentation when starting a new paragraph)
+\frenchspacing %(to soppress additional space after a full stop)
+
+%packages
+\usepackage[pdftex]{graphicx}
+\usepackage[pdftex]{xcolor}
+\usepackage[labelfont=sl,font=small,width=0.9\textwidth]{caption}
+\usepackage{marvosym}
+\usepackage{latexsym}
+
+%pdfLaTeX options
+\pdfpagewidth=\paperwidth
+\pdfpageheight=\paperheight
+\pdfimageresolution=150
+\pdfinfo{
+ /Title (Moderncv -- v. 0.6)
+ /Author (Cristina Sambo)
+ /Subject (Moderncv package user's guide)
+ /Keywords (curriculum vitae, LaTeX)
+}
+
+%my commands
+\definecolor{bluecv}{rgb}{0.25,0.5,0.75}
+\definecolor{greencv}{rgb}{0.55,0.85,0.35}
+\definecolor{redcv}{rgb}{1.00,0.30,0.30}
+\definecolor{orangecv}{rgb}{1,0.65,0.20}
+\definecolor{greycv}{rgb}{0.75,0.75,0.75}
+
+%==================
+% DOCUMENT BEGINNING
+%==================
+\begin{document}
+\maketitle
+
+\begin{abstract}
+\noindent \texttt{Moderncv}, as its author says in the readme file, provides a documentclass for typesetting modern curriculum vitaes in various styles. It is fairly customizable, allowing you to define your own style by changing the colors, the fonts, \dots\ and provides two default styles: classic and casual.
+\end{abstract}
+
+\section{Introduction}
+When I saw for the first time this class I was amazing: ``Here it is what I need'', I thought. Using the very clear examples, was easy to make my first curriculum.
+Indeed the class is very simple to use, in this documentation I will only put together all the things to help users to have all on hand.
+
+\smallskip
+\texttt{Moderncv} requires the following packages: \texttt{ifthen}, \texttt{ifpdf}, \texttt{color}, \texttt{lmodern}, \texttt{marvosym}, \texttt{url}, \texttt{hyperref}, \texttt{longtable}, \texttt{graphicx}, \texttt{fancyhdr}, usually all just included in the \LaTeX\ distributions.
+
+\section{In the preamble}
+
+At the very beginning of your preamble (that is the part before \verb|\begin{document}|) insert:
+
+\begin{verbatim}
+\documentclass[<options>]{moderncv}
+\end{verbatim}
+
+where the options are:
+
+\begin{description}
+ \item[paper size options:] \texttt{a4paper}, \texttt{a5paper}, \texttt{b5paper}, \texttt{letterpaper}, \texttt{legalpaper}, \texttt{ex\-ec\-u\-tive\-pa\-per}, \texttt{landscape}
+ \item[font size options:] \texttt{10pt}, \texttt{11pt}, \texttt{12pt}
+ \item[font option:] \texttt{nolmodern}, for people without the latin modern fonts
+ \item[color option:] \texttt{nocolor}, to have all in black and white
+ \item[draft/final options:] \texttt{draft}, \texttt{final}
+\end{description}
+
+The default options are: \texttt{a4paper}, \texttt{11pt}, \texttt{color}, \texttt{final}.
+
+After the documentclass specification, choose the theme for your curriculum vit\ae:
+
+\begin{verbatim}
+\moderncvtheme[<options>]{casual}
+\end{verbatim}
+
+which is the default theme, or
+
+\begin{verbatim}
+\moderncvtheme[<options>]{classic}
+\end{verbatim}
+
+where the theme options are:
+
+\begin{description}
+ \item[color options:] you can choose between five color:
+ \begin{itemize}
+ \item[\texttt{blue}] {\color{bluecv}\rule{1cm}{2ex}} (default color)
+ \item[\texttt{green}] {\color{greencv}\rule{1cm}{2ex}}
+ \item[\texttt{red}] {\color{redcv}\rule{1cm}{2ex}}
+ \item[\texttt{orange}] {\color{orangecv}\rule{1cm}{2ex}}
+ \item[\texttt{grey}] {\color{greycv}\rule{1cm}{2ex}}
+ \end{itemize}
+ \item[roman option:] \texttt{roman}, for {\fontsize{11}{12} \usefont{T1}{lmr}{m}{n}\selectfont roman} fonts, instead of \fontsize{11}{12} \usefont{T1}{lmss}{m}{n}\selectfont sans serif fonts.
+\end{description}
+
+Then you have to specify the character encoding (utf8, latin1, and so on):
+
+\begin{verbatim}
+\usepackage[<your encoding>]{inputenc}
+\end{verbatim}
+
+and you can adjust the page geometry:
+
+\begin{verbatim}
+\usepackage[<options>]{geometry}
+\recomputelengths
+\end{verbatim}
+
+where \verb|\recomputelengths| is required when changes are made to page layout lengths.
+
+Now we can get into the part most related to our curriculum vit\ae: our personal data. They will be inserted in the header of the first page, in the classic theme, or in the footer of every page, in the case of casual theme.
+
+\begin{itemize}
+\item \verb|\firstname{John}|
+\item \verb|\familyname{Doe}|
+\item \verb|\title{Resum\'e title}|: optional
+\item \verb|\address{street and number}{postcode city}|: optional
+\item \verb|\mobile{mobile}|: optional
+\item \verb|\phone{phone}|: optional
+\item \verb|\fax{fax}|: optional
+\item \verb|\email{email}|: optional
+\item \verb|\extrainfo{additional information}|: optional; here you can put, for example, the address of your website
+\item \verb|\photo[64pt]{picture}|: optional; \texttt{64pt} is the height the picture, you can set here the size you prefer; \texttt{picture} is the name of the picture file
+\item \verb|\quote{Some quote}|: optional
+\end{itemize}
+
+Finally you can suppress automatic page numbering for CVs longer than one page:
+
+\begin{verbatim}
+\nopagenumbers{}
+\end{verbatim}
+
+\subsection{Examples}
+
+In practice, you will type:
+
+\begin{verbatim}
+\documentclass[11pt,a4paper]{moderncv}
+
+% moderncv themes
+\moderncvtheme[green]{casual}
+
+% character encoding
+\usepackage[utf8]{inputenc}
+
+% adjust the page margins
+\usepackage[scale=0.8]{geometry}
+\recomputelengths
+
+% personal data
+\firstname{John}
+\familyname{Doe}
+\title{Design enthusiast}
+\address{12 somestreet}{3456 somecity}
+\mobile{+123 456 7890}
+\phone{+12 (3)456 78 90}
+\fax{+12 (3)456 78 90}
+\email{jdoe@design.org}
+\extrainfo{\weblink{www.ctan.org}}
+\photo[64pt]{jdoe_picture}
+\quote{Any intelligent fool can make things bigger, more complex,
+and more violent. It takes a touch of genius -- and a lot of courage -- to
+move in the opposite direction.}
+
+\begin{document}
+\maketitle
+
+... <what you'll see in the next section>
+
+\end{document}
+\end{verbatim}
+
+to obtain a casual moderncv in green, as shown in figure \ref{fig:casual}, and you will substitute the line describing the theme with:
+
+\begin{verbatim}
+% moderncv themes
+\moderncvtheme[blue]{classic}
+\end{verbatim}
+
+to obtain a classic moderncv in blue, as shown in figure \ref{fig:classic}.
+
+
+\begin{figure}[p]
+ \centering
+ \fbox{\includegraphics[angle=90,width=\textwidth]{cv_casual.pdf}}
+ \caption{An example of casual moderncv in green.}
+ \label{fig:casual}
+\end{figure}
+
+\begin{figure}[p]
+ \centering
+ \fbox{\includegraphics[angle=90,width=\textwidth]{cv_classic.pdf}}
+ \caption{An example of classic moderncv in blue.}
+ \label{fig:classic}
+\end{figure}
+
+\section{Customize sections}
+
+Now we are ready to edit the part between \verb|\begin{document}| and \verb|\end{document}|.
+
+As you can seen in figure \ref{fig:casual} e \ref{fig:classic}, you can divide your CV into sections, each of them describing what you are, what you know and what you have done in your life. Every section is divide into items chosen from different flavours. More in details:
+
+\subsection{Section}
+
+The command to open a new section is:
+
+\begin{verbatim}
+\section{<title>}
+\end{verbatim}
+
+and every section can be divided into subsections:
+
+\begin{verbatim}
+\subsection{<title>}
+\end{verbatim}
+
+If necessary, there is a command to close the section:
+
+\begin{verbatim}
+\closesection{}
+\end{verbatim}
+
+and even one to create an empty section:
+
+\begin{verbatim}
+\emptysection{}
+\end{verbatim}
+
+An example of their usage can be the next one:
+
+\begin{verbatim}
+\section{Section with your own content}\closesection
+Your content here, inside the normal \LaTeX{} environment.
+You can use any regular \LaTeX{} command, display mathematics
+\[e =m\,c^2,\]
+put some table or figure, \dots
+
+\emptysection{}
+\cvitem{Now}{Back to moderncv layout, without making a new section :-)}
+\end{verbatim}
+
+whose results is shown in figure \ref{fig:ex_sec}.
+
+\begin{figure}[!ht]
+ \centering
+ \fbox{\includegraphics[width=0.9\textwidth]{ex_sec}}
+ \caption{Example of usage of section commands.}
+ \label{fig:ex_sec}
+\end{figure}
+
+\subsection{Items}
+
+Inside sections, you can choose between different kind of items depending on the purpose:
+
+\begin{itemize}
+ \item in the sections describing your education or your job experiences, you can use:
+ \begin{verbatim}
+\cventry{years}{degree/job title}{institution/employer}
+{localization}{optional: grade/...}
+{optional: comment/job description}
+ \end{verbatim}
+\vspace{-20pt}
+where the last three arguments are optional
+ \item inside `language' cvsection environment, you can type every entry with:
+ \begin{verbatim}
+\cvlanguage{name}{level}{comment}
+ \end{verbatim}
+ \item inside `computer skills' cvsection environment, you can type every entry with:
+ \begin{verbatim}
+\cvcomputer{category}{programs}{category}{programs}
+ \end{verbatim}
+ \item to typeset lines with a hint on the left:
+ \begin{verbatim}
+\cvline{leftmark}{text}
+ \end{verbatim}
+ \item to typeset entry with a description on the left, but in two columns inside a cvsection:
+ \begin{verbatim}
+\cvdoubleitem{subtitle}{text}{subtitle}{text}
+ \end{verbatim}
+ \item to typeset lists on one column inside a cvsection:
+ \begin{verbatim}
+\cvlistitem{point1}
+ \end{verbatim}
+ \item to typeset lists on two columns inside a cvsection:
+ \begin{verbatim}
+\cvlistdoubleitem{point1}{point2}
+ \end{verbatim}
+ \item to add a section listing all your publications stored in a BibTeX file:
+ \begin{verbatim}
+\nocite{*}
+\bibliographystyle{plain}
+\bibliography{BibTeX_file}
+ \end{verbatim}
+\vspace{-20pt}
+ where the name of the section title can be changed by redefining the \texttt{refname} with \verb|\renewcommand{\refname}{<new_name>}|
+\end{itemize}
+
+\subsubsection*{Example}
+
+Let's put all together and see in figure \ref{fig:sections} what is the result:
+
+\begin{verbatim}
+... preamble ...
+\begin{document}
+\section{Education}
+\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description}
+\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description}
+%
+\section{Master thesis}
+\cvline{title}{\emph{Title}}
+\cvline{supervisors}{Supervisors}
+\cvline{description}{\small Short thesis abstract}
+%
+\section{Experience}
+\subsection{Vocational}
+\cventry{year--year}{Job title}{Employer}{City}{}{Description}
+\cventry{year--year}{Job title}{Employer}{City}{}{Description}
+\subsection{Miscellaneous}
+\cventry{year--year}{Job title}{Employer}{City}{}%
+ {Description line 1\newline{}Description line 2}
+%
+\section{Languages}
+\cvlanguage{language 1}{Skill level}{Comment}
+\cvlanguage{language 2}{Skill level}{Comment}
+%
+\section{Computer skills}
+\cvcomputer{category 1}{XXX, YYY, ZZZ}{category 3}{XXX, YYY, ZZZ}
+\cvcomputer{category 2}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ}
+%
+\section{Interests}
+\cvline{hobby 1}{\small Description}
+\cvline{hobby 2}{\small Description}
+\cvline{hobby 3}{\small Description}
+%
+\closesection{}
+\pagebreak
+%
+\section{Extra}
+\cvlistitem{Item 1}
+\cvlistitem{Item 2}
+\cvlistitem{Item 3}
+%
+\section{Extra 2}
+\cvlistdoubleitem{Item 1}{Item 4}
+\cvlistdoubleitem{Item 2}{Item 5}
+\cvlistdoubleitem{Item 3}{}
+%
+% Publications from a BibTeX file
+\nocite{*}
+\bibliographystyle{plain}
+\bibliography{publications} % 'publications' is the name of a BibTeX file
+%
+\end{document}
+\end{verbatim}
+
+\begin{figure}[!ht]
+ \centering
+ \fbox{\includegraphics[angle=90,width=\textwidth]{test_cvsection2.pdf}}\\
+ \fbox{\includegraphics[angle=90,width=\textwidth]{test_cvsection1.pdf}}
+\caption{Example of usage of items inside cvsections.}
+ \label{fig:sections}
+\end{figure}
+
+\section{More customizations}
+
+You have some useful commands to personalize your CV further.
+
+\subsection*{Modifying the symbols}
+You can modify the symbols used for the personal data (phone number, the email, \ldots) redefining \texttt{phonesymbol}, \texttt{emailsymbol}, \texttt{addresssymbol}, \texttt{mobilesymbol}, \texttt{faxsymbol}.
+
+For example: if you want to use the dingbat fonts, load the \texttt{pifont} package in the preamble, then substitute the default symbol \Telefon\ with the dingbat symbol \ding{38}\ by:
+\begin{verbatim}
+\renewcommand{\phonesymbol}{\ding{38}}
+\end{verbatim}
+
+You can change the symbol for lists in two way:
+\begin{itemize}
+ \item redefining the command \texttt{listitemsymbol}: \verb|\renewcommand{\listitemsymbol}{-}|
+ \item adding a specification for the label in \texttt{cvlistitem} and \texttt{cvlistdoubleitem}
+\end{itemize}
+
+For example: the following code produces the result shown in figure \ref{fig:ex_items}.
+
+\begin{verbatim}
+\closesection{} % needed to renewcommands
+\renewcommand{\listitemsymbol}{-} % change the symbol for lists
+
+\section{Extra 1}
+\cvlistitem{Item 1}
+\cvlistitem{Item 2}
+\cvlistitem[+]{Item 3} % optional other symbol
+
+\section{Extra 2}
+\cvlistdoubleitem[\Neutral]{Item 1}{Item 4}
+\cvlistdoubleitem[\Neutral]{Item 2}{Item 5}
+\cvlistdoubleitem[\Neutral]{Item 3}{}
+\end{verbatim}
+
+\begin{figure}[!hbt]
+ \centering
+ \fbox{\includegraphics[width=.8\textwidth]{ex_items.png}}
+ \caption{Example of customization of the list labels.}
+ \label{fig:ex_items}
+\end{figure}
+
+\subsection*{Adjusting lenghts}
+The different lengths used by moderncv are customizable by
+\begin{verbatim}
+\setlength{<length>}{<new_dimensions>}
+\end{verbatim}
+where \texttt{<length>} are \texttt{quote\-width}, \texttt{sep\-a\-ra\-tor\-col\-umn\-width}, \texttt{main\-col\-umn\-width}, \texttt{doub\-le\-i\-tem\-main\-col\-umn\-width}, \texttt{list\-i\-tem\-sym\-bol\-width}, \texttt{list\-doub\-le\-i\-tem\-main\-col\-umn\-width},
+
+In particular, the first column, can be set to any width. You can do that in two way:
+\begin{itemize}
+ \item using \verb|\sethintscolumnlength{<length>}|, where \texttt{<length>} is the desired length in a unit LaTeX understands
+ \item using \verb|\sethintscolumntowidth{<string>}|, where \texttt{<string>} is a string of the desired length (usually, the longest string that has to appear in the column)
+\end{itemize}
+
+\subsection*{Additional commands}
+There are commands to manage hypertextual links:
+\begin{itemize}
+ \item[-] \verb|\weblink[optional text]{link}|
+ \item[-] \verb|\httplink[optional text]{link}|
+ \item[-] \verb|\emaillink[optional text]{link}|
+\end{itemize}
+
+There is a \verb|\today| command, useful for example if you need to add the date the CV was produced.
+
+\subsection*{Putting things at the end of CV}
+Sometimes there is the need to add some lines at the end of the CV. For example, in Italy is necessary to add the permission to treat the personal data contained in the r\'esum\'e. You can do that dropping out of the layout of \texttt{moderncv} and pushing the lines at the end by the command \verb|\vfill|:
+\begin{verbatim}
+\emptysection{}\closesection
+\vfill
+\begin{center}
+\textit{\small Ai sensi del D. Lgs. 196/2003 ...}
+\end{center}
+\end{verbatim}
+
+\end{document}
diff --git a/macros/latex/contrib/moderncv/moderncv.cls b/macros/latex/contrib/moderncv/moderncv.cls
index 193f8e2bb6..2facfcd8d4 100644
--- a/macros/latex/contrib/moderncv/moderncv.cls
+++ b/macros/latex/contrib/moderncv/moderncv.cls
@@ -1,5 +1,5 @@
%% start of file `moderncv.cls'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{moderncv}[2015/07/28 v2.0.0 modern curriculum vitae and letter document class]
+\ProvidesClass{moderncv}[2021/01/21 v2.1.0 modern curriculum vitae and letter document class]
%-------------------------------------------------------------------------------
@@ -95,21 +95,34 @@
\xetexorluatexfalse
\fi
\fi
-% automatic loading of latin modern fonts
-%\ifxetexorluatex
-% \RequirePackage{fontspec}
-% \defaultfontfeatures{Ligatures=TeX}
-% \RequirePackage{unicode-math}
-% \setmainfont{Latin Modern}
-% \setsansfont{Latin Modern Sans}
-% \setmathfont{Latin Modern Math}
-%\else
- \RequirePackage[T1]{fontenc}
- \IfFileExists{lmodern.sty}%
- {\RequirePackage{lmodern}}%
- {}
-%\fi
+% do not use inputenc and do not automatically load lmodern to avoid problems with German
+% charactes, see
+% https://tex.stackexchange.com/questions/496630/lualatex-problems-with-german-characters
+\ifxetexorluatex
+% \RequirePackage{fontspec}
+% \defaultfontfeatures{Ligatures=TeX}
+% \RequirePackage{unicode-math}
+% \setmainfont{Latin Modern}
+% \setsansfont{Latin Modern Sans}
+% \setmathfont{Latin Modern Math}
+% \ifluatex
+% \usepackage{luatextra}
+% \usepackage{lualatex-math} %loads fontspec
+% \usepackage{shellesc} % fix a bug for lualatex shellescape
+% \fi
+\else
+ \RequirePackage[utf8]{inputenc}
+% \RequirePackage[utf8]{inputenx}
+% %additions for utf8
+% \input{ix-utf8enc.dfu}
+ \RequirePackage[T1]{fontenc}
+ % loading lmodern can cause issues with certain special characters. avoid.
+% \IfFileExists{lmodern.sty}%
+% {\RequirePackage{lmodern}}%
+% {}
+% \fi
+\fi
% hyper links (hyperref is loaded at the end of the preamble to pass options required by loaded packages such as CJK)
\newcommand*\pdfpagemode{UseNone}% do not show thumbnails or bookmarks on opening (on supporting browsers); set \pdfpagemode to "UseOutlines" to show bookmarks
\RequirePackage{url}
@@ -129,8 +142,8 @@
bookmarksdepth= 2,% to show sections and subsections
pdfauthor = {\@firstname{}~\@lastname{}},
pdftitle = {\@firstname{}~\@lastname{}\notblank{\@title}{ -- \@title}{}},
- pdfsubject = {Resum\'{e} of \@firstname{}~\@lastname{}},
- pdfkeywords = {\@firstname{}~\@lastname{}, curriculum vit\ae{}, resum\'{e}}}}
+ pdfsubject = {R\'{e}sum\'{e} of \@firstname{}~\@lastname{}},
+ pdfkeywords = {\@firstname{}~\@lastname{}, curriculum vit\ae{}, r\'{e}sum\'{e}}}}
% graphics
\RequirePackage{graphicx}
@@ -155,13 +168,13 @@
\settowidth{\pagenumberwidth}{\color{color2}\addressfont\itshape\strut\thepage/\pageref{lastpage}}%
\fancypagestyle{plain}{%
\fancyfoot[r]{\parbox[b]{\pagenumberwidth}{\color{color2}\pagenumberfont\strut\thepage/\pageref{lastpage}}}}% the parbox is required to ensure alignment with a possible center footer (e.g., as in the casual style)
- \pagestyle{plain}}{}}%
- \AtEndDocument{\label{lastpage}}\else\fi}}
+ \pagestyle{plain}}{}}\fi}%
+ \AtEndDocument{\label{lastpage}}}
\pagestyle{plain}
% reduced list spacing
% package providing hooks into lists
-% originally developped by Jakob Schiøtz (see http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty)
+% originally developped by Jakob Schiotz (see http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty)
% modified and distributed with moderncv(not available otherwise on ctan)
\RequirePackage{tweaklist}
\renewcommand*{\itemhook}{%
@@ -191,6 +204,7 @@
% compatibility package with older versions of moderncv
\RequirePackageWithOptions{moderncvcompatibility}
+\RequirePackage{expl3}
%-------------------------------------------------------------------------------
% class definition
@@ -247,20 +261,39 @@
% usage: \phone[<optional type>]{<number>}
% where <optional type> should be either "fixed" (default), "mobile" or "fax
\collectionnew{phones}
-\newcommand*{\phone}[2][fixed]{\collectionadd[#1]{phones}{#2}}
+\NewDocumentCommand{\phone}{O{fixed}m}{%
+ \ifthenelse{\equal{#1}{fax}}%
+ {\collectionadd[#1]{phones}{#2}}
+ {\collectionadd[#1]{phones}{\protect\tellink{#2}}}
+ }
+
+% http://latex.org/forum/viewtopic.php?t=12239
+\def\SplitMyMacro#1/#2{#2}
+
+
% adds a social link to one's personal information (optional)
% usage: \social[<optional type>][<optional url>]{<account name>}
-% where <optional type> should be either "linkedin", "twitter" or "github"
+% where <optional type> should be either "linkedin", "xing", "twitter", "github", "gitlab", "bitbucket" or "skype"
\collectionnew{socials}
\NewDocumentCommand{\social}{O{}O{}m}{%
\ifthenelse{\equal{#2}{}}%
{%
- \ifthenelse{\equal{#1}{linkedin}}{\collectionadd[linkedin]{socials}{\protect\httplink[#3]{www.linkedin.com/in/#3}}}{}%
- \ifthenelse{\equal{#1}{twitter}} {\collectionadd[twitter]{socials} {\protect\httplink[#3]{www.twitter.com/#3}}} {}%
- \ifthenelse{\equal{#1}{github}} {\collectionadd[github]{socials} {\protect\httplink[#3]{www.github.com/#3}}} {}%
- }
- {\collectionadd[#1]{socials}{\protect\httplink[#3]{#2}}}}
+ \ifthenelse{\equal{#1}{linkedin}} {\collectionadd[linkedin]{socials} {\protect\httpslink[#3]{www.linkedin.com/in/#3}}} {}%
+ \ifthenelse{\equal{#1}{xing}} {\collectionadd[xing]{socials} {\protect\httpslink[#3]{www.xing.com/profile/#3}}} {}%
+ \ifthenelse{\equal{#1}{twitter}} {\collectionadd[twitter]{socials} {\protect\httpslink[#3]{www.twitter.com/#3}}} {}%
+ \ifthenelse{\equal{#1}{github}} {\collectionadd[github]{socials} {\protect\httpslink[#3]{www.github.com/#3}}} {}%
+ \ifthenelse{\equal{#1}{gitlab}} {\collectionadd[gitlab]{socials} {\protect\httpslink[#3]{www.gitlab.com/#3}}} {}%
+ \ifthenelse{\equal{#1}{stackoverflow}}{\collectionadd[stackoverflow]{socials}{\protect\httpslink[#3]{stackoverflow.com/users/#3}}} {}%
+ \ifthenelse{\equal{#1}{bitbucket}} {\collectionadd[bitbucket]{socials} {\protect\httpslink[#3]{www.bitbucket.org/#3}}} {}%
+ \ifthenelse{\equal{#1}{skype}} {\collectionadd[skype]{socials} {#3}} {}%
+ \ifthenelse{\equal{#1}{orcid}} {\collectionadd[orcid]{socials} {\protect\httpslink[#3]{orcid.org/#3}}} {}%
+ \ifthenelse{\equal{#1}{researchgate}} {\collectionadd[researchgate]{socials} {\protect\httpslink[#3]{www.researchgate.net/profile/#3}}} {}%
+ \ifthenelse{\equal{#1}{researcherid}} {\collectionadd[researcherid]{socials} {\protect\httpslink[#3]{www.researcherid.com/rid/#3}}} {}%
+ \ifthenelse{\equal{#1}{telegram}} {\collectionadd[telegram]{socials} {\protect\httpslink[#3]{t.me/#3}}} {}%
+ \ifthenelse{\equal{#1}{googlescholar}}{\collectionadd[googlescholar]{socials}{\protect\httpslink[#3]{scholar.google.com/citations?user=#3}}} {}% {}%
+ }
+ {\collectionadd[#1]{socials}{\protect\httpslink[#3]{#2}}}}
% defines additional personal information (optional)
% usage: \extrainfo{<text>}
@@ -288,16 +321,26 @@
\renewcommand{\theenumiv} {\@Alph\c@enumiv}
% other symbols
-\newcommand*{\listitemsymbol} {\labelitemi~}
-\newcommand*{\addresssymbol} {}
-\newcommand*{\mobilephonesymbol} {}
-\newcommand*{\fixedphonesymbol} {}
-\newcommand*{\faxphonesymbol} {}
-\newcommand*{\emailsymbol} {}
-\newcommand*{\homepagesymbol} {}
-\newcommand*{\linkedinsocialsymbol}{}
-\newcommand*{\twittersocialsymbol} {}
-\newcommand*{\githubsocialsymbol} {}
+\newcommand*{\listitemsymbol} {\labelitemi~}
+\newcommand*{\addresssymbol} {}
+\newcommand*{\mobilephonesymbol} {}
+\newcommand*{\fixedphonesymbol} {}
+\newcommand*{\faxphonesymbol} {}
+\newcommand*{\emailsymbol} {}
+\newcommand*{\homepagesymbol} {}
+\newcommand*{\linkedinsocialsymbol} {}
+\newcommand*{\xingsocialsymbol} {}
+\newcommand*{\twittersocialsymbol} {}
+\newcommand*{\githubsocialsymbol} {}
+\newcommand*{\gitlabsocialsymbol} {}
+\newcommand*{\stackoverflowsocialsymbol}{}
+\newcommand*{\bitbucketsocialsymbol} {}
+\newcommand*{\skypesocialsymbol} {}
+\newcommand*{\orcidsocialsymbol} {}
+\newcommand*{\researchgatesocialsymbol} {}
+\newcommand*{\researchidsocialsymbol} {}
+\newcommand*{\googlescholarsocialsymbol}{}
+\newcommand*{\telegramsocialsymbol} {}
% other
%------
@@ -312,34 +355,39 @@
% usage: \makefooter
\newcommand*{\makefooter}{}%
+\newcommand*{\@loadmoderncvpackage}[3][]{%
+ \begingroup\edef\x{\endgroup%
+ \noexpand\RequirePackage[#1]{moderncv#2\ifcase#3\or i\or ii\or iii\or iv\or v\or vi\or vii\or viii\or ix\or x\fi}%
+ }\x}
+
% loads a style variant (a combination of header, body and footer)
% usage: \moderncvstyle{<style variant name>}
-\newcommand*{\moderncvstyle}[2][]{
+\newcommand*{\moderncvstyle}[2][]{%
\RequirePackage[#1]{moderncvstyle#2}}
% loads a header variant
% usage: \moderncvhead[<optional head option>]{<header variant number>}
-\newcommand*{\moderncvhead}[2][]{
- \expandafter\RequirePackage\expandafter[\expandafter#1\expandafter]{\expandafter moderncvhead\romannumeral #2}}
+\newcommand*{\moderncvhead}[2][]{%
+ \@loadmoderncvpackage[#1]{head}{#2}}
% loads a body variant
% usage: \moderncvbody[<optional body option>]{<body variant number>}
-\newcommand*{\moderncvbody}[2][]{
- \expandafter\RequirePackage\expandafter[\expandafter#1\expandafter]{\expandafter moderncvbody\romannumeral #2}}
+\newcommand*{\moderncvbody}[2][]{%
+ \@loadmoderncvpackage[#1]{body}{#2}}
% loads a footer variant
-% usage: \moderncvfoot{<footer variant number>}
-\newcommand*{\moderncvfoot}[1]{
- \expandafter\RequirePackage\expandafter{\expandafter moderncvfoot\romannumeral #1}}
+% usage: \moderncvfoot[<optional foot option>]{<foot variant number>}
+\newcommand*{\moderncvfoot}[2][]{%
+ \@loadmoderncvpackage[#1]{foot}{#2}}
% loads a color scheme
% usage: \moderncvcolor{<color scheme name>}
-\newcommand*{\moderncvcolor}[1]{
+\newcommand*{\moderncvcolor}[1]{%
\RequirePackage{moderncvcolor#1}}
% loads an icons set
% usage: \moderncvicons{<icon set name>}
-\newcommand*{\moderncvicons}[1]{
+\newcommand*{\moderncvicons}[1]{%
\RequirePackage{moderncvicons#1}}
% recomputes all automatic lengths
@@ -481,21 +529,45 @@
\newcommand*{\link}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\href{#2}{#2}}%
- {\href{#2}{#1}}}
+ {\href{#2}{\detokenize{#1}}}}
% makes a http hyperlink
% usage: \httplink[optional text]{link}
\newcommand*{\httplink}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\href{http://#2}{#2}}%
- {\href{http://#2}{#1}}}
+ {\href{http://#2}{\detokenize{#1}}}}
+
+
+% makes an https hyperlink
+% usage: \httpslink[optional text]{link}
+\newcommand*{\httpslink}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\href{https://#2}{#2}}%
+ {\href{https://#2}{\detokenize{#1}}}}
% makes an email hyperlink
% usage: \emaillink[optional text]{link}
\newcommand*{\emaillink}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\href{mailto:#2}{#2}}%
- {\href{mailto:#2}{#1}}}
+
+ {\href{mailto:#2}{\detokenize{#1}}}}
+% makes a tel hyperlink
+% usage: \tellink[optional text]{link}
+\newcommand*{\tellink}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\expandafter\onlynumberslink\expandafter{#2}{#2}}%
+ {\expandafter\onlynumberslink\expandafter{#2}{#1}}}
+
+\ExplSyntaxOn
+\tl_new:N \l_onlynumberslink_tl
+\cs_new:Npn \onlynumberslink #1 #2 {
+ \tl_set:Nn \l_onlynumberslink_tl {#1}
+ \regex_replace_all:nnN {[^0-9+]} {} \l_onlynumberslink_tl
+ \href{ tel\token_to_str:N : \tl_use:N \l_onlynumberslink_tl}{ #2 }
+}
+\ExplSyntaxOff
% cvcolumns environment, where every column is created through \cvcolumn
% usage: \begin{cvcolumns}
diff --git a/macros/latex/contrib/moderncv/moderncvbodyi.sty b/macros/latex/contrib/moderncv/moderncvbodyi.sty
index a86bcf2425..b30af90b5f 100644
--- a/macros/latex/contrib/moderncv/moderncvbodyi.sty
+++ b/macros/latex/contrib/moderncv/moderncvbodyi.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvbodyi.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,13 +10,15 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvbodyi}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 1]
+\ProvidesPackage{moderncvbodyi}[2021/01/21 v2.1.0 modern curriculum vitae and letter body variant: 1]
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
-
+% provides the commands for the skillmatrix as well as the command
+% \recompute@cvskillmatrix@lengths
+\RequirePackage[moderncvbodyi]{moderncvskillmatrix}
%-------------------------------------------------------------------------------
% overall body definition
@@ -59,9 +61,11 @@
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
+ \recompute@cvskillmatrix@lengths
% regular lengths
\setlength{\parskip}{0\p@}}
+
\@initializelength{\baseletterheight}
\settoheight{\baseletterheight}{\sectionstyle{o}}
\setlength{\baseletterheight}{\baseletterheight-0.95ex}
diff --git a/macros/latex/contrib/moderncv/moderncvbodyii.sty b/macros/latex/contrib/moderncv/moderncvbodyii.sty
index a86bcf2425..acab69f5b3 100644..120000
--- a/macros/latex/contrib/moderncv/moderncvbodyii.sty
+++ b/macros/latex/contrib/moderncv/moderncvbodyii.sty
@@ -1,174 +1 @@
-%% start of file `moderncvbodyi.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License version 1.3c,
-% available at http://www.latex-project.org/lppl/.
-
-
-%-------------------------------------------------------------------------------
-% identification
-%-------------------------------------------------------------------------------
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvbodyi}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 1]
-
-
-%-------------------------------------------------------------------------------
-% required packages
-%-------------------------------------------------------------------------------
-
-
-%-------------------------------------------------------------------------------
-% overall body definition
-%-------------------------------------------------------------------------------
-% fonts
-\renewcommand*{\sectionfont}{\Large\mdseries\upshape}
-\renewcommand*{\subsectionfont}{\large\mdseries\upshape}
-\renewcommand*{\hintfont}{}
-
-% styles
-\renewcommand*{\sectionstyle}[1]{{\sectionfont\textcolor{color1}{#1}}}
-\renewcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}}
-\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}
-
-
-%-------------------------------------------------------------------------------
-% resume body definition
-%-------------------------------------------------------------------------------
-% lengths
-% used by \cvitem (and all children command)
-\@initializelength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.175\textwidth}
-\@initializelength{\separatorcolumnwidth} \setlength{\separatorcolumnwidth}{0.025\textwidth}
-\@initializelength{\maincolumnwidth}
-% used by \cvdoubleitem
-\@initializelength{\doubleitemcolumnwidth}
-% used by \cvlistitem
-\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
-\@initializelength{\listitemcolumnwidth}
-% used by \cvlistdoubleitem
-\@initializelength{\listdoubleitemcolumnwidth}
-% default moderncv \photo (change the definition such that by default the photo and its box align with the section bars
-\RenewDocumentCommand{\photo}{O{\hintscolumnwidth-0.8pt-2\fboxsep}O{0.4pt}m}{\def\@photowidth{#1}\def\@photoframewidth{#2}\def\@photo{#3}}%
-
-% commands
-\renewcommand*{\recomputecvbodylengths}{%
- % body lengths
- \setlength{\maincolumnwidth}{\textwidth-\leftskip-\rightskip-\separatorcolumnwidth-\hintscolumnwidth}%
- \setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
- \setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}%
- \setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
- \setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
- \setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
- % regular lengths
- \setlength{\parskip}{0\p@}}
-
-\@initializelength{\baseletterheight}
-\settoheight{\baseletterheight}{\sectionstyle{o}}
-\setlength{\baseletterheight}{\baseletterheight-0.95ex}
-\RenewDocumentCommand{\section}{sm}{%
- \par\addvspace{2.5ex}%
- \phantomsection{}% reset the anchor for hyperrefs
- \addcontentsline{toc}{section}{#2}%
- \cvitem[0ex]{\strut\raggedleft\raisebox{\baseletterheight}{\color{color1}\rule{\hintscolumnwidth}{0.95ex}}}{\strut\sectionstyle{#2}}%
- \par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading
-
-\RenewDocumentCommand{\subsection}{sm}{%
- \par\addvspace{1ex}%
- \phantomsection{}% reset the anchor for hyperrefs
- \addcontentsline{toc}{subsection}{#2}%
- \cvitem[0ex]{}{\strut\subsectionstyle{#2}}%
- \par\nobreak\addvspace{.5ex}\@afterheading}% to avoid a pagebreak after the heading
-
-\renewcommand*{\cvitem}[3][.25em]{%
- \begin{tabular}{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}%
- \raggedleft\hintstyle{#2} &{#3}%
- \end{tabular}%
- \par\addvspace{#1}}
-
-\renewcommand*{\cvdoubleitem}[5][.25em]{%
- \cvitem[#1]{#2}{%
- \begin{minipage}[t]{\doubleitemcolumnwidth}#3\end{minipage}%
- \hfill% fill of \separatorcolumnwidth
- \begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#4}\end{minipage}%
- \hspace*{\separatorcolumnwidth}%
- \begin{minipage}[t]{\doubleitemcolumnwidth}#5\end{minipage}}}
-
-\renewcommand*{\cvlistitem}[2][.25em]{%
- \cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listitemcolumnwidth}#2\end{minipage}}}
-
-\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
- \cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#2\end{minipage}%
- \hfill% fill of \separatorcolumnwidth
- \ifthenelse{\equal{#3}{}}%
- {}%
- {\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#3\end{minipage}}}}
-
-\renewcommand*{\cventry}[7][.25em]{%
- \cvitem[#1]{#2}{%
- {\bfseries#3}%
- \ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
- \ifthenelse{\equal{#5}{}}{}{, #5}%
- \ifthenelse{\equal{#6}{}}{}{, #6}%
- .\strut%
- \ifx&#7&%
- \else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}
-
-\@initializebox{\cvitemwithcommentbox}
-\@initializelength{\cvitemwithcommentskilllength}
-\@initializelength{\cvitemwithcommentcommentlength}
-\renewcommand*{\cvitemwithcomment}[4][.25em]{%
- \savebox{\cvitemwithcommentbox}{{#3}}%
- \setlength{\cvitemwithcommentskilllength}{\widthof{\usebox{\cvitemwithcommentbox}}}%
- \setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentskilllength}%
- \cvitem[#1]{#2}{%
- \begin{minipage}[t]{\cvitemwithcommentskilllength}\usebox{\cvitemwithcommentbox}\end{minipage}%
- \hfill% fill of \separatorcolumnwidth
- \begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}}}
-
-\renewenvironment{thebibliography}[1]%
- {%
- \bibliographyhead{\refname}%
-% \small%
- \begin{list}{\bibliographyitemlabel}%
- {%
- \setlength{\topsep}{0pt}%
- \setlength{\labelwidth}{\hintscolumnwidth}%
- \setlength{\labelsep}{\separatorcolumnwidth}%
- \leftmargin\labelwidth%
- \advance\leftmargin\labelsep%
- \@openbib@code%
- \usecounter{enumiv}%
- \let\p@enumiv\@empty%
- \renewcommand\theenumiv{\@arabic\c@enumiv}}%
- \sloppy%
- \clubpenalty4000%\@clubpenalty \clubpenalty%
- \widowpenalty4000%
- \sfcode`\.\@m%
- \sfcode `\=1000\relax}%
- {%
- \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
- \end{list}}
-
-
-%-------------------------------------------------------------------------------
-% letter style definition
-%-------------------------------------------------------------------------------
-% commands
-\renewcommand*{\recomputeletterbodylengths}{%
- \recomputecvlengths%
- \setlength{\parskip}{6\p@}}
-
-\renewcommand*{\makeletterclosing}{
- \@closing\\[3em]%
- {\bfseries\@firstname~\@lastname}%
- \ifthenelse{\isundefined{\@enclosure}}{}{%
- \\%
- \vfil%
- {\color{color2}\itshape\enclname: \@enclosure}}%
- \vfil}
-
-
-\endinput
-
-
-%% end of file `moderncvbodyi.sty'.
+moderncvbodyi.sty \ No newline at end of file
diff --git a/macros/latex/contrib/moderncv/moderncvbodyiii.sty b/macros/latex/contrib/moderncv/moderncvbodyiii.sty
index a2de047a55..85fff25478 100644
--- a/macros/latex/contrib/moderncv/moderncvbodyiii.sty
+++ b/macros/latex/contrib/moderncv/moderncvbodyiii.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvbodyiii.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvbodyiii}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 3]
+\ProvidesPackage{moderncvbodyiii}[2021/01/21 v2.1.0 modern curriculum vitae and letter body variant: 3]
% rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules"
\@initializeif{\if@fullrules}\@fullrulesfalse
@@ -37,7 +37,9 @@
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
-
+% provides the commands for the skillmatrix as well as the command
+% \recompute@cvskillmatrix@lengths
+\RequirePackage[moderncvbodyiii]{moderncvskillmatrix}
%-------------------------------------------------------------------------------
% overall body definition
@@ -96,6 +98,7 @@
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
+ \recompute@cvskillmatrix@lengths
% regular lengths
\setlength{\parskip}{0\p@}}
@@ -143,13 +146,13 @@
\renewcommand*{\subsectionrule}{}\fi
\renewcommand*{\cvitem}[3][.25em]{%
- \ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}%
+ \ifstrempty{#2}{}{\hintstyle{#2}: }{#3}%
\par\addvspace{#1}}
\renewcommand*{\cvdoubleitem}[5][.25em]{%
\begin{minipage}[t]{\doubleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
\hfill% fill of \separatorcolumnwidth
- \begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}%
+ \begin{minipage}[t]{\doubleitemcolumnwidth}\ifstrempty{#4}{}{\hintstyle{#4}: }#5\end{minipage}%
\par\addvspace{#1}}
\renewcommand*{\cvlistitem}[2][.25em]{%
@@ -159,14 +162,20 @@
\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#2\end{minipage}%
\hfill% fill of \separatorcolumnwidth
- \ifthenelse{\equal{#3}{}}%
+ \ifstrempty{#3}%
{}%
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#3\end{minipage}}}}
\renewcommand*{\cventry}[7][.25em]{
\begin{tabular*}{\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
- {\bfseries #4} & {\bfseries #5}\\%
- {\itshape #3\ifthenelse{\equal{#6}{}}{}{, #6}} & {\itshape #2}\\%
+ % skip the company name and location line if both are empty, allowing one to show multiple roles within the same company without repeating it
+ \ifboolexpr{%
+ test {\ifstrempty{#4}}
+ and
+ test {\ifstrempty{#5}}}%
+ {}%
+ {{\bfseries #4} & {\bfseries #5}\\}%
+ {\itshape #3\ifstrempty{#6}{}{, #6}} & {\itshape #2}\\%
\end{tabular*}%
\ifx&#7&%
\else{\\%
@@ -179,7 +188,7 @@
\@initializelength{\cvitemwithcommentmainlength}
\@initializelength{\cvitemwithcommentcommentlength}
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
- \savebox{\cvitemwithcommentmainbox}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }#3}%
+ \savebox{\cvitemwithcommentmainbox}{\ifstrempty{#2}{}{\hintstyle{#2}: }#3}%
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
diff --git a/macros/latex/contrib/moderncv/moderncvbodyiv.sty b/macros/latex/contrib/moderncv/moderncvbodyiv.sty
index 20af5e48d3..54f47517ff 100644
--- a/macros/latex/contrib/moderncv/moderncvbodyiv.sty
+++ b/macros/latex/contrib/moderncv/moderncvbodyiv.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvbodyiv.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,13 +10,15 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvbodyiv}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 4]
+\ProvidesPackage{moderncvbodyiv}[2021/01/21 v2.1.0 modern curriculum vitae and letter body variant: 4]
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
-
+% provides the commands for the skillmatrix as well as the command
+% \recompute@cvskillmatrix@lengths
+\RequirePackage[moderncvbodyiv]{moderncvskillmatrix}
%-------------------------------------------------------------------------------
% overall body definition
@@ -57,6 +59,7 @@
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
+ \recompute@cvskillmatrix@lengths
% regular lengths
\setlength{\parskip}{0\p@}}
diff --git a/macros/latex/contrib/moderncv/moderncvbodyv.sty b/macros/latex/contrib/moderncv/moderncvbodyv.sty
index 8888fe5ed5..81c9db5340 100644
--- a/macros/latex/contrib/moderncv/moderncvbodyv.sty
+++ b/macros/latex/contrib/moderncv/moderncvbodyv.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvbodyv.sty'.
-%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,13 +10,15 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvbodyv}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 5]
+\ProvidesPackage{moderncvbodyv}[2021/01/21 v2.1.0 modern curriculum vitae and letter body variant: 5]
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
-
+% provides the commands for the skillmatrix as well as the command
+% \recompute@cvskillmatrix@lengths
+\RequirePackage[moderncvbodyv]{moderncvskillmatrix}
%-------------------------------------------------------------------------------
% overall style definition
@@ -61,6 +63,7 @@
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
+ \recompute@cvskillmatrix@lengths
% regular lengths
\setlength{\parskip}{0\p@}}
@@ -84,7 +87,15 @@
\nobreak\@afterheading\@aftersectiontrue\ignorespaces}
\renewcommand*{\cvitem}[3][.5ex]{%
- \@cvitem[#1]{}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}}}
+ \@cvitem[#1]{}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}}%
+ }
+% \RenewDocumentCommand{\cvitem}{+O{.5ex} +m +m}{%
+% \IfNoValueTF{#2}{%
+% \@cvitem[#1]{}{#3}%
+% }{%
+% \@cvitem[#1]{}{\hintstyle{#2}: {#3}}%
+% }%
+% }
% underlying command to implement \cvitem, \subsection and \section
\newcommand*{\@cvitem}[3][.5ex]{%
diff --git a/macros/latex/contrib/moderncv/moderncvcollection.sty b/macros/latex/contrib/moderncv/moderncvcollection.sty
index 909d234933..73db08ed29 100644
--- a/macros/latex/contrib/moderncv/moderncvcollection.sty
+++ b/macros/latex/contrib/moderncv/moderncvcollection.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcollection.sty'.
-%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcollection}[2015/07/28 v2.0.0 moderncv collections]
+\ProvidesPackage{moderncvcollection}[2021/01/21 v2.1.0 moderncv collections]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorblack.sty b/macros/latex/contrib/moderncv/moderncvcolorblack.sty
index 24a911ed8e..9382609003 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorblack.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorblack.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcolorblack.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorblack}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: black]
+\ProvidesPackage{moderncvcolorblack}[2021/01/21 v2.1.0 modern curriculum vitae and letter color scheme: black]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorblue.sty b/macros/latex/contrib/moderncv/moderncvcolorblue.sty
index 39f5f42d31..75a994867b 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorblue.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorblue.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcolorblue.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorblue}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: blue]
+\ProvidesPackage{moderncvcolorblue}[2021/01/21 v2.1.0 modern curriculum vitae and letter color scheme: blue]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorburgundy.sty b/macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
index 28f5b2c1d5..a1c833141c 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcolorburgundy.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorburgundy}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: burgundy]
+\ProvidesPackage{moderncvcolorburgundy}[2021/01/21 v2.1.0 modern curriculum vitae and letter color scheme: burgundy]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorgreen.sty b/macros/latex/contrib/moderncv/moderncvcolorgreen.sty
index 1e4eadcbed..5f7deaa7ac 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorgreen.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorgreen.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcolorgreen.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorgreen}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: green]
+\ProvidesPackage{moderncvcolorgreen}[2021/01/21 v2.1.0 modern curriculum vitae and letter color scheme: green]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorgrey.sty b/macros/latex/contrib/moderncv/moderncvcolorgrey.sty
index 8934deeeb0..988d596902 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorgrey.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorgrey.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcolorgrey.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorgrey}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: grey]
+\ProvidesPackage{moderncvcolorgrey}[2021/01/21 v2.1.0 modern curriculum vitae and letter color scheme: grey]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolororange.sty b/macros/latex/contrib/moderncv/moderncvcolororange.sty
index cc0a62e346..357cc96d1b 100644
--- a/macros/latex/contrib/moderncv/moderncvcolororange.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolororange.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcolororange.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolororange}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: orange]
+\ProvidesPackage{moderncvcolororange}[2021/01/21 v2.1.0 modern curriculum vitae and letter color scheme: orange]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorpurple.sty b/macros/latex/contrib/moderncv/moderncvcolorpurple.sty
index 2c63aaf351..7603043045 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorpurple.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorpurple.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcolorpurple.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorpurple}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: purple]
+\ProvidesPackage{moderncvcolorpurple}[2021/01/21 v2.1.0 modern curriculum vitae and letter color scheme: purple]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorred.sty b/macros/latex/contrib/moderncv/moderncvcolorred.sty
index be178aa9e5..1716781272 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorred.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorred.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcolorred.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorred}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: red]
+\ProvidesPackage{moderncvcolorred}[2021/01/21 v2.1.0 modern curriculum vitae and letter color scheme: red]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcompatibility.sty b/macros/latex/contrib/moderncv/moderncvcompatibility.sty
index 681eaf4eb0..2a5f15c445 100644
--- a/macros/latex/contrib/moderncv/moderncvcompatibility.sty
+++ b/macros/latex/contrib/moderncv/moderncvcompatibility.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvcompatibility.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcompatibility}[2015/07/28 v2.0.0 modern curriculum vitae and letter compatibility patches]
+\ProvidesPackage{moderncvcompatibility}[2021/01/21 v2.1.0 modern curriculum vitae and letter compatibility patches]
%-------------------------------------------------------------------------------
@@ -97,6 +97,9 @@
\newcommand*{\mobilesymbol}{\mobilephonesymbol}
\newcommand*{\faxsymbol}{\faxphonesymbol}
+% compatibility with versions <= 1.5.1
+\newcommand*{\makecvtitlenamewidth}{\makecvheadnamewidth} % only used in header variants 1 and 4, themself used by the classic and oldstyle styles
+
\endinput
diff --git a/macros/latex/contrib/moderncv/moderncvdebugtools.sty b/macros/latex/contrib/moderncv/moderncvdebugtools.sty
index 04ad305b75..3e8f81b86a 100644
--- a/macros/latex/contrib/moderncv/moderncvdebugtools.sty
+++ b/macros/latex/contrib/moderncv/moderncvdebugtools.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvdebugtools.sty'.
-%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvdebugtools}[2015/07/28 v2.0.0 modern curriculum vitae and letter debug tools]
+\ProvidesPackage{moderncvdebugtools}[2021/01/21 v2.1.0 modern curriculum vitae and letter debug tools]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvfooti.sty b/macros/latex/contrib/moderncv/moderncvfooti.sty
index 1a66d0f64e..751216c092 100644
--- a/macros/latex/contrib/moderncv/moderncvfooti.sty
+++ b/macros/latex/contrib/moderncv/moderncvfooti.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvfooti.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvfooti}[2015/07/28 v2.0.0 modern curriculum vitae and letter footer variant: 1]
+\ProvidesPackage{moderncvfooti}[2021/01/21 v2.1.0 modern curriculum vitae and letter footer variant: 1]
%-------------------------------------------------------------------------------
@@ -88,7 +88,7 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\addtofoot{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@email}}{}{\addtofoot{\emailsymbol\emaillink{\@email}}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\addtofoot{\homepagesymbol\httplink{\@homepage}}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\addtofoot{\homepagesymbol\httpslink{\@homepage}}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\addtofoot{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtofoot{\@extrainfo}}%
@@ -119,7 +119,7 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\addtofoot{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@email}}{}{\addtofoot{\emailsymbol\emaillink{\@email}}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\addtofoot{\homepagesymbol\httplink{\@homepage}}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\addtofoot{\homepagesymbol\httpslink{\@homepage}}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\addtofoot{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtofoot{\@extrainfo}}%
diff --git a/macros/latex/contrib/moderncv/moderncvheadi.sty b/macros/latex/contrib/moderncv/moderncvheadi.sty
index 3c578914c2..ff447025d7 100644
--- a/macros/latex/contrib/moderncv/moderncvheadi.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadi.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvheadi.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadi}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 1]
+\ProvidesPackage{moderncvheadi}[2021/01/21 v2.1.0 modern curriculum vitae and letter header variant: 1]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
@@ -54,8 +54,7 @@
%-------------------------------------------------------------------------------
% lengths
\@initializelength{\quotewidth}
-% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically)
-\@initializelength{\makecvheadnamewidth}
+\@initializelength{\makecvheadnamewidth}% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically)
\renewcommand*{\recomputecvheadlengths}{%
\setlength{\quotewidth}{0.65\textwidth}}
@@ -81,7 +80,7 @@
\ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
\phonesdetails% needs to be pre-rendered as loops and tabulars seem to conflict
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httpslink{\@homepage}}%
\socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}%
\end{tabular}
@@ -159,7 +158,7 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}%
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httpslink{\@homepage}}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi%
\end{minipage}\\[1em]
% recipient block
diff --git a/macros/latex/contrib/moderncv/moderncvheadii.sty b/macros/latex/contrib/moderncv/moderncvheadii.sty
index f6d19c3738..ecfaf13347 100644
--- a/macros/latex/contrib/moderncv/moderncvheadii.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadii.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvheadii.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadii}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 2]
+\ProvidesPackage{moderncvheadii}[2021/01/21 v2.1.0 modern curriculum vitae and letter header variant: 2]
% details options: "details" or "nodetails" (default)
\@initializeif{\if@details}\@detailsfalse
@@ -93,8 +93,6 @@
%-------------------------------------------------------------------------------
% lengths
\@initializelength{\quotewidth}
-% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically)
-\@initializelength{\makecvheadnamewidth}
\renewcommand*{\recomputecvheadlengths}{%
\setlength{\makeheaddetailswidth}{\textwidth}%
\setlength{\quotewidth}{0.65\textwidth}}
@@ -145,7 +143,7 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\addtomakeheaddetails{\homepagesymbol\httplink{\@homepage}}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\addtomakeheaddetails{\homepagesymbol\httpslink{\@homepage}}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\addtomakeheaddetails{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtomakeheaddetails{\@extrainfo}}%
diff --git a/macros/latex/contrib/moderncv/moderncvheadiii.sty b/macros/latex/contrib/moderncv/moderncvheadiii.sty
index 54f86cb5fd..d851785326 100644
--- a/macros/latex/contrib/moderncv/moderncvheadiii.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadiii.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvheadiii.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadiii}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 3]
+\ProvidesPackage{moderncvheadiii}[2021/01/21 v2.1.0 modern curriculum vitae and letter header variant: 3]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
@@ -70,10 +70,11 @@
\@firstmakeheaddetailselementfalse\fi}
% internal command to flush the makehead
\@initializecommand{\flushmakeheaddetails}{%
- \strut\usebox{\makeheaddetailsbox}%
- \savebox{\makeheaddetailsbox}{}%
- \savebox{\makeheaddetailstempbox}{}%
- \setlength{\makeheaddetailsboxwidth}{0pt}}
+ \ifnum\makeheaddetailsboxwidth>0%
+ \strut\usebox{\makeheaddetailsbox}%
+ \savebox{\makeheaddetailsbox}{}%
+ \savebox{\makeheaddetailstempbox}{}%
+ \setlength{\makeheaddetailsboxwidth}{0pt}\fi}
\@initializecommand{\makehead}{%
\setlength{\makeheaddetailswidth}{0.8\textwidth}%
\hfil%
@@ -81,9 +82,10 @@
\centering%
% name and title
\namestyle{\@firstname~\@lastname}%
- \ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title)
+ \ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title)
% optional detailed information
\if@details{%
+ \\%
\addressfont\color{color2}%
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtomakeheaddetails{\addresssymbol\@addressstreet}%
\ifthenelse{\equal{\@addresscity}{}}{}{\addtomakeheaddetails[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty
@@ -92,11 +94,11 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\addtomakeheaddetails{\homepagesymbol\httplink{\@homepage}}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\addtomakeheaddetails{\homepagesymbol\httpslink{\@homepage}}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\addtomakeheaddetails{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtomakeheaddetails{\@extrainfo}}%
- \flushmakeheaddetails}\fi}\\[2.5em]}% need to force a \par after this to avoid weird spacing bug at the first section if no blank line is left after \makehead
+ \flushmakeheaddetails}\fi}\\[2.5em]}% need to force a \par after this to avoid weird spacing bug at the first section if no blank line is left after \makehead
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvheadiv.sty b/macros/latex/contrib/moderncv/moderncvheadiv.sty
index bed59f55fb..2f9b8e0587 100644
--- a/macros/latex/contrib/moderncv/moderncvheadiv.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadiv.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvheadiv.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadiv}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 4]
+\ProvidesPackage{moderncvheadiv}[2021/01/21 v2.1.0 modern curriculum vitae and letter header variant: 4]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
@@ -49,6 +49,7 @@
%-------------------------------------------------------------------------------
% lengths
\@initializelength{\quotewidth}
+\@initializelength{\makecvheadnamewidth}% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically)
\setlength{\marginparwidth}{0\p@}
\setlength{\marginparsep}{0\p@}
\renewcommand*{\recomputecvheadlengths}{%
@@ -86,7 +87,9 @@
\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}%
% name and optional title
\newlength{\makecvheadpicturewidth}\settowidth{\makecvheadpicturewidth}{\usebox{\makecvheadpicturebox}}%
- \newlength{\makecvheadnamewidth}\setlength{\makecvheadnamewidth}{\textwidth-\makecvheadpicturewidth}%
+ \ifthenelse{\lengthtest{\makecvheadnamewidth=0pt}}% check for dummy value (equivalent to \ifdim\makecvheadnamewidth=0pt)
+ {\setlength{\makecvheadnamewidth}{\textwidth-\makecvheadpicturewidth}}%
+ {}%
\begin{minipage}[b]{\makecvheadnamewidth}%
\namestyle{\@firstname\ \@lastname}%
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
@@ -107,7 +110,7 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\makenewline\hbox to 1.0em{\csname\collectionloopkey phonesymbol\endcsname}~\collectionloopitem}%
\ifthenelse{\isundefined{\@email}}{}{\makenewline\hbox to 1.0em{\emailsymbol}~\emaillink{\@email}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~\httplink{\@homepage}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~\httpslink{\@homepage}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\makenewline\hbox to 1.0em{\csname\collectionloopkey socialsymbol\endcsname}~\collectionloopitem}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi}
@@ -153,7 +156,7 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\makenewline\hbox to 1.0em{\csname\collectionloopkey phonesymbol\endcsname}~\collectionloopitem}%
\ifthenelse{\isundefined{\@email}}{}{\makenewline\hbox to 1.0em{\emailsymbol}~\emaillink{\@email}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~\httplink{\@homepage}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~\httpslink{\@homepage}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\makenewline\hbox to 1.0em{\csname\collectionloopkey socialsymbol\endcsname}~\collectionloopitem}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}}%
diff --git a/macros/latex/contrib/moderncv/moderncvheadv.sty b/macros/latex/contrib/moderncv/moderncvheadv.sty
index e00be88d88..2f8478596b 100644
--- a/macros/latex/contrib/moderncv/moderncvheadv.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadv.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvheadv.sty'.
-%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadv}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 5]
+\ProvidesPackage{moderncvheadv}[2021/01/21 v2.1.0 modern curriculum vitae and letter header variant: 5]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
@@ -48,8 +48,6 @@
%-------------------------------------------------------------------------------
% lengths
\@initializelength{\quotewidth}
-% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically)
-\@initializelength{\makecvheadnamewidth}
\renewcommand*{\recomputecvheadlengths}{%
\setlength{\quotewidth}{0.65\textwidth}}
@@ -84,7 +82,7 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\makenewline\csname\collectionloopkey phonesymbol\endcsname~\collectionloopitem}%
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol~\emaillink{\@email}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol~\httplink{\@homepage}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol~\httpslink{\@homepage}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\makenewline\csname\collectionloopkey socialsymbol\endcsname~\collectionloopitem}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}\fi}%
@@ -142,7 +140,7 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}%
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httpslink{\@homepage}}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi%
\end{minipage}\\[1em]
% recipient block
diff --git a/macros/latex/contrib/moderncv/moderncvheadvi.sty b/macros/latex/contrib/moderncv/moderncvheadvi.sty
index 83c1055b9b..e6478795d8 100644
--- a/macros/latex/contrib/moderncv/moderncvheadvi.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadvi.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvheadvi.sty'.
-%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadvi}[2015/07/28 v2.0.0 modern curriculum vitae and letter header: 6]
+\ProvidesPackage{moderncvheadvi}[2021/01/21 v2.1.0 modern curriculum vitae and letter header: 6]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
@@ -115,7 +115,7 @@
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\addtomakeheaddetails{\homepagesymbol\httplink{\@homepage}}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\addtomakeheaddetails{\homepagesymbol\httpslink{\@homepage}}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\addtomakeheaddetails{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtomakeheaddetails{\@extrainfo}}%
diff --git a/macros/latex/contrib/moderncv/moderncviconsawesome.sty b/macros/latex/contrib/moderncv/moderncviconsawesome.sty
index 92f2dbf309..f821130dd6 100644
--- a/macros/latex/contrib/moderncv/moderncviconsawesome.sty
+++ b/macros/latex/contrib/moderncv/moderncviconsawesome.sty
@@ -1,5 +1,5 @@
%% start of file `moderncviconsawesome.sty'.
-%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,33 +10,44 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncviconsawesome}[2015/07/28 v2.0.0 modern curriculum vitae and letter icons: awesome]
+\ProvidesPackage{moderncviconsawesome}[2021/01/21 v2.1.0 modern curriculum vitae and letter icons: awesome]
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
% Font Awesome font
-\RequirePackage{fontawesome}
+\RequirePackage{fontawesome5}
+% Package for academic icons
+\RequirePackage{academicons}
%-------------------------------------------------------------------------------
% symbols definition
%-------------------------------------------------------------------------------
-\renewcommand*{\labelitemi} {\strut\textcolor{color1}{\tiny\faCircleO}}
+\renewcommand*{\labelitemi} {\strut\textcolor{color1}{\tiny\faCircle}}
%\renewcommand*{\labelitemii} {\strut\textcolor{color1}{\large\bfseries-}} % no change from default in moderncv.cls
%\renewcommand*{\labelitemiii} {\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% no change from default in moderncv.cls
%\renewcommand*{\labelitemiv} {\labelitemiii} % no change from default in moderncv.cls
-\renewcommand*{\addresssymbol} {}
-\renewcommand*{\mobilephonesymbol} {{\Large\faMobile}~}
-\renewcommand*{\fixedphonesymbol} {\faPhone~}
-\renewcommand*{\faxphonesymbol} {{\small\faFax}~} % alternative: \faPrint
-\renewcommand*{\emailsymbol} {{\small\faEnvelopeO}~} % alternative: \faInbox
-\renewcommand*{\homepagesymbol} {{\small\faGlobe}~} % alternative: \faHome
-\renewcommand*{\linkedinsocialsymbol}{{\small\faLinkedin}~} % alternative: \faLinkedinSquare
-\renewcommand*{\twittersocialsymbol} {{\small\faTwitter}~} % alternative: \faTwitterSquare
-\renewcommand*{\githubsocialsymbol} {{\small\faGithub}~} % alternative: \faGithubSquare, \faGithubSquare
-
+\renewcommand*{\addresssymbol} {}
+\renewcommand*{\mobilephonesymbol} {{\small\faMobile}~}
+\renewcommand*{\fixedphonesymbol} {{\small\faPhone}~}
+\renewcommand*{\faxphonesymbol} {{\small\faFax}~} % alternative: \faPrint
+\renewcommand*{\emailsymbol} {{\small\faEnvelope}~} % alternative: \faInbox
+\renewcommand*{\homepagesymbol} {{\small\faGlobe}~} % alternative: \faHome
+\renewcommand*{\linkedinsocialsymbol} {{\small\faLinkedin}~} % alternative: \faLinkedinSquare
+\renewcommand*{\xingsocialsymbol} {{\small\faXing}~} % alternative: \faXingSquare
+\renewcommand*{\twittersocialsymbol} {{\small\faTwitter}~} % alternative: \faTwitterSquare
+\renewcommand*{\githubsocialsymbol} {{\small\faGithub}~} % alternative: \faGithubSquare, \faGithubSquare
+\renewcommand*{\gitlabsocialsymbol} {{\small\faGitlab}~}
+\renewcommand*{\stackoverflowsocialsymbol}{{\small\faStackOverflow}~}
+\renewcommand*{\bitbucketsocialsymbol} {{\small\faBitbucket}~}
+\renewcommand*{\skypesocialsymbol} {{\small\faSkype}~}
+\renewcommand*{\orcidsocialsymbol} {{\small\aiOrcid}~}
+\renewcommand*{\researchgatesocialsymbol} {{\small\aiResearchGate}~}
+\renewcommand*{\researchidsocialsymbol} {{\small\aiResearcherID}~}
+\renewcommand*{\telegramsocialsymbol} {{\small\faTelegram}~}
+\renewcommand*{\googlescholarsocialsymbol}{{\small\aiGoogleScholar}~}
\endinput
diff --git a/macros/latex/contrib/moderncv/moderncviconsletters.sty b/macros/latex/contrib/moderncv/moderncviconsletters.sty
index 8339b01fef..79bb73f03a 100644
--- a/macros/latex/contrib/moderncv/moderncviconsletters.sty
+++ b/macros/latex/contrib/moderncv/moderncviconsletters.sty
@@ -1,5 +1,5 @@
%% start of file `moderncviconsletters.sty'.
-%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncviconsletters}[2015/07/28 v2.0.0 modern curriculum vitae and letter icons: letters]
+\ProvidesPackage{moderncviconsletters}[2021/01/21 v2.1.0 modern curriculum vitae and letter icons: letters]
%-------------------------------------------------------------------------------
@@ -34,15 +34,25 @@
%\renewcommand*{\labelitemiii} {\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% no change from default in moderncv.cls
%\renewcommand*{\labelitemiv} {\labelitemiii} % no change from default in moderncv.cls
-\renewcommand*{\addresssymbol} {}
-\renewcommand*{\mobilephonesymbol} {\textbf{M}~}
-\renewcommand*{\fixedphonesymbol} {\textbf{T}~}
-\renewcommand*{\faxphonesymbol} {\textbf{F}~}
-\renewcommand*{\emailsymbol} {\textbf{E}~}
-\renewcommand*{\homepagesymbol} {\textbf{W}~}
-\renewcommand*{\linkedinsocialsymbol}{\textbf{in}~}
-\renewcommand*{\twittersocialsymbol} {\textbf{tw}~}
-\renewcommand*{\githubsocialsymbol} {\textbf{gh}~}
+\renewcommand*{\addresssymbol} {}
+\renewcommand*{\mobilephonesymbol} {\textbf{M}~}
+\renewcommand*{\fixedphonesymbol} {\textbf{T}~}
+\renewcommand*{\faxphonesymbol} {\textbf{F}~}
+\renewcommand*{\emailsymbol} {\textbf{E}~}
+\renewcommand*{\homepagesymbol} {\textbf{W}~}
+\renewcommand*{\linkedinsocialsymbol} {\textbf{in}~}
+\renewcommand*{\xingsocialsymbol} {\textbf{xi}~}
+\renewcommand*{\twittersocialsymbol} {\textbf{tw}~}
+\renewcommand*{\githubsocialsymbol} {\textbf{gh}~}
+\renewcommand*{\gitlabsocialsymbol} {\textbf{gl}~}
+\renewcommand*{\stackoverflowsocialsymbol}{\textbf{so}~}
+\renewcommand*{\bitbucketsocialsymbol} {\textbf{bb}~}
+\renewcommand*{\skypesocialsymbol} {\textbf{sk}~}
+\renewcommand*{\orcidsocialsymbol} {\textbf{orcid}~}
+\renewcommand*{\researchgatesocialsymbol} {\textbf{rg}~}
+\renewcommand*{\researchidsocialsymbol} {\textbf{ri}~}
+\renewcommand*{\telegramsocialsymbol} {\textbf{tg}~}
+\renewcommand*{\googlescholarsocialsymbol}{\textbf{gs}~}
\renewcommand*{\listitemsymbol} {\labelitemi~}
diff --git a/macros/latex/contrib/moderncv/moderncviconsmarvosym.sty b/macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
index c6ab035e35..43b4602c57 100644
--- a/macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
+++ b/macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
@@ -1,5 +1,5 @@
%% start of file `moderncviconsmarvosym.sty'.
-%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncviconsmarvosym}[2015/07/28 v2.0.0 modern curriculum vitae and letter icons: marvosym]
+\ProvidesPackage{moderncviconsmarvosym}[2021/01/21 v2.1.0 modern curriculum vitae and letter icons: marvosym]
%-------------------------------------------------------------------------------
@@ -86,6 +86,7 @@
\protect\end{scope}%
\protect\end{tikzpicture}}%
~}
+\renewcommand*{\xingsocialsymbol}{}
\renewcommand*{\twittersocialsymbol} {%
\protect\raisebox{0em}{%
\protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.005, yscale=-0.005, inner sep=0pt, outer sep=0pt]
@@ -222,6 +223,47 @@
\protect\end{scope}%
\protect\end{tikzpicture}}%
~}
+\renewcommand*{\gitlabsocialsymbol}{}
+\renewcommand*{\stackoverflowsocialsymbol}{}
+\renewcommand*{\googlescholarsocialsymbol}{}
+\renewcommand*{\telegramsocialsymbol}{}
+\renewcommand*{\orcidsocialsymbol}{}
+\renewcommand*{\researchgatesocialsymbol}{}
+\renewcommand*{\researchidsocialsymbol}{}
+\renewcommand*{\bitbucketsocialsymbol}{}
+\renewcommand*{\skypesocialsymbol} {%
+ \protect\raisebox{-0.15em}{%
+ \protect\begin{tikzpicture}[y=0.08em, x=0.08em, xscale=0.020, yscale=-0.020, inner sep=0pt, outer sep=0pt]
+ \protect\begin{scope}[shift={(507,387)}]
+ \protect\path[fill=color2,even odd rule]
+ (487.6550,288.9690) .. controls (489.0610,278.5690) and (489.8700,267.9960) ..
+ (489.8700,257.2330) .. controls (489.8700,128.0770) and (384.5990,23.3610) ..
+ (254.7670,23.3610) .. controls (241.8630,23.3610) and (229.2120,24.4210) ..
+ (216.9010,26.4410) .. controls (194.8280,12.0570) and (168.5590,3.6740) ..
+ (140.2880,3.6740) .. controls (62.7660,3.6740) and (0.0000,66.4820) ..
+ (0.0000,143.9800) .. controls (0.0000,172.1780) and (8.2990,198.3740) ..
+ (22.5900,220.3690) .. controls (20.6650,232.3860) and (19.6810,244.6920) ..
+ (19.6810,257.2290) .. controls (19.6810,386.4050) and (124.8980,491.1100) ..
+ (254.7660,491.1100) .. controls (269.4230,491.1100) and (283.6930,489.6840) ..
+ (297.5620,487.1780) .. controls (319.1120,500.5470) and (344.4960,508.3260) ..
+ (371.7080,508.3260) .. controls (449.2100,508.3260) and (512.0010,445.5020) ..
+ (512.0010,368.0120) .. controls (511.9980,338.7190) and (503.0410,311.4840) ..
+ (487.6550,288.9690) -- cycle(276.7400,429.5960) .. controls (202.0340,433.4870) and (167.0750,416.9590) .. (135.0500,386.9050) .. controls (99.2850,353.3370) and (113.6520,315.0500) ..
+ (142.7900,313.1040) .. controls (171.9120,311.1590) and (189.3980,346.1160) ..
+ (204.9410,355.8400) .. controls (220.4650,365.5280) and (279.5340,387.6000) ..
+ (310.7350,351.9320) .. controls (344.7100,313.1040) and (288.1410,293.0120) ..
+ (246.6760,286.9300) .. controls (187.4730,278.1640) and (112.7260,246.1370) ..
+ (118.5410,183.0230) .. controls (124.3580,119.9490) and (172.1230,87.6090) ..
+ (222.3910,83.0470) .. controls (286.4680,77.2300) and (328.1820,92.7540) ..
+ (361.1760,120.9070) .. controls (399.3270,153.4360) and (378.6840,189.8010) ..
+ (354.3770,192.7270) .. controls (330.1660,195.6360) and (302.9730,139.2230) ..
+ (249.5860,138.3750) .. controls (194.5590,137.5110) and (157.3690,195.6360) ..
+ (225.3000,212.1590) .. controls (293.2660,228.6640) and (366.0500,235.4450) ..
+ (392.2610,297.5760) .. controls (418.4900,359.7130) and (351.5070,425.7010) ..
+ (276.7400,429.5960) -- cycle;
+ \protect\end{scope}%
+ \protect\end{tikzpicture}}%
+ ~}
\endinput
diff --git a/macros/latex/contrib/moderncv/moderncvskillmatrix.sty b/macros/latex/contrib/moderncv/moderncvskillmatrix.sty
new file mode 100644
index 0000000000..d339f35473
--- /dev/null
+++ b/macros/latex/contrib/moderncv/moderncvskillmatrix.sty
@@ -0,0 +1,1051 @@
+%% start of file `moderncvskillmatrix.sty'.
+%% Copyright 2021 David Seus (cryptointerest@posteo.de).
+%
+% This package provides a skill matrix template for the moderncv package.
+% Some recruiting firms require applicants to rate their skills, computer
+% skills, management tools, or similar in a table involving a graphical
+% illustration of their skill level. This package implements this idea
+% and provides the following commands to use within the moderncv
+% package:
+%
+%
+% PUBLIC COMMANDS
+% \cvskill{<1-5>}
+% Illustrate skill level with little colored boxes.
+% By default five skill levels are predefined.
+%
+% Input:
+% input_1: integer between 0 and 5
+%
+% Example usages:
+% \cvskill{3}
+%
+%
+% \cvskilllegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
+% Print legend table explaining the meaning of \cvskill{1}...\cvskill{5}.
+%
+% Input:
+% asterix (optional): include vertical (dashed) lines. This behaviour depends on the body style.
+% For the fancy style, the asterix has no meaning.
+% input_1 (optional): padding length appended to the legend, default: <0.25em>
+% input_2 (optional): string describing meaning of \cvskill{1}, default: <basic knowledge>
+% input_3 (optional): string describing meaning of \cvskill{2}, default: <intermediate knowledge with some project experience>
+% input_4 (optional): string describing meaning of \cvskill{3}, default: <extensive project experience>
+% input_5 (optional): string describing meaning of \cvskill{4}, default: <deepened expert knowledge>
+% input_6 (optional): string describing meaning of \cvskill{5}, default: <expert/guru>
+% input_7: string giving a name to the legend, default: <>
+%
+% Example usages:
+% \cvskilllegend{} print default legend
+% \cvskilllegend[0.5em]{Legend} print default legend, but adjust post padding and display the word ``Legend''.
+% \cvskilllegend*[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legende} Fully adjust legend to German example and including dashed lines
+%
+% Note:
+% -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns
+% -The design of the table is such that the <second_level> entry stands in the first column but
+% occupies rows two and three. This has been done to accomodate english and german defaults.
+% An alternative is provided by \cvskillplainlegend
+%
+%
+% \cvskillplainlegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
+% Print alternative legend table explaining the meaning of \cvskill{1}...\cvskill{5}.
+% In this legend, the first three skill levels are in one column
+%
+% Input:
+% asterix (optional): include vertical (dashed) lines. This behaviour depends on the body style.
+% For the fancy style, the asterix has no meaning.
+% input_1 (optional): padding length appended to the legend, default: <0.25em>
+% input_2 (optional): string describing meaning of \cvskill{1}, default: <basic knowledge>
+% input_3 (optional): string describing meaning of \cvskill{2}, default: <intermediate knowledge with some project experience>
+% input_4 (optional): string describing meaning of \cvskill{3}, default: <extensive project experience>
+% input_5 (optional): string describing meaning of \cvskill{4}, default: <deepened expert knowledge>
+% input_6 (optional): string describing meaning of \cvskill{5}, default: <expert/guru>
+% input_7: string giving a name to the legend, default: <>
+%
+% Example usages:
+% \cvskillplainlegend{} print default legend
+% \cvskillplainlegend[0.5em]{Legend} print default legend, but adjust post padding and display the word ``Legend''.
+% \cvskillplainlegend*[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legende} Fully adjust legend to German example and including dashed lines
+%
+% Note:
+% -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns
+%
+%
+% \cvskillhead[<post_padding>][<Level>][<Skill>][<Years>][<Comment>]%
+% add skill matrix line acting as header explaining the meaning of columns.
+%
+% Input:
+% input_1 (optional): padding length appended to the legend, default: <0.25em>
+% input_2 (optional): string naming the level column (2nd column), default: <Level>
+% input_3 (optional): string naming the skill column (3nd column), default: <Skill>
+% input_4 (optional): string naming the experience-in-years column (4th column), default: <Years>
+% input_5 (optional): string naming the comment column (5th column), default: <Comment>
+%
+% Example usages:
+% \cvskillhead print default head.
+% \cvskillhead[0.5em] print default head, but adjust post padding.
+% \cvskillhead[0.25em][Level][F\"ahigkeit][Jahre][Bemerkung] Fully adjust head to German example
+%
+% Note:
+% - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns.
+%
+%
+% \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<0-5>}{<skill_name>}{<years_of_experience>}{<comment>}%
+% add cvskill matrix row.
+%
+% Input:
+% asterix (optional): include horizontal (dashed) line above the entered line. This behaviour depends on the body style.
+% For the fancy style, the asterix has no meaning.
+% input_1 (optional): padding length appended to the legend, default: <0.25em>
+% input_2: string, naming skill cathegory, default: <>
+% input_3: integer between 0 and 5, describing level of skill. \cvskill{input_2} is called internally, default: <>
+% input_4: string, naming the skill, default: <>
+% input_5: positive real number, stating the number of years of experience with this skill , default: <>
+% input_6: string, explaining details w.r.t. that particual skill default: <>
+%
+% Example usages:
+% \cvskillentry*{Language:}{3}{Python}{2}{I have done a million projects with Python}
+% \cvskillentry{}{2}{Lilypond}{14}{So much sheet music! Man I'm the best!}
+% \cvskillentry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX}
+% \cvskillentry*[1.5em]{OS:}{3}{Linux}{2}{I only use Archlinux}
+%
+% Note:
+% - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns.
+%
+%
+% \setcvskillcolumns[<width>][<factor>][<exp_width>]
+% adjust column width of skill table
+%
+% The \cvskillentry command comes with default FIXED width definitions of the kill matrix for the columns
+% based on the author's own skill matrix. This is necessary to ensure that the entries are nicely aligned
+% and actually yield a decent looking table. The defaults depend on the style used and are chosen reasonably.
+% However, depending on the user input and the style that is used some of the columns might need adjustments.
+% The \setcvskillcolumns command provides means to influence the width of the first, the third and the fourth
+% skill matrix column. The second column containg the output of \cvskill remains fixed width. The last column,
+% the comment column gets recalculated according to the setting of the other columns.
+%
+% Input
+% Input_1 (optional): width smaller than \textwidth, default <\skillmatrix@hintscolumnwidth>
+% Input_2 (optional): float between 0 and 1 adjusting how much percent of the table width without
+% the first column is used columns two, three and four. Through this parameter
+% the width of the 3rd column (skill name) can be adjusted, default <\skillmatrix@columnwidth>
+% Input_3 (optional): width smaller than \textwidth, setting the width of the 4th column
+% (Years of experience), default <\cvskill@experiencewidth>
+%
+% Example usage
+% \setcvskillcolumns[5em][][]% adjust first column. Same as \setcvskillcolumns[5em]
+% \setcvskillcolumns[][0.45][]% adjust third (skill) column. Same as \setcvskillcolumns[][0.45]
+% \setcvskillcolumns[][][\widthof{``Year''}]% adjust fourth (years) column.
+% \setcvskillcolumns[\widthof{``Language''}][0.48][]% adjust 1st and 3rd columns. Same as \setcvskillcolumns[\widthof{``Language''}][0.45]
+% \setcvskillcolumns[\widthof{``Management Tools''}][0.6][3em]% ajust all at once.
+%
+% Note
+% - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that
+% it aligns with the rest of the entries. A readjustment of the first column should therefor
+% be avoided. It is recomended to only use \setcvskillcolumns in the form of
+% \setcvskillcolumns[][<factor>][<width>], thereby leaving the defaults in place for the first column.
+%
+%
+% \setcvskilllegendcolumns[<width>][<factor>]
+% adjust column width of legend
+%
+% The \cvskilllegend command comes with default FIXED width definitions for the columns of the legend matrix
+% such that the default english and german examples look good.
+% However, depending on the user input (translation) and the style that is used some adjustment might be needed.
+% The \setcvskilllegendcolumns command provides means to influence all columns except the ones containing
+% \cvskill commands. The second column containg the output of \cvskill remains fixed width. The last column,
+% the comment column gets recalculated according to the setting of the other columns.
+%
+% Input
+% Input_1 (optional): length smaller than \textwidth influencing the width of the first column
+% where depending on the style the legend_string gets printed. In case the
+% string is left empty adjusting this width allows moving the legend horizontally.
+% Default <\skilllegend@hintscolumnwidth>
+% Input_2 (optional): float between 0 and 1 influencing the width of the left legend descritor column,
+% aka \cvskilllegend@leftdescriptorwidth. The desriptor column on the right,
+% \cvskilllegend@rightdescriptorwidth is influenced by the factor 1-<factor>.
+% Default <\skilllegend@leftdesriptorfactor>
+%
+% Example usage
+% \setcvskilllegendcolumns[][0.45]%% adjust left desriptor column.
+% \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]% adjust both left descriptor column and string column
+%
+% Note
+% - Due to implementation of \cvskilllegend for style 'fancy' (moderncvbodyv)
+% the first optional variable has no effect in this case.
+% - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that
+% it aligns with the rest of the entries. A readjustment of the first column should therefor
+% be avoided. It is recomended to only use \cvskilllegend in the form of
+% \cvskilllegend[][<factor>], thereby leaving the defaults in place for the first column.
+% - For style 'banking' the first column is set to align with the rest of the \cvskillentry entries
+% Therefor adjusting the first column can be used to widen the table while moving it around. If no
+% legend string is used, setting \cvskilllegend[0em] maximises the real enstate for the legend.
+%
+%
+% PRIVATE COMMANDS
+%
+% \recompute@cvskillmatrix@lengths
+% compute all lengths necessary for the skill matrix depending on
+% the moderncv style (moderncvbody)
+%
+% Input: none
+%
+% Example usage (only internally in moderncvbody<i-v>.sty)
+% \recompute@cvskillmatrix@lengths
+%
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License version 1.3c,
+% available at http://www.latex-project.org/lppl/.
+
+
+%-------------------------------------------------------------------------------
+% identification
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{moderncvskillmatrix}[2021/01/21 v2.1.0 modern curriculum vitae and letter skill matrix]
+
+% The definitions need to be adjusted depending on which moderncvbody<i-v>.sty style is usde.
+% body type options: "moderncvbodyi" (default), "moderncvbodyii", "moderncvbodyiii", "moderncvbodyiv" or "moderncvbodyv"
+\@initializeif{\if@moderncvbodyi}\@moderncvbodyifalse
+\DeclareOption{moderncvbodyi}{\@moderncvbodyitrue\@moderncvbodyiifalse\@moderncvbodyiiifalse\@moderncvbodyivfalse\@moderncvbodyvfalse}
+\@initializeif{\if@moderncvbodyii}\@moderncvbodyiifalse % this option is added in case moderncvbodyii gets implemented standalone
+\DeclareOption{moderncvbodyii}{\@moderncvbodyifalse\@moderncvbodyiitrue\@moderncvbodyiiifalse\@moderncvbodyivfalse\@moderncvbodyvfalse}
+\@initializeif{\if@moderncvbodyiii}\@moderncvbodyiiifalse
+\DeclareOption{moderncvbodyiii}{\@moderncvbodyifalse\@moderncvbodyiifalse\@moderncvbodyiiitrue\@moderncvbodyivfalse\@moderncvbodyvfalse}
+\@initializeif{\if@moderncvbodyiv}\@moderncvbodyivfalse
+\DeclareOption{moderncvbodyiv}{\@moderncvbodyifalse\@moderncvbodyiifalse\@moderncvbodyiiifalse\@moderncvbodyivtrue\@moderncvbodyvfalse}
+\@initializeif{\if@moderncvbodyv}\@moderncvbodyvfalse
+\DeclareOption{moderncvbodyv}{\@moderncvbodyifalse\@moderncvbodyiifalse\@moderncvbodyiiifalse\@moderncvbodyivfalse\@moderncvbodyvtrue}
+
+\DeclareOption*{}% avoid choking on unknown options
+\ExecuteOptions{moderncvbodyi}
+\ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package
+
+%-------------------------------------------------------------------------------
+% required packages
+%-------------------------------------------------------------------------------
+\RequirePackage{tikz}
+\RequirePackage{multirow}
+% package arydshln is needed for the dashed lines but is incompatible with fancy style
+\if@moderncvbodyv%
+% \RequirePackage{arydshln} % incompatible with fancy style
+\else%
+ \RequirePackage{arydshln} % incompatible with fancy style
+\fi
+
+% %-------------------------------------------------------------------------------
+% % \cvskill command
+% %-------------------------------------------------------------------------------
+% The code for the Skilllevel illustration with the little boxes.
+% This is idea stolen from the limecv package, see https://github.com/opieters/limecv.git
+\@initializelength{\cvSkill@RectangleSize}
+\setlength{\cvSkill@RectangleSize}{1.2ex}
+\newcount\my@repeat@count
+\DeclareDocumentCommand{\cvskill}{m}{%
+% Illustrate skill level with little colored boxes.
+% By default five skill levels are predefined.
+%
+% Input:
+% integer between 0 and 5
+% Example usage:
+% \cvskill{3}
+ \begingroup
+ \my@repeat@count=\z@
+ \@whilenum\my@repeat@count<#1\do{\tikz\filldraw[color1] (0, 0) rectangle (\cvSkill@RectangleSize, \cvSkill@RectangleSize);\advance%
+ \my@repeat@count\@ne\,}%
+ \my@repeat@count=\numexpr5-\z@\relax
+ \@whilenum\my@repeat@count>#1\do{\tikz\filldraw[color2!30] (0, 0) rectangle (\cvSkill@RectangleSize, \cvSkill@RectangleSize);\advance%
+ \my@repeat@count\m@ne\,}%
+ \endgroup
+}% end \cvskill
+
+% %-------------------------------------------------------------------------------
+% % \recompute@cvskillmatrix@lengths
+% %-------------------------------------------------------------------------------
+
+% initialise lengths needed for the skillmatrix
+\@initializelength{\cvskill@width}
+\@initializelength{\cvskill@descriptorwidth}
+\@initializelength{\cvskill@experiencewidth}
+\@initializelength{\skillmatrix@columnwidth}
+\@initializelength{\skillmatrix@commentwidth}
+\@initializelength{\skillmatrix@padding}
+\@initializelength{\skillmatrix@hintscolumnwidth}
+\@initializelength{\skillmatrix@bodylength}
+\@initializelength{\cvskilllegend@leftdescriptorwidth}
+\@initializelength{\cvskilllegend@rightdescriptorwidth}
+\@initializelength{\skilllegend@hintscolumnwidth}
+\@initializelength{\skilllegend@padding}
+\@initializelength{\skilllegend@bodylength}
+
+% \separatorrulewidth is defined in moderncvbodyv.sty and we need to
+% define it to not throw an error in the other cases
+\if@moderncvbodyv%
+%
+\else%
+ \@initializelength{\separatorrulewidth}
+ \setlength{\separatorrulewidth}{1ex}
+\fi
+
+\DeclareDocumentCommand{\skilllegend@leftdesriptorfactor}{}{}%
+%% DEFINITION \recompute@cvskillmatrix@lengths
+% declare the command \recompute@cvskillmatrix@lengths empty
+\DeclareDocumentCommand{\recompute@cvskillmatrix@lengths}{}{}%
+% compute all lengths necessary for the skill matrix depending on
+% the moderncv style (moderncvbody)
+%
+% Input: none
+%
+% Example usage (only internally in moderncvbody<i-v>.sty)
+% \recompute@cvskillmatrix@lengths
+
+% Definition of \recompute@cvskillmatrix@lengths for moderncvbodyi
+\if@moderncvbodyi%
+ \RenewDocumentCommand{\recompute@cvskillmatrix@lengths}{}{%
+ \setlength{\skillmatrix@padding}{1ex}%
+ \setlength{\skillmatrix@hintscolumnwidth}{\hintscolumnwidth}%
+ \setlength{\cvskill@width}{\widthof{\cvskill{5}}}%
+ \setlength{\cvskill@experiencewidth}{\widthof{``Year''}}%
+ \setlength{\skillmatrix@bodylength}{\maincolumnwidth}%
+ \setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}%
+ \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
+ \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
+ % lengths and definitions needed for the legends
+ % note that \skillmatrix@padding also affects the appearance of legends
+ \setlength{\skilllegend@padding}{0.25ex}%
+ \setlength{\skilllegend@hintscolumnwidth}{\hintscolumnwidth}%
+ \setlength{\skilllegend@bodylength}{\skillmatrix@bodylength}%
+ \RenewDocumentCommand{\skilllegend@leftdesriptorfactor}{}{0.5}%
+ }
+\fi
+% Definition of \recompute@cvskillmatrix@lengths for moderncvbodyiii
+\if@moderncvbodyiii%
+ \RenewDocumentCommand{\recompute@cvskillmatrix@lengths}{}{%
+ \setlength{\skillmatrix@padding}{1ex}%
+ \setlength{\separatorcolumnwidth}{\skillmatrix@padding}%
+ \setlength{\skillmatrix@hintscolumnwidth}{\widthof{``Language''}}%
+ \setlength{\cvskill@width}{\widthof{\cvskill{5}}}%
+ \setlength{\cvskill@experiencewidth}{\widthof{``Year''}}%
+ \setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\separatorcolumnwidth}%
+ \setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}%
+ \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
+ \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
+ % lengths and definitions needed for the legends
+ % note that \skillmatrix@padding also affects the appearance of legends
+ \setlength{\skilllegend@padding}{0.25ex}%
+ \setlength{\skilllegend@hintscolumnwidth}{\skillmatrix@hintscolumnwidth}%
+ \setlength{\skilllegend@bodylength}{\skillmatrix@bodylength}%
+ \RenewDocumentCommand{\skilllegend@leftdesriptorfactor}{}{0.5}%
+ }
+\fi
+% Definition of \recompute@cvskillmatrix@lengths for moderncvbodyiv
+\if@moderncvbodyiv%
+ \RenewDocumentCommand{\recompute@cvskillmatrix@lengths}{}{%
+ \setlength{\skillmatrix@padding}{1ex}
+ \setlength{\separatorcolumnwidth}{\skillmatrix@padding}
+ \setlength{\skillmatrix@hintscolumnwidth}{\widthof{``Languagi''}}
+ \setlength{\cvskill@width}{\widthof{\cvskill{5}}}
+ \setlength{\cvskill@experiencewidth}{\widthof{``Year''}}
+ \setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\separatorcolumnwidth}
+ \setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}%
+ \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}
+ \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
+ % lengths and definitions needed for the legends
+ % note that \skillmatrix@padding also affects the appearance of legends
+ \setlength{\skilllegend@padding}{0.25ex}
+ \setlength{\skilllegend@hintscolumnwidth}{0ex}%\skillmatrix@hintscolumnwidth
+ \setlength{\skilllegend@bodylength}{\maincolumnwidth}
+ \RenewDocumentCommand{\skilllegend@leftdesriptorfactor}{}{0.45}%
+ }
+\fi
+% Definition of \recompute@cvskillmatrix@lengths for moderncvbodyv
+\if@moderncvbodyv%
+ \RenewDocumentCommand{\recompute@cvskillmatrix@lengths}{}{%
+ \setlength{\skillmatrix@padding}{1ex}%
+ \setlength{\skillmatrix@hintscolumnwidth}{\widthof{``Languages''}}%
+ \setlength{\cvskill@width}{\widthof{\cvskill{5}}}%
+ \setlength{\cvskill@experiencewidth}{\widthof{``Year''}}%
+ \setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\skillmatrix@padding}%\skillmatrix@hintscolumnwidth
+ \setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}%
+ \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
+ \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
+ % lengths and definitions needed for the legends
+ % note that \skillmatrix@padding also affects the appearance of legends
+ \setlength{\skilllegend@padding}{0.25ex}%
+ \setlength{\skilllegend@hintscolumnwidth}{\skillmatrix@hintscolumnwidth}%
+ \setlength{\skilllegend@bodylength}{\maincolumnwidth}%
+ \RenewDocumentCommand{\skilllegend@leftdesriptorfactor}{}{0.48}%
+ }%
+\fi
+
+% %-------------------------------------------------------------------------------
+% % \setcvskillcolumns and \setcvskilllegendcolumns
+% %-------------------------------------------------------------------------------
+% \setcvskillcolumns[<width>][<factor>][<exp_width>]
+\DeclareDocumentCommand{\setcvskillcolumns}{+O{\skillmatrix@hintscolumnwidth} +O{\skillmatrix@columnwidth} +O{\cvskill@experiencewidth}}{%
+% adjust column width of skill table
+%
+% The \cvskillentry command comes with default FIXED width definitions of the kill matrix for the columns
+% based on the author's own skill matrix. This is necessary to ensure that the entries are nicely aligned
+% and actually yield a decent looking table. The defaults depend on the style used and are chosen reasonably.
+% However, depending on the user input and the style that is used some of the columns might need adjustments.
+% The \setcvskillcolumns command provides means to influence the width of the first, the third and the fourth
+% skill matrix column. The second column containg the output of \cvskill remains fixed width. The last column,
+% the comment column gets recalculated according to the setting of the other columns.
+%
+% Input
+% Input_1 (optional): width smaller than \textwidth, default <\skillmatrix@hintscolumnwidth>
+% Input_2 (optional): float between 0 and 1 adjusting how much percent of the table width without
+% the first column is used columns two, three and four. Through this parameter
+% the width of the 3rd column (skill name) can be adjusted, default <\skillmatrix@columnwidth>
+% Input_3 (optional): width smaller than \textwidth, setting the width of the 4th column
+% (Years of experience), default <\cvskill@experiencewidth>
+%
+% Example usage
+% \setcvskillcolumns[5em][][]% adjust first column. Same as \setcvskillcolumns[5em]
+% \setcvskillcolumns[][0.45][]% adjust third (skill) column. Same as \setcvskillcolumns[][0.45]
+% \setcvskillcolumns[][][\widthof{``Year''}]% adjust fourth (years) column.
+% \setcvskillcolumns[\widthof{``Language''}][0.48][]% adjust 1st and 3rd columns. Same as \setcvskillcolumns[\widthof{``Language''}][0.45]
+% \setcvskillcolumns[\widthof{``Management Tools''}][0.6][3em]% ajust all at once.
+%
+% Note
+% - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that
+% it aligns with the rest of the entries. A readjustment of the first column should therefor
+% be avoided. It is recomended to only use \setcvskillcolumns in the form of
+% \setcvskillcolumns[][<factor>][<width>], thereby leaving the defaults in place for the first column.
+%
+ \def\arg@new@hintscolumnwidth{#1}% <-- all these terminal % signs are necessary for the fancy style to not show weird spaces!!!
+ \def\arg@new@bodyLengthFactor{#2}%
+ \def\arg@new@experienceWidth{#3}%
+ % Check for empty arguments. Defaults are given. Thus a call of \setcvskillcolumns
+ % without any arguments leads to nonempty arguments \arg@new@hintscolumnwidth and
+ % \def\arg@new@bodyLengthFactor{#2}. However, we need to take care of calls like
+ % \setcvskillcolumns[], \setcvskillcolumns[][], \setcvskillcolumns[][][] or even
+ % \setcvskillcolumns[<somelength>][], \setcvskillcolumns[][<somefactor>] \setcvskillcolumns[][][<length>]
+ \ifdefempty{\arg@new@hintscolumnwidth}{%
+ % Case \setcvskillcolumns[], \setcvskillcolumns[][] or \setcvskillcolumns[][<somefactor>]
+ \ifdefempty{\arg@new@bodyLengthFactor}{%
+ % Case \setcvskillcolumns[][] do nothing here and check if third argument is empty
+ \ifdefempty{\arg@new@experienceWidth}{%
+ % Case \setcvskillcolumns[][][] do nothing here
+ }{%
+ % Case \setcvskillcolumns[][][<length>]. reset \cvskill@experiencewidth and
+ % \cvskill@descriptorwidth accordingly
+ \setlength{\cvskill@experiencewidth}{\arg@new@experienceWidth}%
+ \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
+ }%
+ }{%
+ % Case \setcvskillcolumns[][<somefactor>], \setcvskillcolumns[][<somefactor>][<possilly length>]
+ \setlength{\skillmatrix@columnwidth}{\arg@new@bodyLengthFactor\skillmatrix@bodylength}%
+ \ifdefempty{\arg@new@experienceWidth}{%
+ % Case \setcvskillcolumns[][<somefactor>][] do nothing here
+ }{%
+ % Case \setcvskillcolumns[][<somefactor>][<length>]. reset \cvskill@experiencewidth and
+ % \cvskill@descriptorwidth accordingly
+ \setlength{\cvskill@experiencewidth}{\arg@new@experienceWidth}%
+ \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
+ }%
+ \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
+ \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
+ }%
+ % Case \setcvskillcolumns[] nothing needs to be done here recalculate lengths affected by the change
+ }{%
+ % Case \setcvskillcolumns, \setcvskillcolumns[<width>], \setcvskillcolumns[<width>][]
+ % or \setcvskillcolumns[<width>][<somefactor>]
+ \setlength{\skillmatrix@hintscolumnwidth}{\arg@new@hintscolumnwidth}%
+ \setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\separatorcolumnwidth}%
+ % in case second argument is given but left empty use default
+ \ifdefempty{\arg@new@bodyLengthFactor}{%
+ % Case \setcvskillcolumns[<width>][] do nothing here and use default
+ % \skillmatrix@columnwidth and check third argument
+ \ifdefempty{\arg@new@experienceWidth}{%
+ % Case \setcvskillcolumns[<width>][][] do nothing here
+ }{%
+ % Case \setcvskillcolumns[<width>][][<length>]. reset \cvskill@experiencewidth and
+ % \cvskill@descriptorwidth accordingly
+ \setlength{\cvskill@experiencewidth}{\arg@new@experienceWidth}%
+% \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
+ }%
+ }{%
+ % Case \setcvskillcolumns, \setcvskillcolumns[<width>], \setcvskillcolumns[<width>][<somefactor>]
+ \setlength{\skillmatrix@columnwidth}{\arg@new@bodyLengthFactor\skillmatrix@bodylength}%
+ \ifdefempty{\arg@new@experienceWidth}{%
+ % Case \setcvskillcolumns[<width>][<somefactor>][] do nothing here
+ }{%
+ % Case \setcvskillcolumns[<width>][<somefactor>][<length>]. reset \cvskill@experiencewidth and
+ % \cvskill@descriptorwidth accordingly
+ \setlength{\cvskill@experiencewidth}{\arg@new@experienceWidth}%
+% \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
+ }%
+ }%
+ \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
+ \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
+ }%
+}%
+%
+% \setcvskilllegendcolumns[<width>][<factor>]
+\DeclareDocumentCommand{\setcvskilllegendcolumns}{+O{\skilllegend@hintscolumnwidth} +O{\skilllegend@leftdesriptorfactor}}{%
+% adjust column width of legend
+%
+% The \cvskilllegend command comes with default FIXED width definitions for the columns of the legend matrix
+% such that the default english and german examples look good.
+% However, depending on the user input (translation) and the style that is used some adjustment might be needed.
+% The \setcvskilllegendcolumns command provides means to influence all columns except the ones containing
+% \cvskill commands. The second column containg the output of \cvskill remains fixed width. The last column,
+% the comment column gets recalculated according to the setting of the other columns.
+%
+% Input
+% Input_1 (optional): length smaller than \textwidth influencing the width of the first column
+% where depending on the style the legend_string gets printed. In case the
+% string is left empty adjusting this width allows moving the legend horizontally.
+% Default <\skilllegend@hintscolumnwidth>
+% Input_2 (optional): float between 0 and 1 influencing the width of the left legend descritor column,
+% aka \cvskilllegend@leftdescriptorwidth. The desriptor column on the right,
+% \cvskilllegend@rightdescriptorwidth is influenced by the factor 1-<factor>.
+% Default <\skilllegend@leftdesriptorfactor>
+%
+% Example usage
+% \setcvskilllegendcolumns[][0.45]%% adjust left desriptor column.
+% \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]% adjust both left descriptor column and string column
+%
+% Note
+% - Due to implementation of \cvskilllegend for style 'fancy' (moderncvbodyv)
+% the first optional variable has no effect in this case.
+% - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that
+% it aligns with the rest of the entries. A readjustment of the first column should therefor
+% be avoided. It is recomended to only use \cvskilllegend in the form of
+% \cvskilllegend[][<factor>], thereby leaving the defaults in place for the first column.
+% - For style 'banking' the first column is set to align with the rest of the \cvskillentry entries
+% Therefor adjusting the first column can be used to widen the table while moving it around. If no
+% legend string is used, setting \cvskilllegend[0em] maximises the real enstate for the legend.
+%
+ \def\arg@new@legend@hintscolumnwidth{#1}%
+ \def\arg@new@legend@leftDescriptorFactor{#2}%
+ % Check for empty arguments. See explanation above
+ \ifdefempty{\arg@new@legend@hintscolumnwidth}{%
+ % Case \setcvskilllegendcolumns[], \setcvskilllegendcolumns[][] or \setcvskilllegendcolumns[][<somefactor>]
+ \ifdefempty{\arg@new@legend@leftDescriptorFactor}{%
+% % Case \setcvskilllegendcolumns[][] do nothing here, i.e. leave default values unaltered
+ }{%
+ % Case \setcvskilllegendcolumns[][<somefactor>], \setcvskilllegendcolumns[][<somefactor>]
+ \RenewDocumentCommand{\skilllegend@leftdesriptorfactor}{}{\arg@new@legend@leftDescriptorFactor}%
+ }%
+% % Case \setcvskilllegendcolumns[] nothing needs to be done here i.e. leave default values unaltered
+ }{%
+ % Case \setcvskilllegendcolumns, \setcvskilllegendcolumns[<width>], \setcvskilllegendcolumns[<width>][]
+ % or \setcvskilllegendcolumns[<width>][<somefactor>]
+ \setlength{\skilllegend@hintscolumnwidth}{\arg@new@legend@hintscolumnwidth}%
+ \if@moderncvbodyi%
+ \setlength{\skilllegend@bodylength}{\textwidth-\skilllegend@hintscolumnwidth-\separatorcolumnwidth}%
+ \fi%
+ \if@moderncvbodyiii%
+ \setlength{\skilllegend@bodylength}{\textwidth-\skilllegend@hintscolumnwidth-\separatorcolumnwidth}%
+ \fi%
+ \if@moderncvbodyiv%
+ \setlength{\skilllegend@bodylength}{\maincolumnwidth-\skilllegend@hintscolumnwidth-\separatorcolumnwidth}%
+ \fi%
+ % in case second argument is given but left empty use default
+ \ifdefempty{\arg@new@legend@leftDescriptorFactor}{%
+ % Case \setcvskilllegendcolumns[<width>][] do nothing here and leave default values unaltered
+ }{%
+ % Case \setcvskilllegendcolumns, \setcvskilllegendcolumns[<width>], \setcvskilllegendcolumns[<width>][<somefactor>]
+ \RenewDocumentCommand{\skilllegend@leftdesriptorfactor}{}{\arg@new@legend@leftDescriptorFactor}%
+ }%
+ }%
+}%
+%
+% %-------------------------------------------------------------------------------
+% % \cvskilllegend
+% %-------------------------------------------------------------------------------
+% default legend style
+% \cvskilllegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
+\NewDocumentCommand\skillLegend@FontSize{}{\scriptsize}
+\DeclareDocumentCommand\cvskilllegend{s +O{} +O{} +O{} +O{} +O{} +O{} +m}{}%
+% Print legend table explaining the meaning of \cvskill{1}...\cvskill{5}.
+%
+% Input:
+% asterix (optional): include vertical (dashed) lines. This behaviour depends on the body style.
+% For the fancy style, the asterix has no meaning.
+% input_1 (optional): padding length appended to the legend, default: <0.25em>
+% input_2 (optional): string describing meaning of \cvskill{1}, default: <basic knowledge>
+% input_3 (optional): string describing meaning of \cvskill{2}, default: <intermediate knowledge with some project experience>
+% input_4 (optional): string describing meaning of \cvskill{3}, default: <extensive project experience>
+% input_5 (optional): string describing meaning of \cvskill{4}, default: <deepened expert knowledge>
+% input_6 (optional): string describing meaning of \cvskill{5}, default: <expert/guru>
+% input_7: string giving a name to the legend, default: <>
+%
+% Example usages:
+% \cvskilllegend{} print default legend
+% \cvskilllegend[0.5em]{Legend} print default legend, but adjust post padding and display the word ``Legend''.
+% \cvskilllegend*[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legende} Fully adjust legend to German example and including dashed lines
+%
+% Note:
+% -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns
+% -The design of the table is such that the <second_level> entry stands in the first column but
+% occupies rows two and three. This has been done to accomodate english and german defaults.
+% An alternative is provided by \cvskillplainlegend
+
+% declare default legend entries
+\NewDocumentCommand\skillLegend@defaultLevelOne{}{basic knowledge}
+\NewDocumentCommand\skillLegend@defaultLevelTwo{}{intermediate knowledge with some project experience}
+\NewDocumentCommand\skillLegend@defaultLevelThree{}{extensive project experience}
+\NewDocumentCommand\skillLegend@defaultLevelFour{}{deepened expert knowledge}
+\NewDocumentCommand\skillLegend@defaultLevelFive{}{expert\,/\,specialist}
+% Redefinition of \cvskilllegend valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii
+\RenewDocumentCommand\cvskilllegend{s +O{.25em} +O{\skillLegend@defaultLevelOne} +O{\skillLegend@defaultLevelTwo} +O{\skillLegend@defaultLevelThree} +O{\skillLegend@defaultLevelFour} +O{\skillLegend@defaultLevelFive} +m}{%
+ \IfBooleanTF#1{% if a star is given, add dashed line
+ \begingroup%
+ \arrayrulecolor{color1}%
+ % calculate descriptor widths
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-3\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-3\skilllegend@padding}%
+ \begin{tabular}{@{}p{\skilllegend@hintscolumnwidth}%
+ @{\hspace{\separatorcolumnwidth}}%
+ p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%%
+ p{2\skilllegend@padding}p{\cvskilllegend@leftdescriptorwidth}@{}@{\hspace{2\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%
+ p{2\skilllegend@padding}%
+ p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \raggedleft\hintstyle{#8} & \cvskill{1}& & {\skillLegend@FontSize #3} & \cvskill{3}& &{\skillLegend@FontSize #5 } \\%
+ %
+ & \cvskill{2} & & \multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4}& & {\skillLegend@FontSize #6 } \\%
+ %
+ & & & & \cvskill{5}& & {\skillLegend@FontSize #7 }%
+ \end{tabular}%
+ \endgroup
+ \par\addvspace{#2}}{%
+ % if no star is given, do not add dashed line. We need less padding in this case
+ \begingroup%
+ % calculate descriptor columns width. note the adjusted padding
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-1\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-1\skilllegend@padding}%
+ \begin{tabular}{@{}p{\skilllegend@hintscolumnwidth}%
+ @{\hspace{\separatorcolumnwidth}}%
+ p{\cvskill@width}@{\hspace{\skilllegend@padding}}%
+ p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{\skilllegend@padding}}%
+ p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \raggedleft\hintstyle{#8} & \cvskill{1}\, & \,{\skillLegend@FontSize #3} & \cvskill{3}\, &\,{\skillLegend@FontSize #5 } \\%
+ %
+ & \cvskill{2}\, & \,\multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4}\, &\,{\skillLegend@FontSize #6 } \\%
+ %
+ & & & \cvskill{5}\, &\,{\skillLegend@FontSize #7 }%
+ \end{tabular}%
+ \endgroup%
+ \par\addvspace{#2}%
+ }%
+}%
+% Redefinition of \cvskilllegend valid for moderncvbodyiv
+\if@moderncvbodyiv%
+ \RenewDocumentCommand\cvskilllegend{s +O{.25em} +O{\skillLegend@defaultLevelOne} +O{\skillLegend@defaultLevelTwo} +O{\skillLegend@defaultLevelThree} +O{\skillLegend@defaultLevelFour} +O{\skillLegend@defaultLevelFive} +m}{%
+ \def\arg@legendString{#8}%
+ \ifdefempty{\arg@legendString}{%
+ }{%
+ \cvitem[0.25em]{\hintstyle{#8}}{}%
+ }%
+ \IfBooleanTF#1{% if a star is given, add dashed line
+ \begingroup%
+ % recalculate desrciptor widths on the fly. Allows for different padding
+ % in the stared and nonstared case
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-4\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-4\skilllegend@padding}%
+ \arrayrulecolor{color1}
+ \begin{tabular}{@{}p{\skilllegend@hintscolumnwidth}
+ @{\hspace{\separatorcolumnwidth}}p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%
+ p{2\skilllegend@padding}%
+ p{\cvskilllegend@leftdescriptorwidth}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%
+ p{2\skilllegend@padding}p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \raggedleft\hintstyle{} & \cvskill{1} & & {\skillLegend@FontSize #3} & \cvskill{3} & & {\skillLegend@FontSize #5 } \\
+ %
+ & \cvskill{2} & & \multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4} & &{\skillLegend@FontSize #6 } \\
+ %
+ & & & & \cvskill{5}& & {\skillLegend@FontSize #7 }
+ \end{tabular}%
+ \endgroup%
+ \par\addvspace{#2}}{
+ \begingroup%
+ % oddly enough, we should only need to subtract 2 paddings in the descritorwidths.
+ % but while testing I got overflow of text into the margin
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-4\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-5\skilllegend@padding}%
+ \begin{tabular}{@{}p{\skilllegend@hintscolumnwidth}
+ @{\hspace{\separatorcolumnwidth}}p{\cvskill@width}@{\hspace{2\skilllegend@padding}}%
+ p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{2\skilllegend@padding}}%
+ p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \raggedleft\hintstyle{} & \cvskill{1} & {\skillLegend@FontSize #3} & \cvskill{3} & {\skillLegend@FontSize #5 } \\
+ %
+ & \cvskill{2} & \multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4} &{\skillLegend@FontSize #6 } \\
+ %
+ & & & \cvskill{5} & {\skillLegend@FontSize #7 }
+ \end{tabular}%
+ \endgroup%
+ \par\addvspace{#2}
+ }
+ }
+\fi
+% Redefinition of \cvskilllegend valid for moderncvbodyv
+\if@moderncvbodyv%
+ \DeclareDocumentCommand\@starIndependentTabular{}{}%
+ \RenewDocumentCommand\cvskilllegend{s +O{.25em} +O{\skillLegend@defaultLevelOne} +O{\skillLegend@defaultLevelTwo} +O{\skillLegend@defaultLevelThree} +O{\skillLegend@defaultLevelFour} +O{\skillLegend@defaultLevelFive} +m}{%
+ % check whether Argument #8 is given and if so provide it as cvitem
+ \def\arg@legendString{#8}%
+ \ifdefempty{\arg@legendString}{%
+ \vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
+ }{%
+ \cvitem[-0.5em]{#8}{}%
+ }%
+ \arrayrulecolor{color1}%
+ \setlength\arrayrulewidth{\separatorrulewidth}%
+ \RenewDocumentCommand{\@starIndependentTabular}{}{%
+ \begingroup%
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-3\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-3\skilllegend@padding}%
+% \renewcommand{\arraystretch}{1.0}%
+ \begin{tabular}[t]{@{}p{\hintscolumnwidth}%\skilllegend@hintscolumnwidth
+ @{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}%
+ p{\cvskill@width}@{\hspace{3\skilllegend@padding}}%
+ p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{3\skilllegend@padding}}%
+ p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \@moderncvstrut{4pt}{16pt} & \cvskill{1}& {\skillLegend@FontSize #3} & \cvskill{3}& {\skillLegend@FontSize #5 }\\%
+ %
+ & \cvskill{2}& \multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4}& {\skillLegend@FontSize #6 }\\%
+ %
+ & & & \cvskill{5} & {\skillLegend@FontSize #7 }\\[#2]% the spacing needs to be inside the cell for the vertical rule to extend correctly
+ \end{tabular}%
+ \endgroup%
+ \par\@aftersectionfalse\ignorespaces%
+ }%
+ % because of this weird style and the position of the parameter [#2], the dashed lines of the other version look bad. So no lines.
+ \IfBooleanTF#1{%
+ \@starIndependentTabular%
+ }{%
+ \@starIndependentTabular%
+ }%
+ }%
+\fi
+
+% %-------------------------------------------------------------------------------
+% % \cvskillplainlegend
+% %-------------------------------------------------------------------------------
+% alternative legend style
+% \cvskillplainlegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
+\DeclareDocumentCommand\cvskillplainlegend{s +O{} +O{} +O{} +O{} +O{} +O{} +m}{}%
+% Print alternative legend table explaining the meaning of \cvskill{1}...\cvskill{5}.
+% In this legend, the first three skill levels are in one column
+%
+% Input:
+% asterix (optional): include vertical (dashed) lines. This behaviour depends on the body style.
+% For the fancy style, the asterix has no meaning.
+% input_1 (optional): padding length appended to the legend, default: <0.25em>
+% input_2 (optional): string describing meaning of \cvskill{1}, default: <basic knowledge>
+% input_3 (optional): string describing meaning of \cvskill{2}, default: <intermediate knowledge with some project experience>
+% input_4 (optional): string describing meaning of \cvskill{3}, default: <extensive project experience>
+% input_5 (optional): string describing meaning of \cvskill{4}, default: <deepened expert knowledge>
+% input_6 (optional): string describing meaning of \cvskill{5}, default: <expert/guru>
+% input_7: string giving a name to the legend, default: <>
+%
+% Example usages:
+% \cvskillplainlegend{} print default legend
+% \cvskillplainlegend[0.5em]{Legend} print default legend, but adjust post padding and display the word ``Legend''.
+% \cvskillplainlegend*[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legende} Fully adjust legend to German example and including dashed lines
+%
+% Note:
+% -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns
+
+% declare default legend entries
+\NewDocumentCommand\skillPlainLegend@defaultLevelOne{}{basic knowlegde}
+\NewDocumentCommand\skillPlainLegend@defaultLevelTwo{}{intermediate knowledge, some project experience}
+\NewDocumentCommand\skillPlainLegend@defaultLevelThree{}{extensive project experience}
+\NewDocumentCommand\skillPlainLegend@defaultLevelFour{}{deepened expert knowledge}
+\NewDocumentCommand\skillPlainLegend@defaultLevelFive{}{expert/guru}
+% Redefinition of \cvskillplainlegend valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii
+\RenewDocumentCommand\cvskillplainlegend{s +O{.25em} +O{\skillPlainLegend@defaultLevelOne} +O{\skillPlainLegend@defaultLevelTwo} +O{\skillPlainLegend@defaultLevelThree} +O{\skillPlainLegend@defaultLevelFour} +O{\skillPlainLegend@defaultLevelFive} +m}{%
+ \IfBooleanTF#1{% if a star is given, add dashed line
+ \begingroup%
+ \arrayrulecolor{color1}%
+ % calculate descriptor widths
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-3\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-3\skilllegend@padding}%
+ \begin{tabular}{@{}p{\skilllegend@hintscolumnwidth}%
+ @{\hspace{\separatorcolumnwidth}}%
+ p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%%
+ p{2\skilllegend@padding}p{\cvskilllegend@leftdescriptorwidth}@{}@{\hspace{2\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%
+ p{2\skilllegend@padding}%
+ p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \raggedleft\hintstyle{#8} & \cvskill{1}& & {\skillLegend@FontSize #3} & \cvskill{4}& &{\skillLegend@FontSize #6} \\%
+ %
+ & \cvskill{2} & & {\skillLegend@FontSize #4} & \cvskill{5}& & {\skillLegend@FontSize #7} \\%
+ %
+ & \cvskill{3} & & {\skillLegend@FontSize #5} & & & %
+ \end{tabular}%
+ \endgroup%
+ \par\addvspace{#2}}{%
+ % if no star is given, do not add dashed line
+ \begingroup%
+ % calculate descriptor widths, note that we use less padding
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-2\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-2\skilllegend@padding}%
+ \begin{tabular}{@{}p{\skilllegend@hintscolumnwidth}%
+ @{\hspace{\separatorcolumnwidth}}%
+ p{\cvskill@width}@{\hspace{2\skilllegend@padding}}%
+ p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{2\skilllegend@padding}}%
+ p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \raggedleft\hintstyle{#8} & \cvskill{1} & {\skillLegend@FontSize #3} & \cvskill{4} &{\skillLegend@FontSize #6} \\%
+ %
+ & \cvskill{2} & {\skillLegend@FontSize #4} & \cvskill{5} &{\skillLegend@FontSize #7} \\%
+ %
+ & \cvskill{3} & {\skillLegend@FontSize #5 } & & %
+ \end{tabular}%
+ \endgroup%
+ \par\addvspace{#2}%
+ }%
+}%
+% Redefinition of \cvskillplainlegend valid for moderncvbodyiv
+\if@moderncvbodyiv%
+ \RenewDocumentCommand\cvskillplainlegend{s +O{.25em} +O{\skillPlainLegend@defaultLevelOne} +O{\skillPlainLegend@defaultLevelTwo} +O{\skillPlainLegend@defaultLevelThree} +O{\skillPlainLegend@defaultLevelFour} +O{\skillPlainLegend@defaultLevelFive} +m}{%
+ \def\arg@legendString{#8}%
+ \ifdefempty{\arg@legendString}{%
+ }{%
+ \cvitem[0.25em]{\hintstyle{#8}}{}%
+ }%
+ \IfBooleanTF#1{% if a star is given, add dashed line
+ \begingroup%
+ \arrayrulecolor{color1}
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-6\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-6\skilllegend@padding}%
+ \begin{tabular}{@{}p{\skilllegend@hintscolumnwidth}
+ @{\hspace{\separatorcolumnwidth}}p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%
+ p{2\skilllegend@padding}%
+ p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%
+ p{2\skilllegend@padding}p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \raggedleft\hintstyle{} & \cvskill{1} & & {\skillLegend@FontSize#3} & \cvskill{4} & & {\skillLegend@FontSize#6}\\%
+ %
+ & \cvskill{2} & &{\skillLegend@FontSize#4} & \cvskill{5} & &{\skillLegend@FontSize#7}\\%
+ %
+ & \cvskill{3} & &{\skillLegend@FontSize#5} & & &%
+ \end{tabular}%
+ \endgroup%
+ \par\addvspace{#2}}{
+ % if no star is given, do not add dashed line
+ \begingroup
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-3\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-4\skilllegend@padding}%
+ \begin{tabular}{@{}p{\skilllegend@hintscolumnwidth}
+ @{\hspace{\separatorcolumnwidth}}p{\cvskill@width}@{\hspace{\skilllegend@padding}}%
+ p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{\skilllegend@padding}}%
+ p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \raggedleft\hintstyle{} & \cvskill{1} & {\skillLegend@FontSize #3} & \cvskill{4} & {\skillLegend@FontSize #6} \\
+ %
+ & \cvskill{2} & {\skillLegend@FontSize #4} & \cvskill{5} & {\skillLegend@FontSize #7} \\
+ %
+ & \cvskill{3} & {\skillLegend@FontSize #5} & & %
+ \end{tabular}%
+ \endgroup
+ \par\addvspace{#2}
+ }
+ }
+\fi
+% Redefinition of \cvskillplainlegend valid for moderncvbodyv
+\if@moderncvbodyv%
+ \RenewDocumentCommand\cvskillplainlegend{s +O{.25em} +O{\skillPlainLegend@defaultLevelOne} +O{\skillPlainLegend@defaultLevelTwo} +O{\skillPlainLegend@defaultLevelThree} +O{\skillPlainLegend@defaultLevelFour} +O{\skillPlainLegend@defaultLevelFive} +m}{%
+ % check whether Argument #8 is given and if so provide it as cvitem
+ \def\arg@legendString{#8}%
+ \ifdefempty{\arg@legendString}{%
+ \vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
+ }{%
+ \cvitem[-0.5em]{#8}{}%
+ }%
+ \arrayrulecolor{color1}%
+ \setlength\arrayrulewidth{\separatorrulewidth}%
+ \RenewDocumentCommand{\@starIndependentTabular}{}{%
+ \begingroup%
+% \renewcommand{\arraystretch}{1.0}%
+ \setlength{\cvskilllegend@leftdescriptorwidth}{\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-2\skilllegend@padding}%
+ \setlength{\cvskilllegend@rightdescriptorwidth}{\skilllegend@bodylength-\skilllegend@leftdesriptorfactor\skilllegend@bodylength-\cvskill@width-\skillmatrix@padding-2\skilllegend@padding}%
+ \begin{tabular}[t]{@{}p{\hintscolumnwidth}%\skilllegend@hintscolumnwidth
+ @{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}%
+ p{\cvskill@width}@{\hspace{2\skilllegend@padding}}%
+ p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{2\skilllegend@padding}}%
+ p{\cvskilllegend@rightdescriptorwidth}@{}}%
+ \@moderncvstrut{4pt}{16pt} & \cvskill{1} & {\skillLegend@FontSize #3} & \cvskill{4} & {\skillLegend@FontSize #6}\\%
+ %
+ & \cvskill{2} & {\skillLegend@FontSize #4} & \cvskill{5} & {\skillLegend@FontSize #7}\\%
+ %
+ & \cvskill{3} & {\skillLegend@FontSize #5} & & \\[#2]% the spacing needs to be inside the cell for the vertical rule to extend correctly
+ \end{tabular}%
+ \endgroup%
+ \par\@aftersectionfalse\ignorespaces%
+ }%
+ % because of this weird style and the position of the parameter [#2], the dashed lines of the other version look bad. So no lines.
+ \IfBooleanTF#1{%
+ \@starIndependentTabular%
+ }{%
+ \@starIndependentTabular%
+ }%
+ }%
+\fi
+
+% %-------------------------------------------------------------------------------
+% % \cvskillhead
+% %-------------------------------------------------------------------------------
+\NewDocumentCommand\cvSkillMatrix@HeadFont{}{\normalfont}
+\DeclareDocumentCommand\cvskillhead{+O{} +O{} +O{} +O{} +O{}}{}%
+% add skill matrix line acting as header explaining the meaning of columns.
+%
+% Input:
+% input_1 (optional): padding length appended to the legend, default: <0.25em>
+% input_2 (optional): string naming the level column (2nd column), default: <Level>
+% input_3 (optional): string naming the skill column (3nd column), default: <Skill>
+% input_4 (optional): string naming the experience-in-years column (4th column), default: <Years>
+% input_5 (optional): string naming the comment column (5th column), default: <Comment>
+%
+% Example usages:
+% \cvskillhead print default head.
+% \cvskillhead[0.5em] print default head, but adjust post padding.
+% \cvskillhead[0.25em][Level][F\"ahigkeit][Jahre][Bemerkung] Fully adjust head to German example
+%
+% Note:
+% - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns.
+
+\NewDocumentCommand\skillMatrix@HeaderDefaultOne{}{Level}
+\NewDocumentCommand\skillMatrix@HeaderDefaultTwo{}{Skill}
+\NewDocumentCommand\skillMatrix@HeaderDefaultThree{}{Years}
+\NewDocumentCommand\skillMatrix@HeaderDefaultFour{}{Comment}
+% Definition of \cvskillhead valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii, moderncvbodyiv
+\RenewDocumentCommand\cvskillhead{O{.25em} +O{\skillMatrix@HeaderDefaultOne} +O{\skillMatrix@HeaderDefaultTwo} +O{\skillMatrix@HeaderDefaultThree} +O{\skillMatrix@HeaderDefaultFour}}{%
+ \begingroup
+ \renewcommand{\arraystretch}{1.25}
+ \arrayrulecolor{color1}
+ \begin{tabular}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}%
+ p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@experiencewidth}@{\hspace{\skillmatrix@padding}}
+ p{\skillmatrix@commentwidth}@{}}%
+ & \centering{\cvSkillMatrix@HeadFont #2} & \centering{\cvSkillMatrix@HeadFont #3} & \centering{\cvSkillMatrix@HeadFont #4} & {\cvSkillMatrix@HeadFont #5}
+ \end{tabular}%
+ \endgroup
+ \par\addvspace{#1}
+}
+% Definition of \cvskillhead valid moderncvbodyv
+\if@moderncvbodyv%
+ \RenewDocumentCommand\cvskillhead{O{.25em} +O{\skillMatrix@HeaderDefaultOne} +O{\skillMatrix@HeaderDefaultTwo} +O{\skillMatrix@HeaderDefaultThree} +O{\skillMatrix@HeaderDefaultFour}}{%
+ \arrayrulecolor{color1}%
+ \setlength\arrayrulewidth{\separatorrulewidth}%
+ \vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
+ \begingroup%
+ % \renewcommand{\arraystretch}{1.25}%
+ \begin{tabular}[t]{@{}p{\hintscolumnwidth}%
+ @{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}%
+ p{\skillmatrix@hintscolumnwidth}%
+ @{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@experiencewidth}@{\hspace{\skillmatrix@padding}}%
+ p{\skillmatrix@commentwidth}@{}}%
+ & & \centering{\cvSkillMatrix@HeadFont#2} & \centering{\cvSkillMatrix@HeadFont#3} & \centering{\cvSkillMatrix@HeadFont#4} & {\cvSkillMatrix@HeadFont#5} \\[#1]% the spacing needs to be inside the cell for the vertical rule to extend correctly
+ \end{tabular}%
+ \endgroup%
+ \par\@aftersectionfalse\ignorespaces%
+ }%
+\fi
+
+% %-------------------------------------------------------------------------------
+% % \cvskillentry
+% %-------------------------------------------------------------------------------
+% \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<0-5>}{<skill_name>}{<years_of_experience>}{<comment>}%
+\DeclareDocumentCommand\cvskillentry{s +O{} +m +m +m +m +m}{}%
+% add cvskill matrix row.
+%
+% Input:
+% asterix (optional): include horizontal (dashed) line above the entered line. This behaviour depends on the body style.
+% For the fancy style, the asterix has no meaning.
+% input_1 (optional): padding length appended to the legend, default: <0.25em>
+% input_2: string, naming skill cathegory, default: <>
+% input_3: integer between 0 and 5, describing level of skill. \cvskill{input_2} is called internally, default: <>
+% input_4: string, naming the skill, default: <>
+% input_5: positive real number, stating the number of years of experience with this skill , default: <>
+% input_6: string, explaining details w.r.t. that particual skill default: <>
+%
+% Example usages:
+% \cvskillentry*{Language:}{3}{Python}{2}{I have done a million projects with Python}
+% \cvskillentry{}{2}{Lilypond}{14}{So much sheet music! Man I'm the best!}
+% \cvskillentry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX}
+% \cvskillentry*[1.5em]{OS:}{3}{Linux}{2}{I only use Archlinux}
+%
+% Note:
+% - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns.
+
+% Definition of \cvskillentry valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii, moderncvbodyiv
+\RenewDocumentCommand\cvskillentry{s +O{.25em} +m +m +m +m +m}{%
+ %test for the star * in the command
+ \IfBooleanTF{#1}{% If a star is seen a dotted line is drawn above the entry
+ \begingroup
+ \renewcommand{\arraystretch}{1.25}
+ \arrayrulecolor{color1}
+ \begin{tabular}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}%
+ p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@experiencewidth} @{\hspace{\skillmatrix@padding}}%
+ p{\skillmatrix@commentwidth}@{}}%
+ \cdashline{2-5}[.6pt/1pt]
+ \raggedleft\hintstyle{#3} &\centering \cvskill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
+ \end{tabular}%
+ \endgroup
+ \par\addvspace{#2}
+ }{% If no star is seen no line is drawn
+ \begin{tabular}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}%
+ p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@experiencewidth}%
+ @{\hspace{\skillmatrix@padding}}%
+ p{\skillmatrix@commentwidth}@{}}%
+ \raggedleft\hintstyle{#3} &\centering \cvskill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
+ \end{tabular}%
+ \par\addvspace{#2}
+ }
+}
+
+% Definition of \cvskillentry valid for moderncvbodyv
+\if@moderncvbodyv%
+ \DeclareDocumentCommand\@starIndependentMatrixEntry{}{}%
+ \RenewDocumentCommand\cvskillentry{s O{.25em} +m +m +m +m +m}{%
+ \arrayrulecolor{color1}%
+ \setlength\arrayrulewidth{\separatorrulewidth}%
+ \vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
+ %test for the star * in the command
+ \RenewDocumentCommand{\@starIndependentMatrixEntry}{}{%
+ \begingroup%
+ \renewcommand{\arraystretch}{1.25}%
+ \begin{tabular}[t]{@{}p{\hintscolumnwidth}%
+ @{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\skillmatrix@hintscolumnwidth}
+ @{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
+ p{\cvskill@experiencewidth} @{\hspace{\skillmatrix@padding}}p{\skillmatrix@commentwidth}@{}}%
+ % \cline{3-6}%
+ & \raggedleft\hintstyle{#3} &\centering \cvskill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}\\[#2]%
+ \end{tabular}%
+ \endgroup%
+ }%
+ \IfBooleanTF{#1}{% the star does not do anything here
+ \@starIndependentMatrixEntry%
+ }{%
+ \@starIndependentMatrixEntry%
+ }%
+ \par\@aftersectionfalse\ignorespaces%
+ }%
+\fi
+%
+\endinput
+
+
+%% end of file `moderncvskillmatrix.sty'.
diff --git a/macros/latex/contrib/moderncv/moderncvstylebanking.sty b/macros/latex/contrib/moderncv/moderncvstylebanking.sty
index 783f9606a4..e9ced7fba1 100644
--- a/macros/latex/contrib/moderncv/moderncvstylebanking.sty
+++ b/macros/latex/contrib/moderncv/moderncvstylebanking.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvstylebanking.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstylebanking}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: banking]
+\ProvidesPackage{moderncvstylebanking}[2021/01/21 v2.1.0 modern curriculum vitae and letter style scheme: banking]
% body rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules"
\@initializecommand{\moderncvstylebodyoptions}{}
@@ -49,7 +49,12 @@
%\fi
% symbols
-\moderncvicons{awesome}
+\RequirePackage{ifxetex}
+\ifxetexorluatex
+ \moderncvicons{awesome}
+\else
+ \moderncvicons{marvosym}
+\fi
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvstylecasual.sty b/macros/latex/contrib/moderncv/moderncvstylecasual.sty
index b50886fe8f..a3eed14091 100644
--- a/macros/latex/contrib/moderncv/moderncvstylecasual.sty
+++ b/macros/latex/contrib/moderncv/moderncvstylecasual.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvstylecasual.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstylecasual}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: casual]
+\ProvidesPackage{moderncvstylecasual}[2021/01/21 v2.1.0 modern curriculum vitae and letter style scheme: casual]
% head section alignment options: "left" (default) or "right"
\@initializecommand{\moderncvstyleheadoptions}{}
@@ -36,7 +36,12 @@
%\fi
% symbols
-\moderncvicons{awesome}
+\RequirePackage{ifxetex}
+\ifxetexorluatex
+ \moderncvicons{awesome}
+\else
+ \moderncvicons{marvosym}
+\fi
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvstyleclassic.sty b/macros/latex/contrib/moderncv/moderncvstyleclassic.sty
index 6addabb2c2..2f94813368 100644
--- a/macros/latex/contrib/moderncv/moderncvstyleclassic.sty
+++ b/macros/latex/contrib/moderncv/moderncvstyleclassic.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvstyleclassic.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstyleclassic}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: classic]
+\ProvidesPackage{moderncvstyleclassic}[2021/01/21 v2.1.0 modern curriculum vitae and letter style scheme: classic]
% head section alignment options: "left" (default) or "right"
\@initializecommand{\moderncvstyleheadoptions}{}
@@ -36,7 +36,12 @@
%\fi
% symbols
-\moderncvicons{marvosym}
+\RequirePackage{ifxetex}
+\ifxetexorluatex
+ \moderncvicons{awesome}
+\else
+ \moderncvicons{marvosym}
+\fi
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvstyleempty.sty b/macros/latex/contrib/moderncv/moderncvstyleempty.sty
index 815a4d754f..cadc9307c0 100644
--- a/macros/latex/contrib/moderncv/moderncvstyleempty.sty
+++ b/macros/latex/contrib/moderncv/moderncvstyleempty.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvstyleempty.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstyleempty}[2015/07/28 v2.0.0 modern curriculum vitae scheme: empty]
+\ProvidesPackage{moderncvstyleempty}[2021/01/21 v2.1.0 modern curriculum vitae scheme: empty]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvstylefancy.sty b/macros/latex/contrib/moderncv/moderncvstylefancy.sty
index b44f378326..940f943d52 100644
--- a/macros/latex/contrib/moderncv/moderncvstylefancy.sty
+++ b/macros/latex/contrib/moderncv/moderncvstylefancy.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvstylefancy.sty'.
-%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstylefancy}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: fancy]
+\ProvidesPackage{moderncvstylefancy}[2021/01/21 v2.1.0 modern curriculum vitae and letter style scheme: fancy]
\DeclareOption*{}% avoid choking on unknown options
\ExecuteOptions{}
@@ -31,7 +31,12 @@
%\fi
% symbols
-\moderncvicons{awesome}
+\RequirePackage{ifxetex}
+\ifxetexorluatex
+ \moderncvicons{awesome}
+\else
+ \moderncvicons{marvosym}
+\fi
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty b/macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
index 9046fda54b..13e270c85e 100644
--- a/macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
+++ b/macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
@@ -1,5 +1,5 @@
%% start of file `moderncvstyleoldstyle.sty'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstyleoldstyle}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: oldstyle]
+\ProvidesPackage{moderncvstyleoldstyle}[2021/01/21 v2.1.0 modern curriculum vitae and letter style scheme: oldstyle]
\DeclareOption*{}% avoid choking on unknown options
\ExecuteOptions{}
diff --git a/macros/latex/contrib/moderncv/examples/picture.eps b/macros/latex/contrib/moderncv/picture.eps
index e7415b0093..e7415b0093 100644
--- a/macros/latex/contrib/moderncv/examples/picture.eps
+++ b/macros/latex/contrib/moderncv/picture.eps
diff --git a/macros/latex/contrib/moderncv/examples/picture.jpg b/macros/latex/contrib/moderncv/picture.jpg
index 6b54f4d090..6b54f4d090 100644
--- a/macros/latex/contrib/moderncv/examples/picture.jpg
+++ b/macros/latex/contrib/moderncv/picture.jpg
Binary files differ
diff --git a/macros/latex/contrib/moderncv/examples/publications.bib b/macros/latex/contrib/moderncv/publications.bib
index 2b97096793..2b97096793 100644
--- a/macros/latex/contrib/moderncv/examples/publications.bib
+++ b/macros/latex/contrib/moderncv/publications.bib
diff --git a/macros/latex/contrib/moderncv/examples/template.tex b/macros/latex/contrib/moderncv/template.tex
index fbfd3477f4..77ea54ad98 100644
--- a/macros/latex/contrib/moderncv/examples/template.tex
+++ b/macros/latex/contrib/moderncv/template.tex
@@ -1,5 +1,5 @@
%% start of file `template.tex'.
-%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
+%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -21,7 +21,8 @@
% adjust the page margins
\usepackage[scale=0.75]{geometry}
%\setlength{\hintscolumnwidth}{3cm} % if you want to change the width of the column with the dates
-%\setlength{\makecvtitlenamewidth}{10cm} % for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks...
+%\setlength{\makecvheadnamewidth}{10cm} % for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks...
+
% personal data
\name{John}{Doe}
@@ -32,16 +33,31 @@
\phone[fax]{+3~(456)~789~012}
\email{john@doe.org} % optional, remove / comment the line if not wanted
\homepage{www.johndoe.com} % optional, remove / comment the line if not wanted
+
+% Social icons
\social[linkedin]{john.doe} % optional, remove / comment the line if not wanted
+\social[xing]{john\_doe} % optional, remove / comment the line if not wanted
\social[twitter]{jdoe} % optional, remove / comment the line if not wanted
\social[github]{jdoe} % optional, remove / comment the line if not wanted
+\social[gitlab]{jdoe} % optional, remove / comment the line if not wanted
+\social[stackoverflow]{0000000/johndoe} % optional, remove / comment the line if not wanted
+\social[bitbucket]{jdoe} % optional, remove / comment the line if not wanted
+\social[skype]{jdoe} % optional, remove / comment the line if not wanted
+\social[orcid]{0000-0000-000-000} % optional, remove / comment the line if not wanted
+\social[researchgate]{jdoe} % optional, remove / comment the line if not wanted
+\social[researcherid]{jdoe} % optional, remove / comment the line if not wanted
+\social[telegram]{jdoe} % optional, remove / comment the line if not wanted
+\social[googlescholar]{googlescholarid} % optional, remove / comment the line if not wanted
+
+
\extrainfo{additional information} % optional, remove / comment the line if not wanted
\photo[64pt][0.4pt]{picture} % optional, remove / comment the line if not wanted; '64pt' is the height the picture must be resized to, 0.4pt is the thickness of the frame around it (put it to 0pt for no frame) and 'picture' is the name of the picture file
\quote{Some quote} % optional, remove / comment the line if not wanted
-% bibliography adjustements (only useful if you make citations in your resume, or print a list of publications using BibTeX)
+% bibliography adjustments (only useful if you make citations in your resume, or print a list of publications using BibTeX)
% to show numerical labels in the bibliography (default is to show no labels)
-\makeatletter\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}\makeatother
+%\makeatletter\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}\makeatother
+\renewcommand*{\bibliographyitemlabel}{[\arabic{enumiv}]}
% to redefine the bibliography heading string ("Publications")
%\renewcommand{\refname}{Articles}
@@ -67,12 +83,12 @@
\section{Experience}
\subsection{Vocational}
-\cventry{year--year}{Job title}{Employer}{City}{}{General description no longer than 1--2 lines.\newline{}%
-Detailed achievements:%
-\begin{itemize}%
-\item Achievement 1;
-\item Achievement 2, with sub-achievements:
- \begin{itemize}%
+\cventry{year--year}{Job title}{Employer}{City}{}{General description no longer than 1--2 lines.\newline{}
+Detailed achievements:
+\begin{itemize}
+\item Achievement 1
+\item Achievement 2 (with sub-achievements)
+ \begin{itemize}
\item Sub-achievement (a);
\item Sub-achievement (b), with sub-sub-achievements (don't do this!);
\begin{itemize}
@@ -82,9 +98,10 @@ Detailed achievements:%
\end{itemize}
\item Sub-achievement (c);
\end{itemize}
-\item Achievement 3.
+\item Achievement 3
+\item Achievement 4
\end{itemize}}
-\cventry{year--year}{Job title}{Employer}{City}{}{Description line 1\newline{}Description line 2}
+\cventry{year--year}{Job title}{Employer}{City}{}{Description line 1\newline{}Description line 2\newline{}}
\subsection{Miscellaneous}
\cventry{year--year}{Job title}{Employer}{City}{}{Description}
@@ -92,12 +109,66 @@ Detailed achievements:%
\cvitemwithcomment{Language 1}{Skill level}{Comment}
\cvitemwithcomment{Language 2}{Skill level}{Comment}
\cvitemwithcomment{Language 3}{Skill level}{Comment}
+\cvitemwithcomment{Language 4}{Skill level}{Comment}
\section{Computer skills}
\cvdoubleitem{category 1}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ}
\cvdoubleitem{category 2}{XXX, YYY, ZZZ}{category 5}{XXX, YYY, ZZZ}
\cvdoubleitem{category 3}{XXX, YYY, ZZZ}{category 6}{XXX, YYY, ZZZ}
+\section{Skill matrix}
+\cvitem{Skill matrix}{Alternatively, provide a skill matrix to show off your skills}
+%% Skill matrix as an alternative to rate one's skills, computer or other.
+
+%% Adjusts width of skill matrix columns.
+%% Usage \setcvskillcolumns[<width>][<factor>][<exp_width>]
+%% <width>, <exp_width> should be lengths smaller than \textwidth, <factor> needs to be between 0 and 1.
+%% Examples:
+% \setcvskillcolumns[5em][][]% adjust first column. Same as \setcvskillcolumns[5em]
+% \setcvskillcolumns[][0.45][]% adjust third (skill) column. Same as \setcvskillcolumns[][0.45]
+% \setcvskillcolumns[][][\widthof{``Year''}]% adjust fourth (years) column.
+% \setcvskillcolumns[][0.45][\widthof{``Year''}]%
+% \setcvskillcolumns[\widthof{``Languag''}][0.48][]
+% \setcvskillcolumns[\widthof{``Languag''}]%
+
+%% Adjusts width of legend columns. Usage \setcvskilllegendcolumns[<width>][<factor>]
+%% <factor> needs to be between 0 and 1. <width> should be a length smaller than \textwidth
+%% Examples:
+% \setcvskilllegendcolumns[][0.45]
+% \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]
+% \setcvskilllegendcolumns[0ex][0.46]% this is usefull for the banking style
+
+%% Add a legend if you are using \cvskill{<1-5>} command or \cvskillentry
+%% Usage \cvskilllegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
+% \cvskilllegend % insert default legend without lines
+\cvskilllegend*[1em]{}% adjust post spacing
+% \cvskilllegend*{Legend}% Alternatively add a description string
+%% adjust the legend entries for other languages, here German
+% \cvskilllegend[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte\,/\,Spezialist]{Legende}
+
+%% Alternative legend style with the first three skill levels in one column
+%% Usage \cvskillplainlegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
+% \setcvskilllegendcolumns[][0.6]% works for classic, casual, banking
+% \setcvskilllegendcolumns[][0.55]% works better for oldstyle and fancy
+% \cvskillplainlegend{}
+% \cvskillplainlegend[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legende}
+
+%% Add a head of the skill matrix table with descriptions.
+%% Usage \cvskillhead[<post_padding>][<Level>][<Skill>][<Years>][<Comment>]%
+\cvskillhead[-0.1em]% this inserts the standard legend in english and adjust padding
+%% Adjust head of the skill matrix for other languages
+% \cvskillhead[0.25em][Level][F\"ahigkeit][Jahre][Bemerkung]
+
+%% \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<0-5>}{<skill_name>}{<years_of_experience>}{<comment>}%
+%% Example usages:
+\cvskillentry*{Language:}{3}{Python}{2}{I'm so experienced in Python and have realised a million projects. At least.}
+\cvskillentry{}{2}{Lilypond}{14}{So much sheet music! Man, I'm the best!}
+\cvskillentry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX}
+\cvskillentry*{OS:}{3}{Linux}{2}{I only use Archlinux btw}% notice the use of the starred command and the optional
+\cvskillentry*[1em]{Methods}{4}{SCRUM}{8}{SCRUM master for 5 years}
+%% \cvskill{<0-5>} command
+% \cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed by the \textbackslash{cvskill} command, e.g. \cvskill{2}}
+
\section{Interests}
\cvitem{hobby 1}{Description}
\cvitem{hobby 2}{Description}
@@ -110,7 +181,7 @@ Detailed achievements:%
\section{Extra 2}
\cvlistdoubleitem{Item 1}{Item 4}
-\cvlistdoubleitem{Item 2}{Item 5\cite{book1}}
+\cvlistdoubleitem{Item 2}{Item 5\cite{book2}}
\cvlistdoubleitem{Item 3}{Item 6. Like item 3 in the single column list before, this item is particularly long to wrap over several lines.}
\section{References}
@@ -163,3 +234,4 @@ Albert Einstein discovered that $e=mc^2$ in 1905.
%% end of file `template.tex'.
+
diff --git a/macros/latex/contrib/moderncv/tweaklist.sty b/macros/latex/contrib/moderncv/tweaklist.sty
index adc9398932..8e369d9cbe 100644
--- a/macros/latex/contrib/moderncv/tweaklist.sty
+++ b/macros/latex/contrib/moderncv/tweaklist.sty
@@ -1,6 +1,6 @@
%% start of file `tweaklist.sty'.
-%% Original by Jakob Schiøtz, downloaded from http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty; not found on ctan.
-%% Modified by Xavier Danaux (xdanaux@gmail.com).
+%% Original by Jakob Schiotz, downloaded from http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty; not found on ctan.
+%% Modified by Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
%
% The tweaklist.sty package redefines the itemize, enumerate and description packages, so that all parameters can be adjusted.
% This was done by copying the original definitions, and adding "hook commands" that are executed when entering the environment.