texlive[45187] Master: komacv-rg (31aug17)

commits+karl at tug.org commits+karl at tug.org
Fri Sep 1 03:33:46 CEST 2017


Revision: 45187
          http://tug.org/svn/texlive?view=revision&revision=45187
Author:   karl
Date:     2017-09-01 03:33:46 +0200 (Fri, 01 Sep 2017)
Log Message:
-----------
komacv-rg (31aug17)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/komacv-rg/
    trunk/Master/texmf-dist/doc/latex/komacv-rg/README.md
    trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-addons.pdf
    trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-lco.pdf
    trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-multilang.pdf
    trunk/Master/texmf-dist/source/latex/komacv-rg/
    trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-addons.dtx
    trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-lco.dtx
    trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-multilang.dtx
    trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-rg.ins
    trunk/Master/texmf-dist/tex/latex/komacv-rg/
    trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-addons.sty
    trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-lco.sty
    trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-multilang.sty
    trunk/Master/tlpkg/tlpsrc/komacv-rg.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/komacv-rg/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/komacv-rg/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/komacv-rg/README.md	2017-09-01 01:33:46 UTC (rev 45187)
@@ -0,0 +1,99 @@
+The komacv-rg Bundle
+=======================
+
+Copyright (C) 2016-2017 Richard Gay
+
+Released under the [LaTeX Project Public License](http://www.latex-project.org/lppl/) version 1.2 or later
+
+## Abstract
+
+The `komacv-rg` bundle provides packages that aid in creating CVs based
+on the `komacv` class and creating related documents, such as cover letters
+and cover sheets for job applications.
+Concretely, the bundle consists of three packages: `komacv-addons`,
+`komacv-lco`, and `komacv-multilang`.
+`komacv-addons` is a small collection of add-ons and fixes for the
+`komacv` class; `komacv-lco` enables the use of letter class options
+from `scrlttr2` also in `komacv`-based and other non-`scrlttr2`-based
+documents; `komacv-multilang` enables the provisioning of CVs in multiple
+languages and the selection of a language via `babel` or `polyglossia`.
+
+## Availability
+
+The `komacv-rg` bundle is on [CTAN](http://www.ctan.org/pkg/komacv-rg),
+where you can also find the [documentation](http://mirrors.ctan.org/macros/latex/contrib/komacv-rg/) of the packages contained in the bundle,
+as well as on [github](https://github.com/Ri-Ga/komacv-rg).
+
+## Manual Installation
+
+The `komacv-rg` package comes with (at least) the following files
+* komacv-rg.ins
+* komacv-addons.dtx
+* komacv-lco.dtx
+* komacv-multilang.dtx
+* README.md
+
+and possibly also with
+* Makefile
+* komacv-addons.pdf and komacv-addons.sty (generated from komacv-addons.dtx)
+* komacv-lco.pdf and komacv-lco.sty (generated from komacv-lco.dtx)
+* komacv-multilang.pdf and komacv-multilang.sty (generated from komacv-multilang.dtx)
+
+To install the `komacv-rg` bundle, you additionally need
+* docstrip.tex
+
+To build the packages of the bundle (the `.sty` files), run one of the following
+```
+    latex komacv-rg.ins
+    make package (needs Makefile)
+```
+
+Put the resulting `.sty` files somewhere where LaTeX can find them.
+Read the documentation of your LaTeX system to find out where this
+might be.
+
+## Building Documentation
+
+To build the documentation of the `komacv-rg` bundle, you additionally
+need the following classes and packages (including their dependencies)
+* ltxdoc
+* babel
+* cleveref
+* csquotes
+* datetime2, datetime2-calc
+* enumitem
+* etoolbox
+* filecontents
+* fontawesome
+* fontenc
+* hypdoc
+* idxlayout
+* inputenc
+* keyvaltable
+* letltxmacro
+* marvosym
+* multilang, multilang-sect, multilang-tags
+* pbox
+* scrkbase, scrlfile
+* showexpl
+* translations
+* xspace
+
+as well as
+* pdflatex
+
+To build the documentation (`.pdf` files for the packages), either run
+```
+    make docs
+```
+or the following sequence of commands for `PKG` being one of `komacv-addons`,
+`komacv-lco` or `komacv-multilang`.
+```
+    pdflatex PKG.dtx
+    makeindex -s gind.ist -o PKG.ind PKG.idx
+    makeindex -s gglo.ist -o PKG.gls PKG.glo
+    pdflatex PKG.dtx
+    pdflatex PKG.dtx
+```
+
+Happy TeX'ing


Property changes on: trunk/Master/texmf-dist/doc/latex/komacv-rg/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-addons.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-addons.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-addons.pdf	2017-09-01 01:32:46 UTC (rev 45186)
+++ trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-addons.pdf	2017-09-01 01:33:46 UTC (rev 45187)

Property changes on: trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-addons.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-lco.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-lco.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-lco.pdf	2017-09-01 01:32:46 UTC (rev 45186)
+++ trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-lco.pdf	2017-09-01 01:33:46 UTC (rev 45187)

Property changes on: trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-lco.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-multilang.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-multilang.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-multilang.pdf	2017-09-01 01:32:46 UTC (rev 45186)
+++ trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-multilang.pdf	2017-09-01 01:33:46 UTC (rev 45187)

Property changes on: trunk/Master/texmf-dist/doc/latex/komacv-rg/komacv-multilang.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-addons.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-addons.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-addons.dtx	2017-09-01 01:33:46 UTC (rev 45187)
@@ -0,0 +1,149 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2017 by Richard Gay <richard.gay at t-online.de>
+% -------------------------------------------------------
+% 
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% 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.2 or later is part of all distributions of LaTeX 
+% version 1999/12/01 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{komacv-addons.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{komacv-addons}
+%<*package>
+    [2017/08/30 v1 Various small addons and fixes to komacv]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[columns=2]{idxlayout}
+\usepackage{showexpl}
+\usepackage{xspace}
+\newcommand\ThisPackage{\textsf{komacv-addons}\xspace}
+\usepackage{hypdoc}
+\usepackage[capitalise,noabbrev,nameinlink]{cleveref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+  \DocInput{komacv-addons.dtx}
+  \PrintChanges
+  \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%   Digits        \0\1\2\3\4\5\6\7\8\9
+%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%   Dollar        \$     Percent       \%     Ampersand     \&
+%   Acute accent  \'     Left paren    \(     Right paren   \)
+%   Asterisk      \*     Plus          \+     Comma         \,
+%   Minus         \-     Point         \.     Solidus       \/
+%   Colon         \:     Semicolon     \;     Less than     \<
+%   Equals        \=     Greater than  \>     Question mark \?
+%   Commercial at \@     Left bracket  \[     Backslash     \\
+%   Right bracket \]     Circumflex    \^     Underscore    \_
+%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%   Right brace   \}     Tilde         \~}
+%
+% \changes{v1}{2017/08/30}{Initial documented version}
+%
+% \GetFileInfo{komacv-addons.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment,\def,\gdef,\edef}
+%
+% \title{The \ThisPackage Package\thanks{This document
+%   corresponds to \ThisPackage~\fileversion, dated \filedate.
+%   The package is available online at
+%   \url{http://www.ctan.org/pkg/komacv-rg} and
+%   \url{https://github.com/Ri-Ga/komacv-rg}.}}
+% \author{Richard Gay \\ \texttt{richard.gay at t-online.de}}
+%
+% \maketitle
+%
+% \section{Introduction}
+% \label{sec:Introduction}
+%
+% This package provides a few extensions and fixes to the \textsf{komacv}
+% class.
+%
+% \StopEventually{}
+%\iffalse
+%<*package>
+%\fi
+%
+% \section{Extensions}
+%
+% \begin{macro}{\Signature}
+% The |\Signature|\oarg{width} draws a line of width \meta{width} (default:
+% $38.2\%$ of the text width (where $38.2\%=1-\frac{1}{\varphi}$, with $\varphi$
+% being the golden ratio).
+% \begin{macro}{\signaturecity}
+% Below the line, the macro puts the name of the city, which is expected in the
+% |\signaturecity| macro, and the current date (via |\today|).
+% Use |\renewcommand{\signaturecity}{...}| to specify the city.
+% \begin{macro}{\beforesigvspace}
+% Before the signature line, a vertical space of |\beforesigvspace| (default:
+% 3cm) is inserted. Use |\renewcommand{\beforesigvspace}{...}| to specify
+% another distance.
+%    \begin{macrocode}
+\newcommand*\signaturecity{}
+\newcommand*\beforesigvspace{3cm}
+\newcommand\Signature[1][0.382\textwidth]{%
+  \par
+  \begin{tabular}{@{}p{#1}@{}}
+    \rule{0pt}{\beforesigvspace}\\\hline
+    \signaturecity, \today\hfill
+  \end{tabular}}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{\textsf{komacv} Fixes}
+%
+% The construction of |\cvitem| based on a |tabular| environment seems to
+% sometimes produce undesired vertical space below a sequence of |\cvitem|s.
+% The following fix redefines |\cvitem|, based on its original definition, to
+% fix this vertical spacing problem.
+%    \begin{macrocode}
+\RequirePackage{letltxmacro}
+\LetLtxMacro{\kcvml at origcvitem}{\cvitem}
+\renewcommand*{\cvitem}[3][\@afterelementsvspace]{%
+  \kcvml at origcvitem[#1]{#2}{\@minipagetrue #3}}
+%    \end{macrocode}
+%
+% We also fix the default setup of |\@listdbitemmaincolwidth|. The only change
+% is that we also subtract |\@sepcolwidth| from |\@maincolwidth|, because
+% |\cvlistdoubleitem| does include a horizontal separation of that width.
+%    \begin{macrocode}
+\AtEndPreamble{
+  \ifdimequal{\listdbitemmaincolwidth}{0pt}{%
+    \setlength{\@listdbitemmaincolwidth}
+              {\@maincolwidth-\@sepcolwidth-\@listitemsymbolwidth}%
+    \setlength{\@listdbitemmaincolwidth}{0.475\@listdbitemmaincolwidth}%
+  }{}%
+}
+%    \end{macrocode}
+%
+%\iffalse
+%</package>
+%\fi
+% \Finale
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-addons.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-lco.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-lco.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-lco.dtx	2017-09-01 01:33:46 UTC (rev 45187)
@@ -0,0 +1,616 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2017 by Richard Gay <richard.gay at t-online.de>
+% -------------------------------------------------------
+% 
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% 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.2 or later is part of all distributions of LaTeX 
+% version 1999/12/01 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{komacv-lco.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{komacv-lco}
+%<*package>
+    [2017/08/30 v0.9 Letter class options usable for komacv]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[columns=2]{idxlayout}
+\usepackage{xspace}
+\usepackage{enumitem}
+\usepackage{keyvaltable}
+\usepackage{showexpl}
+\lstset{gobble=2,frame=trbl,backgroundcolor=\color{black!5!white},width=0.55\textwidth}
+\lstset{basicstyle=\footnotesize\fontfamily{pcr}\selectfont}
+\lstset{explpreset={columns=fixed,numbers=none,language={}}}
+\lstset{preset={\small\sffamily},overhang=3cm,pos=r,varwidth=false}
+\usepackage{pbox}
+\usepackage{csquotes}\MakeOuterQuote{"}
+\usepackage{filecontents}
+\begin{filecontents*}{demo.lco}
+\ProvidesFile{demo.lco}
+\KOMAoptions{fromemail=true,fromphone=false,frommobilephone=true}
+
+\setkomavar{fromfirstname}{John}
+\setkomavar{fromfamilyname}{Doe}
+\setkomavar{fromaddressstreet}{Main Street 1}
+\setkomavar{fromaddresscity}{12345 Springfield}
+
+\setkomavar{fromphone}[\Telefon~]{555\ 123456}
+\setkomavar{frommobilephone}[\Mobilefone~]{555\ 98765}
+\setkomavar{fromemail}[\Letter~]{john.doe at example.com}
+\setkomavar{place}{Springfield}
+
+\setkomavar{fromgithub}{\httpslink{github.com/JohnDoe}}
+\setkomavar{fromlinkedin}{\httpslink{linkedin.com/in/JohnDoe}}
+\setkomavar{fromurl}{www.example.com/~Doe}
+\end{filecontents*}
+\newcommand\NiceDescribeStuff[2]{% #1=margin text, #2=body text
+  \medskip\par\noindent\leavevmode%
+  \marginpar{\hfill\hbox to 0pt{\hss\pbox[t]{4\marginparwidth}{\ttfamily #1}}%
+    \hspace*{-0.85\marginparsep}}% NOTE: the 0.85 fixes an otherwise too close placement
+  \ifstrempty{#2}{\ignorespaces}{#2\smallskip\\}}
+\newcommand\NiceDescribeEnv[3][]{% #1=index list, #2=envname, #3=parameters
+  \NiceDescribeStuff{%
+    \textcolor{gray}{\cs{begin}}\string{#2\string}\\
+    \textcolor{gray}{\cs{end}}\string{#2\string}}{#3}%
+  \ifstrempty{#1}
+    {\SpecialEnvIndex{#1}}%
+    {\forcsvlist{\SpecialEnvIndex}{#1}}%
+  \ignorespaces}
+\newcommand\NiceDescribeMacro[2]{% #1=macro, #2=parameters
+  \NiceDescribeStuff{\hbox to 0pt{\hss\string#1}}{#2}%
+  \SpecialUsageIndex{#1}\ignorespaces}
+\newcommand\NiceDescribeConstant[1]{% #1=constant
+  \NiceDescribeStuff{#1\quad\kern 0pt\relax}{}}
+\newcommand\ThisPackage{\textsf{komacv-lco}\xspace}
+\usepackage{hypdoc}
+\usepackage[capitalise,noabbrev,nameinlink]{cleveref}
+\usepackage{komacv-lco}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+  \DocInput{komacv-lco.dtx}
+  \PrintChanges
+  \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%   Digits        \0\1\2\3\4\5\6\7\8\9
+%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%   Dollar        \$     Percent       \%     Ampersand     \&
+%   Acute accent  \'     Left paren    \(     Right paren   \)
+%   Asterisk      \*     Plus          \+     Comma         \,
+%   Minus         \-     Point         \.     Solidus       \/
+%   Colon         \:     Semicolon     \;     Less than     \<
+%   Equals        \=     Greater than  \>     Question mark \?
+%   Commercial at \@     Left bracket  \[     Backslash     \\
+%   Right bracket \]     Circumflex    \^     Underscore    \_
+%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%   Right brace   \}     Tilde         \~}
+%
+% \changes{v0.9}{2017/08/30}{Initial version}
+%
+% \GetFileInfo{komacv-lco.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment,\def,\gdef,\edef}
+%
+% \title{The \ThisPackage Package\thanks{This document
+%   corresponds to \ThisPackage~\fileversion, dated \filedate.
+%   The package is available online at
+%   \url{http://www.ctan.org/pkg/komacv-rg} and
+%   \url{https://github.com/Ri-Ga/komacv-rg}.}}
+% \author{Richard Gay \\ \texttt{richard.gay at t-online.de}}
+%
+% \maketitle
+%
+% \section{Introduction}
+% \label{sec:Introduction}
+%
+% The \ThisPackage package provides means for unifying the input data to a CV
+% made with \textsf{komacv} and to a cover letter made with \textsf{scrlttr2}.
+% Concretely:
+% \begin{itemize}[noitemsep]
+% \item When the \ThisPackage package is used within a document of the
+%   \textsf{scrlttr2} class (e.g., a cover letter), it defines KOMA variables
+%   \textsf{komacv}'s data fields such as |github| and |linkedin|. Values for
+%   these variables can therefore be specified in letter-class-option (LCO)
+%   files (see the KOMA manual for more on these files).
+% \item When the \ThisPackage package is used within CV of the \textsf{komacv}
+%   class, it provides a macro for loading LCO files and setting the
+%   \textsf{komacv} variables based on these macros.
+% \item When the \ThisPackage package is used with neither \textsf{komacv} nor
+%   \textsf{scrlttr2} (e.g., a cover sheet), it provides the KOMA variables and
+%   macros for accessing them in the document.
+% \end{itemize}
+%
+% \section{Usage}
+%
+% The following code shows some basic usage of the \ThisPackage package.
+% The package provides the |\LoadLetterOption| macro for loading various
+% variables. The content of the variables can be displayed, e.g., via the
+% |\usekomavar| macro. The \ThisPackage package provides these macros, whose
+% interfaces originate from the \textsf{scrlttr2} class, for use with other
+% classes than \textsf{scrlttr2} -- particularly including \textsf{komacv}.
+%
+% \begin{LTXexample}
+% \usepackage{komacv-lco}
+% \LoadLetterOption{demo}
+%
+% \begin{document}
+% \usekomavar{fromname}\\
+% \usekomavar*{fromphone} \usekomavar{fromphone}\\
+% \usekomavar*{fromgithub} \usekomavar{fromgithub}
+% \end{document}
+% \end{LTXexample}
+%
+% The content of the LCO file, \texttt{demo.lco}, is displayed in
+% \cref{fig:lco-example}. This file shows many of the variables defined.
+% The remainder of this section provides the complete list of macros and
+% variables made available by \ThisPackage.
+%
+% \begin{figure}
+% \lstinputlisting{demo.lco}
+% \caption{\texttt{demo.lco}}
+% \label{fig:lco-example}
+% \end{figure}
+%
+%
+% \subsection{Variables}
+%
+% The \ThisPackage package provides a set of variables that can be set in LCO
+% files and can be used in \textsf{scrlttr2} letters, \textsf{komacv} CVs, and
+% other \LaTeX{} documents.
+% \Cref{tab:variables} shows the set of variables in alphabetic order.
+% \begin{itemize}
+% \item Most of the variables correspond to a macro that the \textsf{komacv}
+%   class defines and that is displayed in the second column of the
+%   \lcnamecref{tab:variables}. The \ThisPackage package ensures that when the
+%   value of a variable is set (via |\setkomavar|), the corresponding
+%   \textsf{komacv} macro is updated as well.
+%   Note that the macros are only defined in documents that use the
+%   \textsf{komacv} class. Documents based on another class can access the
+%   respective variables via |\usekomavar|.
+% \item Many of the variables are also defined by the \textsf{scrlttr2} class.
+%   The third column of the \lcnamecref{tab:variables} shows which of the
+%   variables these are. The \ThisPackage package makes all of the variables
+%   available for use in documents that use the \textsf{scrlttr2} class.
+% \item Some of the variables have a symbol assigned to them, as shown in the
+%   fourth column of the \lcnamecref{tab:variables}. The symbols are those that
+%   the \textsf{komacv} class uses.
+% \item Some of the variables have KOMA options of the same name. These
+%   variables can be used for disabling the display of the respective variable's
+%   content.
+% \item Two variables (from \textsf{scrlttr2}) have default values that are
+%   based on other, more fine-grained variables (from \textsf{komacv}). These
+%   variables are marked in the rightmost column of the
+%   \lcnamecref{tab:variables}.
+%   Concretely:
+%   \begin{itemize}[nosep]
+%   \item[$\star$]
+%     The `fromaddress' variable by default is set to a two-line
+%     combination of the contents of the `fromaddressstreet' and
+%     `fromaddresscity' variables.
+%   \item[$\star\star$]
+%     The `fromname' variable by default is set to the concatenation of the
+%     contents of the `fromfirstname' and the `fromfamilyname' variables.
+%   \end{itemize}
+% \end{itemize}
+%
+% \begin{table}
+%   \NewKeyValTable{variables}{
+%     name:   align=l, head=\small\textbf{variable name};
+%     macro:  align=l, head=\small\textbf{\textsf{komacv} macro};
+%     letter: align=c, head=\small\textbf{\textsf{scrlttr2}};
+%     symbol: align=c, head=\small\textbf{symbol};
+%     option: align=c, head=\small\textbf{option};
+%     default:align=c, head=\small\textbf{default};
+%   }
+%   \begin{KeyValTable}{variables}
+%   \Row{name=fromacadtitle,     macro=\cs{acadtitle},     letter=no,  option=no,  symbol=\usekomavar*{fromacadtitle}}
+%   \Row{name=fromaddress,       macro=\cs{address},       letter=yes, option=no,  symbol=\usekomavar*{fromaddress}, default=$\star$}
+%   \Row{name=fromaddresscity,   macro=\cs{addresscity},   letter=no,  option=no,  symbol=\usekomavar*{fromaddresscity}}
+%   \Row{name=fromaddressstreet, macro=\cs{addressstreet}, letter=no,  option=no,  symbol=\usekomavar*{fromaddressstreet}}
+%   \Row{name=fromemail,         macro=\cs{email},         letter=yes, option=yes, symbol=\usekomavar*{fromemail}}
+%   \Row{name=fromextrainfo,     macro=\cs{extrainfo},     letter=no,  option=yes, symbol=\usekomavar*{fromextrainfo}}
+%   \Row{name=fromfax,           macro=\cs{faxnr},         letter=yes, option=yes, symbol=\usekomavar*{fromfax}}
+%   \Row{name=fromfacebook,      macro=\cs{facebook},      letter=no,  option=yes, symbol=\usekomavar*{fromfacebook}}
+%   \Row{name=fromfamilyname,    macro=\cs{familyname},    letter=no,  option=no,  symbol=\usekomavar*{fromfamilyname}}
+%   \Row{name=fromfirstname,     macro=\cs{firstname},     letter=no,  option=no,  symbol=\usekomavar*{fromfirstname}}
+%   \Row{name=fromgithub,        macro=\cs{github},        letter=no,  option=yes, symbol=\usekomavar*{fromgithub}}
+%   \Row{name=fromlinkedin,      macro=\cs{linkedin},      letter=no,  option=yes, symbol=\usekomavar*{fromlinkedin}}
+%   \Row{name=frommobilephone,   macro=\cs{mobile},        letter=yes, option=yes, symbol=\usekomavar*{frommobilephone}}
+%   \Row{name=fromname,                                    letter=yes, option=no,  symbol=\usekomavar*{fromname}, default=$\star\star$}
+%   \Row{name=fromphone,         macro=\cs{phonenr},       letter=yes, option=yes, symbol=\usekomavar*{fromphone}}
+%   \Row{name=fromtwitter,       macro=\cs{twitter},       letter=no,  option=yes, symbol=\usekomavar*{fromtwitter}}
+%   \Row{name=fromurl,           macro=\cs{homepage},      letter=yes, option=yes, symbol=\usekomavar*{fromurl}}
+%   \Row{name=location,                                    letter=yes, option=no,  symbol=\usekomavar*{location}}
+%   \Row{name=place,                                       letter=yes, option=no,  symbol=\usekomavar*{place}}
+%   \end{KeyValTable}
+%   \caption{Variables for use in letter options}
+%   \label{tab:variables}
+% \end{table}
+%
+%
+% \subsection{Macros}
+%
+% The following macros imitate the behavior of \textsf{scrlttr2}. For a
+% documentation of the macros, we refer to the KOMA manual.
+% \begin{itemize}
+% \item
+%   |\newkomavar|\oarg{description}\marg{name}\\
+%   |\newkomavar*|\oarg{description}\marg{name}
+% \item
+%   |\setkomavar|\marg{name}\oarg{description}\marg{content}\\
+%   |\setkomavar*|\marg{name}\marg{description}
+% \item
+%   |\usekomavar|\oarg{command}\marg{name}\\
+%   |\usekomavar*|\oarg{command}\marg{name}
+% \item
+%   |\ifkomavarempty|\marg{name}\marg{true-code}\marg{false-code}\\
+%   |\ifkomavarempty*|\marg{name}\marg{true-code}\marg{false-code}
+% \item
+%   |\ifkomavar|\marg{name}\marg{true-code}\marg{false-code}
+% \item
+%   |\LoadLetterOption|\marg{name}
+%   |\LoadLetterOptions|\marg{names}
+% \end{itemize}
+% The following macros of the \textsf{komacv} class are provided by
+% \ThisPackage.
+% \begin{itemize}
+% \item |\emaillink|\oarg{link-text}\marg{link}
+% \item |\httplink|\oarg{link-text}\marg{link}
+% \end{itemize}
+% The following additional macros are defined by \ThisPackage.
+% \begin{itemize}
+% \item |\ifkomavarenabled|\marg{name}\marg{true-code}\marg{false-code}\\
+%   This macro executes \meta{true-code} if the variable with name \meta{name}
+%   is enabled (through the KOMA option of the same name) and executes
+%   \meta{false-code} otherwise.
+% \item |\httpslink|\oarg{link-text}\marg{link}\\
+%   This macro is analogous to |\httplink|, just for HTTPS links.
+% \end{itemize}
+%
+%
+% \section{Limitations}
+%
+% The current version of \ThisPackage has the following known limitations.
+% Some of them might be eliminated in future versions.
+%
+% \begin{itemize}
+% \item Enabled variables that are not already defined by \textsf{scrlttr2} are
+%   \emph{not} displayed in the head of the letter.
+%   If you want the additional variables to be displayed, you currently have to
+%   set the |firsthead| variable manually (see the \textsf{scrlttr2}
+%   documentation).
+% \item In a document based on the \textsf{komacv} class, KOMA options for
+%   enabling/disabling a variable must be set \emph{before} the content of the
+%   variable is set. Only then the respective \textsf{komacv} macro is set
+%   appropriately (i.e., set empty if the variable is disabled and set to the
+%   respective content when enabled). In short, as shown also in
+%   \cref{fig:lco-example}: First use |\KOMAoptions| and afterwards use
+%   |\setkomavar|.
+% \end{itemize}
+%
+% \clearpage
+%
+% \StopEventually{}
+%\iffalse
+%<*package>
+%\fi
+%
+%
+% \section{Implementation}
+%
+% We use the \textsf{etoolbox} package for simplifying the code and use
+% the \textsf{scrkbase} package for KOMA options and related macros.
+% The \textsf{marvosym} and \textsf{fontawesome} packages provide the symbols
+% for some of the variables defined by this package.
+%    \begin{macrocode}
+\RequirePackage{etoolbox}
+\RequirePackage{scrkbase}
+\RequirePackage{marvosym,fontawesome}
+%    \end{macrocode}
+%
+%
+% \subsection{KOMA Variables Interface}
+%
+% The ``public'' interface consists of the macros |\newkomavar|, |\setkomavar|,
+% and |\usekomavar|, which we define to have the same arguments as the
+% counterparts defined by \textsf{scrlttr2}.
+%
+% \begin{macro}{\newkomavar}
+% The |\newkomavar|\oarg{description}\marg{name} macro defines a new KOMA
+% variable with name \meta{name} and description \meta{description}.
+% If \meta{description} is omitted, no description is set.
+% The |\newkomavar*|\oarg{description}\marg{name} macro is defined equivalent to
+% the un-starred macro.
+%    \begin{macrocode}
+\providecommand{\newkomavar}{%
+  \@ifstar{\kcvlco at newkomavar}{\kcvlco at newkomavar}}
+\newcommand{\kcvlco at newkomavar}[2][\relax]{%
+  \ifkomavar{#2}%
+    {\kcvlco at error{KOMA variable `#2' already defined}}%
+    {\csdef{kcvlco@@var@#2}{\empty}%
+     \begingroup\def\@tempa{#1}\def\@tempb{\relax}%
+     \ifx\@tempa\@tempb\endgroup\else
+     \endgroup\csdef{kcvlco@@desc@#2}{#1}\fi}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setkomavar}
+% The |\setkomavar|\marg{name}\oarg{description}\marg{content} macro sets the
+% content of the variable with name \meta{name} to content \meta{content} and
+% sets the description of the variable to \meta{description}.
+% The |\setkomavar*|\marg{name}\marg{description} sets only the description of
+% the variable with name \meta{name} and sets it to \meta{description}.
+%    \begin{macrocode}
+\providecommand{\setkomavar}{%
+  \@ifstar{\kcvlco at setkomadesc}{\kcvlco at setkomavar}}
+\newcommand{\kcvlco at setkomavar}[1]{\kcvlco at onlyifdef{#1}{\@ifnextchar[%
+  {\kcvlco at setkomavar@i{#1}}{\kcvlco at setkomavar@i{#1}[\relax]}}}
+\long\def\kcvlco at setkomavar@i#1[#2]#3{%
+  \csdef{kcvlco@@value@#1}{#3}%
+  \csuse{scr@#1 at postsetvar}%
+  \begingroup\def\@tempa{#2}\def\@tempb{\relax}%
+  \ifx\@tempa\@tempb\endgroup\else
+  \endgroup\csdef{kcvlco@@desc@#1}{#2}\fi}
+\newcommand{\kcvlco at setkomadesc}[2]{%
+  \csdef{kcvlco@@desc@#1}{#2}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\usekomavar}
+% The |\usekomavar|\oarg{command}\marg{name} macro expands to the \meta{command}
+% applied to the content of the KOMA variable \meta{name}. If omitted,
+% \meta{command} is the identity.
+% The |\usekomavar*|\oarg{command}\marg{name} macro is analogous to
+% |\usekomavar| except that the description of the variable is used rather than
+% the content.
+%    \begin{macrocode}
+\providecommand{\usekomavar}{%
+  \@ifstar{\kcvlco at usekomadesc}{\kcvlco at usekomavar}}
+\newcommand{\kcvlco at usekomavar}[2][\@firstofone]{%
+  \kcvlco at onlyifdef{#2}{#1{\csuse{kcvlco@@value@#2}}}}
+\newcommand{\kcvlco at usekomadesc}[2][\@firstofone]{%
+  \kcvlco at onlyifdef{#2}{#1{\csuse{kcvlco@@desc@#2}}}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifkomavarempty}
+% The |\ifkomavarempty|\marg{name}\marg{true-code}\marg{false-code} expands to
+% \meta{true-code} if the content of the KOMA variable \meta{name} is empty, and
+% expands to \meta{false-code} otherwise.
+% The |\ifkomavarempty*|\marg{name}\marg{true-code}\marg{false-code} is
+% analogous to |\ifkomavarempty|, except that the description of the variable is
+% checked for emptiness rather than the content.
+%    \begin{macrocode}
+\providecommand{\ifkomavarempty}{%
+  \@ifstar{\kcvlco at ifemptydesc}{\kcvlco at ifemptyvar}}
+\newcommand{\kcvlco at ifemptyvar}[1]{\ifcsvoid{kcvlco@@value@#1}}
+\newcommand{\kcvlco at ifemptydesc}[1]{\ifcsvoid{kcvlco@@desc@#1}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifkomavar}
+% The |\ifkomavar|\marg{name}\marg{true-code}\marg{false-code} macro checks
+% whether the KOMA variable \meta{name} is defined and expands to
+% \meta{true-code} (positive case) or \meta{false-code} (negative case)
+% respectively.
+%    \begin{macrocode}
+\providecommand{\ifkomavar}[1]{\ifcsdef{kcvlco@@var@#1}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifkomavarenabled}
+% The |\ifkomavarenabled|\marg{name}\marg{true-code}\marg{false-code} macro
+% checks whether the corresponding KOMA option for \meta{name} exists and is set
+% to |false|. In this case, the macro expands to \meta{false-code} and otherwise
+% expands to \meta{true-code}.
+%    \begin{macrocode}
+\providecommand{\ifkomavarenabled}[1]{\csuse{kcvlco@@enab@#1}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Letter Options Interface}
+%
+% \begin{macro}{\LoadLetterOption}
+% The |\LoadLetterOption|\marg{name} loads options from the file with filename
+% \meta{name} (an ``lco''-file, but without the file extension).
+% \begin{macro}{\LoadLetterOptions}
+% The |\LoadLetterOptions|\marg{names} loads options from the files in the
+% comma-separated list \meta{names} of file names (again without ``lco''
+% extension).
+%    \begin{macrocode}
+\providecommand\LoadLetterOption[1]{\input{#1.lco}}
+\providecommand\LoadLetterOptions[1]{\forcsvlist{\LoadLetterOption}{#1}}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{URL Formatting}
+%
+% \begin{macro}{\emaillink}
+% The |\emaillink|\oarg{text}\marg{link} macro, analogously to \textsf{komacv}'s
+% |\emaillink| macro, provides a means for typesetting a ``mailto'' link.
+%    \begin{macrocode}
+\providecommand*{\emaillink}[2][]{%
+  \ifstrempty{#1}{%
+    \href{mailto:#2}{\usefontofkomafont{emaillinkfont}#2}}{%
+    \href{mailto:#2}{\usefontofkomafont{emaillinkfont}#1}}}
+\IfExistskomafont{emaillinkfont}{}{\newkomafont{emaillinkfont}{}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\httplink}
+% The |\httplink|\oarg{text}\marg{link} macro, analogously to \textsf{komacv}'s
+% |\httplink| macro, provides a means for typesetting an HTTP link.
+%    \begin{macrocode}
+\providecommand*{\httplink}[2][]{%
+  \ifstrempty{#1}{%
+    \href{http://#2}{\usefontofkomafont{httplinkfont}#2}}{%
+    \href{http://#2}{\usefontofkomafont{httplinkfont}#1}}}
+\IfExistskomafont{httplinkfont}{}{\newkomafont{httplinkfont}{}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\httpslink}
+% The |\httpslink|\oarg{text}\marg{link} macro, analogously to \textsf{komacv}'s
+% |\httplink| macro, provides a means for typesetting an HTTPS link.
+%    \begin{macrocode}
+\providecommand*{\httpslink}[2][]{%
+  \ifstrempty{#1}{%
+    \href{https://#2}{\usefontofkomafont{httplinkfont}#2}}{%
+    \href{https://#2}{\usefontofkomafont{httplinkfont}#1}}}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Registering KOMA Variables with \textsf{komacv} Macros}
+%
+% \begin{macro}{\kcvlco at newvar}
+% The
+% |\kcvlco at newvar|\oarg{description}\marg{KOMAvar}\marg{CVmacro}\marg{conditional}
+% macro provides the KOMA variable \meta{KOMAvar}. If \meta{conditional} is
+% provided, a Boolean |\KOMAoptions| variable named \meta{KOMAvar} is
+% registered.
+% This Boolean is stored in |if|\meta{conditional} (as registered with
+% |\newif|).
+% The macro connects \meta{KOMAvar} with the \textsf{komacv} macro
+% \meta{CVmacro}. The connection establishes that when \meta{KOMAvar} is
+% changed, the \meta{CVmacro} is updated (though \emph{not} vice versa).
+%    \begin{macrocode}
+\newcommand\kcvlco at newvar[4][\relax]{%
+  \ifkomavar{#2}%
+    {\begingroup\def\@tempa{#1}\def\@tempb{\relax}%
+     \ifx\@tempa\@tempb\endgroup\else
+     \endgroup\setkomavar*{#2}{#1}\fi}
+    {\newkomavar[{#1}]{#2}}%
+  \ifstrempty{#4}%
+    {\csdef{kcvlco@@enab@#2}{\ifbool{true}}}%
+    {\csdef{kcvlco@@enab@#2}{\ifbool{#4}}\KOMA at ifkey{#2}{#4}}%
+%    \end{macrocode}
+% We use the \meta{postsetvar} hook of KOMA, which we also implement in our
+% |\setkomavar| surrogate.
+%    \begin{macrocode}
+  \@ifclassloaded{komacv}{%
+    \ifstrempty{#4}%
+      {\csappto{scr@#2 at postsetvar}{\ifkomavarempty{#2}%
+          {\let#3=\empty}%
+          {\kcvlco at storekomavar{#2}{#3}}}}%
+      {\csappto{scr@#2 at postsetvar}{\ifkomavarempty{#2}%
+          {\let#3=\empty}%
+          {\ifbool{#4}{\kcvlco at storekomavar{#2}{#3}}{\let#3=\empty}}}}%
+    \csuse{scr@#2 at postsetvar}}{}}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Internal Helper Macros}
+%
+% \begin{macro}{\kcvlco at error}
+% The |\kcvlco at error|\marg{message} macro displays the given error
+% \meta{message}.
+%    \begin{macrocode}
+\providecommand{\kcvlco at error}[1]{%
+  \PackageError{komacv-lco}{#1}{}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\kcvlco at errundef}
+% The |\kcvlco at errundef|\marg{name} macro displays an error message for
+% KOMA variable \meta{name} not being defined.
+% \meta{message}.
+%    \begin{macrocode}
+\providecommand{\kcvlco at errundef}[1]{%
+  \kcvlco at error{KOMA variable `#1' undefined}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\kcvlco at onlyifdef}
+% The |\kcvlco at onlyifdef|\marg{name}\marg{code} macro displays an error message
+% if KOMA variable \meta{name} is undefined and expands to \meta{code}
+% otherwise.
+% \meta{message}.
+%    \begin{macrocode}
+\providecommand{\kcvlco at onlyifdef}[2]{%
+  \ifkomavar{#1}{#2}{\kcvlco at errundef{#1}}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\kcvlco at storekomavar}
+% The |\kcvlco at storekomavar|\marg{name}\marg{macro} macro stores the content of
+% the KOMA variable \meta{name} into the macro \meta{macro}.
+%    \begin{macrocode}
+\newcommand{\kcvlco at storekomavar}[2]{\letcs#2{kcvlco@@value@#1}}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Declaration of Concrete Variables}
+%
+% \paragraph{Shared variables}
+% The following variables are shared by \textsf{scrlttr2} and \textsf{komacv}.
+% The conditionals used in the last argument to |\kcvlco at newvar| are taken over
+% from \textsf{scrlttr2}.
+%    \begin{macrocode}
+\kcvlco at newvar[\Telefon]{fromphone}{\phonenr}{@phone}
+\kcvlco at newvar[\Mobilefone]{frommobilephone}{\mobile}{@mobilephone}
+\kcvlco at newvar[\FAX]{fromfax}{\faxnr}{@fax}
+\kcvlco at newvar[\Letter]{fromemail}{\email}{@email}
+\kcvlco at newvar{fromurl}{\homepage}{@www}
+%    \end{macrocode}
+%
+% \paragraph{\textsf{scrlttr2} variables}
+% The following variables are \textsf{scrlttr2}-only.
+%    \begin{macrocode}
+\ifkomavar{fromname}{}{\newkomavar{fromname}}
+\setkomavar{fromname}{%
+  \usekomavar{fromfirstname}~\usekomavar{fromfamilyname}}
+\ifkomavar{fromaddress}{}{\newkomavar{fromaddress}}
+\setkomavar{fromaddress}{%
+  \usekomavar{fromaddressstreet}\\ \usekomavar{fromaddresscity}}
+\ifkomavar{place}{}{\newkomavar{place}}
+\ifkomavar{location}{}{\newkomavar{location}}
+%    \end{macrocode}
+%
+% \paragraph{\textsf{komacv} variables}
+% The following variables are \textsf{komacv}-only.
+%    \begin{macrocode}
+\kcvlco at newvar{fromfirstname}{\firstname}{}
+\kcvlco at newvar{fromfamilyname}{\familyname}{}
+\kcvlco at newvar{fromacadtitle}{\acadtitle}{}
+\kcvlco at newvar{fromaddressstreet}{\addressstreet}{}
+\kcvlco at newvar{fromaddresscity}{\addresscity}{}
+\kcvlco at newvar[\faTwitter]{fromtwitter}{\twitter}{kcvlco@@twitter}
+\kcvlco at newvar[\faGithub]{fromgithub}{\github}{kcvlco@@github}
+\kcvlco at newvar[\faFacebook]{fromfacebook}{\facebook}{kcvlco@@facebook}
+\kcvlco at newvar[\faLinkedin]{fromlinkedin}{\linkedin}{kcvlco@@linkedin}
+\kcvlco at newvar{fromextrainfo}{\extrainfo}{kcvlco@@extrainfo}
+%    \end{macrocode}
+%
+%\iffalse
+%</package>
+%\fi
+% \Finale
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-lco.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-multilang.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-multilang.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-multilang.dtx	2017-09-01 01:33:46 UTC (rev 45187)
@@ -0,0 +1,878 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2016-2017 by Richard Gay <richard.gay at t-online.de>
+% -------------------------------------------------------
+% 
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% 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.2 or later is part of all distributions of LaTeX 
+% version 1999/12/01 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{komacv-multilang.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{komacv-multilang}
+%<*package>
+    [2017/08/30 v0.9 Package for multi-lingual extension to komacv]
+%</package>
+%
+%<*driver>
+\RequirePackage{scrlfile}
+\ReplaceClass{article}{scrartcl}
+\BeforePackage{doc}{\let\oldmaketitle\maketitle}
+\PassOptionsToClass{emulatestandardclasses,DIV=11}{scrartcl}
+\documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[columns=2]{idxlayout}
+\usepackage{xspace}
+\usepackage{enumitem}
+\newlist{ExampleAspects}{enumerate*}{1}\setlist[ExampleAspects]{label=(\arabic*)}
+\usepackage{showexpl}
+\lstset{gobble=2,frame=trbl,backgroundcolor=\color{black!5!white},width=0.55\textwidth}
+\lstset{basicstyle=\footnotesize\fontfamily{pcr}\selectfont}
+\lstset{explpreset={columns=fixed,numbers=none,language={}}}
+\lstset{preset={\small\sffamily},overhang=3cm,pos=r,varwidth=false}
+\setkomafont{captionlabel}{\usekomafont{descriptionlabel}}
+\usepackage{pbox}
+\usepackage{csquotes}\MakeOuterQuote{"}
+\renewcommand*\figureformat{\textbf{\figurename~\thefigure}\autodot}
+\newcommand\NiceDescribeStuff[2]{% #1=margin text, #2=body text
+  \medskip\par\noindent\leavevmode%
+  \marginpar{\hfill\hbox to 0pt{\hss\pbox[t]{4\marginparwidth}{\ttfamily #1}}%
+    \hspace*{-0.85\marginparsep}}% NOTE: the 0.85 fixes an otherwise too close placement
+  \ifstrempty{#2}{\ignorespaces}{#2\smallskip\\}}
+\newcommand\NiceDescribeEnv[3][]{% #1=index list, #2=envname, #3=parameters
+  \NiceDescribeStuff{%
+    \textcolor{gray}{\cs{begin}}\string{#2\string}\\
+    \textcolor{gray}{\cs{end}}\string{#2\string}}{#3}%
+  \ifstrempty{#1}
+    {\SpecialEnvIndex{#1}}%
+    {\forcsvlist{\SpecialEnvIndex}{#1}}%
+  \ignorespaces}
+\newcommand\NiceDescribeMacro[2]{% #1=macro, #2=parameters
+  \NiceDescribeStuff{\hbox to 0pt{\hss\string#1}}{#2}%
+  \SpecialUsageIndex{#1}\ignorespaces}
+\newcommand\NiceDescribeConstant[1]{% #1=constant
+  \NiceDescribeStuff{#1\quad\kern 0pt\relax}{}}
+\newcommand\ThisPackage{\textsf{komacv-multilang}\xspace}
+\newcommand\BasePackage{\textsf{komacv}\xspace}
+\usepackage{hypdoc}
+\usepackage[capitalise,noabbrev,nameinlink]{cleveref}
+% The following packages are for the examples.
+% Note that for the documentation purpose we fake loading the \textsf{komacv}
+% class as a package. We disable loading of class files and rather load
+% \textsf{scrartcl} as the class of this document (see the hack above).  We save
+% sectioning commands as \textsf{komacv} redefines them.
+\usepackage{letltxmacro,etoolbox}
+% backup stuff before loading komacv
+\LetLtxMacro{\NormalSection}{\section}
+\LetLtxMacro{\NormalSubSection}{\subsection}
+\LetLtxMacro{\NormalSubSubSection}{\subsubsection}
+\newcommand\GetKomaFont[2]{\letcs#1{scr at fnt@#2}\expandafter\let\expandafter#1#1}
+\newcommand\LetKomaFont[2]{\setkomafont{#1}{#2}}
+\GetKomaFont\NormalSectionFont{section}
+\GetKomaFont\NormalSubSectionFont{subsection}
+\makeatletter
+% disable stuff
+\renewcommand\LoadClass[2][]{}
+\let\oldhypersetup=\hypersetup\def\hypersetup#1{}%
+% load komacv
+\@fileswithoptions\@clsextension[style=casual]{komacv}
+% restore stuff
+\parindent=1em\relax% seems to be the default
+\let\hypersetup\oldhypersetup
+\let\maketitle\oldmaketitle
+\LetLtxMacro{\CVSection}{\section}\GetKomaFont\CVSectionFont{section}\LetKomaFont{section}{\NormalSectionFont}
+\LetLtxMacro{\CVSubSection}{\subsection}\GetKomaFont\CVSubSectionFont{subsection}\LetKomaFont{subsection}{\NormalSubSectionFont}
+\LetLtxMacro{\CVSubSubSection}{\subsubsection}
+\lstset{preset={%
+  \LetLtxMacro{\section}{\CVSection}\LetKomaFont{section}{\CVSectionFont}%
+  \LetLtxMacro{\subsection}{\CVSubSection}\LetKomaFont{subsection}{\CVSubSectionFont}%
+  \LetLtxMacro{\subsubsection}{\CVSubSubSection}%
+  % fix the width of columns in each listing based on \linewidth
+  \setlength{\@hintscolwidth}{0.3\linewidth}%
+  \setlength{\@maincolwidth}{\linewidth-\@sepcolwidth-\@hintscolwidth}%
+  \setlength{\@dbitemmaincolwidth}{%
+    \@maincolwidth-\@hintscolwidth-2\@sepcolwidth}%
+  \setlength{\@dbitemmaincolwidth}{0.33\@dbitemmaincolwidth}%
+  % NOTE: \@sepcolwidth is actually missing in komacv...
+  \setlength{\@listdbitemmaincolwidth}{\@maincolwidth-\@sepcolwidth-\@listitemsymbolwidth}%
+  \setlength{\@listdbitemmaincolwidth}{0.475\@listdbitemmaincolwidth}%
+}}
+\LetLtxMacro{\section}{\NormalSection}
+\LetLtxMacro{\subsection}{\NormalSubSection}
+\LetLtxMacro{\subsubsection}{\NormalSubSubSection}
+\makeatother
+\usepackage[german,english]{babel}
+\usepackage[languages={english,german}]{komacv-multilang}
+% end of examples packages
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+  \DocInput{komacv-multilang.dtx}
+  \PrintChanges
+  \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%   Digits        \0\1\2\3\4\5\6\7\8\9
+%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%   Dollar        \$     Percent       \%     Ampersand     \&
+%   Acute accent  \'     Left paren    \(     Right paren   \)
+%   Asterisk      \*     Plus          \+     Comma         \,
+%   Minus         \-     Point         \.     Solidus       \/
+%   Colon         \:     Semicolon     \;     Less than     \<
+%   Equals        \=     Greater than  \>     Question mark \?
+%   Commercial at \@     Left bracket  \[     Backslash     \\
+%   Right bracket \]     Circumflex    \^     Underscore    \_
+%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%   Right brace   \}     Tilde         \~}
+%
+% \changes{v0.1}{2016/09/03}{Initial version (unpublished)}
+% \changes{v0.9}{2017/08/30}{Complete rewrite, splits off \textsf{multilang} package}
+%
+% \GetFileInfo{komacv-multilang.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment,\def,\gdef,\edef}
+%
+%
+% \title{The \ThisPackage Package\thanks{This document
+%   corresponds to \ThisPackage~\fileversion, dated \filedate.
+%   The package is available online at
+%   \url{http://www.ctan.org/pkg/komacv-rg} and
+%   \url{https://github.com/Ri-Ga/komacv-rg}.}}
+% \author{Richard Gay \\ \texttt{richard.gay at t-online.de}}
+%
+% \maketitle
+%
+% \section{Introduction}
+% \label{sec:Introduction}
+%
+% The goal of \ThisPackage is to simplify the specification and maintenance of a
+% CV in multiple languages. More concretely, \ThisPackage enables one
+% \begin{itemize}[noitemsep]
+% \item to specify translations for pieces of content such that they are located
+%   closely together and easily identifiable as belonging together; and
+% \item to change the document's language as simple as changing the
+%   \textsf{babel} or \textsf{polyglossia} language.
+% \end{itemize}
+% That is, with \ThisPackage, you can continuously expand and improve your CV in
+% more than one language and when you actually want to use the CV, you choose a
+% language and restrict the content to what you want to show.
+%
+% The \ThisPackage package is realized as proxy to the \BasePackage class. The
+% latter package enables one to typeset CVs in one of three styles provided by
+% the package or in a custom-made style.  \ThisPackage uses the
+% \textsf{multilang} package to define a set of macros and environments that
+% establish a multilingual interface to
+% \BasePackage's macros and
+% \LaTeX's sectioning and list macros and environments.
+% The macros and environments of \ThisPackage provide a proxy to all macros of
+% \BasePackage that produce CV entries.
+% That is, with \ThisPackage, it should not be necessary to use \BasePackage
+% directly for CV entries, even though it is still possible to use \BasePackage
+% macros.
+%
+% The remainder of this introduction provides an example based on \BasePackage's
+% "casual" style.
+% The \ThisPackage package is not limited to a specific style but bases on the
+% macro interface provided by the core \BasePackage class (i.e., macros like
+% |\cvitem| and |\cventry|).
+% The example shows a toy excerpt of a multilingual CV with \ThisPackage
+% (\cref{fig:Example-multilang}). For comparison, the same CV is also produced
+% with pure \BasePackage (\cref{fig:Example-komacv}) and an ad-hoc approach to
+% specifying the translations.
+%
+% The example shows the document preamble, sectioning, a simple as
+% well as a more involved CV entry, date range specification, and list entries.
+% The example can be used for getting an intuition about \ThisPackage as well as
+% for deciding whether to use \ThisPackage (or rather an ad-hoc approach as in
+% \cref{fig:Example-komacv}).
+%
+% \begin{figure}[p]
+% \begin{LTXexample}[pos=t,width=\textwidth,overhang=0cm]
+% % in preamble
+% \documentclass[style=casual]{komacv}
+% \usepackage[english]{babel}
+% \usepackage[languages={english,german}]{komacv-multilang}
+% % in document
+% \begin{Section}{
+%     title/english       = Education,
+%     title/german        = Schulische Ausbildung}
+%   \BasicEntry{
+%     header/english      = {date of birth},
+%     header/german       = {Geburtsdatum},
+%     text/date           = {1970-01-01},
+%   }
+%   \EducationEntry{
+%     when/daterange      = {2010-08-01}{2015-07-31},
+%     degree/english      = M.Sc.{} Computer Science,
+%     degree/german       = Master Informatik,
+%     institution         = UCSB,
+%     where/english       = {California, USA},
+%     where/german        = {Kalifornien, USA},
+%     grade/english       = 4.00 GPA,
+%     grade/german        = {Gesamtnote 1,0},
+%     details/list        = {
+%       \Item{
+%         value/english   = {cryptography},
+%         value/german    = {Kryptographie},
+%       }
+%       \Item{
+%         value/english   = {software engineering},
+%         value/german    = {Software-Engineering},
+%       }
+%     },
+%   }
+% \end{Section}
+% \end{LTXexample}
+% \caption{Multilingual CV with \ThisPackage}
+% \label{fig:Example-multilang}
+% \end{figure}
+%
+% \begin{figure}[p]
+% \begin{LTXexample}[pos=t,width=\textwidth,overhang=0cm]
+% % in preamble
+% \documentclass[style=casual]{komacv}
+% \usepackage[english]{babel}
+% \newcommand\inEnglish[1]{#1}
+% \newcommand\inGerman[1]{}
+% % in document
+% \section{\inEnglish     {Education}%
+%          \inGerman      {Schulische Ausbildung}}
+% \cvitem{\inEnglish      {date of birth}%
+%         \inGerman       {Geburtsdatum}}
+%        {\inEnglish      {January 1, 1970}%
+%         \inGerman       {1.{} Januar 1970}}
+% \cventry                {08/2010 -- 07/2015}
+%         {\inEnglish     {M.Sc.{} Computer Science}%
+%          \inGerman      {Master Informatik}}
+%                         {UCSB}
+%         {\inEnglish     {California, USA}%
+%          \inGerman      {Kalifornien, USA}}
+%         {\inEnglish     {4.00 GPA}%
+%          \inGerman      {Gesamtnote 1,0}}%
+%         {\begin{compactitem}
+%         \item\inEnglish {cryptography}%
+%              \inGerman  {Kryptographie}
+%         \item\inEnglish {software engineering}%
+%              \inGerman  {Software-Engineering}
+%         \end{compactitem}}
+% \end{LTXexample}
+% \caption{Multilingual CV with \BasePackage}\medskip
+% \label{fig:Example-komacv}
+% \end{figure}
+% \clearpage
+%
+%
+% \section{Usage}
+% \label{sec:Usage}
+%
+%
+% \subsection{Package Loading}
+%
+% The \ThisPackage package is loaded like any other package.
+% The only requirements to pay attention to are,
+% firstly, \ThisPackage must be loaded after \textsf{babel} or
+% \textsf{polyglossia}, and
+% secondly, \ThisPackage must be loaded after the \BasePackage class.
+% This ensures that \ThisPackage can detect the document's language and that it
+% can apply fixes to \BasePackage.
+%
+% \NiceDescribeConstant{languages}
+% The \ThisPackage package has one package option: |languages|.
+% Through this option, the set of languages known to \ThisPackage is specified,
+% as a comma-separated list.
+% \cref{sec:Usage-Sections} includes an example of loading \ThisPackage.
+%
+%
+% \subsection{Sections}
+% \label{sec:Usage-Sections}
+%
+% The \ThisPackage package utilizes \textsf{multilang-sect} for sectioning
+% environments. Under the \BasePackage class, these environments produce
+% sections in the respective loaded \BasePackage style.
+% The following documentation essentially repeats what is also stated in the
+% \textsf{multilang} documentation.
+%
+% \NiceDescribeEnv{Section}{\marg{data}}
+% This environment shows a section.
+% It has a single, mandatory argument, named |title|.
+% It is a disablable environment, i.e., the argument |disabled| can be used in
+% \meta{data} to disable the display of the whole section.
+% This environment acts as a proxy for the |\section| macro as it is used by
+% \BasePackage (i.e., without optional argument and without the star).
+
+% \NiceDescribeEnv{SubSection}{\marg{data}}
+% This environment is analogous to the |Section| environment, just for
+% sub-sections.
+% Examples:
+%
+% \begin{LTXexample}[morekeywords={Section,SubSection}]
+% % in preamble
+% \documentclass[style=casual]{komacv}
+% \usepackage[english]{babel}
+% \usepackage[languages={english,german}]
+%            {komacv-multilang}
+% % in document
+% \begin{Section}{
+%     title/english = Work Experience,
+%     title/german  = Berufserfahrungen,
+%   }
+%   (section content)
+%   \begin{SubSection}{
+%       title/english = Teaching,
+%       title/german  = Lehre,
+%     }
+%     (subsection content)
+%   \end{SubSection}
+% \end{Section}
+% \end{LTXexample}
+% The example shows several aspects:
+% \begin{ExampleAspects}
+% \item how the \ThisPackage package is loaded and how its |languages| option
+%   is used
+%   and
+% \item how the |Section| and |SubSection| environments can be used.
+% \end{ExampleAspects}
+%
+%
+% \subsection{CV Entries}
+% \label{sec:Usage-Entries}
+%
+% The \BasePackage provides a set of macros for typesetting CV entries. In the
+% following, we introduce the proxies for these macros provided by \ThisPackage.
+%
+%
+% \NiceDescribeMacro{\BasicEntry}{\marg{data}}
+% This macro has two mandatory arguments, named |header| and |text|, and one
+% optional argument, named |spacing|.
+% The argument alias |both| can be used to specify the |header| and |text|
+% simultaneously.
+% It is a disablable macro, i.e., the argument |disabled| can be used in
+% \meta{data} to disable the display of the entry.
+% This macro acts as a proxy for \BasePackage's |\cvitem| macro.
+% That is, the value of the |header| argument is displayed in the hint column
+% and the |text| is displayed in the main column.
+% The value of the |spacing| argument specifies the vertical spacing below the
+% CV entry. Examples:
+%
+% \begin{LTXexample}[morekeywords={BasicEntry}]
+% \BasicEntry{
+%   header/english = date of birth,
+%   header/german  = Geburtsdatum,
+%   text/date      = 1970-01-01,
+% }
+% \BasicEntry{disabled,
+%   both/english   = {marital status}{single},
+%   both/german    = {Familienstand}{ledig},
+% }
+% \end{LTXexample}
+% The example shows several aspects:
+% \begin{ExampleAspects}
+% \item how translated values for the arguments |header| and |text| are
+%   specified,
+% \item how a date can be specified (in the |yyyy-mm-dd| format) for a localized
+%   display,
+% \item how the display of an entry can be disabled,
+% \item how the |both| argument can be used,
+%   and
+% \item how the \LaTeX{} source code can be aligned such that it is easily
+%   readable despite the presence of translations.
+% \end{ExampleAspects}
+%
+%
+% \NiceDescribeMacro{\CommentedEntry}{\marg{data}}
+% This macro has three mandatory arguments, named |header|, |text|, and
+% |comment|, as well as one optional argument named |spacing|.
+% The argument alias |all| can be used to specify |header|, |text|, and
+% |comment| simultaneously.
+% It is a disablable macro, i.e., the argument |disabled| can be used in
+% \meta{data} to disable the display of the entry.
+% This macro acts as a proxy for \BasePackage's |\cvitemwithcomment| macro.
+% That is, the value of the |header| argument is displayed in the hint column,
+% the |text| is displayed in the main column and the |comment| is displayed
+% right-aligned in the main column.
+% The value of the |spacing| argument specifies the vertical spacing below the
+% CV entry. Examples:
+%
+% \begin{LTXexample}[morekeywords={CommentedEntry}]
+% \CommentedEntry{
+%   all/english    = {English}{fluent}
+%                    {(oral and written)},
+%   all/german     = {Englisch}{flie{\ss}end}
+%                    {(in Wort und Schrift)}
+% }
+% \CommentedEntry{
+%   header/english = German,
+%   header/german  = Deutsch,
+%   text/english   = mother tongue,
+%   text/german    = Muttersprache,
+%   comment        = {},
+% }
+% \end{LTXexample}
+% The example shows several aspects:
+% \begin{ExampleAspects}
+% \item how the |all| argument alias can be used,
+% \item how arguments can be broken into multiple lines,
+% \item how translated values for the arguments |header|, |text|, and |comment|
+%   are specified,
+%   and
+% \item how an argument can be left empty in all languages (|comment|).
+% \end{ExampleAspects}
+%
+%
+% \NiceDescribeMacro{\DoubleEntry}{\marg{data}}
+% This macro has four mandatory arguments, named
+% |header1|, |text1|, |header2|, and |text2|,
+% as well as one optional argument named |spacing|.
+% The argument aliases |first| and |second| can be used to specify |header1|,
+% and |text1|, respectively, |header2| and |text2| simultaneously.
+% It is a disablable macro, i.e., the argument |disabled| can be used in
+% \meta{data} to disable the display of the entry.
+% This macro acts as a proxy for \BasePackage's |\cvdoubleitem| macro.
+% That is, the value of the |header1| argument is displayed in the hint column,
+% and the values of |text1|, |header2|, and |text2| are displayed in a columned
+% fashion in the main column.
+% The value of the |spacing| argument specifies the vertical spacing below the
+% CV entry. Example:
+%
+% \begin{LTXexample}[morekeywords={DoubleEntry}]
+% \DoubleEntry{
+%   first  = {h1}{t1},
+%   second = {h2}{t2},
+% }
+% \end{LTXexample}
+% The example shows
+% how the |first| and |second| argument aliases can be used.
+% Further possibilities for specifying the arguments, including translations,
+% are analogous to the cases of |\BasicEntry| and |\DoubleEntry|.
+%
+%
+% \NiceDescribeMacro{\EducationEntry}{\marg{data}}
+% This macro has five mandatory arguments, named
+% |when|, |degree|, |institution|, |where|, and |grade|,
+% as well as two optional arguments, named |spacing| and |details|.
+% It is a disablable macro, i.e., the argument |disabled| can be used in
+% \meta{data} to disable the display of the entry.
+% This macro acts as a proxy for \BasePackage's |\cventry| macro.
+% That is, the value of the |where| argument is displayed in the hint column,
+% whereas the values for the other arguments are displayed in the main column
+% (in the order they are listed).
+% The value of the |spacing| argument specifies the vertical spacing below the
+% CV entry. Example:
+%
+% \begin{LTXexample}[morekeywords={EducationEntry}]
+% \EducationEntry{
+%   when/daterange = {2010-08-01}{2015-07-31},
+%   degree/english = M.Sc.{} Computer Science,
+%   degree/german  = Master Informatik,
+%   institution    = UCSB,
+%   where/english  = {California, USA},
+%   where/german   = {Kalifornien, USA},
+%   grade/english  = 4.00 GPA,
+%   grade/german   = {Gesamtnote 1,0},
+%   details        = {(e.g., honors, awards)},
+% }
+% \end{LTXexample}
+% The example shows a few notable aspects:
+% \begin{ExampleAspects}
+% \item how the arguments can be used,
+% \item how a date range can be specified (for the |when| argument),
+%   and
+% \item how curly braces can be used to deal with commas in argument values
+%   (for the |where|, |grade|, and |details| arguments).
+% \end{ExampleAspects}
+%
+%
+% \NiceDescribeMacro{\EmploymentEntry}{\marg{data}}
+% This macro has four mandatory arguments, named
+% |when|, |title|, |employer|, and |where|,
+% as well as two optional arguments, named |spacing| and |description|.
+% It is a disablable macro, i.e., the argument |disabled| can be used in
+% \meta{data} to disable the display of the entry.
+% This macro acts as a proxy for \BasePackage's |\cventry| macro, as also
+% |\EducationEntry|.
+% The |\EmploymentEntry| specializes to detailed entries about professional/work
+% experiences.
+% Example:
+%
+% \begin{LTXexample}[morekeywords={EmploymentEntry}]
+% \EmploymentEntry{
+%   when/daterange = {2015-08-01}{*},
+%   title/english  = Software engineer,
+%   title/german   = Softwareentwickler,
+%   employer       = XYZ Development,
+%   where/english  = {California, USA},
+%   where/german   = {Kalifornien, USA},
+%   description    = {Java, JavaScript},
+% }
+% \end{LTXexample}
+%
+% \NiceDescribeMacro{\AchievementEntry}{\marg{data}}
+% This macro has two mandatory arguments, named
+% |when| and |title|,
+% as well as four optional arguments, named |spacing|, |occasion|, |where|, and |description|.
+% It is a disablable macro, i.e., the argument |disabled| can be used in
+% \meta{data} to disable the display of the entry.
+% This macro acts as a proxy for \BasePackage's |\cventry| macro, as also
+% |\EducationEntry| and |\EmploymentEntry|.
+% The |\AchievementEntry| specializes to entries about achievements.
+% Example:
+%
+% \begin{LTXexample}[morekeywords={AchievementEntry}]
+% \AchievementEntry{
+%   when/date     = 2016-05-01,
+%   title/english = employee of the month,
+%   title/german  = Mitarbeiter des Monats,
+%   where         = XYZ Development,
+% }
+% \end{LTXexample}
+%
+%
+% \NiceDescribeMacro{\EntryListItem}{\marg{data}}
+% This macro has one mandatory argument, |item|, and one optional argument,
+% |label|.
+% It is a disablable macro, i.e., the argument |disabled| can be used in
+% \meta{data} to disable the display of the entry.
+% This macro acts as a proxy for \BasePackage's |\cvlistitem| macro.
+%
+% \NiceDescribeMacro{\EntryListDblItem}{\marg{data}}
+% This macro has two mandatory arguments, |first| and |second|, and one optional
+% argument, |spacing|.\footnote{Note that contrary to the \BasePackage
+% documentation, the optional argument to \cs{cvlistitem} and
+% \cs{cvlistdoubleitem} is also the spacing and not a label.}
+% The argument alias |both| can be used to specify |first| and |second|
+% simultaneously.
+% It is a disablable macro, i.e., the argument |disabled| can be used in
+% \meta{data} to disable the display of the entry.
+% This macro acts as a proxy for \BasePackage's |\cvlistdoubleitem| macro.
+% Examples:
+%
+% \begin{LTXexample}[morekeywords={EntryListDblItem,EntryListItem}]
+% \BasicEntry{
+%   header/english = programming,
+%   header/german  = Programmiersprachen,
+%   text/english   = {I am proficient in:},
+%   text/german    = {Ich beherrsche:}}
+% \EntryListDblItem{both = {Java}{C/C++}}
+% \EntryListItem   {item = PHP}
+% \end{LTXexample}
+%
+%
+% \subsection{Dates and Lists}
+%
+% The \ThisPackage package defines several datatypes, such as |date| and
+% |daterange|, which are illustrated multiple times in \cref{sec:Usage-Entries}.
+% The following is a complete list of all defined datatypes.
+%
+% \begin{description}
+% \item[|date|:]
+%   This datatype expects a date in the format |yyyy-mm-dd| and displays it in
+%   the regional format for dates.
+%
+% \item[|daterange|:]
+%   This datatype expects two dates in the format |yyyy-mm-dd| and displays them
+%   in the same format as |shortdate|, with a ``--'' in between.
+%   If the second date is ``|*|'', the text ``today'' (in the selected
+%   language) is displayed.
+%
+% \item[|shortdate|:]
+%   This datatype expects a date in the format |yyyy-mm-dd| and displays it in
+%   the format ``mm/yyyy''.
+%
+% \item[|list|:]
+%   This datatype expects a list of items and displays the items in a compact
+%   form. Items can be specified with the standard |\item| macro as well as with
+%   the multilingual |\Item|\marg{data} macro, whose \meta{data} parameter
+%   expected one mandatory argument, |value|.
+%   The following example shows both possibilities.\smallskip
+%
+% \begin{LTXexample}[morekeywords={list,Item}]
+% \BasicEntry{
+%   header/english = programming languages,
+%   header/german  = Programmiersprachen,
+%   text/list      = {
+%     \item PHP
+%     \Item{value     = Java}
+%     \Item{
+%       value/english = C and C++,
+%       value/german  = C und C++}}}
+% \end{LTXexample}
+%
+% \end{description}
+%
+%
+% \subsection{Tags}
+%
+% The \ThisPackage package utilizes \textsf{multilang-tags} for tag support.
+% Tag support enables one to easily switch between granularities and focuses of
+% a CV.
+% The following just provides an example from the context of typesetting CVs.
+% For more information, please consult the \textsf{multilang} documentation.
+%
+% \begin{LTXexample}[morekeywords={tags,DefineTagFilter,UseTagFilter}]
+% \DefineTagFilter{Programmer}{accept}{
+%   accept=PLDetails,     deny=OfficeDetails}
+% \DefineTagFilter{Consultant}{accept}{
+%   accept=OfficeDetails, deny=PLDetails}
+% \UseTagFilter{Consultant}
+% \begin{Section}{
+%     title/english    = Skills,
+%     title/german     = Qualifikationen}
+%   \BasicEntry{
+%     header/english   = Programming,
+%     header/german    = Programmiersprachen,
+%     text/list        = {
+%       \Item{value    = {Java, C/C++}}
+%       \Item{tags     = PLDetails,
+%             value    = {\LaTeX, Bash}}}}
+%   \BasicEntry{header = Software,
+%     text/list        = {
+%       \Item{value    = MS Office}
+%       \Item{tags     = OfficeDetails,
+%             value    = Adobe InDesign}}}
+% \end{Section}
+% \end{LTXexample}
+%
+% \clearpage
+%
+% \StopEventually{}
+%\iffalse
+%<*package>
+%\fi
+%
+%
+% \section{Implementation}
+%
+% The \textsf{multilang} package provides the core feature of \ThisPackage:
+% defining multilingual macros and environments. We load the package with the
+% same options as \ThisPackage. That is, the |languages| option of \ThisPackage
+% is passed on to \textsf{multilang}.
+% We also utilize the \textsf{multilang} extensions for tags and sectioning macros.
+%    \begin{macrocode}
+\RequirePackageWithOptions{multilang}
+\RequirePackage{multilang-tags}
+\RequirePackage{multilang-sect}
+%    \end{macrocode}
+% For the date datatypes (\cref{sec:Implementation-DateFormatting}), we use the
+% following packages:
+%    \begin{macrocode}
+\PassOptionsToPackage{useregional}{datetime2}
+\RequirePackage{datetime2,datetime2-calc}
+\RequirePackage{translations}
+%    \end{macrocode}
+%
+%
+% \subsection{Datatypes}
+%
+% We define the datatypes before we define the multilingual macros and
+% environments, such that the datatypes are available in the macros and
+% environments.
+%
+% \subsubsection{Date Formatting}
+% \label{sec:Implementation-DateFormatting}
+%
+% First, we define the three datatypes. The code largely speaks for itself.
+%    \begin{macrocode}
+\NewMultilangType{date}{\DTMdate{#1}}
+\NewMultilangType{shortdate}{%
+  \DTMsetdatestyle{Myyyy}\DTMdate{#1}\DTMsetdatestyle{default}}
+\NewMultilangType[2]{daterange}{%
+  \DTMsetdatestyle{Myyyy}\DTMdate{#1} --
+%    \end{macrocode}
+% If the second argument to |daterange| equals ``|*|'', then the text ``today''
+% (in the translation for the current language) is displayed rather than a date.
+%    \begin{macrocode}
+  \ifstrequal{#2}{*}%
+    {\GetTranslation{today}}%
+    {\DTMdate{#2}}\DTMsetdatestyle{default}}
+%    \end{macrocode}
+% Next, we define the |Myyyy| date format, which we use for the |shortdate| and
+% |daterange| style.
+%    \begin{macrocode}
+\DTMnewdatestyle{Myyyy}{%
+  \def\DTMdisplaydate##1##2##3##4{\DTMtwodigits{##2}/##1}}
+%    \end{macrocode}
+% Finally, we provide a small set of initial translations for the ``today'' in
+% |daterange|.
+%    \begin{macrocode}
+\DeclareTranslation{english}{today}{today}
+\DeclareTranslation{german}{today}{heute}
+\DeclareTranslation{french}{today}{aujourd'hui}
+%    \end{macrocode}
+%
+%
+% \subsubsection{List Formatting}
+%
+% First, we define the list type, |list|.
+%    \begin{macrocode}
+\NewMultilangType{list}{\kcvml at list{#1}}
+%    \end{macrocode}
+%
+% \begin{macro}{\kcvml at list}
+% For the |list| datatype, the |\kcvml at list|\marg{items} macro formats an
+% itemized list of multiple items. The items of the list are specified by
+% \meta{items}. The items can be specified with |\item| macros as well as with
+% multilingual |\Item| macros (i.e., |\kcvml at listitem|).
+%    \begin{macrocode}
+\newcommand\kcvml at list[1]{%
+%    \end{macrocode}
+% To ensure a proper spacing, we use \textsf{komacv}'s |compactitem| environment
+% and encapsulate this environment inside a |minipage|.
+% Only inside this environment, we enable the |\Item| macro.
+%    \begin{macrocode}
+  \begin{minipage}[t]{\linewidth}%
+  \let\Item=\kcvml at listitem
+  \compactitem
+  #1%
+%    \end{macrocode}
+% For the case that the last line of the last list item has a small depth, the
+% |minipage| might yield a bad spacing to content following the list.
+% Hence, we add a |\strut| here.
+%    \begin{macrocode}
+  \ifhmode\unskip\strut\fi
+  \endcompactitem
+  \end{minipage}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\kcvml at listitem}
+% The |\kcvml at listitem|\marg{data} enables multilingual items as a proxy to
+% the |\item| macro. We treat |\item| here as a macro with one argument, as it
+% usually does not harm to write ``|\item{text}|'' rather than ``|\item text|''.
+%    \begin{macrocode}
+\NewMultilangCmd{\kcvml at listitem}{disablable,
+  command=\item, margs=value}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{CV Entries}
+%
+% \begin{macro}{\BasicEntry}
+% The |\BasicEntry|\marg{data} is a proxy to the |\cvitem| macro of
+% \BasePackage.
+%    \begin{macrocode}
+\NewMultilangCmd{\BasicEntry}{disablable,
+  command=\cvitem,
+  oargs={spacing},
+  margs={header,text},
+  alias/both={header,text},
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CommentedEntry}
+% The |\CommentedEntry|\marg{data} is a proxy to the |\cvitemwithcomment| macro
+% of \BasePackage.
+%    \begin{macrocode}
+\NewMultilangCmd{\CommentedEntry}{disablable,
+  command=\cvitemwithcomment,
+  oargs={spacing},
+  margs={header,text,comment},
+  alias/all={header,text,comment},
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DoubleEntry}
+% The |\DoubleEntry|\marg{data} is a proxy to the |\cvdoubleitem| macro of
+% \BasePackage.
+%    \begin{macrocode}
+\NewMultilangCmd{\DoubleEntry}{disablable,
+  command=\cvdoubleitem,
+  oargs={spacing},
+  margs={header1,text1,header2,text2},
+  alias/first={header1,text1},
+  alias/second={header2,text2},
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EducationEntry}
+% The |\EducationEntry|\marg{data} is a proxy to the |\cventry| macro of
+% \BasePackage, specialized for education-related entries.
+%    \begin{macrocode}
+\NewMultilangCmd{\EducationEntry}{disablable,
+  command=\cventry,
+  oargs={spacing},
+  margs={when,degree,institution,where,grade,details},
+  defaults={details={}},
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EmploymentEntry}
+% The |\EmploymentEntry|\marg{data} is a proxy to the |\cventry| macro of
+% \BasePackage, specialized for main work-related entries.
+%    \begin{macrocode}
+\NewMultilangCmd{\EmploymentEntry}{disablable,
+  command=\cventry,
+  oargs={spacing},
+  margs={when,title,employer,where, at grade,description},
+  defaults={@grade={}, description={}},
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AchievementEntry}
+% The |\AchievementEntry|\marg{data} is a proxy to the |\cventry| macro of
+% \BasePackage, specialized for achievements.
+%    \begin{macrocode}
+\NewMultilangCmd{\AchievementEntry}{disablable,
+  command=\cventry,
+  oargs={spacing},
+  margs={when,title,occasion,where, at grade,description},
+  defaults={@grade={}, occasion={}, where={}, description={}},
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EntryListItem}
+% The |\EntryListItem|\marg{data} is a proxy to the |\cvlistitem| macro of
+% \BasePackage.
+%    \begin{macrocode}
+\NewMultilangCmd{\EntryListItem}{disablable,
+  command=\cvlistitem,
+  oargs={spacing},
+  margs={item},
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EntryListDblItem}
+% The |\EntryListDblItem|\marg{data} is a proxy to the |\cvlistdoubleitem|
+% macro of \BasePackage.
+%    \begin{macrocode}
+\NewMultilangCmd{\EntryListDblItem}{disablable,
+  command=\cvlistdoubleitem,
+  oargs={spacing},
+  margs={first,second},
+  alias/both={first,second},
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+% \Finale
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-multilang.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-rg.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-rg.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/komacv-rg/komacv-rg.ins	2017-09-01 01:33:46 UTC (rev 45187)
@@ -0,0 +1,38 @@
+%%
+%% Copyright (C) 2016-2017 by Richard Gay <richard.gay at t-online.de>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/komacv-rg}
+\preamble
+
+Copyright (C) 2016-2017 by Richard Gay <richard.gay at t-online.de>
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version
+1999/12/01 or later.
+
+\endpreamble
+
+\generate{\file{komacv-multilang.sty}{\from{komacv-multilang.dtx}{package}}}
+\generate{\file{komacv-lco.sty}{\from{komacv-lco.dtx}{package}}}
+\generate{\file{komacv-addons.sty}{\from{komacv-addons.dtx}{package}}}
+
+\endbatchfile

Added: trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-addons.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-addons.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-addons.sty	2017-09-01 01:33:46 UTC (rev 45187)
@@ -0,0 +1,45 @@
+%%
+%% This is file `komacv-addons.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% komacv-addons.dtx  (with options: `package')
+%% 
+%% Copyright (C) 2016-2017 by Richard Gay <richard.gay at t-online.de>
+%% 
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%% 
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{komacv-addons}
+    [2017/08/30 v1 Various small addons and fixes to komacv]
+\newcommand*\signaturecity{}
+\newcommand*\beforesigvspace{3cm}
+\newcommand\Signature[1][0.382\textwidth]{%
+  \par
+  \begin{tabular}{@{}p{#1}@{}}
+    \rule{0pt}{\beforesigvspace}\\\hline
+    \signaturecity, \today\hfill
+  \end{tabular}}
+\RequirePackage{letltxmacro}
+\LetLtxMacro{\kcvml at origcvitem}{\cvitem}
+\renewcommand*{\cvitem}[3][\@afterelementsvspace]{%
+  \kcvml at origcvitem[#1]{#2}{\@minipagetrue #3}}
+\AtEndPreamble{
+  \ifdimequal{\listdbitemmaincolwidth}{0pt}{%
+    \setlength{\@listdbitemmaincolwidth}
+              {\@maincolwidth-\@sepcolwidth-\@listitemsymbolwidth}%
+    \setlength{\@listdbitemmaincolwidth}{0.475\@listdbitemmaincolwidth}%
+  }{}%
+}
+\endinput
+%%
+%% End of file `komacv-addons.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-addons.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-lco.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-lco.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-lco.sty	2017-09-01 01:33:46 UTC (rev 45187)
@@ -0,0 +1,126 @@
+%%
+%% This is file `komacv-lco.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% komacv-lco.dtx  (with options: `package')
+%% 
+%% Copyright (C) 2016-2017 by Richard Gay <richard.gay at t-online.de>
+%% 
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%% 
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{komacv-lco}
+    [2017/08/30 v0.9 Letter class options usable for komacv]
+\RequirePackage{etoolbox}
+\RequirePackage{scrkbase}
+\RequirePackage{marvosym,fontawesome}
+\providecommand{\newkomavar}{%
+  \@ifstar{\kcvlco at newkomavar}{\kcvlco at newkomavar}}
+\newcommand{\kcvlco at newkomavar}[2][\relax]{%
+  \ifkomavar{#2}%
+    {\kcvlco at error{KOMA variable `#2' already defined}}%
+    {\csdef{kcvlco@@var@#2}{\empty}%
+     \begingroup\def\@tempa{#1}\def\@tempb{\relax}%
+     \ifx\@tempa\@tempb\endgroup\else
+     \endgroup\csdef{kcvlco@@desc@#2}{#1}\fi}}
+\providecommand{\setkomavar}{%
+  \@ifstar{\kcvlco at setkomadesc}{\kcvlco at setkomavar}}
+\newcommand{\kcvlco at setkomavar}[1]{\kcvlco at onlyifdef{#1}{\@ifnextchar[%
+  {\kcvlco at setkomavar@i{#1}}{\kcvlco at setkomavar@i{#1}[\relax]}}}
+\long\def\kcvlco at setkomavar@i#1[#2]#3{%
+  \csdef{kcvlco@@value@#1}{#3}%
+  \csuse{scr@#1 at postsetvar}%
+  \begingroup\def\@tempa{#2}\def\@tempb{\relax}%
+  \ifx\@tempa\@tempb\endgroup\else
+  \endgroup\csdef{kcvlco@@desc@#1}{#2}\fi}
+\newcommand{\kcvlco at setkomadesc}[2]{%
+  \csdef{kcvlco@@desc@#1}{#2}}
+\providecommand{\usekomavar}{%
+  \@ifstar{\kcvlco at usekomadesc}{\kcvlco at usekomavar}}
+\newcommand{\kcvlco at usekomavar}[2][\@firstofone]{%
+  \kcvlco at onlyifdef{#2}{#1{\csuse{kcvlco@@value@#2}}}}
+\newcommand{\kcvlco at usekomadesc}[2][\@firstofone]{%
+  \kcvlco at onlyifdef{#2}{#1{\csuse{kcvlco@@desc@#2}}}}
+\providecommand{\ifkomavarempty}{%
+  \@ifstar{\kcvlco at ifemptydesc}{\kcvlco at ifemptyvar}}
+\newcommand{\kcvlco at ifemptyvar}[1]{\ifcsvoid{kcvlco@@value@#1}}
+\newcommand{\kcvlco at ifemptydesc}[1]{\ifcsvoid{kcvlco@@desc@#1}}
+\providecommand{\ifkomavar}[1]{\ifcsdef{kcvlco@@var@#1}}
+\providecommand{\ifkomavarenabled}[1]{\csuse{kcvlco@@enab@#1}}
+\providecommand\LoadLetterOption[1]{\input{#1.lco}}
+\providecommand\LoadLetterOptions[1]{\forcsvlist{\LoadLetterOption}{#1}}
+\providecommand*{\emaillink}[2][]{%
+  \ifstrempty{#1}{%
+    \href{mailto:#2}{\usefontofkomafont{emaillinkfont}#2}}{%
+    \href{mailto:#2}{\usefontofkomafont{emaillinkfont}#1}}}
+\IfExistskomafont{emaillinkfont}{}{\newkomafont{emaillinkfont}{}}
+\providecommand*{\httplink}[2][]{%
+  \ifstrempty{#1}{%
+    \href{http://#2}{\usefontofkomafont{httplinkfont}#2}}{%
+    \href{http://#2}{\usefontofkomafont{httplinkfont}#1}}}
+\IfExistskomafont{httplinkfont}{}{\newkomafont{httplinkfont}{}}
+\providecommand*{\httpslink}[2][]{%
+  \ifstrempty{#1}{%
+    \href{https://#2}{\usefontofkomafont{httplinkfont}#2}}{%
+    \href{https://#2}{\usefontofkomafont{httplinkfont}#1}}}
+\newcommand\kcvlco at newvar[4][\relax]{%
+  \ifkomavar{#2}%
+    {\begingroup\def\@tempa{#1}\def\@tempb{\relax}%
+     \ifx\@tempa\@tempb\endgroup\else
+     \endgroup\setkomavar*{#2}{#1}\fi}
+    {\newkomavar[{#1}]{#2}}%
+  \ifstrempty{#4}%
+    {\csdef{kcvlco@@enab@#2}{\ifbool{true}}}%
+    {\csdef{kcvlco@@enab@#2}{\ifbool{#4}}\KOMA at ifkey{#2}{#4}}%
+  \@ifclassloaded{komacv}{%
+    \ifstrempty{#4}%
+      {\csappto{scr@#2 at postsetvar}{\ifkomavarempty{#2}%
+          {\let#3=\empty}%
+          {\kcvlco at storekomavar{#2}{#3}}}}%
+      {\csappto{scr@#2 at postsetvar}{\ifkomavarempty{#2}%
+          {\let#3=\empty}%
+          {\ifbool{#4}{\kcvlco at storekomavar{#2}{#3}}{\let#3=\empty}}}}%
+    \csuse{scr@#2 at postsetvar}}{}}
+\providecommand{\kcvlco at error}[1]{%
+  \PackageError{komacv-lco}{#1}{}}
+\providecommand{\kcvlco at errundef}[1]{%
+  \kcvlco at error{KOMA variable `#1' undefined}}
+\providecommand{\kcvlco at onlyifdef}[2]{%
+  \ifkomavar{#1}{#2}{\kcvlco at errundef{#1}}}
+\newcommand{\kcvlco at storekomavar}[2]{\letcs#2{kcvlco@@value@#1}}
+\kcvlco at newvar[\Telefon]{fromphone}{\phonenr}{@phone}
+\kcvlco at newvar[\Mobilefone]{frommobilephone}{\mobile}{@mobilephone}
+\kcvlco at newvar[\FAX]{fromfax}{\faxnr}{@fax}
+\kcvlco at newvar[\Letter]{fromemail}{\email}{@email}
+\kcvlco at newvar{fromurl}{\homepage}{@www}
+\ifkomavar{fromname}{}{\newkomavar{fromname}}
+\setkomavar{fromname}{%
+  \usekomavar{fromfirstname}~\usekomavar{fromfamilyname}}
+\ifkomavar{fromaddress}{}{\newkomavar{fromaddress}}
+\setkomavar{fromaddress}{%
+  \usekomavar{fromaddressstreet}\\ \usekomavar{fromaddresscity}}
+\ifkomavar{place}{}{\newkomavar{place}}
+\ifkomavar{location}{}{\newkomavar{location}}
+\kcvlco at newvar{fromfirstname}{\firstname}{}
+\kcvlco at newvar{fromfamilyname}{\familyname}{}
+\kcvlco at newvar{fromacadtitle}{\acadtitle}{}
+\kcvlco at newvar{fromaddressstreet}{\addressstreet}{}
+\kcvlco at newvar{fromaddresscity}{\addresscity}{}
+\kcvlco at newvar[\faTwitter]{fromtwitter}{\twitter}{kcvlco@@twitter}
+\kcvlco at newvar[\faGithub]{fromgithub}{\github}{kcvlco@@github}
+\kcvlco at newvar[\faFacebook]{fromfacebook}{\facebook}{kcvlco@@facebook}
+\kcvlco at newvar[\faLinkedin]{fromlinkedin}{\linkedin}{kcvlco@@linkedin}
+\kcvlco at newvar{fromextrainfo}{\extrainfo}{kcvlco@@extrainfo}
+\endinput
+%%
+%% End of file `komacv-lco.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-lco.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-multilang.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-multilang.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-multilang.sty	2017-09-01 01:33:46 UTC (rev 45187)
@@ -0,0 +1,105 @@
+%%
+%% This is file `komacv-multilang.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% komacv-multilang.dtx  (with options: `package')
+%% 
+%% Copyright (C) 2016-2017 by Richard Gay <richard.gay at t-online.de>
+%% 
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%% 
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{komacv-multilang}
+    [2017/08/30 v0.9 Package for multi-lingual extension to komacv]
+
+\RequirePackageWithOptions{multilang}
+\RequirePackage{multilang-tags}
+\RequirePackage{multilang-sect}
+\PassOptionsToPackage{useregional}{datetime2}
+\RequirePackage{datetime2,datetime2-calc}
+\RequirePackage{translations}
+\NewMultilangType{date}{\DTMdate{#1}}
+\NewMultilangType{shortdate}{%
+  \DTMsetdatestyle{Myyyy}\DTMdate{#1}\DTMsetdatestyle{default}}
+\NewMultilangType[2]{daterange}{%
+  \DTMsetdatestyle{Myyyy}\DTMdate{#1} --
+  \ifstrequal{#2}{*}%
+    {\GetTranslation{today}}%
+    {\DTMdate{#2}}\DTMsetdatestyle{default}}
+\DTMnewdatestyle{Myyyy}{%
+  \def\DTMdisplaydate##1##2##3##4{\DTMtwodigits{##2}/##1}}
+\DeclareTranslation{english}{today}{today}
+\DeclareTranslation{german}{today}{heute}
+\DeclareTranslation{french}{today}{aujourd'hui}
+\NewMultilangType{list}{\kcvml at list{#1}}
+\newcommand\kcvml at list[1]{%
+  \begin{minipage}[t]{\linewidth}%
+  \let\Item=\kcvml at listitem
+  \compactitem
+  #1%
+  \ifhmode\unskip\strut\fi
+  \endcompactitem
+  \end{minipage}}
+\NewMultilangCmd{\kcvml at listitem}{disablable,
+  command=\item, margs=value}
+\NewMultilangCmd{\BasicEntry}{disablable,
+  command=\cvitem,
+  oargs={spacing},
+  margs={header,text},
+  alias/both={header,text},
+}
+\NewMultilangCmd{\CommentedEntry}{disablable,
+  command=\cvitemwithcomment,
+  oargs={spacing},
+  margs={header,text,comment},
+  alias/all={header,text,comment},
+}
+\NewMultilangCmd{\DoubleEntry}{disablable,
+  command=\cvdoubleitem,
+  oargs={spacing},
+  margs={header1,text1,header2,text2},
+  alias/first={header1,text1},
+  alias/second={header2,text2},
+}
+\NewMultilangCmd{\EducationEntry}{disablable,
+  command=\cventry,
+  oargs={spacing},
+  margs={when,degree,institution,where,grade,details},
+  defaults={details={}},
+}
+\NewMultilangCmd{\EmploymentEntry}{disablable,
+  command=\cventry,
+  oargs={spacing},
+  margs={when,title,employer,where, at grade,description},
+  defaults={@grade={}, description={}},
+}
+\NewMultilangCmd{\AchievementEntry}{disablable,
+  command=\cventry,
+  oargs={spacing},
+  margs={when,title,occasion,where, at grade,description},
+  defaults={@grade={}, occasion={}, where={}, description={}},
+}
+\NewMultilangCmd{\EntryListItem}{disablable,
+  command=\cvlistitem,
+  oargs={spacing},
+  margs={item},
+}
+\NewMultilangCmd{\EntryListDblItem}{disablable,
+  command=\cvlistdoubleitem,
+  oargs={spacing},
+  margs={first,second},
+  alias/both={first,second},
+}
+\endinput
+%%
+%% End of file `komacv-multilang.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/komacv-rg/komacv-multilang.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-09-01 01:32:46 UTC (rev 45186)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-09-01 01:33:46 UTC (rev 45187)
@@ -343,7 +343,7 @@
     keycommand keyfloat keyreader keystroke keyval2e keyvaltable kix kixfont
     knitting knittingpattern knowledge knuth knuth-lib knuth-local
     koma-moderncvclassic koma-script koma-script-examples koma-script-sfs
-    komacv kotex-oblivoir kotex-plain kotex-utf kotex-utils
+    komacv komacv-rg kotex-oblivoir kotex-plain kotex-utf kotex-utils
     kpfonts ksfh_nat ksp-thesis
     ktv-texdata kurier
   l2picfaq l2tabu l2tabu-english l2tabu-french l2tabu-italian l2tabu-spanish

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2017-09-01 01:32:46 UTC (rev 45186)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2017-09-01 01:33:46 UTC (rev 45187)
@@ -568,6 +568,7 @@
 depend koma-moderncvclassic
 depend koma-script-sfs
 depend komacv
+depend komacv-rg
 depend ktv-texdata
 depend l3build
 depend labbook

Added: trunk/Master/tlpkg/tlpsrc/komacv-rg.tlpsrc
===================================================================


More information about the tex-live-commits mailing list