summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source/scrsource.tex
blob: 9bd9db467548faab0b0b82ae0352ed9c2c7c12f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
% ======================================================================
% scrsource.tex
% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3c of the license.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX 
% version 2005/12/01 or later and of this work.
%
% This work has the LPPL maintenance status "author-maintained".
%
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
% ======================================================================
% $Id: scrsource.tex 3748 2022-03-09 10:02:51Z kohm $

% Try to get the version of KOMA-Script from scrkernel-version.dtx.
\begingroup
  \def\ProvidesFile#1[#2]{\csname endinput\endcsname}%
  \input scrkernel-version.dtx
  \newcommand*{\ParseKOMAScriptVersion}{}
  \def\ParseKOMAScriptVersion#1/#2/#3 v#4 #5\ParseKOMAScriptVersion{%
    \gdef\filedate{#1\kern1pt-\kern0pt#2\kern1pt-\kern0pt#3}%
    \gdef\fileversion{#4}%
  }
  \expandafter
  \ParseKOMAScriptVersion\KOMAScriptVersion\ParseKOMAScriptVersion
  \gdef\filename{\jobname.tex}
\endgroup

\edef\releaselink{https://sf.net/p/koma-script/code/HEAD/tree/tags/release-\fileversion}
\edef\releaseurl{\noexpand\url{\releaselink}}

\ProvidesFile{scrsource.tex}[\KOMAScriptVersion (source)]
\documentclass[USenglish]{koma-script-source-doc}
\usepackage{babel}
\usepackage{alltt}

\title{\KOMAScript\,---\,The Source}
\date{Version \fileversion{} of \filedate}
\author{Markus Kohm}

\begin{document}
\maketitle
\begin{abstract}
  Formerly this was the implementation documentation of the whole
  \KOMAScript. But currently it is a dummy only, that explains how to make the
  implementation documentation from \KOMAScript{} v3.36 or newer.
\end{abstract}

\addsec{How to Make the Implementation Documentation}

To make the implementation documentation you either can use \file{l3build} to
make all files at once or do all the work step by step manually.

To be able to use \file{l3build} you need the original sources from
SourceForge. Best is, to use \file{subversion} to check out the sources of the
release you are currently using. If you, e.g., use \KOMAScript{} v\fileversion
you can checkout \releaseurl{} using:
\begin{alltt}\small
svn co \releaseurl koma-script-\fileversion
\end{alltt}
within a terminal window. Note: You have to make sure, that the Subversion
command line client \file{svn} is installed before.

This will copy the whole source of the release to a new directory
\file{koma-script-\fileversion}. Change to the directory and run:
\begin{verbatim}
l3build doc
\end{verbatim}
This will make a lot of new PDF files with the implementation documentation of
all the source files of \KOMAScript.

If you cannot use \file{l3build}, e.g., because you cannot checkout the
sources from SourceForge, you can just use an already installed legal
distribution of \KOMAScript. In this case:
\begin{itemize}
\item Copy all \file{*.dtx} files from the source directory of the installed
  \KOMAScript{} to a new directory where you have the right to write to.
\item Open the first of these files, e.g., \file{koma-script-source-doc.dtx},
  into your preferred \LaTeX{} editor and \emph{compile} the file using
  \file{lualatex-dev}. If you have already installed \LaTeX{} 2022/06/01 you
  can also use \file{lualatex} instead of \file{lualatex-dev}.

  Instead of using your \LaTeX{} editor, you can also use
\begin{verbatim}
lualatex-dev koma-script-source-doc.dtx
\end{verbatim}
  from a terminal. If you get an error because of missing
  \file{koma-script-source-doc.cls}, you do not have a correctly installed
  \KOMAScript. However, you can generate the class using
\begin{verbatim}
tex koma-script-source-doc.dtx
\end{verbatim}
  Note: You really have to use either \file{tex}, \file{pdftex}, \file{luatex}
  or \file{xetex} for this step and not \file{latex}, \file{pdflatex},
  \file{lualatex} or \file{xelatex}!

  If you want the index and the changes, you also have to run
\begin{verbatim}
makeindex -s gind.ist koma-script-source-doc
makeindex -s gglo.ist -o koma-script-source-doc.gls koma-script-source.doc.glo
\end{verbatim}
  and also repeat the \file{lualatex-dev} and the two \file{makeindex} runs at
  least three or four times.
\item Repeat the last step for every \file{*.dtx} file replacing the
  \file{koma-script-source-doc} by the base name of the corresponding
  \file{*.dtx} file.
\end{itemize}

As you can see, using \file{l3build} is much easier.

\addsec{How to Make the Implementation Documentation \KOMAScript{} before 3.36}

In case of using an older \KOMAScript{} release, you have to check out the
older release (see above) and run:
\begin{verbatim}
make scrsource.pdf
\end{verbatim}
But this can be used with a Linux like build system using GNU make only. And
note: The implementation documentation of \KOMAScript{} up to version 3.35 was
generally in German.

\end{document}
% Local Variables:
% mode: latex
% ispell-local-dictionary: "en_US"
% eval: (flyspell-mode 1)
% TeX-master: t
% TeX-engine: luatex-dev
% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
% End: