summaryrefslogtreecommitdiff
path: root/language/swedish/slatex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/swedish/slatex
Initial commit
Diffstat (limited to 'language/swedish/slatex')
-rw-r--r--language/swedish/slatex/bang.tex82
-rw-r--r--language/swedish/slatex/bar.tex27
-rw-r--r--language/swedish/slatex/doc2sty/doc2sty.l52
-rw-r--r--language/swedish/slatex/doc2sty/makefile26
-rw-r--r--language/swedish/slatex/doc2sty/readme5
-rw-r--r--language/swedish/slatex/dquote.tex242
-rw-r--r--language/swedish/slatex/ex-article.tex105
-rw-r--r--language/swedish/slatex/ex-brev.tex22
-rw-r--r--language/swedish/slatex/ex-memo.tex16
-rw-r--r--language/swedish/slatex/l2sl/comtab.c42
-rw-r--r--language/swedish/slatex/l2sl/comtab.h15
-rw-r--r--language/swedish/slatex/l2sl/hash.c81
-rw-r--r--language/swedish/slatex/l2sl/hash.h4
-rw-r--r--language/swedish/slatex/l2sl/l2sl.1l29
-rw-r--r--language/swedish/slatex/l2sl/l2sl.c87
-rw-r--r--language/swedish/slatex/l2sl/l2sl.h18
-rw-r--r--language/swedish/slatex/l2sl/lex.l150
-rw-r--r--language/swedish/slatex/l2sl/makefile57
-rw-r--r--language/swedish/slatex/l2sl/readme3
-rw-r--r--language/swedish/slatex/macros/art10.sst150
-rw-r--r--language/swedish/slatex/macros/art11.sst150
-rw-r--r--language/swedish/slatex/macros/art12.sst151
-rw-r--r--language/swedish/slatex/macros/article.sst242
-rw-r--r--language/swedish/slatex/macros/bezier.sst24
-rw-r--r--language/swedish/slatex/macros/bk10.sst195
-rw-r--r--language/swedish/slatex/macros/bk11.sst195
-rw-r--r--language/swedish/slatex/macros/bk12.sst196
-rw-r--r--language/swedish/slatex/macros/book.sst226
-rw-r--r--language/swedish/slatex/macros/fleqn.sst29
-rw-r--r--language/swedish/slatex/macros/ifthen.sst28
-rw-r--r--language/swedish/slatex/macros/leqno.sst1
-rw-r--r--language/swedish/slatex/macros/letter.sst345
-rw-r--r--language/swedish/slatex/macros/openbib.sst28
-rw-r--r--language/swedish/slatex/macros/proc.sst48
-rw-r--r--language/swedish/slatex/macros/rep10.sst201
-rw-r--r--language/swedish/slatex/macros/rep11.sst201
-rw-r--r--language/swedish/slatex/macros/rep12.sst202
-rw-r--r--language/swedish/slatex/macros/report.sst217
-rw-r--r--language/swedish/slatex/macros/titlepage.sst30
-rw-r--r--language/swedish/slatex/macros/twocolumn.sst12
-rw-r--r--language/swedish/slatex/paren.tex511
-rw-r--r--language/swedish/slatex/readme96
-rw-r--r--language/swedish/slatex/sample.tex179
-rw-r--r--language/swedish/slatex/slatex.192
-rw-r--r--language/swedish/slatex/slatex.tex74
-rw-r--r--language/swedish/slatex/slbibtex.sh49
-rw-r--r--language/swedish/slatex/spell/deslatex.l60
-rw-r--r--language/swedish/slatex/spell/destex.l40
-rw-r--r--language/swedish/slatex/spell/funiq.c250
-rw-r--r--language/swedish/slatex/spell/makefile42
-rw-r--r--language/swedish/slatex/spell/readme9
-rw-r--r--language/swedish/slatex/spell/spell.patch49
-rw-r--r--language/swedish/slatex/ssample.tex179
-rw-r--r--language/swedish/slatex/ssmall.tex39
-rw-r--r--language/swedish/slatex/sst.tex27
-rw-r--r--language/swedish/slatex/swedish.tex90
-rw-r--r--language/swedish/slatex/tde-local.tex674
-rw-r--r--language/swedish/slatex/tde-macros/a4.doc26
-rw-r--r--language/swedish/slatex/tde-macros/a4.sst2
-rw-r--r--language/swedish/slatex/tde-macros/artikel.doc693
-rw-r--r--language/swedish/slatex/tde-macros/artikel.sst243
-rw-r--r--language/swedish/slatex/tde-macros/artikel.sty243
-rw-r--r--language/swedish/slatex/tde-macros/brev.doc859
-rw-r--r--language/swedish/slatex/tde-macros/brev.sst356
-rw-r--r--language/swedish/slatex/tde-macros/brev.sty356
-rw-r--r--language/swedish/slatex/tde-macros/headings.doc68
-rw-r--r--language/swedish/slatex/tde-macros/headings.sst49
-rw-r--r--language/swedish/slatex/tde-macros/headings.sty49
-rw-r--r--language/swedish/slatex/tde-macros/memo.doc68
-rw-r--r--language/swedish/slatex/tde-macros/memo.sst42
-rw-r--r--language/swedish/slatex/tde-macros/memo.sty42
-rw-r--r--language/swedish/slatex/tde-macros/par.doc11
-rw-r--r--language/swedish/slatex/tde-macros/par.sst2
-rw-r--r--language/swedish/slatex/tde-macros/par.sty2
-rw-r--r--language/swedish/slatex/tde-macros/rapport.doc660
-rw-r--r--language/swedish/slatex/tde-macros/rapport.sst219
-rw-r--r--language/swedish/slatex/tde-macros/rapport.sty219
-rw-r--r--language/swedish/slatex/tde-macros/tags.doc30
-rw-r--r--language/swedish/slatex/tde-macros/tags.sst5
-rw-r--r--language/swedish/slatex/tde-macros/tags.sty5
-rw-r--r--language/swedish/slatex/tde-macros/viewg.doc2
-rw-r--r--language/swedish/slatex/tde-macros/viewg.sst2
-rw-r--r--language/swedish/slatex/tde-macros/viewg.sty2
-rw-r--r--language/swedish/slatex/write.tex118
84 files changed, 10767 insertions, 0 deletions
diff --git a/language/swedish/slatex/bang.tex b/language/swedish/slatex/bang.tex
new file mode 100644
index 0000000000..6b870ea5b5
--- /dev/null
+++ b/language/swedish/slatex/bang.tex
@@ -0,0 +1,82 @@
+%
+% $Header: bang.tex,v 1.2 86/09/14 00:15:41 sven Exp $
+%
+% $Log: bang.tex,v $
+% Revision 1.2 86/09/14 00:15:41 sven
+% Initial revision, LaTeX 2.09
+%
+% Revision 1.1 86/01/15 22:35:07 sven
+% Initial revision, Latex 2.08
+%
+%
+% Change backslashes to bangs. Note in some places square brackets
+% are changed to parens. See comments below.
+
+\typeout{Change escape character from '\protect\' to '!'.}
+
+%from lplain.tex
+
+\def\dospecials{\do\ \do\!\do\<\do\>\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~}
+
+% from latex.tex
+
+\def\@sanitize{\@makeother\ \@makeother\!\@makeother\$\@makeother\&%
+\@makeother\#\@makeother\^\@makeother\^^K\@makeother\_\@makeother\^^A%
+\@makeother\%\@makeother\~}
+
+\def\@badcrerr {\@latexerr{Bad use of \string\!}\@ehc}
+
+\let\!=\@normalcr
+
+{\catcode`\^^M=13 \gdef\obeycr{\catcode`\^^M=13 \def^^M{\!}\@gobblecr}%
+\gdef\restorecr{\catcode`\^^M=5 }} %} BRACE MATCHING
+
+\def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation
+\global\@eqnswtrue
+\global\@eqcnt\z@\tabskip\@centering\let\!=\@eqncr
+$$\halign to \displaywidth\bgroup\@eqnsel\hskip\@centering
+ $\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne
+ \hskip 2\arraycolsep \hfil${##}$\hfil
+ &\global\@eqcnt\tw@ \hskip 2\arraycolsep $\displaystyle\tabskip\z@{##}$\hfil
+ \tabskip\@centering&\llap{##}\tabskip\z@\cr}
+
+\def\centering{\let\!=\@centercr\rightskip\@flushglue\leftskip\@flushglue
+\parindent\z@\parfillskip\z@}
+
+\def\raggedright{\let\!=\@centercr\@rightskip\@flushglue \rightskip\@rightskip
+ \leftskip\z@
+ \parindent\z@}
+
+\def\raggedleft{\let\!=\@centercr\rightskip\z@\leftskip\@flushglue
+ \parindent\z@\parfillskip\z@}
+
+\def\@parboxrestore{\@arrayparboxrestore\let\!=\@normalcr}
+
+% item[] changed to item() 9 lines below
+
+\def\tabbing{\lineskip \z@\let\>\@rtab\let\<\@ltab\let\=\@settab
+ \let\+\@tabplus\let\-\@tabminus\let\`\@tabrj\let\'\@tablab
+ \let\!=\@tabcr
+ \global\@hightab\@firsttab
+ \global\@nxttabmar\@firsttab
+ \dimen\@firsttab\@totalleftmargin
+ \global\@tabpush0 \global\@rjfieldfalse
+ \trivlist \item()\if@minipage\else\vskip\parskip\fi
+ \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin
+ \the\everypar}}\def\@itemfudge{\box\@tabfbox}\@startline\ignorespaces}
+
+\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
+ \let\@classiv\@arrayclassiv \let\!\@arraycr\def\@halignto{}\@tabarray}
+
+\def\@tabular{\leavevmode \hbox \bgroup $\let\@acol\@tabacol
+ \let\@classz\@tabclassz
+ \let\@classiv\@tabclassiv \let\!\@tabularcr\@tabarray}
+
+% ...shortstack[#1] changed to shortstack(#1) 2 lines below
+
+\def\@shortstack(#1){\leavevmode
+\vbox\bgroup\baselineskip-1pt\lineskip 3pt\let\mb@l\hss
+\let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax
+\let\!\@stackcr\@ishortstack}
+
diff --git a/language/swedish/slatex/bar.tex b/language/swedish/slatex/bar.tex
new file mode 100644
index 0000000000..44a7860162
--- /dev/null
+++ b/language/swedish/slatex/bar.tex
@@ -0,0 +1,27 @@
+%
+% $Header: bar.tex,v 1.2 86/09/14 00:17:53 sven Exp $
+%
+% $Log: bar.tex,v $
+% Revision 1.2 86/09/14 00:17:53 sven
+% Initial revision, LaTeX 2.09
+%
+% Revision 1.1 86/01/15 22:35:25 sven
+% Initial revision, LaTeX 2.08
+%
+%
+% Change the vertical line specifier, '|', for the array and tabular
+% environments to ':'.
+
+\typeout{Change vertical line specifier '|' to ':'.}
+
+\def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4 \else
+ \ifnum \@lastchclass=3 5 \else
+ \z@ \if #1c\@chnum \z@ \else
+ \if #1l\@chnum \@ne \else
+ \if #1r\@chnum \tw@ \else
+ \@chclass \if #1:\@ne \else
+ \if #1@\tw@ \else
+ \if #1p3 \else \z@ \@preamerr 0\fi
+ \fi \fi \fi \fi \fi \fi
+\fi}
+
diff --git a/language/swedish/slatex/doc2sty/doc2sty.l b/language/swedish/slatex/doc2sty/doc2sty.l
new file mode 100644
index 0000000000..aacfa49e39
--- /dev/null
+++ b/language/swedish/slatex/doc2sty/doc2sty.l
@@ -0,0 +1,52 @@
+%{
+#ifndef lint
+static char *copyright = "Copyright (C) 1985, Sven Mattisson.";
+#endif
+
+
+/*
+ * $Log: doc2sty.l,v $
+ * Revision 1.1 86/01/15 22:17:59 sven
+ * Initial revision
+ *
+ */
+
+%}
+%START BOL INL
+S [ \t]+
+T [ \t]*
+W [ \t\f\n]
+X [^{W}]
+%%
+<BOL>^{T}%.*\n ; /* comment line(s) */
+<INL>{S}%.*\n |
+<INL>%.*\n/{W} {putchar ('\n'); BEGIN BOL;} /* trailing comment */
+<INL>%.*\n/{X} {printf ("%%\n"); BEGIN BOL;} /* tricky comment */
+<BOL>^{T}\n ; /* empty line */
+<BOL>^{S} ; /* strip leading spaces */
+<INL>{S}$ ; /* strip trailing spaces */
+<INL>{S}/[^%] {putchar (' ');} /* compress spaces */
+\\" " |
+. {ECHO; BEGIN INL;}
+\n {ECHO; BEGIN BOL;}
+%%
+main(argc,argv)
+ char **argv;
+{
+ int i;
+
+ BEGIN BOL;
+ if (argc==1) {
+ yyin = stdin;
+ yylex();
+ } else for (i=1; i<argc; i++) {
+ yyin = fopen(argv[i],"r");
+ if (yyin==NULL) {
+ fprintf(stderr,"can't open %s\n",argv[i]);
+ exit(1);
+ }
+ yylex();
+ }
+ exit(0);
+}
+
diff --git a/language/swedish/slatex/doc2sty/makefile b/language/swedish/slatex/doc2sty/makefile
new file mode 100644
index 0000000000..f22ea47ab8
--- /dev/null
+++ b/language/swedish/slatex/doc2sty/makefile
@@ -0,0 +1,26 @@
+DEST = /usr/local/bin
+
+LINKER = cc
+
+LIBS = -ll
+
+MAKEFILE = Makefile
+
+OBJS = doc2sty.o
+
+PROGRAM = doc2sty
+
+SRCS = doc2sty.l
+
+all: $(PROGRAM)
+
+$(PROGRAM): $(OBJS)
+ @echo -n "Loading $(PROGRAM) ... "
+ @$(LINKER) $(OBJS) -o $(PROGRAM) $(LIBS)
+ @echo "done"
+
+clean:; @rm -f $(OBJS)
+
+install: $(PROGRAM)
+ @echo Installing $(PROGRAM) in $(DEST)
+ @install -s $(PROGRAM) $(DEST)
diff --git a/language/swedish/slatex/doc2sty/readme b/language/swedish/slatex/doc2sty/readme
new file mode 100644
index 0000000000..13774a732b
--- /dev/null
+++ b/language/swedish/slatex/doc2sty/readme
@@ -0,0 +1,5 @@
+This directory contains the sources to the doc2sty utility. There is
+no man page because all the program does is compress its standard
+input tex stream (or the files in the argument list) such that
+unnecessary white space is removed and writes on stdout. This is used
+by latex to speed up the loading of macro files.
diff --git a/language/swedish/slatex/dquote.tex b/language/swedish/slatex/dquote.tex
new file mode 100644
index 0000000000..10f4537d13
--- /dev/null
+++ b/language/swedish/slatex/dquote.tex
@@ -0,0 +1,242 @@
+%
+% $Header: dquote.tex,v 1.2 86/09/14 00:18:19 sven Exp $
+%
+% $Log: dquote.tex,v $
+% Revision 1.2 86/09/14 00:18:19 sven
+% Initial revision, LaTeX 2.09
+%
+% Revision 1.1 86/01/15 22:35:33 sven
+% Initial revision, LaTeX 2.08
+%
+%
+% Change '(' and ')' in coordinates to '"' to avoid collision with the
+% new optional argument delimiters '(' and ')'. This assumes that '[' and
+% ']' already have been substituted for '(' and ')' respectively.
+
+\typeout{Change coordinate delimiters from '()' to '""'.}
+
+\def\makebox{\@ifnextchar "{\@makepicbox}{\@ifnextchar
+ ({\@makebox}{\mbox}}}
+
+\def\@makepicbox"#1,#2"{\leavevmode\@ifnextchar
+ ({\@imakepicbox"#1,#2"}{\@imakepicbox"#1,#2"()}}
+
+\long\def\@imakepicbox"#1,#2"(#3)#4{\vbox to#2\unitlength
+ {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
+ \let\mb@t\vss
+ \@tfor\@tempa :=#3\do{\expandafter\let
+ \csname mb@\@tempa\endcsname\relax}%
+\mb@t\hbox to #1\unitlength{\mb@l #4\mb@r}\mb@b}}
+
+\def\savebox#1{\@ifnextchar "{\@savepicbox#1}{\@ifnextchar
+ ({\@savebox#1}{\sbox#1}}}
+
+\def\@savepicbox#1"#2,#3"{\@ifnextchar
+ ({\@isavepicbox#1"#2,#3"}{\@isavepicbox#1"#2,#3"()}}
+
+\long\def\@isavepicbox#1"#2,#3"(#4)#5{\setbox#1 \hbox{\@imakepicbox
+ "#2,#3"(#4){#5}}}
+
+\def\framebox{\@ifnextchar "{\@framepicbox}{\@ifnextchar
+ ({\@framebox}{\fbox}}}
+
+\def\@framepicbox"#1,#2"{\@ifnextchar
+ ({\@iframepicbox"#1,#2"}{\@iframepicbox"#1,#2"()}}
+
+\long\def\@iframepicbox"#1,#2"(#3)#4{\frame{\@imakepicbox"#1,#2"(#3){#4}}}
+
+\def\picture"#1,#2"{\@ifnextchar"{\@picture"#1,#2"}{\@picture"#1,#2""0,0"}}
+
+\def\@picture"#1,#2""#3,#4"{\@picht #2\unitlength
+\setbox\@picbox\hbox to #1\unitlength\bgroup
+\hskip -#3\unitlength \lower #4\unitlength \hbox\bgroup}
+
+\long\def\put"#1,#2"#3{\@killglue\raise#2\unitlength\hbox to \z@{\hskip
+#1\unitlength #3\hss}\ignorespaces}
+
+\long\def\multiput"#1,#2""#3,#4"#5#6{\@killglue\@multicnt=#5\relax
+\@xdim=#1\unitlength
+\@ydim=#2\unitlength
+\@whilenum \@multicnt > 0\do
+{\raise\@ydim\hbox to \z@{\hskip
+\@xdim #6\hss}\advance\@multicnt \m@ne\advance\@xdim
+#3\unitlength\advance\@ydim #4\unitlength}\ignorespaces}
+
+\def\line"#1,#2"#3{\@xarg #1\relax \@yarg #2\relax
+\@linelen=#3\unitlength
+\ifnum\@xarg =0 \@vline
+ \else \ifnum\@yarg =0 \@hline \else \@sline\fi
+\fi}
+
+\def\@sline{\ifnum\@xarg< 0 \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg
+ \else \@negargfalse \@yyarg \@yarg \fi
+\ifnum \@yyarg >0 \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi
+\ifnum\@tempcnta>6 \@badlinearg\@tempcnta0 \fi
+\ifnum\@xarg>6 \@badlinearg\@xarg 1 \fi
+\setbox\@linechar\hbox{\@linefnt\@getlinechar"\@xarg,\@yyarg"}%
+\ifnum \@yarg >0 \let\@upordown\raise \@clnht\z@
+ \else\let\@upordown\lower \@clnht \ht\@linechar\fi
+\@clnwd=\wd\@linechar
+\if@negarg \hskip -\wd\@linechar \def\@tempa{\hskip -2\wd\@linechar}\else
+ \let\@tempa\relax \fi
+\@whiledim \@clnwd <\@linelen \do
+ {\@upordown\@clnht\copy\@linechar
+ \@tempa
+ \advance\@clnht \ht\@linechar
+ \advance\@clnwd \wd\@linechar}%
+\advance\@clnht -\ht\@linechar
+\advance\@clnwd -\wd\@linechar
+\@tempdima\@linelen\advance\@tempdima -\@clnwd
+\@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar
+\if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi
+\multiply\@tempdima \@m
+\@tempcnta \@tempdima \@tempdima \wd\@linechar \divide\@tempcnta \@tempdima
+\@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta
+\divide\@tempdima \@m
+\advance\@clnht \@tempdima
+\ifdim \@linelen <\wd\@linechar
+ \hskip \wd\@linechar
+ \else\@upordown\@clnht\copy\@linechar\fi}
+
+\def\@sline{\ifnum\@xarg< 0 \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg
+ \else \@negargfalse \@yyarg \@yarg \fi
+\ifnum \@yyarg >0 \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi
+\ifnum\@tempcnta>6 \@badlinearg\@tempcnta0 \fi
+\setbox\@linechar\hbox{\@linefnt\@getlinechar"\@xarg,\@yyarg"}%
+\ifnum \@yarg >0 \let\@upordown\raise \@clnht\z@
+ \else\let\@upordown\lower \@clnht \ht\@linechar\fi
+\@clnwd=\wd\@linechar
+\if@negarg \hskip -\wd\@linechar \def\@tempa{\hskip -2\wd\@linechar}\else
+ \let\@tempa\relax \fi
+\@whiledim \@clnwd <\@linelen \do
+ {\@upordown\@clnht\copy\@linechar
+ \@tempa
+ \advance\@clnht \ht\@linechar
+ \advance\@clnwd \wd\@linechar}%
+\advance\@clnht -\ht\@linechar
+\advance\@clnwd -\wd\@linechar
+\@tempdima\@linelen\advance\@tempdima -\@clnwd
+\@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar
+\if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi
+\multiply\@tempdima \@m
+\@tempcnta \@tempdima \@tempdima \wd\@linechar \divide\@tempcnta \@tempdima
+\@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta
+\divide\@tempdima \@m
+\advance\@clnht \@tempdima
+\ifdim \@linelen <\wd\@linechar
+ \hskip \wd\@linechar
+ \else\@upordown\@clnht\copy\@linechar\fi}
+
+\def\@getlinechar"#1,#2"{\@tempcnta#1\relax\multiply\@tempcnta 8
+\advance\@tempcnta -9 \ifnum #2>0 \advance\@tempcnta #2\relax\else
+\advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi
+\char\@tempcnta}
+
+\def\vector"#1,#2"#3{\@xarg #1\relax \@yarg #2\relax
+\@tempcnta \ifnum\@xarg<0 -\@xarg\else\@xarg\fi
+\ifnum\@tempcnta<5\relax
+\@linelen=#3\unitlength
+\ifnum\@xarg =0 \@vvector
+ \else \ifnum\@yarg =0 \@hvector \else \@svector\fi
+\fi
+\else\@badlinearg\fi}
+
+\def\@hvector{\@hline\hbox to 0pt{\@linefnt
+\ifnum \@xarg <0 \@getlarrow"1,0"\hss\else
+ \hss\@getrarrow"1,0"\fi}}
+
+\def\@svector{\@sline
+\@tempcnta\@yarg \ifnum\@tempcnta <0 \@tempcnta=-\@tempcnta\fi
+\ifnum\@tempcnta <5
+ \hskip -\wd\@linechar
+ \@upordown\@clnht \hbox{\@linefnt \if@negarg
+ \@getlarrow"\@xarg,\@yyarg" \else \@getrarrow"\@xarg,\@yyarg" \fi}%
+\else\@badlinearg\fi}
+
+\def\@getlarrow"#1,#2"{\ifnum #2 =\z@ \@tempcnta='33\else
+\@tempcnta=#1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta
+-9 \@tempcntb=#2\relax\multiply\@tempcntb \tw@
+\ifnum \@tempcntb >0 \advance\@tempcnta \@tempcntb\relax
+\else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64
+\fi\fi\char\@tempcnta}
+
+\def\@getrarrow"#1,#2"{\@tempcntb=#2\relax
+\ifnum\@tempcntb < 0 \@tempcntb=-\@tempcntb\relax\fi
+\ifcase \@tempcntb\relax \@tempcnta='55 \or
+\ifnum #1<3 \@tempcnta=#1\relax\multiply\@tempcnta
+24 \advance\@tempcnta -6 \else \ifnum #1=3 \@tempcnta=49
+\else\@tempcnta=58 \fi\fi\or
+\ifnum #1<3 \@tempcnta=#1\relax\multiply\@tempcnta
+24 \advance\@tempcnta -3 \else \@tempcnta=51\fi\or
+\@tempcnta=#1\relax\multiply\@tempcnta
+\sixt@@n \advance\@tempcnta -\tw@ \else
+\@tempcnta=#1\relax\multiply\@tempcnta
+\sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<0 \advance\@tempcnta 64 \fi
+\char\@tempcnta}
+
+\def\dashbox#1"#2,#3"{\leavevmode\hbox to \z@{\baselineskip \z@%
+\lineskip \z@%
+\@dashdim=#2\unitlength%
+\@dashcnt=\@dashdim \advance\@dashcnt 200
+\@dashdim=#1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt\@dashdim=\z@%
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox=\hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
+\@width \@dashdim}\put"0,0"{\copy\@dashbox}%
+\put"0,#3"{\copy\@dashbox}%
+\put"#2,0"{\hskip-\@dashdim\copy\@dashbox}%
+\put"#2,#3"{\hskip-\@dashdim\box\@dashbox}%
+\multiply\@dashdim 3
+\fi
+\setbox\@dashbox=\hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
+\@width #1\unitlength\hskip #1\unitlength}\@tempcnta=0
+\put"0,0"{\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta=0
+\put"0,#3"{\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
+\@dashdim=#3\unitlength%
+\@dashcnt=\@dashdim \advance\@dashcnt 200
+\@dashdim=#1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt \@dashdim=\z@%
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else
+\divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox\hbox{\hskip -\@halfwidth
+\vrule \@width \@wholewidth
+\@height \@dashdim}\put"0,0"{\copy\@dashbox}%
+\put"#2,0"{\copy\@dashbox}%
+\put"0,#3"{\lower\@dashdim\copy\@dashbox}%
+\put"#2,#3"{\lower\@dashdim\copy\@dashbox}%
+\multiply\@dashdim 3
+\fi
+\setbox\@dashbox\hbox{\vrule \@width \@wholewidth
+\@height #1\unitlength}\@tempcnta0
+\put"0,0"{\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta < \@dashcnt
+\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}\@tempcnta0
+\put"#2,0"{\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta< \@dashcnt
+\relax\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}}\@makepicbox"#2,#3"}
+
+\def\oval"#1,#2"{\@ifnextchar({\@oval"#1,#2"}{\@oval"#1,#2"()}}
+
+\def\@oval"#1,#2"(#3){\begingroup\boxmaxdepth \maxdimen
+ \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
+ \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx
+ #1\unitlength \@ovyy #2\unitlength
+ \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
+ \@getcirc \@tempdimb
+ \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
+ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
+ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
+ \@circlefnt \setbox\@tempboxa
+ \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
+ \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
+ \if@ovt \@ovhorz \kern -\@ovxx \fi
+ \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
+ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
+ \endgroup}
diff --git a/language/swedish/slatex/ex-article.tex b/language/swedish/slatex/ex-article.tex
new file mode 100644
index 0000000000..663587df6b
--- /dev/null
+++ b/language/swedish/slatex/ex-article.tex
@@ -0,0 +1,105 @@
+!documentstyle(11pt,a4,par)<article>
+
+!author<Frans G. Bengtsson>
+!title<R|de Orm !! och !! andra figurer!thanks<Publicerat utan att fr}ga STU>>
+!date<Lund 1987-11-24> % En m}nad kvar till julafton
+
+!begin<document>
+
+!maketitle % Skriv ut f|rfattare mm.
+
+!begin<abstract> % I abstract beh|vs av n}gon anledning noindent
+!noindent Kl{mmig sammanfattning kan skrivas h{r -- om man vill. Egentligen
+beh|vs varken !verb+!title+, !verb+!author+ eller abstract i article
+stilen. Man kan ta med dem om man vill.
+!end<abstract>
+
+!section*<Om orm>
+
+M}nga oroliga m{n foro bort fr}n <!it Sk}ne> med Bue och Vagn och hade
+ingen lycka i Hj|rungav}g; andra f|ljde Styrbj|rn till Uppsala och
+f|llo med honom. N{r det spordes hemma att f} voro att v{nta tillbaka,
+blev sorgekv{den framsagda och minnesstenar resta, varp} allt
+f|rst}ndigt folk var |verens att det var b{st som skett, i det man nu
+kunde hoppas p} mera stillhet {n f|rr och f{rre {goskiften med
+eggj{rn. Det blev nu ymniga }r, b}de med r}g och sill, och de flesta
+trivdes gott; men de som tyckte att gr|dorna kommo l}ngsamt foro till
+England och <!bf Irland> och hade god h{rnad, och m}nga stannade d{r
+ute.
+
+!subsection*<Underrubrik>
+
+Nu hade rakade m{n b|rjat komma till Sk}ne, b}de fr}n saxarnas
+land och fr}n England, f|r att predika den kristna l{ran. De hade
+mycket att tala om, och folk var f|rst nyfiket och lyssnade g{rna; och
+kvinnor funno det n|jsamt att doppas av fr{mlingarna och f} en vit
+s{rk till sk{nks. Men snart hade fr{mlingarna ont om s{rkar och folk
+upph|rde att lyssna till deras predikningar, som f|ref|llo tr|ttsamma
+och f|ga trov{rdiga; dessutom talade de ett hackigt tungom}l, som de
+l{rt sig i Hedeby eller p} de v{stra |arna, och tedde sig d{rf|r
+barnsliga till f|rst}ndet.
+
+!subsubsection*<Underunderubrik>
+
+Det gick d{rf|r sm}tt med kristnandet; och de rakade, som talade
+myc!-ket om frid och som |ver allt annat voro uppt{nda av v}ldsamhet
+mot gudarna, grepos stundom av religi|sa m{n och h{ngdes upp i
+heliga asktr{d och fingo pilar i sig och g}vos }t Odins f}glar.
+Men andra, som n}tt norr!-ut till g|ingarnas skogar, d{r f|ga
+religion fanns, h{lsades med gl{dje och leddes bundna till
+marknader i Sm}land och byttes bort mot oxar och b{verskinn.
+Som tr{lar hos sm}l{nningarna l{to n}gra h}ret v{xa och k{nde sig
+missn|jda med Jehovah och gjorde gott sk{l f|r sig; men de flesta
+fortsatt att vilja st|rta gudarna och doppa kvinnor och barn,
+hellre {n att bryta sten och mala korn, och v}llade sina
+husb|nder s} stor f|rtret, att g|ingarna snart inte kunde f} ett
+par tre}rs sm}landsoxar f|r en fullgod pr{st utan en mellangift
+av salt eller vadmal. D} r}dde d}ligt hum|r mot de rakade
+i gr{nstrakterna.
+
+!section*<Rubrik>
+
+En sommar hade bud g}tt runt hela Danav{lde att kung Harald
+Bl}tand anammat den nya l{ran. I sina unga dagar hade han gjort ett
+f|rs|k och hastigt }ngrat sig; men nu var han p} allvar g}ngen
+|ver. Ty kung Harald var nu gammal och hade l{nge pl}gats av sv}r
+v{rk i sin rygg, s} att han haft ringa gl{dje av sitt |l och sina
+kvinnor; och kloka biskopar, som kejsaren s{nt, hade nu gnidit honom
+med bj|rnister, som st{rkts med apostlanamn, och svept honom i
+f}rskinn och givit honom signat |rtvatten i st{llet f|r |l och
+tecknat kors mellan hans axlar och l{st m}nga dj{vlar ur honom, tills
+v{rken g}tt bort och kungen blivit kristen.
+
+Gudsm{nnen hade d{rvid lovat att v{rre el{nde skulle drabba
+honom, om han }ter hemf|lle }t blot eller visade sig ljum i tron.
+D{rf|r befallde kung Harald, sedan han blivit r|rlig igen och kunnat taga
+till sig en ung morisk slavinna, som Olof med [delstenarna, konung av Cork,
+s{nt honom som v{ng}va, att allt folket skulle l}ta sig kristnas; och ehuru
+s}dant tal tycktes s{llsamt fr}n den som sj{lv h{rstammade fr}n Odin, lydde
+m}nga hans p}bud, ty han hade styrt l{nge och med lycka och hade d{rf|r
+mycket att s{ga i landet. Han lade de h}rdaste straff p} dem som buro hand
+p} pr{ster; och i Sk}ne tilltogo nu dessa i antal och kyrkor byggdes p}
+sl{tten; och de gamla gudarna b|rjade komma ur bruk utom i sj|n|d och vid
+kreaturssjukdom.
+
+Men i G|inge skrattades mycket }t allt detta. Ty folket i gr{nsskogarna
+hade l{ttare f|r att skratta {n det f|rst}ndiga folket p} leran, och }t
+kungars befallningar skrattade de mest. I de trakterna n}dde f} m{ns makt
+l{ngre {n deras h|gra arm, och fr}n Jellinge till G|inge var l}ng v{g {ven
+f|r de st|rsta kungar. I gamla dagar, p} Harald Hildetands och Ivar
+Vidfamnes tid och dessf|rinnan, hade kungar brukat komma till G|inge f|r
+att jaga vildoxar i de stora skogarna, men s{llan i andra {renden. Sedan
+dess hade vildoxarna tagit slut, och kungars bes|k med dem; och om nu
+n}gon kung retade upp sig |ver oh|rsamhet eller mager skatt och hotade
+att komma dit, brukade han f} det svaret, att inga vildoxar synts till i
+trakterna, men att man skulle underr{tta om s} skedde, och taga v{nligt
+emot honom d}. D{rf|r var det sedan l{nge ett st{v hos gr{nsborna, att
+bland dem skulle ingen kung komma f|rr{n vildoxarna kommo tillbaka.
+
+S} f|rblev allt som det varit i G|inge, och ingen kristendom kom i g}ng
+d{r. De pr{ster som f|rs|kte sig dit s}ldes fortfarande |ver gr{nsen;
+men somliga g|ingar tyckte att man r{tteligen borde sl} ihj{l dem p}
+fl{cken och b|rja krig mot det n{riga folket i Sunnerbo och Allbo,
+emedan sm}l{nningarnas pris inte gav sk{lig f|rtj{nst p} handeln.
+
+!end<document>
diff --git a/language/swedish/slatex/ex-brev.tex b/language/swedish/slatex/ex-brev.tex
new file mode 100644
index 0000000000..e524804f33
--- /dev/null
+++ b/language/swedish/slatex/ex-brev.tex
@@ -0,0 +1,22 @@
+!documentstyle(11pt,a4,par)<brev>
+
+!name<Oddput Clementin>
+!address<Bl} d|rren> % Beh|vs ej om inst. brev
+!signature<Oddput> % Beh|vs ej om samma som !name
+
+
+!begin<document>
+
+!begin<letter><Hans Majest{t !!
+Kungliga Slottet !! Norrland>
+
+!opening<Hej Hans!bang>
+
+Jag, och m}nga med mig, tycker att ditt memorandum om ordbeblandare
+var j{ttebra!bang<>
+
+!closing<Din trogne unders}te>
+
+!end<letter>
+
+!end<document>
diff --git a/language/swedish/slatex/ex-memo.tex b/language/swedish/slatex/ex-memo.tex
new file mode 100644
index 0000000000..97e404cdb5
--- /dev/null
+++ b/language/swedish/slatex/ex-memo.tex
@@ -0,0 +1,16 @@
+!documentstyle(a4,11pt,par)<memo>
+
+!author<Hans Majest{t>
+!memonote<ANSL]S>
+%!memoinst<Kungliga Slottet> % Kan uteslutas
+
+!newcommand<!SLaTeX><<!rm S!LaTeX>> % Observera de dubbla "<<>>"
+
+!begin<document>
+
+!section*<Anmodan>
+
+H{rmed anmodas alla unders}tar att endast anv{nda !SLaTeX. Inga andra
+ordbeblandningsprogram f}r f|rekomma!bang<> S} det s}.
+
+!end<document>
diff --git a/language/swedish/slatex/l2sl/comtab.c b/language/swedish/slatex/l2sl/comtab.c
new file mode 100644
index 0000000000..26712d41c5
--- /dev/null
+++ b/language/swedish/slatex/l2sl/comtab.c
@@ -0,0 +1,42 @@
+#ifndef lint
+static char *copyright = "Copyright (C) 1985, Sven Mattisson.";
+#endif
+
+#include "comtab.h"
+
+struct command comtab[] = {
+ { "bibitem", ONEOPT },
+ { "caption", ONEOPT },
+ { "cite", ONEOPT },
+ { "cline", ONEOPT },
+ { "documentstyle", ONEOPT },
+ { "footnote", ONEOPT },
+ { "footnotemark", ONEOPT },
+ { "footnotetext", ONEOPT },
+ { "framebox", PNTOPT },
+ { "head", ONEOPT },
+ { "item", ONEOPT },
+ { "line", ONLYPNT },
+ { "linebreak", ONEOPT },
+ { "makebox", PNTOPT },
+ { "marginpar", ONEOPT },
+ { "minipage", ONEOPT },
+ { "multiput", ONLYPNT },
+ { "newcommand", NEWCOMMAND },
+ { "newtheorem", NEWTHEOREM },
+ { "nolinebreak", ONEOPT },
+ { "nopagebreak", ONEOPT },
+ { "oval", PNTOPT },
+ { "pagebreak", ONEOPT },
+ { "parbox", ONEOPT },
+ { "picture", ONLYPNT },
+ { "put", ONLYPNT },
+ { "rule", ONEOPT },
+ { "shortstack", ONEOPT },
+ { "sqrt", ONEOPT },
+ { "twocolumn", ONEOPT },
+ { "typein", ONEOPT },
+ { "vector", ONLYPNT }
+};
+
+int comtabsize = sizeof (comtab) / sizeof (struct command);
diff --git a/language/swedish/slatex/l2sl/comtab.h b/language/swedish/slatex/l2sl/comtab.h
new file mode 100644
index 0000000000..f9053ecf5e
--- /dev/null
+++ b/language/swedish/slatex/l2sl/comtab.h
@@ -0,0 +1,15 @@
+#define ONEOPT 1
+#define STAROPT 2
+#define PNTOPT 3
+#define ONLYPNT 4
+#define STARPNT 5
+#define NEWTHEOREM 6
+#define NEWCOMMAND 7
+
+struct command {
+ char *name;
+ char type;
+};
+
+extern struct command comtab[];
+extern int comtabsize;
diff --git a/language/swedish/slatex/l2sl/hash.c b/language/swedish/slatex/l2sl/hash.c
new file mode 100644
index 0000000000..85281bef49
--- /dev/null
+++ b/language/swedish/slatex/l2sl/hash.c
@@ -0,0 +1,81 @@
+#ifndef lint
+static char *copyright = "Copyright (C) 1985, Sven Mattisson.";
+#endif
+
+#include <stdio.h>
+#include "hash.h"
+#include "comtab.h"
+
+struct hashent {
+ struct command *comp;
+ struct hashent *next;
+};
+
+#define HASHSIZE 103
+
+struct hashent hashtab[HASHSIZE] = { { NULL, NULL} };
+
+extern char *malloc ();
+
+int
+hash (s)
+ char *s;
+{
+ int hashval;
+
+ for (hashval = 0; *s != '\0'; s++)
+ hashval += 3 * (int)(*s);
+ return (hashval % HASHSIZE);
+}
+
+struct command *
+lookup (s)
+ char *s;
+{
+ struct hashent *hp;
+
+ for (hp = &hashtab[hash(s)]; hp -> comp != NULL; hp = hp -> next) {
+ if (strcmp (s, hp -> comp -> name) == 0)
+ return (hp -> comp);
+ if (hp -> next == NULL)
+ break;
+ }
+ return (NULL);
+}
+
+struct command *
+install (com)
+ struct command *com;
+{
+ struct hashent *p, *hp = &hashtab[hash (com -> name)];
+
+ if (hp -> comp == NULL) {
+ hp -> comp = com;
+ return (hp -> comp);
+ }
+ for (p = hp; p != NULL; p = p -> next) {
+ if (strcmp (p -> comp -> name, com -> name) == 0)
+ break;
+ hp = p;
+ }
+ if (p == NULL) {
+ hp -> next = (struct hashent *) malloc (sizeof (struct hashent));
+ p = hp -> next;
+ if (p == NULL)
+ return (NULL);
+ p -> next = NULL;
+ }
+ p -> comp = com;
+ return (p -> comp);
+}
+
+inithashtab ()
+{
+ int i;
+
+ for (i = 0; i < comtabsize; i++)
+ if (install (&comtab[i]) == NULL) {
+ perror ("inithashtab");
+ exit (1);
+ }
+}
diff --git a/language/swedish/slatex/l2sl/hash.h b/language/swedish/slatex/l2sl/hash.h
new file mode 100644
index 0000000000..9bc83a81ce
--- /dev/null
+++ b/language/swedish/slatex/l2sl/hash.h
@@ -0,0 +1,4 @@
+extern int hash ();
+extern struct command *lookup ();
+extern struct command *install ();
+extern inithashtab ();
diff --git a/language/swedish/slatex/l2sl/l2sl.1l b/language/swedish/slatex/l2sl/l2sl.1l
new file mode 100644
index 0000000000..5a97a46da1
--- /dev/null
+++ b/language/swedish/slatex/l2sl/l2sl.1l
@@ -0,0 +1,29 @@
+.TH L2SL l
+.SH NAME
+l2sl \- translate LaTeX to SLaTeX
+.SH SYNOPSIS
+.B l2sl
+[file...]
+.SH DESCRIPTION
+.IR L2sl
+is a filter for translating LaTeX documents to SLaTeX.
+.IR L2sl
+knows most of the common LaTeX commands but is not a complete LaTeX
+parser. In particular optional argument delimiters may be confused
+with square brackets and coordinate delimiters with parens.
+.PP
+If
+.IR l2sl
+does not know how to parse a specific delimiter, it assumes that it is
+not a delimiter and prints a warning on stderr. Hence an optional
+argument delimiter may be substituted for ``!lbrack'' rather than the
+correct ``('', but a warning will always be issued.
+.SH "SEE ALSO"
+.IR tex (l),
+.IR slatex (l),
+and "LaTeX users guide & reference manual", Lamport.
+.SH BUGS
+Should know more LaTeX commands.
+.SH AUTHOR
+Sven Mattisson, Department of Applied Electronics, University of Lund,
+Sweden. sven@tde.lu.se.
diff --git a/language/swedish/slatex/l2sl/l2sl.c b/language/swedish/slatex/l2sl/l2sl.c
new file mode 100644
index 0000000000..3a86b60527
--- /dev/null
+++ b/language/swedish/slatex/l2sl/l2sl.c
@@ -0,0 +1,87 @@
+#ifndef lint
+static char *copyright = "Copyright (C) 1985, Sven Mattisson.";
+#endif
+
+#include <stdio.h>
+#include <ctype.h>
+#include "l2sl.h"
+#include "hash.h"
+
+int optarg = 0, seen_lb = 0, lb_lines = 0, seen_array = 0;
+
+main (argc,argv)
+ char **argv;
+{
+ int i;
+
+ inithashtab ();
+ if (argc==1) {
+ yyin = stdin;
+ yylex ();
+ } else for (i=1; i<argc; i++) {
+ yyin = fopen (argv[i],"r");
+ if (yyin == NULL) {
+ fprintf (stderr,"can't open %s\n",argv[i]);
+ exit (1);
+ }
+ yylex ();
+ }
+ exit (0);
+}
+
+yywrap ()
+{
+ if (seen_lb != 0)
+ fprintf (stderr, "Possible optional argument bracket mismatch\n");
+ return (1);
+}
+
+parens (s)
+ char *s;
+{
+ int i;
+ char *p;
+
+ if ((p=index(s, '(')) != NULL)
+ *p = '"';
+ else {
+ i++;
+ p = s;
+ }
+ if ((p=index(p, ')')) != NULL)
+ *p = '"';
+ else
+ i++;
+ return (i);
+}
+
+subst (s)
+ char *s;
+{
+ for (; *s; s++)
+ switch (*s) {
+ case OESC:
+ *s = NESC;
+ break;
+ case OLGR:
+ *s = NLGR;
+ break;
+ case ORGR:
+ *s = NRGR;
+ break;
+ }
+}
+
+char *
+strip (s)
+ char *s;
+{
+ static char buf[100];
+ char *p;
+
+ for (p = buf; *s && !isspace (*s); s++, p++) {
+ *p = *s;
+ }
+ *p = '\0';
+ return (buf);
+}
diff --git a/language/swedish/slatex/l2sl/l2sl.h b/language/swedish/slatex/l2sl/l2sl.h
new file mode 100644
index 0000000000..79096eb86c
--- /dev/null
+++ b/language/swedish/slatex/l2sl/l2sl.h
@@ -0,0 +1,18 @@
+#define OESC '\\'
+#define NESC '!'
+#define OLGR '{'
+#define NLGR '<'
+#define ORGR '}'
+#define NRGR '>'
+
+extern FILE *yyin;
+extern int optarg;
+extern int seen_lb;
+extern int lb_lines;
+extern int seen_array;
+extern char *index ();
+
+extern yywrap ();
+extern parens ();
+extern subst ();
+extern char *strip ();
diff --git a/language/swedish/slatex/l2sl/lex.l b/language/swedish/slatex/l2sl/lex.l
new file mode 100644
index 0000000000..9a6739a890
--- /dev/null
+++ b/language/swedish/slatex/l2sl/lex.l
@@ -0,0 +1,150 @@
+%{
+#ifndef lint
+static char *copyright = "Copyright (C) 1985, Sven Mattisson.";
+#endif
+
+#include "l2sl.h"
+#include "hash.h"
+#include "comtab.h"
+
+#define UP optarg++
+#define ZO if (!seen_lb) optarg = 0
+#define OOPS else fprintf (stderr, "OOPS: yytext = \"%s\"\n", yytext)
+#define PARMIS fprintf (stderr, "%%%% Possible paren mismatch in line %d\n",\
+ yylineno)
+#define CHK(ZZ) fprintf (stderr, "%%%% Check ZZ at line %d\n", yylineno)
+#define COMCHK fprintf (stderr,\
+ "%%%% Check command \"\\%s\" (type %d) at line %d\n",\
+ p -> name, p -> type, yylineno)
+#define FLAGS if (seen_lb && lb_lines++) {\
+ fprintf (stderr,\
+ "%%%% Optional argument mismatch at line %d\n",\
+ yylineno-2);\
+ seen_lb = lb_lines = 0;\
+ };\
+ if (!seen_lb) lb_lines = 0;\
+ seen_array = 0
+#define ECHO1 printf ("!%s", &yytext[1])
+#define ECHO2 printf ("!!%s", &yytext[2])
+%}
+
+%e 8000
+%p 20000
+%a 32000
+%k 8000
+%n 2000
+%o 20000
+S [ \t\n\f]*
+W \\[A-Za-z]+
+N [A-Za-z]+
+A (\{{W}{S}\})|({W})
+D [0-9\.]+
+C \((-?({D})|({W}))\,(-?({D})|({W}))\)
+%START SOPT PNT SPNT NTHRM NCMND
+%%
+ struct command *p;
+\%.* {ECHO;} /* ignore comments */
+! {printf ("!bang<>"); ZO;} /* preserve '!' */
+\\! {printf ("!nspace<>"); ZO;} /* preserve '\!' */
+\\\% |
+\\\{ |
+\\\} {ECHO1; ZO;} /* preserve '\%', '\{' and '\}' */
+\\\[ |
+\\\] {ECHO1; ZO;} /* preserve '\[' and '\]' */
+(\<)|(\>) {putchar ('!'); ECHO; ZO;} /* preserve angels */
+(\\)|(\{)|(\}) {subst(yytext); ECHO; ZO;} /* substitute escapechar */
+\\\| {printf ("!Vert<>"); ZO;} /* '\|' in math mode */
+\.sty {ECHO; CHK(.sty);} /* Check file name extension */
+array |
+\\multicolumn |
+tabular {seen_array++; ECHO; ZO;} /* look out for '|' */
+\| { if (seen_array) {
+ putchar (':');
+ CHK(colon);
+ } else {
+ printf ("!|");
+ }
+ ZO;
+ } /* '|' => ':' */
+<SOPT>\*?{S}\[ |
+\[ { if (optarg > seen_lb) {
+ putchar ('('); /* substitute delimiter */
+ seen_lb++;
+ } else {
+ if (seen_lb) seen_lb++;
+ printf ("!lbrack<>");
+ CHK(!lbrack);
+ }; BEGIN 0;
+ }
+\] { if (seen_lb && seen_lb == optarg) {
+ putchar (')'); /* substitute delimiter */
+ seen_lb--;
+ optarg--;
+ } else {
+ if (seen_lb) seen_lb--;
+ printf ("!rbrack<>");
+ CHK(!rbrack);
+ };
+ }
+\( |
+\) {ECHO; ZO;} /* regular parens in text */
+\\\\{S}\*?{S}/\[ {ECHO2; UP;} /* \\*[...]-command */
+\\\\{S}\*?{S}/[^\[] {ECHO2; ZO;} /* \\*-command */
+<NTHRM>\{{N}\}(\{{N}\})?{S} {subst(yytext); ECHO; BEGIN 0;} /* takes [] */
+<NCMND>((\{{W}\})|{W}){S} {subst(yytext); ECHO; BEGIN 0;} /* takes [] */
+<PNT>{C}{S} {if (!parens(yytext)) PARMIS; ECHO; BEGIN 0;}
+<SPNT>\*?{S}{C}{S} {if (!parens(yytext)) PARMIS; ECHO; BEGIN 0;}
+{C} {if (!parens(yytext)) PARMIS;
+ CHK(double quotes); ECHO; ZO;}
+{W}{S} { if ((p=lookup (strip (&yytext[1]))) == NULL) {
+ ECHO1;
+ ZO;
+ BEGIN 0; /* regular command */
+ } else switch ((int) p -> type) {
+ case ONEOPT:
+ ECHO1;
+ UP;
+ BEGIN 0;
+ break;
+ case STAROPT:
+ ECHO1;
+ UP;
+ BEGIN SOPT;
+ break;
+ case PNTOPT:
+ ECHO1;
+ UP;
+ BEGIN PNT;
+ break;
+ case ONLYPNT:
+ ECHO1;
+ ZO;
+ BEGIN PNT;
+ break;
+ case STARPNT:
+ ECHO1;
+ UP;
+ BEGIN SPNT;
+ break;
+ case NEWTHEOREM:
+ ECHO1;
+ UP;
+ BEGIN NTHRM;
+ break;
+ case NEWCOMMAND:
+ ECHO1;
+ UP;
+ BEGIN NCMND;
+ break;
+ default:
+ ECHO1;
+ ZO;
+ BEGIN 0;
+ COMCHK;
+ break;
+ };
+ }
+({N}{S})+ {ECHO; ZO; BEGIN 0;} /* regular text */
+[^ \t\n\f] {ECHO; ZO;} /* everything else */
+\n {ECHO; FLAGS; ZO;} /* zero flags */
+%%
diff --git a/language/swedish/slatex/l2sl/makefile b/language/swedish/slatex/l2sl/makefile
new file mode 100644
index 0000000000..7ebf652990
--- /dev/null
+++ b/language/swedish/slatex/l2sl/makefile
@@ -0,0 +1,57 @@
+DEST = /usr/local/bin
+
+EXTHDRS = /usr/include/stdio.h
+
+HDRS = comtab.h \
+ hash.h \
+ l2sl.h
+
+CFLAGS = -g
+
+LIBS = -ll
+
+MAKEFILE = Makefile
+
+OBJS = comtab.o \
+ hash.o \
+ lex.o \
+ l2sl.o
+
+PRINT = pr
+
+PROGRAM = l2sl
+
+SRCS = comtab.c \
+ hash.c \
+ lex.l \
+ l2sl.c
+
+all: $(PROGRAM)
+
+$(PROGRAM): $(OBJS)
+ cc $(CFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM)
+
+clean:; @rm -f $(OBJS)
+
+depend:; @mkmf -f $(MAKEFILE) PROGRAM=$(PROGRAM) DEST=$(DEST)
+
+index:; @ctags -wx $(HDRS) $(SRCS)
+
+install: $(PROGRAM)
+ @echo Installing $(PROGRAM) in $(DEST)
+ @install -s $(PROGRAM) $(DEST)
+
+print:; @$(PRINT) $(HDRS) $(SRCS)
+
+program: $(PROGRAM)
+
+tags: $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)
+
+update: $(DEST)/$(PROGRAM)
+
+$(DEST)/$(PROGRAM): $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS)
+ @make -f $(MAKEFILE) DEST=$(DEST) install
+###
+comtab.o: comtab.h
+hash.o: /usr/include/stdio.h hash.h comtab.h
+l2sl.o: /usr/include/stdio.h l2sl.h hash.h
diff --git a/language/swedish/slatex/l2sl/readme b/language/swedish/slatex/l2sl/readme
new file mode 100644
index 0000000000..1c8fbc8d85
--- /dev/null
+++ b/language/swedish/slatex/l2sl/readme
@@ -0,0 +1,3 @@
+This directory contains the sources and the manual page for the l2sl
+program. L2sl attempts to translate regular latex text to slatex
+text, that is substitute '!' for '\' and '<>' for '{}'.
diff --git a/language/swedish/slatex/macros/art10.sst b/language/swedish/slatex/macros/art10.sst
new file mode 100644
index 0000000000..83665813ad
--- /dev/null
+++ b/language/swedish/slatex/macros/art10.sst
@@ -0,0 +1,150 @@
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!def!@normalsize<!@setsize!normalsize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt>
+!def!small<!@setsize!small<11pt>!ixpt!@ixpt
+!abovedisplayskip 8.5pt plus 3pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus2pt%
+!belowdisplayshortskip 4pt plus2pt minus 2pt
+!def!@listi<!topsep 4pt plus 2pt minus 2pt!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>>
+!def!footnotesize<!@setsize!footnotesize<9.5pt>!viiipt!@viiipt
+!abovedisplayskip 6pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 3pt plus 1pt minus 2pt
+!def!@listi<!topsep 3pt plus 1pt minus 1pt!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>>
+!def!scriptsize<!@setsize!scriptsize<8pt>!viipt!@viipt>
+!def!tiny<!@setsize!tiny<6pt>!vpt!@vpt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!normalsize
+
+!if@twoside
+!oddsidemargin 44pt
+!evensidemargin 82pt
+!marginparwidth 107pt
+!else
+!oddsidemargin 63pt
+!evensidemargin 63pt
+!marginparwidth 90pt
+!fi
+!marginparsep 11pt
+!topmargin 27pt
+!headheight 12pt
+!headsep 25pt
+!footheight 12pt
+!footskip 30pt
+!textheight 528pt
+!textwidth 345pt
+!columnsep 10pt
+!columnseprule 0pt
+!footnotesep 6.65pt
+!skip!footins 9pt plus 4pt minus 2pt
+!floatsep 12pt plus 2pt minus 2pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 12pt plus 2pt minus 2pt
+!@maxsep 20pt
+!dblfloatsep 12pt plus 2pt minus 2pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 8pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 8pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+!marginparpush 5pt
+
+!parskip 0pt plus 1pt
+!parindent 15pt
+!topsep 8pt plus 2pt minus 4pt
+!partopsep 2pt plus 1pt minus 1pt
+!itemsep 4pt plus 2pt minus 1pt
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!def!part<!par
+!addvspace<4ex>
+!@afterindentfalse
+!secdef!@part!@spart>
+!def!@part(#1)#2<!ifnum !c@secnumdepth !>!m@ne
+!refstepcounter<part>
+!addcontentsline<toc><part><!thepart
+!hspace<1em>#1>!else
+!addcontentsline<toc><part><#1>!fi
+< !parindent 0pt !raggedright
+!ifnum !c@secnumdepth !>!m@ne
+!Large !bf Part !thepart
+!par !nobreak
+!fi
+!huge !bf
+#2!markboth<><>!par >
+!nobreak
+!vskip 3ex
+!@afterheading
+>
+!def!@spart#1<<!parindent 0pt !raggedright
+!huge !bf
+#1!par>
+!nobreak
+!vskip 3ex
+!@afterheading
+>
+!def!section<!@startsection <section><1><!z@><-3.5ex plus -1ex minus
+-.2ex><2.3ex plus .2ex><!Large!bf>>
+!def!subsection<!@startsection<subsection><2><!z@><-3.25ex plus -1ex minus
+-.2ex><1.5ex plus .2ex><!large!bf>>
+!def!subsubsection<!@startsection<subsubsection><3><!z@><-3.25ex plus
+-1ex minus -.2ex><1.5ex plus .2ex><!normalsize!bf>>
+!def!paragraph<!@startsection
+<paragraph><4><!z@><3.25ex plus 1ex minus .2ex><-1em><!normalsize!bf>>
+!def!subparagraph<!@startsection
+<subparagraph><4><!parindent><3.25ex plus 1ex minus
+.2ex><-1em><!normalsize!bf>>
+!setcounter<secnumdepth><3>
+!def!appendix<!par
+!setcounter<section><0>
+!setcounter<subsection><0>
+!def!thesection<!Alph<section>>>
+
+!leftmargini 25pt
+!leftmarginii 22pt
+!leftmarginiii 18.7pt
+!leftmarginiv 17pt
+!leftmarginv 10pt
+!leftmarginvi 10pt
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep 5pt
+!parsep 4pt plus 2pt minus 1pt
+!def!@listi<!leftmargin!leftmargini>
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep
+!topsep 4pt plus 2pt minus 1pt
+!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep 2pt plus 1pt minus 1pt
+!parsep !z@ !partopsep 1pt plus 0pt minus 1pt
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
diff --git a/language/swedish/slatex/macros/art11.sst b/language/swedish/slatex/macros/art11.sst
new file mode 100644
index 0000000000..d4e788d9db
--- /dev/null
+++ b/language/swedish/slatex/macros/art11.sst
@@ -0,0 +1,150 @@
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!def!@normalsize<!@setsize!normalsize<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt
+!def!@listi<!topsep 6pt plus 2pt minus 2pt!parsep 3pt plus 2pt minus 1pt
+!itemsep !parsep>>
+!def!footnotesize<!@setsize!footnotesize<11pt>!ixpt!@ixpt
+!abovedisplayskip 8pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 4pt plus 2pt minus 2pt
+!def!@listi<!topsep 4pt plus 2pt minus 2pt!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!normalsize
+
+!if@twoside
+!oddsidemargin 36pt
+!evensidemargin 74pt
+!marginparwidth 100pt
+!else
+!oddsidemargin 54pt
+!evensidemargin 54pt
+!marginparwidth 83pt
+!fi
+!marginparsep 10pt
+!topmargin 27pt
+!headheight 12pt
+!headsep 25pt
+!footheight 12pt
+!footskip 30pt
+!textheight 530.4pt
+!textwidth 360pt
+!columnsep 10pt
+!columnseprule 0pt
+!footnotesep 7.7pt
+!skip!footins 10pt plus 4pt minus 2pt
+!floatsep 12pt plus 2pt minus 2pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 12pt plus 2pt minus 2pt
+!@maxsep 20pt
+!dblfloatsep 12pt plus 2pt minus 2pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 8pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 8pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+!marginparpush 5pt
+
+!parskip 0pt plus 1pt
+!parindent 17pt
+!topsep 9pt plus 3pt minus 5pt
+!partopsep 3pt plus 1pt minus 2pt
+!itemsep 4.5pt plus 2pt minus 1pt
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!def!part<!par
+!addvspace<4ex>
+!@afterindentfalse
+!secdef!@part!@spart>
+!def!@part(#1)#2<!ifnum !c@secnumdepth !>!m@ne
+!refstepcounter<part>
+!addcontentsline<toc><part><!thepart
+!hspace<1em>#1>!else
+!addcontentsline<toc><part><#1>!fi
+< !parindent 0pt !raggedright
+!ifnum !c@secnumdepth !>!m@ne
+!Large !bf Part !thepart
+!par!nobreak
+!fi
+!huge !bf
+#2!markboth<><>!par >
+!nobreak
+!vskip 3ex
+!@afterheading
+>
+!def!@spart#1<<!parindent 0pt !raggedright
+!huge !bf
+#1!par>
+!nobreak
+!vskip 3ex
+!@afterheading
+>
+!def!section<!@startsection <section><1><!z@><-3.5ex plus -1ex minus
+-.2ex><2.3ex plus .2ex><!Large!bf>>
+!def!subsection<!@startsection<subsection><2><!z@><-3.25ex plus -1ex minus
+-.2ex><1.5ex plus .2ex><!large!bf>>
+!def!subsubsection<!@startsection<subsubsection><3><!z@><-3.25ex plus
+-1ex minus -.2ex><1.5ex plus .2ex><!normalsize!bf>>
+!def!paragraph<!@startsection
+<paragraph><4><!z@><3.25ex plus 1ex minus .2ex><-1em><!normalsize!bf>>
+!def!subparagraph<!@startsection
+<subparagraph><4><!parindent><3.25ex plus 1ex minus
+.2ex><-1em><!normalsize!bf>>
+!setcounter<secnumdepth><3>
+!def!appendix<!par
+!setcounter<section><0>
+!setcounter<subsection><0>
+!def!thesection<!Alph<section>>>
+
+!leftmargini 2.5em
+!leftmarginii 2.2em
+!leftmarginiii 1.87em
+!leftmarginiv 1.7em
+!leftmarginv 1em
+!leftmarginvi 1em
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep .5em
+!parsep 4.5pt plus 2pt minus 1pt
+!def!@listi<!leftmargin!leftmargini>
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep
+!topsep 4.5pt plus 2pt minus 1pt
+!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep 2pt plus 1pt minus 1pt
+!parsep !z@ !partopsep 1pt plus 0pt minus 1pt
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
diff --git a/language/swedish/slatex/macros/art12.sst b/language/swedish/slatex/macros/art12.sst
new file mode 100644
index 0000000000..3272933a46
--- /dev/null
+++ b/language/swedish/slatex/macros/art12.sst
@@ -0,0 +1,151 @@
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!def!@normalsize<!@setsize!normalsize<15pt>!xiipt!@xiipt
+!abovedisplayskip 12pt plus3pt minus7pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt
+!def!@listi<!parsep 4.5pt plus 2pt minus 1pt
+!itemsep !parsep
+!topsep 9pt plus 3pt minus 5pt>>
+!def!footnotesize<!@setsize!footnotesize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt
+!def!@listi<!topsep 6pt plus 2pt minus 2pt!parsep 3pt plus 2pt minus 1pt
+!itemsep !parsep>>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<18pt>!xivpt!@xivpt>
+!def!Large<!@setsize!Large<22pt>!xviipt!@xviipt>
+!def!LARGE<!@setsize!LARGE<25pt>!xxpt!@xxpt>
+!def!huge<!@setsize!huge<30pt>!xxvpt!@xxvpt>
+!let!Huge=!huge
+!normalsize
+
+!if@twoside
+!oddsidemargin 21pt
+!evensidemargin 59pt
+!marginparwidth 85pt
+!else
+!oddsidemargin 39.5pt
+!evensidemargin 39.5pt
+!marginparwidth 68pt
+!fi
+!marginparsep 10pt
+!topmargin 27pt
+!headheight 12pt
+!headsep 25pt
+!footheight 12pt
+!footskip 30pt
+!textheight 536.5pt
+!textwidth 390pt
+!columnsep 10pt
+!columnseprule 0pt
+!footnotesep 8.4pt
+!skip!footins 10.8pt plus 4pt minus 2pt
+!floatsep 14pt plus 2pt minus 4pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 14pt plus 4pt minus 4pt
+!@maxsep 20pt
+!dblfloatsep 14pt plus 2pt minus 4pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 10pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 10pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+!marginparpush 7pt
+
+!parskip 0pt plus 1pt
+!parindent 1.5em
+!topsep 10pt plus 4pt minus 6pt
+!partopsep 3pt plus 2pt minus 2pt
+!itemsep 5pt plus 2.5pt minus 1pt
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!def!part<!par
+!addvspace<4ex>
+!@afterindentfalse
+!secdef!@part!@spart>
+!def!@part(#1)#2<!ifnum !c@secnumdepth !>!m@ne
+!refstepcounter<part>
+!addcontentsline<toc><part><!thepart
+!hspace<1em>#1>!else
+!addcontentsline<toc><part><#1>!fi
+< !parindent 0pt !raggedright
+!ifnum !c@secnumdepth !>!m@ne
+!Large !bf Part !thepart
+!par!nobreak
+!fi
+!huge !bf
+#2!markboth<><>!par >
+!nobreak
+!vskip 3ex
+!@afterheading
+>
+!def!@spart#1<<!parindent 0pt !raggedright
+!huge !bf
+#1!par>
+!nobreak
+!vskip 3ex
+!@afterheading
+>
+!def!section<!@startsection <section><1><!z@><-3.5ex plus -1ex minus
+-.2ex><2.3ex plus .2ex><!Large!bf>>
+!def!subsection<!@startsection<subsection><2><!z@><-3.25ex plus -1ex minus
+-.2ex><1.5ex plus .2ex><!large!bf>>
+!def!subsubsection<!@startsection<subsubsection><3><!z@><-3.25ex plus
+-1ex minus -.2ex><1.5ex plus .2ex><!normalsize!bf>>
+!def!paragraph<!@startsection
+<paragraph><4><!z@><3.25ex plus 1ex minus .2ex><-1em><!normalsize!bf>>
+!def!subparagraph<!@startsection
+<subparagraph><4><!parindent><3.25ex plus 1ex minus
+.2ex><-1em><!normalsize!bf>>
+!setcounter<secnumdepth><3>
+!def!appendix<!par
+!setcounter<section><0>
+!setcounter<subsection><0>
+!def!thesection<!Alph<section>>>
+
+!leftmargini 2.5em
+!leftmarginii 2.2em
+!leftmarginiii 1.87em
+!leftmarginiv 1.7em
+!leftmarginv 1em
+!leftmarginvi 1em
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep .5em
+!parsep 5pt plus 2.5pt minus 1pt
+!def!@listi<!leftmargin!leftmargini>
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep
+!topsep 5pt plus 2.5pt minus 1pt
+!parsep 2.5pt plus 1pt minus 1pt
+!itemsep !parsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep 2.5pt plus 1pt minus 1pt
+!parsep !z@ !partopsep 1pt plus 0pt minus 1pt
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
diff --git a/language/swedish/slatex/macros/article.sst b/language/swedish/slatex/macros/article.sst
new file mode 100644
index 0000000000..f208210ad2
--- /dev/null
+++ b/language/swedish/slatex/macros/article.sst
@@ -0,0 +1,242 @@
+!typeout<Document Style `article'. Released 17 December 1985>
+!def!@ptsize<0>
+!@namedef<ds@11pt><!def!@ptsize<1>>
+!@namedef<ds@12pt><!def!@ptsize<2>>
+!def!ds@twoside<!@twosidetrue
+!@mparswitchtrue>
+!def!ds@draft<!overfullrule 5pt>
+!@options
+!input art1!@ptsize.sst!relax
+
+!def!labelenumi<!arabic<enumi>.>
+!def!theenumi<!arabic<enumi>>
+!def!labelenumii<(!alph<enumii>)>
+!def!theenumii<!alph<enumii>>
+!def!p@enumii<!theenumi>
+!def!labelenumiii<!roman<enumiii>.>
+!def!theenumiii<!roman<enumiii>>
+!def!p@enumiii<!theenumi(!theenumii)>
+!def!labelenumiv<!Alph<enumiv>.>
+!def!theenumiv<!Alph<enumiv>>
+!def!p@enumiv<!p@enumiii!theenumiii>
+!def!labelitemi<$!bullet$>
+!def!labelitemii<!bf -->
+!def!labelitemiii<$!ast$>
+!def!labelitemiv<$!cdot$>
+!def!verse<!let!!=!@centercr
+!list<><!itemsep!z@ !itemindent -1.5em!listparindent !itemindent
+!rightmargin!leftmargin!advance!leftmargin 1.5em>!item()>
+!let!endverse!endlist
+!def!quotation<!list<><!listparindent 1.5em
+!itemindent!listparindent
+!rightmargin!leftmargin !parsep 0pt plus 1pt>!item()>
+!let!endquotation=!endlist
+!def!quote<!list<><!rightmargin!leftmargin>!item()>
+!let!endquote=!endlist
+!def!descriptionlabel#1<!hspace!labelsep !bf #1>
+!def!description<!list<><!labelwidth!z@ !itemindent-!leftmargin
+!let!makelabel!descriptionlabel>>
+!let!enddescription!endlist
+
+!def!theequation<!arabic<equation>>
+!def!titlepage<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!else !newpage !fi !thispagestyle<empty>!c@page!z@>
+!def!endtitlepage<!if@restonecol!twocolumn !else !newpage !fi>
+!arraycolsep 5pt
+!tabcolsep 6pt
+!arrayrulewidth .4pt
+!doublerulesep 2pt
+!tabbingsep !labelsep
+!skip!@mpfootins = !skip!footins
+!fboxsep = 3pt
+!fboxrule = .4pt
+
+!newcounter<part>
+!newcounter <section>
+!newcounter <subsection>(section)
+!newcounter <subsubsection>(subsection)
+!newcounter <paragraph>(subsubsection)
+!newcounter <subparagraph>(paragraph)
+!def!thepart<!Roman<part>>
+!def!thesection <!arabic<section>>
+!def!thesubsection <!thesection.!arabic<subsection>>
+!def!thesubsubsection <!thesubsection .!arabic<subsubsection>>
+!def!theparagraph <!thesubsubsection.!arabic<paragraph>>
+!def!thesubparagraph <!theparagraph.!arabic<subparagraph>>
+
+!def!@pnumwidth<1.55em>
+!def!@tocrmarg <2.55em>
+!def!@dotsep<4.5>
+!setcounter<tocdepth><3>
+!def!tableofcontents<!section*<Contents!@mkboth<CONTENTS><CONTENTS>>
+!@starttoc<toc>>
+!def!l@part#1#2<!addpenalty<!@secpenalty>
+!addvspace<2.25em plus 1pt>
+!begingroup
+!@tempdima 3em
+!parindent !z@ !rightskip !@pnumwidth
+!parfillskip -!@pnumwidth
+<!large !bf
+!leavevmode
+#1!hfil !hbox to!@pnumwidth<!hss #2>>!par
+!nobreak
+!endgroup>
+!def!l@section#1#2<!addpenalty<!@secpenalty>
+!addvspace<1.0em plus 1pt>
+!@tempdima 1.5em
+!begingroup
+!parindent !z@ !rightskip !@pnumwidth
+!parfillskip -!@pnumwidth
+!bf
+!leavevmode
+#1!hfil !hbox to!@pnumwidth<!hss #2>!par
+!endgroup>
+!def!l@subsection<!@dottedtocline<2><1.5em><2.3em>>
+!def!l@subsubsection<!@dottedtocline<3><3.8em><3.2em>>
+!def!l@paragraph<!@dottedtocline<4><7.0em><4.1em>>
+!def!l@subparagraph<!@dottedtocline<5><10em><5em>>
+!def!listoffigures<!section*<List of Figures!@mkboth
+<LIST OF FIGURES><LIST OF FIGURES>>!@starttoc<lof>>
+!def!l@figure<!@dottedtocline<1><1.5em><2.3em>>
+!def!listoftables<!section*<List of Tables!@mkboth
+<LIST OF TABLES><LIST OF TABLES>>!@starttoc<lot>>
+!let!l@table!l@figure
+
+!def!thebibliography#1<!section*<References!@mkboth
+<REFERENCES><REFERENCES>>!list
+<!lbrack<>!arabic<enumi>!rbrack<>><!settowidth!labelwidth<!lbrack<>#1!rbrack<>>!leftmargin!labelwidth
+!advance!leftmargin!labelsep
+!usecounter<enumi>>
+!def!newblock<!hskip .11em plus .33em minus -.07em>
+!sloppy
+!sfcode`!.=1000!relax>
+!let!endthebibliography=!endlist
+
+!newif!if@restonecol
+!def!theindex<!@restonecoltrue!if@twocolumn!@restonecolfalse!fi
+!columnseprule !z@
+!columnsep 35pt!twocolumn(!section*<Index>)
+!@mkboth<INDEX><INDEX>!thispagestyle<plain>!parindent!z@
+!parskip!z@ plus .3pt!relax!let!item!@idxitem>
+!def!@idxitem<!par!hangindent 40pt>
+!def!subitem<!par!hangindent 40pt !hspace*<20pt>>
+!def!subsubitem<!par!hangindent 40pt !hspace*<30pt>>
+!def!endtheindex<!if@restonecol!onecolumn!else!clearpage!fi>
+!def!indexspace<!par !vskip 10pt plus 5pt minus 3pt!relax>
+
+!def!footnoterule<!kern-3!p@
+!hrule width .4!columnwidth
+!kern 2.6!p@>
+!long!def!@makefntext#1<!parindent 1em!noindent
+!hbox to 1.8em<!hss$^<!@thefnmark>$>#1>
+
+!setcounter<topnumber><2>
+!def!topfraction<.7>
+!setcounter<bottomnumber><1>
+!def!bottomfraction<.3>
+!setcounter<totalnumber><3>
+!def!textfraction<.2>
+!def!floatpagefraction<.5>
+!setcounter<dbltopnumber><2>
+!def!dbltopfraction<.7>
+!def!dblfloatpagefraction<.5>
+!long!def!@makecaption#1#2<
+!vskip 10pt
+!setbox!@tempboxa!hbox<#1: #2>
+!ifdim !wd!@tempboxa !>!hsize
+!unhbox!@tempboxa!par
+!else
+!hbox to!hsize<!hfil!box!@tempboxa!hfil>
+!fi>
+!newcounter<figure>
+!def!thefigure<!@arabic!c@figure>
+!def!fps@figure<tbp>
+!def!ftype@figure<1>
+!def!ext@figure<lof>
+!def!fnum@figure<Figure !thefigure>
+!def!figure<!@float<figure>>
+!let!endfigure!end@float
+!@namedef<figure*><!@dblfloat<figure>>
+!@namedef<endfigure*><!end@dblfloat>
+!newcounter<table>
+!def!thetable<!@arabic!c@table>
+!def!fps@table<tbp>
+!def!ftype@table<2>
+!def!ext@table<lot>
+!def!fnum@table<Table !thetable>
+!def!table<!@float<table>>
+!let!endtable!end@float
+!@namedef<table*><!@dblfloat<table>>
+!@namedef<endtable*><!end@dblfloat>
+
+!def!maketitle<!par
+!begingroup
+!def!thefootnote<!fnsymbol<footnote>>
+!def!@makefnmark<!hbox
+to 0pt<$^<!@thefnmark>$!hss>>
+!if@twocolumn
+!twocolumn(!@maketitle)
+!else !newpage
+!global!@topnum!z@
+!@maketitle !fi!thispagestyle<plain>!@thanks
+!endgroup
+!setcounter<footnote><0>
+!let!maketitle!relax
+!let!@maketitle!relax
+!gdef!@thanks<>!gdef!@author<>!gdef!@title<>!let!thanks!relax>
+!def!@maketitle<!newpage
+!null
+!vskip 2em
+!begin<center>
+<!LARGE !@title !par>
+!vskip 1.5em
+<!large
+!lineskip .5em
+!begin<tabular>(t)<c>!@author
+!end<tabular>!par>
+!vskip 1em
+<!large !@date>
+!end<center>
+!par
+!vskip 1.5em>
+!def!abstract<!if@twocolumn
+!section*<Abstract>
+!else !small
+!begin<center>
+<!bf Abstract!vspace<-.5em>!vspace<0pt>>
+!end<center>
+!quotation
+!fi>
+!def!endabstract<!if@twocolumn!else!endquotation!fi>
+
+!mark<<><>>
+!if@twoside
+!def!ps@headings<!let!@mkboth!markboth
+!def!@oddfoot<>!def!@evenfoot<>%
+!def!@evenhead<!rm !thepage!hfil !sl !leftmark>%
+!def!@oddhead<!hbox<>!sl !rightmark !hfil !rm!thepage>%
+!def!sectionmark##1<!markboth <!uppercase<!ifnum !c@secnumdepth !>!z@
+!thesection!hskip 1em!relax !fi ##1>><>>%
+!def!subsectionmark##1<!markright <!ifnum !c@secnumdepth !>!@ne
+!thesubsection!hskip 1em!relax !fi ##1>>>
+!else
+!def!ps@headings<!let!@mkboth!markboth
+!def!@oddfoot<>!def!@evenfoot<>%
+!def!@oddhead<!hbox <>!sl !rightmark !hfil !rm!thepage>%
+!def!sectionmark##1<!markright <!uppercase<!ifnum !c@secnumdepth !>!z@
+!thesection!hskip 1em!relax !fi ##1>>>>
+!fi
+!def!ps@myheadings<!let!@mkboth!@gobbletwo
+!def!@oddhead<!hbox<>!sl!rightmark !hfil !rm!thepage>%
+!def!@oddfoot<>!def!@evenhead<!rm !thepage!hfil!sl!leftmark!hbox <>>%
+!def!@evenfoot<>!def!sectionmark##1<>!def!subsectionmark##1<>>
+
+!def!today<!ifcase!month!or
+January!or February!or March!or April!or May!or June!or
+July!or August!or September!or October!or November!or December!fi
+!space!number!day, !number!year>
+
+!ps@plain
+!pagenumbering<arabic>
+!onecolumn
+!if@twoside!else!raggedbottom!fi
diff --git a/language/swedish/slatex/macros/bezier.sst b/language/swedish/slatex/macros/bezier.sst
new file mode 100644
index 0000000000..1b805eea43
--- /dev/null
+++ b/language/swedish/slatex/macros/bezier.sst
@@ -0,0 +1,24 @@
+!newcounter<@sc>
+!newcounter<@scp>
+!newcounter<@t>
+!newlength<!@x>
+!newlength<!@xa>
+!newlength<!@xb>
+!newlength<!@y>
+!newlength<!@ya>
+!newlength<!@yb>
+!newsavebox<!@pt>
+!def!bezier#1(#2,#3)(#4,#5)(#6,#7)<!c@@sc#1!relax
+!c@@scp!c@@sc !advance!c@@scp!@ne
+!@xb #4!unitlength !advance!@xb -#2!unitlength !multiply!@xb !tw@
+!@xa #6!unitlength !advance!@xa -#2!unitlength
+!advance!@xa -!@xb !divide!@xa!c@@sc
+!@yb #5!unitlength !advance!@yb -#3!unitlength !multiply!@yb !tw@
+!@ya #7!unitlength !advance!@ya -#3!unitlength
+!advance!@ya -!@yb !divide!@ya!c@@sc
+!setbox!@pt!hbox<!vrule height!@halfwidth depth!@halfwidth
+width!@wholewidth>!c@@t!z@
+!put(#2,#3)<!@whilenum<!c@@t!<!c@@scp>!do
+<!@x!c@@t!@xa !advance!@x!@xb !divide!@x!c@@sc !multiply!@x!c@@t
+!@y!c@@t!@ya !advance!@y!@yb !divide!@y!c@@sc !multiply!@y!c@@t
+!raise !@y !hbox to !z@<!hskip !@x!unhcopy!@pt!hss>!advance!c@@t!@ne>>>
diff --git a/language/swedish/slatex/macros/bk10.sst b/language/swedish/slatex/macros/bk10.sst
new file mode 100644
index 0000000000..d3e0a10246
--- /dev/null
+++ b/language/swedish/slatex/macros/bk10.sst
@@ -0,0 +1,195 @@
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!def!@normalsize<!@setsize!normalsize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt>
+!def!small<!@setsize!small<11pt>!ixpt!@ixpt
+!abovedisplayskip 8.5pt plus 3pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus2pt%
+!belowdisplayshortskip 4pt plus2pt minus 2pt
+!def!@listi<!topsep 4pt plus 2pt minus 2pt!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>>
+!def!footnotesize<!@setsize!footnotesize<9.5pt>!viiipt!@viiipt
+!abovedisplayskip 6pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 3pt plus 1pt minus 2pt
+!def!@listi<!topsep 3pt plus 1pt minus 1pt!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>>
+!def!scriptsize<!@setsize!scriptsize<8pt>!viipt!@viipt>
+!def!tiny<!@setsize!tiny<6pt>!vpt!@vpt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!normalsize
+
+!oddsidemargin .5in
+!evensidemargin 1.5in
+!marginparwidth .75in
+!marginparsep 7pt
+!topmargin .75in
+!headheight 12pt
+!headsep .25in
+!footheight 12pt
+!footskip .35in
+!textheight 504pt
+!textwidth 4.5in
+!columnsep 10pt
+!columnseprule 0pt
+!footnotesep 6.65pt
+!skip!footins 9pt plus 4pt minus 2pt
+!floatsep 12pt plus 2pt minus 2pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 12pt plus 2pt minus 2pt
+!@maxsep 20pt
+!dblfloatsep 12pt plus 2pt minus 2pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 8pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 8pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+!marginparpush 5pt
+
+!parskip 0pt plus 1pt
+!parindent 15pt
+!topsep 8pt plus 2pt minus 4pt
+!partopsep 2pt plus 1pt minus 1pt
+!itemsep 4pt plus 2pt minus 1pt
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!def!part<!cleardoublepage
+!thispagestyle<plain>
+!if@twocolumn
+!onecolumn
+!@tempswatrue
+!else !@tempswafalse
+!fi
+!hbox<>!vfil
+!bgroup !centering
+!secdef!@part!@spart>
+!def!@part(#1)#2<!ifnum !c@secnumdepth !>-2!relax
+!refstepcounter<part>
+!addcontentsline<toc><part><!thepart
+!hspace<1em>#1>!else
+!addcontentsline<toc><part><#1>!fi
+!markboth<><>
+!ifnum !c@secnumdepth !>-2!relax
+!huge!bf Part !thepart
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!@endpart>
+!def!@endpart<!par!egroup
+!vfil!newpage
+!if@twoside
+!hbox<>
+!thispagestyle<empty>
+!newpage
+!fi
+!if@tempswa
+!twocolumn
+!fi>
+!def!@spart#1<!Huge !bf
+#1!@endpart>
+!def!@makechapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!ifnum !c@secnumdepth !>!m@ne
+!huge!bf !@chapapp<> !thechapter
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!@makeschapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!chapter<!cleardoublepage
+!thispagestyle<plain>
+!global!@topnum!z@
+!@afterindentfalse
+!secdef!@chapter!@schapter>
+!def!@chapter(#1)#2<!ifnum !c@secnumdepth !>!m@ne
+!refstepcounter<chapter>
+!typeout<!@chapapp!space!thechapter.>
+!addcontentsline<toc><chapter><!protect
+!numberline<!thechapter>#1>!else
+!addcontentsline<toc><chapter><#1>!fi
+!chaptermark<#1>
+!addtocontents<lof><!protect!addvspace<10pt>>
+!addtocontents<lot><!protect!addvspace<10pt>>
+!if@twocolumn
+!@topnewpage(!@makechapterhead<#2>)
+!else !@makechapterhead<#2>
+!@afterheading
+!fi>
+!def!@schapter#1<!if@twocolumn !@topnewpage(!@makeschapterhead<#1>)
+!else !@makeschapterhead<#1>
+!@afterheading!fi>
+!def!section<!@startsection <section><1><!z@><-3.5ex plus -1ex minus
+-.2ex><2.3ex plus .2ex><!Large!bf>>
+!def!subsection<!@startsection<subsection><2><!z@><-3.25ex plus -1ex minus
+-.2ex><1.5ex plus .2ex><!large!bf>>
+!def!subsubsection<!@startsection<subsubsection><3><!z@><-3.25ex plus
+-1ex minus -.2ex><1.5ex plus .2ex><!normalsize!bf>>
+!def!paragraph<!@startsection
+<paragraph><4><!z@><3.25ex plus 1ex minus .2ex><-1em><!normalsize!bf>>
+!def!subparagraph<!@startsection
+<subparagraph><4><!parindent><3.25ex plus 1ex minus
+.2ex><-1em><!normalsize!bf>>
+!def!chaptermark#1<>
+!setcounter<secnumdepth><2>
+!def!appendix<!par
+!setcounter<chapter><0>
+!setcounter<section><0>
+!def!@chapapp<Appendix>
+!def!thechapter<!Alph<chapter>>>
+
+!leftmargini 25pt
+!leftmarginii 22pt
+!leftmarginiii 18.7pt
+!leftmarginiv 17pt
+!leftmarginv 10pt
+!leftmarginvi 10pt
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep 5pt
+!parsep 4pt plus 2pt minus 1pt
+!def!@listi<!leftmargin!leftmargini>
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep
+!topsep 4pt plus 2pt minus 1pt
+!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep 2pt plus 1pt minus 1pt
+!parsep !z@ !partopsep 1pt plus 0pt minus 1pt
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
diff --git a/language/swedish/slatex/macros/bk11.sst b/language/swedish/slatex/macros/bk11.sst
new file mode 100644
index 0000000000..007fe6b22d
--- /dev/null
+++ b/language/swedish/slatex/macros/bk11.sst
@@ -0,0 +1,195 @@
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!def!@normalsize<!@setsize!normalsize<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt
+!def!@listi<!topsep 6pt plus 2pt minus 2pt!parsep 3pt plus 2pt minus 1pt
+!itemsep !parsep>>
+!def!footnotesize<!@setsize!footnotesize<11pt>!ixpt!@ixpt
+!abovedisplayskip 8pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 4pt plus 2pt minus 2pt
+!def!@listi<!topsep 4pt plus 2pt minus 2pt!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!normalsize
+
+!oddsidemargin .25in
+!evensidemargin 1.25in
+!marginparwidth 1in
+!marginparsep 7pt
+!topmargin .73in
+!headheight 12pt
+!headsep .275in
+!footheight 12pt
+!footskip .38in
+!textheight 530.4pt
+!textwidth 5in
+!columnsep 10pt
+!columnseprule 0pt
+!footnotesep 7.7pt
+!skip!footins 10pt plus 4pt minus 2pt
+!floatsep 12pt plus 2pt minus 2pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 12pt plus 2pt minus 2pt
+!@maxsep 20pt
+!dblfloatsep 12pt plus 2pt minus 2pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 8pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 8pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+!marginparpush 5pt
+
+!parskip 0pt plus 1pt
+!parindent 17pt
+!topsep 9pt plus 3pt minus 5pt
+!partopsep 3pt plus 1pt minus 2pt
+!itemsep 4.5pt plus 2pt minus 1pt
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!def!part<!cleardoublepage
+!thispagestyle<plain>
+!if@twocolumn
+!onecolumn
+!@tempswatrue
+!else !@tempswafalse
+!fi
+!hbox<>!vfil
+!bgroup !centering
+!secdef!@part!@spart>
+!def!@part(#1)#2<!ifnum !c@secnumdepth !>-2!relax
+!refstepcounter<part>
+!addcontentsline<toc><part><!thepart
+!hspace<1em>#1>!else
+!addcontentsline<toc><part><#1>!fi
+!markboth<><>
+!ifnum !c@secnumdepth !>-2!relax
+!huge!bf Part !thepart
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!@endpart>
+!def!@endpart<!par!egroup
+!vfil!newpage
+!if@twoside
+!hbox<>
+!thispagestyle<empty>
+!newpage
+!fi
+!if@tempswa
+!twocolumn
+!fi>
+!def!@spart#1<!Huge !bf
+#1!@endpart>
+!def!@makechapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!ifnum !c@secnumdepth !>!m@ne
+!huge!bf !@chapapp<> !thechapter
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!@makeschapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!chapter<!cleardoublepage
+!thispagestyle<plain>
+!global!@topnum!z@
+!@afterindentfalse
+!secdef!@chapter!@schapter>
+!def!@chapter(#1)#2<!ifnum !c@secnumdepth !>!m@ne
+!refstepcounter<chapter>
+!typeout<!@chapapp!space!thechapter.>
+!addcontentsline<toc><chapter><!protect
+!numberline<!thechapter>#1>!else
+!addcontentsline<toc><chapter><#1>!fi
+!chaptermark<#1>
+!addtocontents<lof><!protect!addvspace<10pt>>
+!addtocontents<lot><!protect!addvspace<10pt>>
+!if@twocolumn
+!@topnewpage(!@makechapterhead<#2>)
+!else !@makechapterhead<#2>
+!@afterheading
+!fi>
+!def!@schapter#1<!if@twocolumn !@topnewpage(!@makeschapterhead<#1>)
+!else !@makeschapterhead<#1>
+!@afterheading!fi>
+!def!section<!@startsection <section><1><!z@><-3.5ex plus -1ex minus
+-.2ex><2.3ex plus .2ex><!Large!bf>>
+!def!subsection<!@startsection<subsection><2><!z@><-3.25ex plus -1ex minus
+-.2ex><1.5ex plus .2ex><!large!bf>>
+!def!subsubsection<!@startsection<subsubsection><3><!z@><-3.25ex plus
+-1ex minus -.2ex><1.5ex plus .2ex><!normalsize!bf>>
+!def!paragraph<!@startsection
+<paragraph><4><!z@><3.25ex plus 1ex minus .2ex><-1em><!normalsize!bf>>
+!def!subparagraph<!@startsection
+<subparagraph><4><!parindent><3.25ex plus 1ex minus
+.2ex><-1em><!normalsize!bf>>
+!def!chaptermark#1<>
+!setcounter<secnumdepth><2>
+!def!appendix<!par
+!setcounter<chapter><0>
+!setcounter<section><0>
+!def!@chapapp<Appendix>
+!def!thechapter<!Alph<chapter>>>
+
+!leftmargini 2.5em
+!leftmarginii 2.2em
+!leftmarginiii 1.87em
+!leftmarginiv 1.7em
+!leftmarginv 1em
+!leftmarginvi 1em
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep .5em
+!parsep 4.5pt plus 2pt minus 1pt
+!def!@listi<!leftmargin!leftmargini>
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep
+!topsep 4.5pt plus 2pt minus 1pt
+!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep 2pt plus 1pt minus 1pt
+!parsep !z@ !partopsep 1pt plus 0pt minus 1pt
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
diff --git a/language/swedish/slatex/macros/bk12.sst b/language/swedish/slatex/macros/bk12.sst
new file mode 100644
index 0000000000..93909c688e
--- /dev/null
+++ b/language/swedish/slatex/macros/bk12.sst
@@ -0,0 +1,196 @@
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!def!@normalsize<!@setsize!normalsize<14.5pt>!xiipt!@xiipt
+!abovedisplayskip 12pt plus3pt minus7pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt
+!def!@listi<!parsep 4.5pt plus 2pt minus 1pt
+!itemsep !parsep
+!topsep 9pt plus 3pt minus 5pt>>
+!def!footnotesize<!@setsize!footnotesize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt
+!def!@listi<!topsep 6pt plus 2pt minus 2pt!parsep 3pt plus 2pt minus 1pt
+!itemsep !parsep>>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<18pt>!xivpt!@xivpt>
+!def!Large<!@setsize!Large<22pt>!xviipt!@xviipt>
+!def!LARGE<!@setsize!LARGE<25pt>!xxpt!@xxpt>
+!def!huge<!@setsize!huge<30pt>!xxvpt!@xxvpt>
+!let!Huge=!huge
+!normalsize
+
+!oddsidemargin .25in
+!evensidemargin 1.25in
+!marginparwidth 1in
+!marginparsep 7pt
+!topmargin .73in
+!headheight 12pt
+!headsep .275in
+!footheight 12pt
+!footskip 30pt
+!textheight 536.5pt
+!textwidth 5in
+!columnsep 10pt
+!columnseprule 0pt
+!footnotesep 8.4pt
+!skip!footins 10.8pt plus 4pt minus 2pt
+!floatsep 14pt plus 2pt minus 4pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 14pt plus 4pt minus 4pt
+!@maxsep 20pt
+!dblfloatsep 14pt plus 2pt minus 4pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 10pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 10pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+!marginparpush 7pt
+
+!parskip 0pt plus 1pt
+!parindent 1.5em
+!topsep 10pt plus 4pt minus 6pt
+!partopsep 3pt plus 2pt minus 2pt
+!itemsep 5pt plus 2.5pt minus 1pt
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!def!part<!cleardoublepage
+!thispagestyle<plain>
+!if@twocolumn
+!onecolumn
+!@tempswatrue
+!else !@tempswafalse
+!fi
+!hbox<>!vfil
+!bgroup !centering
+!secdef!@part!@spart>
+!def!@part(#1)#2<!ifnum !c@secnumdepth !>-2!relax
+!refstepcounter<part>
+!addcontentsline<toc><part><!thepart
+!hspace<1em>#1>!else
+!addcontentsline<toc><part><#1>!fi
+!markboth<><>
+!ifnum !c@secnumdepth !>-2!relax
+!huge!bf Part !thepart
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!@endpart>
+!def!@endpart<!par!egroup
+!vfil!newpage
+!if@twoside
+!hbox<>
+!thispagestyle<empty>
+!newpage
+!fi
+!if@tempswa
+!twocolumn
+!fi>
+!def!@spart#1<!Huge !bf
+#1!@endpart>
+!def!@makechapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!ifnum !c@secnumdepth !>!m@ne
+!huge!bf !@chapapp<> !thechapter
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!@makeschapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!chapter<!cleardoublepage
+!thispagestyle<plain>
+!global!@topnum!z@
+!@afterindentfalse
+!secdef!@chapter!@schapter>
+!def!@chapter(#1)#2<!ifnum !c@secnumdepth !>!m@ne
+!refstepcounter<chapter>
+!typeout<!@chapapp!space!thechapter.>
+!addcontentsline<toc><chapter><!protect
+!numberline<!thechapter>#1>!else
+!addcontentsline<toc><chapter><#1>!fi
+!chaptermark<#1>
+!addtocontents<lof><!protect!addvspace<10pt>>
+!addtocontents<lot><!protect!addvspace<10pt>>
+!if@twocolumn
+!@topnewpage(!@makechapterhead<#2>)
+!else !@makechapterhead<#2>
+!@afterheading
+!fi>
+!def!@schapter#1<!if@twocolumn !@topnewpage(!@makeschapterhead<#1>)
+!else !@makeschapterhead<#1>
+!@afterheading!fi>
+!def!section<!@startsection <section><1><!z@><-3.5ex plus -1ex minus
+-.2ex><2.3ex plus .2ex><!Large!bf>>
+!def!subsection<!@startsection<subsection><2><!z@><-3.25ex plus -1ex minus
+-.2ex><1.5ex plus .2ex><!large!bf>>
+!def!subsubsection<!@startsection<subsubsection><3><!z@><-3.25ex plus
+-1ex minus -.2ex><1.5ex plus .2ex><!normalsize!bf>>
+!def!paragraph<!@startsection
+<paragraph><4><!z@><3.25ex plus 1ex minus .2ex><-1em><!normalsize!bf>>
+!def!subparagraph<!@startsection
+<subparagraph><4><!parindent><3.25ex plus 1ex minus
+.2ex><-1em><!normalsize!bf>>
+!def!chaptermark#1<>
+!setcounter<secnumdepth><2>
+!def!appendix<!par
+!setcounter<chapter><0>
+!setcounter<section><0>
+!def!@chapapp<Appendix>
+!def!thechapter<!Alph<chapter>>>
+
+!leftmargini 2.5em
+!leftmarginii 2.2em
+!leftmarginiii 1.87em
+!leftmarginiv 1.7em
+!leftmarginv 1em
+!leftmarginvi 1em
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep .5em
+!parsep 5pt plus 2.5pt minus 1pt
+!def!@listi<!leftmargin!leftmargini>
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep
+!topsep 5pt plus 2.5pt minus 1pt
+!parsep 2.5pt plus 1pt minus 1pt
+!itemsep !parsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep 2.5pt plus 1pt minus 1pt
+!parsep !z@ !partopsep 1pt plus 0pt minus 1pt
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
diff --git a/language/swedish/slatex/macros/book.sst b/language/swedish/slatex/macros/book.sst
new file mode 100644
index 0000000000..b5cd84ebfe
--- /dev/null
+++ b/language/swedish/slatex/macros/book.sst
@@ -0,0 +1,226 @@
+% book.sty 17-Dec-85
+
+!typeout<Document Style `book'. Released 17 December 1985>
+
+!def!@ptsize<0> !@namedef<ds@11pt><!def!@ptsize<1>>
+!@namedef<ds@12pt><!def!@ptsize<2>>
+!@twosidetrue !@mparswitchtrue !def!ds@draft<!overfullrule 5pt>
+!@options
+!input bk1!@ptsize.sst!relax
+
+
+!def!labelenumi<!arabic<enumi>.>
+!def!theenumi<!arabic<enumi>>
+!def!labelenumii<(!alph<enumii>)>
+!def!theenumii<!alph<enumii>>
+!def!p@enumii<!theenumi>
+!def!labelenumiii<!roman<enumiii>.>
+!def!theenumiii<!roman<enumiii>>
+!def!p@enumiii<!theenumi(!theenumii)>
+!def!labelenumiv<!Alph<enumiv>.>
+!def!theenumiv<!Alph<enumiv>>
+!def!p@enumiv<!p@enumiii!theenumiii>
+
+!def!labelitemi<$!bullet$>
+!def!labelitemii<!bf -->
+!def!labelitemiii<$!ast$>
+!def!labelitemiv<$!cdot$>
+
+!def!verse<!let!!=!@centercr
+ !list<><!itemsep!z@ !itemindent -1.5em!listparindent !itemindent
+ !rightmargin!leftmargin!advance!leftmargin 1.5em>!item()>
+!let!endverse!endlist
+!def!quotation<!list<><!listparindent 1.5em
+ !itemindent!listparindent
+ !rightmargin!leftmargin!parsep 0pt plus 1pt>!item()>
+!let!endquotation=!endlist
+!def!quote<!list<><!rightmargin!leftmargin>!item()>
+!let!endquote=!endlist
+
+!def!descriptionlabel#1<!hspace!labelsep !bf #1>
+!def!description<!list<><!labelwidth!z@ !itemindent-!leftmargin
+ !let!makelabel!descriptionlabel>>
+!let!enddescription!endlist
+!newdimen!descriptionmargin
+!descriptionmargin=3em
+
+
+!def!titlepage<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+ !else !newpage !fi !thispagestyle<empty>!c@page!z@>
+!def!endtitlepage<!if@restonecol!twocolumn !else !newpage !fi>
+
+!arraycolsep 5pt !tabcolsep 6pt !arrayrulewidth .4pt !doublerulesep 2pt
+!tabbingsep !labelsep
+!skip!@mpfootins = !skip!footins
+!fboxsep = 3pt !fboxrule = .4pt
+
+!newcounter<part>
+!newcounter <chapter>
+!newcounter <section>(chapter)
+!newcounter <subsection>(section)
+!newcounter <subsubsection>(subsection)
+!newcounter <paragraph>(subsubsection)
+!newcounter <subparagraph>(paragraph)
+
+!def!thepart <!Roman<part>>
+!def!thechapter <!arabic<chapter>>
+!def!thesection <!thechapter.!arabic<section>>
+!def!thesubsection <!thesection.!arabic<subsection>>
+!def!thesubsubsection <!thesubsection .!arabic<subsubsection>>
+!def!theparagraph <!thesubsubsection.!arabic<paragraph>>
+!def!thesubparagraph <!theparagraph.!arabic<subparagraph>>
+!def!@chapapp<Chapter>
+
+
+!def!@pnumwidth<1.55em>
+!def!@tocrmarg <2.55em>
+!def!@dotsep<4.5>
+!setcounter<tocdepth><2>
+
+
+!def!tableofcontents<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+ !fi!chapter*<Contents!@mkboth<CONTENTS><CONTENTS>>
+ !@starttoc<toc>!if@restonecol!twocolumn!fi>
+!def!l@part#1#2<!addpenalty<-!@highpenalty>
+ !addvspace<2.25em plus 1pt> !begingroup
+ !@tempdima 3em !parindent !z@ !rightskip !@pnumwidth !parfillskip
+-!@pnumwidth
+ <!large !bf !leavevmode #1!hfil !hbox to!@pnumwidth<!hss #2>>!par
+ !nobreak !endgroup>
+
+!def!l@chapter#1#2<!pagebreak(3)
+ !vskip 1.0em plus 1pt !@tempdima 1.5em !begingroup
+ !parindent !z@ !rightskip !@pnumwidth
+ !parfillskip -!@pnumwidth
+ !bf !leavevmode #1!hfil !hbox to!@pnumwidth<!hss #2>!par
+ !endgroup>
+!def!l@section<!@dottedtocline<1><1.5em><2.3em>>
+!def!l@subsection<!@dottedtocline<2><3.8em><3.2em>>
+!def!l@subsubsection<!@dottedtocline<3><7.0em><4.1em>>
+!def!l@paragraph<!@dottedtocline<4><10em><5em>>
+!def!l@subparagraph<!@dottedtocline<5><12em><6em>>
+!def!listoffigures<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+ !fi!chapter*<List of Figures!@mkboth
+ <LIST OF FIGURES><LIST OF FIGURES>>!@starttoc<lof>!if@restonecol!twocolumn
+ !fi>
+!def!l@figure<!@dottedtocline<1><1.5em><2.3em>>
+!def!listoftables<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+ !fi!chapter*<List of Tables!@mkboth
+ <LIST OF TABLES><LIST OF TABLES>>!@starttoc<lot>!if@restonecol!twocolumn
+ !fi>
+!let!l@table!l@figure
+
+
+!def!thebibliography#1<!chapter*<Bibliography!@mkboth
+ <BIBLIOGRAPHY><BIBLIOGRAPHY>>!list
+ <!lbrack<>!arabic<enumi>!rbrack<>><!settowidth!labelwidth<!lbrack<>#1!rbrack<>>!leftmargin!labelwidth
+ !advance!leftmargin!labelsep
+ !usecounter<enumi>>
+ !def!newblock<!hskip .11em plus .33em minus -.07em>
+ !sloppy
+ !sfcode`!.=1000!relax>
+!let!endthebibliography=!endlist
+
+
+!newif!if@restonecol
+!def!theindex<!@restonecoltrue!if@twocolumn!@restonecolfalse!fi
+!columnseprule !z@
+!columnsep 35pt!twocolumn(!@makeschapterhead<Index>)
+ !@mkboth<INDEX><INDEX>!thispagestyle<plain>!parindent!z@
+ !parskip!z@ plus .3pt!relax!let!item!@idxitem>
+!def!@idxitem<!par!hangindent 40pt>
+!def!subitem<!par!hangindent 40pt !hspace*<20pt>>
+!def!subsubitem<!par!hangindent 40pt !hspace*<30pt>>
+!def!endtheindex<!if@restonecol!onecolumn!else!clearpage!fi>
+!def!indexspace<!par !vskip 10pt plus 5pt minus 3pt!relax>
+
+!def!footnoterule<!kern-3!p@
+ !hrule width .4!columnwidth
+ !kern 2.6!p@>
+!@addtoreset<footnote><chapter>
+!long!def!@makefntext#1<!parindent 1em!noindent
+ !hbox to 1.8em<!hss$^<!@thefnmark>$>#1>
+
+
+!setcounter<topnumber><2>
+!def!topfraction<.7>
+!setcounter<bottomnumber><1>
+!def!bottomfraction<.3>
+!setcounter<totalnumber><3>
+!def!textfraction<.2>
+!def!floatpagefraction<.5>
+!setcounter<dbltopnumber><2>
+!def!dbltopfraction<.7>
+!def!dblfloatpagefraction<.5>
+
+!long!def!@makecaption#1#2<
+ !vskip 10pt
+ !setbox!@tempboxa!hbox<#1: #2>
+ !ifdim !wd!@tempboxa !>!hsize !unhbox!@tempboxa!par !else !hbox
+to!hsize<!hfil!box!@tempboxa!hfil>
+ !fi>
+
+
+!newcounter<figure>(chapter)
+!def!thefigure<!thechapter.!@arabic!c@figure>
+!def!fps@figure<tbp>
+!def!ftype@figure<1>
+!def!ext@figure<lof>
+!def!fnum@figure<Figure !thefigure>
+!def!figure<!@float<figure>>
+!let!endfigure!end@float
+!@namedef<figure*><!@dblfloat<figure>>
+!@namedef<endfigure*><!end@dblfloat>
+!newcounter<table>(chapter)
+!def!thetable<!thechapter.!@arabic!c@table>
+!def!fps@table<tbp>
+!def!ftype@table<2>
+!def!ext@table<lot>
+!def!fnum@table<Table !thetable>
+!def!table<!@float<table>>
+!let!endtable!end@float
+!@namedef<table*><!@dblfloat<table>>
+!@namedef<endtable*><!end@dblfloat>
+
+!def!maketitle<!begin<titlepage>
+ !let!footnotesize!small !let!footnoterule!relax !setcounter<page><0>
+ !null
+ !vfil
+ !vskip 60pt !begin<center>
+ <!LARGE !@title !par> !vskip 3em <!large !lineskip .75em
+ !begin<tabular>(t)<c>!@author
+ !end<tabular>!par>
+ !vskip 1.5em <!large !@date !par> !end<center> !par
+!@thanks
+!vfil
+!null
+!end<titlepage>
+!setcounter<footnote><0> !let!thanks!relax
+!gdef!@thanks<>!gdef!@author<>!gdef!@title<>!let!maketitle!relax>
+
+
+!mark<<><>>
+
+!def!ps@headings<!let!@mkboth!markboth
+!def!@oddfoot<>!def!@evenfoot<>!def!@evenhead<!rm !thepage!hfil !sl
+!leftmark>!def!@oddhead<!hbox<>!sl !rightmark !hfil
+!rm!thepage>!def!chaptermark##1<!markboth <!uppercase<!ifnum !c@secnumdepth
+!>!m@ne
+ !@chapapp! !thechapter. ! !fi ##1>><>>!def!sectionmark##1<!markright
+<!uppercase<!ifnum !c@secnumdepth !>!z@
+ !thesection. ! !fi ##1>>>>
+!def!ps@myheadings<!let!@mkboth!@gobbletwo
+!def!@oddhead<!hbox<>!sl!rightmark !hfil
+!rm!thepage>!def!@oddfoot<>!def!@evenhead<!rm !thepage!hfil!sl!leftmark!hbox
+<>>!def!@evenfoot<>!def!sectionmark##1<>!def!subsectionmark##1<>>
+
+
+!def!today<!ifcase!month!or
+ January!or February!or March!or April!or May!or June!or
+ July!or August!or September!or October!or November!or December!fi
+ !space!number!day, !number!year>
+!@addtoreset<equation><chapter>
+!def!theequation<!thechapter.!arabic<equation>>
+
+
+!ps@headings !pagenumbering<arabic> !onecolumn
diff --git a/language/swedish/slatex/macros/fleqn.sst b/language/swedish/slatex/macros/fleqn.sst
new file mode 100644
index 0000000000..9d1afab1f6
--- /dev/null
+++ b/language/swedish/slatex/macros/fleqn.sst
@@ -0,0 +1,29 @@
+!def![<!relax!ifmmode!@badmath!else!begingroup!trivlist !item()!leavevmode
+!hbox to!linewidth!bgroup$
+!displaystyle
+!hskip!mathindent!bgroup!fi>
+!def!]<!relax!ifmmode !egroup $!hfil
+!egroup !endtrivlist !endgroup!else !@badmath !fi>
+!def!equation<!refstepcounter<equation>!trivlist !item()!leavevmode
+!hbox to!linewidth!bgroup $
+!displaystyle
+!hskip!mathindent>
+!def!endequation<$!hfil
+!displaywidth!linewidth!@eqnnum!egroup !endtrivlist>
+!def!eqnarray<!stepcounter<equation>!let!@currentlabel=!theequation
+!global!@eqnswtrue
+!global!@eqcnt!z@!tabskip!mathindent!let!!=!@eqncr
+!abovedisplayskip!topsep!ifvmode!advance!abovedisplayskip!partopsep!fi
+!belowdisplayskip!abovedisplayskip
+!belowdisplayshortskip!abovedisplayskip
+!abovedisplayshortskip!abovedisplayskip
+$$!halign
+to !linewidth!bgroup!@eqnsel!hskip!@centering$!displaystyle!tabskip!z@
+<##>$&!global!@eqcnt!@ne !hskip 2!arraycolsep !hfil$<##>$!hfil
+&!global!@eqcnt!tw@ !hskip 2!arraycolsep $!displaystyle<##>$!hfil
+!tabskip!@centering&!llap<##>!tabskip!z@!cr>
+!def!endeqnarray<!@@eqncr!egroup
+!global!advance!c@equation!m@ne$$!global!@ignoretrue
+>
+!newdimen!mathindent
+!mathindent = !leftmargini
diff --git a/language/swedish/slatex/macros/ifthen.sst b/language/swedish/slatex/macros/ifthen.sst
new file mode 100644
index 0000000000..c071fb9b02
--- /dev/null
+++ b/language/swedish/slatex/macros/ifthen.sst
@@ -0,0 +1,28 @@
+!long!def!ifthenelse#1#2#3<!setbox!@tempboxa
+!vbox<!let!or!@or !let!and!@and !let!not!@neg !let!(!@lparen !let!)!@rparen
+<!let!if!relax!let!ifx!relax!let!ifnum!relax!let!fi!relax
+!let!else!relax !xdef!@gtempa<#1>>!expandafter
+!@eval !ifnum !@gtempa!relax !def!@term<T>!else !def!@term<F>!fi
+!@endeval!global!let!@gtempa!@val>!if!@gtempa T#2!else#3!fi>
+!def!@eval<!def!@val<F>!def!@orop<T>!def!@negate<F>>
+!def!@endeval<!if!@negate T!def!@negate<F>!if!@term T!def!@term<F>!else
+!def!@term<T>!fi!fi
+!if!@orop T!if!@val F!let!@val!@term!fi
+!else !if!@val T!let!@val!@term!fi!fi>
+!def!@or<!relax!def!noexpand!@term<T>!else !def!noexpand!@term<F>!fi
+!noexpand!@endeval !def!noexpand!@orop<T>!ifnum>
+!def!@and<!relax!def!noexpand!@term<T>!else !def!noexpand!@term<F>!fi
+!noexpand!@endeval!def!noexpand!@orop<F>!ifnum>
+!def!@neg<1=1 !fi !def!noexpand!@negate<T>!ifnum>
+!def!@lparen<1=1 !fi !begingroup !noexpand!@eval !ifnum>
+!def!@rparen<!relax!def!noexpand!@term<T>!else !def!noexpand!@term<F>!fi
+!noexpand!@endeval !if!noexpand!@val T!gdef!noexpand!@gtempb<1=1>!else
+!gdef!noexpand!@gtempb<1=0>!fi
+!endgroup !ifnum!noexpand!@gtempb>
+!def!equal#1#2<1=1 !fi !edef!noexpand!@tempa<#1>!edef!noexpand!@tempb<#2>!ifx
+!noexpand!@tempa!noexpand!@tempb
+!def!noexpand!@tempa<1=1>!else
+!def!noexpand!@tempa<1=0>!fi !ifnum !noexpand!@tempa>
+!long!def!whiledo#1#2<!ifthenelse<#1><!@whiledotrue !@whilesw!if@whiledo
+!fi<#2!ifthenelse<#1><!@whiledotrue><!@whiledofalse>>><>>
+!newif!if@whiledo
diff --git a/language/swedish/slatex/macros/leqno.sst b/language/swedish/slatex/macros/leqno.sst
new file mode 100644
index 0000000000..d9fe72ae8c
--- /dev/null
+++ b/language/swedish/slatex/macros/leqno.sst
@@ -0,0 +1 @@
+!def!@eqnnum<!hbox to .01pt<>!rlap<!rm !hskip -!displaywidth(!theequation)>>
diff --git a/language/swedish/slatex/macros/letter.sst b/language/swedish/slatex/macros/letter.sst
new file mode 100644
index 0000000000..cc896900b4
--- /dev/null
+++ b/language/swedish/slatex/macros/letter.sst
@@ -0,0 +1,345 @@
+!typeout<Document Style 'letter'. Released 21 July 1985>
+!def!@ptsize<0>
+!@namedef<ds@11pt><!def!@ptsize<1>>
+!@namedef<ds@12pt><!def!@ptsize<2>>
+!@twosidefalse
+!def!ds@draft<!overfullrule 5pt>
+!@options
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!ifcase !@ptsize!relax
+!def!@normalsize<!@setsize!normalsize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt>
+!def!small<!@setsize!small<11pt>!ixpt!@ixpt
+!abovedisplayskip 8.5pt plus 3pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus2pt%
+!belowdisplayshortskip 4pt plus2pt minus 2pt>
+!def!footnotesize<!@setsize!footnotesize<9.5pt>!viiipt!@viiipt
+!abovedisplayskip 6pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 3pt plus 1pt minus 2pt>
+!def!scriptsize<!@setsize!scriptsize<8pt>!viipt!@viipt>
+!def!tiny<!@setsize!tiny<6pt>!vpt!@vpt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!or
+!def!@normalsize<!@setsize!normalsize<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt>
+!def!footnotesize<!@setsize!footnotesize<11pt>!ixpt!@ixpt
+!abovedisplayskip 8pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 4pt plus 2pt minus 2pt>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!or
+!def!@normalsize<!@setsize!normalsize<15pt>!xiipt!@xiipt
+!abovedisplayskip 12pt plus3pt minus7pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!footnotesize<!@setsize!footnotesize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<18pt>!xivpt!@xivpt>
+!def!Large<!@setsize!Large<22pt>!xviipt!@xviipt>
+!def!LARGE<!@setsize!LARGE<25pt>!xxpt!@xxpt>
+!def!huge<!@setsize!huge<30pt>!xxvpt!@xxvpt>
+!let!Huge=!huge
+!fi
+!normalsize
+
+!oddsidemargin 53pt
+!evensidemargin 53pt
+!marginparwidth 90pt
+!marginparsep 11pt
+!marginparpush 5pt
+!topmargin 27pt
+!headheight 12pt
+!headsep 45pt
+!footheight 12pt
+!footskip 25pt
+!textheight 505pt
+!textwidth 365pt
+!columnsep 10pt
+!columnseprule 0pt
+!raggedbottom
+!footnotesep 12pt
+!skip!footins 10pt plus 2pt minus 4pt
+!floatsep 12pt plus 2pt minus 2pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 12pt plus 2pt minus 2pt
+!dblfloatsep 12pt plus 2pt minus 2pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@maxsep 20pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 8pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 8pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+
+
+!newdimen!longindentation
+!longindentation=.5!textwidth
+!newdimen!indentedwidth
+!indentedwidth=!textwidth
+!advance!indentedwidth -!longindentation
+!def!opening#1<!ifx!@empty!fromaddress
+!thispagestyle<firstpage>
+<!raggedleft!today!par>
+!else
+!thispagestyle<empty>
+<!raggedleft!begin<tabular><l>!ignorespaces!fromaddress !!*(2!parskip)
+!today !end<tabular>!par>
+!fi
+!vspace<2!parskip>
+<!raggedright !toname !! !toaddress !par>!vspace<2!parskip>
+#1!par!nobreak>
+!long!def!closing#1<!par!nobreak!vspace<!parskip>
+!stopbreaks
+!noindent
+!ifx!@empty!fromaddress!else
+!hspace*<!longindentation>!fi
+!parbox<!indentedwidth><!raggedright
+!ignorespaces #1!!(6!parskip)
+!ifx!@empty!fromsig
+!fromname
+!else !fromsig !fi!strut>
+!par>
+!def!ps<!par!startbreaks>
+!def!cc#1<!par!noindent
+!parbox(t)<!textwidth><!@hangfrom<!rm cc: >!ignorespaces #1!strut>!par>
+!def!encl#1<!par!noindent
+!parbox(t)<!textwidth><!@hangfrom<!rm encl: >!ignorespaces #1!strut>!par>
+!def!stopletter<>
+!def!returnaddress<>
+!newcount!labelcount
+!def!startlabels<!labelcount=0 !baselineskip=0pt !lineskip=0pt
+!pagestyle<empty>
+!let!@texttop=!relax
+!topmargin -50pt
+!headsep 0pt
+!oddsidemargin -35pt
+!evensidemargin -35pt
+!textheight 10in
+!@colht!textheight !@colroom!textheight !vsize!textheight
+!textwidth 550pt
+!columnsep 25pt
+!xpt
+!baselineskip=0pt
+!lineskip=0pt
+!boxmaxdepth=0pt
+!twocolumn!relax>
+!def!mlabel#1#2<!setbox0!vbox<!parbox(b)<3.6in><!strut!ignorespaces #2>>
+!vbox to 2in<!vss !box0 !vss>>
+
+!long!def!letter#1<!newpage
+!c@page!@ne
+!interlinepenalty=200
+!@processto<#1>>
+!def!endletter<!stopletter!@@par!pagebreak!@@par
+!if@filesw
+!begingroup
+!def!protect<!string>
+!let!!=!relax
+!def!protect##1<!string##1!space>
+!immediate!write!@auxout<!string!mlabel<!returnaddress><!toname
+!!!toaddress>>
+!endgroup
+!fi>
+!long!def!@processto#1<!@xproc #1!!@@@!ifx!toaddress!@empty
+!else !@yproc #1@@@!fi>
+!long!def!@xproc #1!!#2@@@<!def!toname<#1>!def!toaddress<#2>>
+!long!def!@yproc #1!!#2@@@<!def!toaddress<#2>>
+!def!stopbreaks<!interlinepenalty !@M
+!def!par<!@@par!nobreak>!let!!=!@nobreakcr
+!let!vspace!@nobreakvspace>
+!def!@nobreakvspace<!@ifstar<!@nobreakvspacex><!@nobreakvspacex>>
+!def!@nobreakvspacex#1<!ifvmode!nobreak!vskip #1!relax!else
+!@bsphack!vadjust<!nobreak!vskip #1>!@esphack!fi>
+!def!@nobreakcr<!vadjust<!penalty!@M>!@ifstar<!@xnewline><!@xnewline>>
+!def!startbreaks<!let!!=!@normalcr
+!interlinepenalty 200!def!par<!@@par!penalty 200>>
+!def!name#1<!def!fromname<#1>>
+!def!signature#1<!def!fromsig<#1>>
+!def!fromsig<>
+!long!def!address#1<!def!fromaddress<#1>>
+!def!fromaddress<>
+!def!location#1<!def!fromlocation<#1>>
+!def!fromlocation<>
+!def!telephone#1<!def!telephonenum<#1>>
+!def!telephonenum<>
+!def!document<!endgroup
+!@colht!textheight !@colroom!textheight !vsize!textheight
+!columnwidth!textwidth !@clubpenalty!clubpenalty
+!if@twocolumn !advance!columnwidth -!columnsep
+!divide!columnwidth!tw@ !hsize!columnwidth !@firstcolumntrue
+!fi
+!hsize!columnwidth !linewidth!hsize
+!begingroup!@floatplacement!@dblfloatplacement!endgroup
+!if@filesw !immediate!openout!@mainaux=!jobname.aux
+!immediate!write!@mainaux<!string!startlabels!string!@startlabels>!fi
+!def!do##1<!let ##1!@notprerr>
+!@preamblecmds
+!let!do!noexpand
+!@normalsize!everypar<>>
+!def!enddocument<!@checkend<document>!newpage!begingroup
+!if@filesw !immediate!closeout!@mainaux
+!makeatletter!input !jobname.aux!clearpage
+!fi!endgroup!deadcycles!z@!@@end>
+!def!makelabels<!@fileswtrue>
+!def!@startlabels<>
+
+!def!@texttop<!ifnum!c@page=1!vskip 0pt plus .00006fil!relax!fi>
+!def!ps@headings<!def!@oddhead<!sl To !ignorespaces!toname !hfil !today
+!hfil Page !thepage>!def!@oddfoot<>>
+!def!ps@empty<!def!@oddhead<>!def!@oddfoot<>%
+!def!@evenhead<>!def!@evenfoot<>>
+!def!ps@firstpage<!def!@oddhead<>!def!@oddfoot<!raisebox
+<-45pt>(0pt)<!hbox to !textwidth
+<!hspace*<100pt>!xpt!fromlocation !hfill !telephonenum>>!hss>%
+!def!@evenhead<>!def!@evenfoot<>>
+!def!ps@plain<!def!@oddhead<>!def!@oddfoot<!rm!hfil!thepage
+!hfil>!def!@evenhead<>!let!@evenfoot!@oddfoot>
+
+!parskip .7em
+!parindent 0pt
+!topsep .4em
+!partopsep 0pt
+!itemsep .4em
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!leftmargini 2.5em
+!leftmarginii 2.2em
+!leftmarginiii 1.87em
+!leftmarginiv 1.7em
+!leftmarginv 1em
+!leftmarginvi 1em
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep 5pt
+!parsep 0pt
+!let!@listi!relax
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep .2em
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
+!def!labelenumi<!arabic<enumi>.>
+!def!theenumi<!arabic<enumi>>
+!def!labelenumii<(!alph<enumii>)>
+!def!theenumii<!alph<enumii>>
+!def!p@enumii<!theenumi>
+!def!labelenumiii<!roman<enumiii>.>
+!def!theenumiii<!roman<enumiii>>
+!def!p@enumiii<!theenumi(!theenumii)>
+!def!labelenumiv<!Alph<enumiv>.>
+!def!theenumiv<!Alph<enumiv>>
+!def!p@enumiv<!p@enumiii!theenumiii>
+!def!labelitemi<$!bullet$>
+!def!labelitemii<!bf -->
+!def!labelitemiii<$!ast$>
+!def!labelitemiv<$!cdot$>
+!def!verse<!let!!=!@centercr
+!list<><!itemsep!z@ !itemindent -15pt!listparindent !itemindent
+!rightmargin!leftmargin!advance!leftmargin 15pt>!item()>
+!let!endverse!endlist
+!def!quotation<!list<><!listparindent 1.5em
+!itemindent!listparindent
+!rightmargin!leftmargin>!item()>
+!let!endquotation=!endlist
+!def!quote<!list<><!rightmargin!leftmargin>!item()>
+!let!endquote=!endlist
+!def!descriptionlabel#1<!hfil !it #1>
+!def!description<!list<><!leftmargin!descriptionmargin
+!labelwidth!leftmargin !advance!labelwidth -!labelsep
+!let!makelabel!descriptionlabel>>
+!let!enddescription!endlist
+!newdimen!descriptionmargin
+!descriptionmargin=3em
+
+!def!theequation<!arabic<equation>>
+!arraycolsep 5pt
+!tabcolsep 6pt
+!arrayrulewidth .4pt
+!doublerulesep 2pt
+!tabbingsep !labelsep
+!skip!@mpfootins = !skip!footins
+!fboxsep = 3pt
+!fboxrule = .4pt
+
+!def!footnoterule<!kern-1!p@
+!hrule width .4!columnwidth
+!kern .6!p@>
+!long!def!@makefntext#1<!noindent
+!hangindent 5pt!hbox
+to 5pt<!hss $^<!@thefnmark>$>#1>
+
+!c@topnumber=2
+!def!topfraction<.7>
+!c@bottomnumber=1
+!def!bottomfraction<.3>
+!c@totalnumber=3
+!def!textfraction<.2>
+!def!floatpagefraction<.5>
+!c@dbltopnumber= 2
+!def!dbltopfraction<.7>
+!def!dblfloatpagefraction<.5>
+
+!def!today<!ifcase!month!or
+January!or February!or March!or April!or May!or June!or
+July!or August!or September!or October!or November!or December!fi
+!space!number!day, !number!year>
+
+!smallskipamount=.5!parskip
+!medskipamount=!parskip
+!bigskipamount=2!parskip
+!ps@plain
+!pagenumbering<arabic>
+!onecolumn
+!@fileswfalse
diff --git a/language/swedish/slatex/macros/openbib.sst b/language/swedish/slatex/macros/openbib.sst
new file mode 100644
index 0000000000..4657f69daa
--- /dev/null
+++ b/language/swedish/slatex/macros/openbib.sst
@@ -0,0 +1,28 @@
+!newdimen!bibindent
+!bibindent=1.5em
+!@ifundefined<chapter><!def!thebibliography#1<!section*<References!markboth
+<REFERENCES><REFERENCES>>!list
+<!lbrack<>!arabic<enumi>!rbrack<>><!settowidth!labelwidth<!lbrack<>#1!rbrack<>>
+!leftmargin!labelwidth
+!advance!leftmargin!labelsep
+!advance!leftmargin!bibindent
+!itemindent -!bibindent
+!listparindent !itemindent
+!parsep !z@
+!usecounter<enumi>>
+!def!newblock<!par>
+!sloppy
+!sfcode`!.=1000!relax>>%
+<!def!thebibliography#1<!chapter*<Bibliography!markboth
+<BIBLIOGRAPHY><BIBLIOGRAPHY>>!list
+<!lbrack<>!arabic<enumi>!rbrack<>><!settowidth!labelwidth<!lbrack<>#1!rbrack<>>
+!leftmargin!labelwidth
+!advance!leftmargin!labelsep
+!advance!leftmargin!bibindent
+!itemindent -!bibindent
+!listparindent !itemindent
+!parsep !z@
+!usecounter<enumi>>
+!def!newblock<!par>
+!sloppy
+!sfcode`!.=1000!relax>>
diff --git a/language/swedish/slatex/macros/proc.sst b/language/swedish/slatex/macros/proc.sst
new file mode 100644
index 0000000000..b293612aa4
--- /dev/null
+++ b/language/swedish/slatex/macros/proc.sst
@@ -0,0 +1,48 @@
+!typeout<Document Style Option 'proc' -- Released 24 September 1985>
+
+!oddsidemargin -10pt
+!evensidemargin -10pt
+!topmargin -47pt
+!headheight 12pt
+!headsep 25pt
+!footheight 12pt
+!footskip 75pt
+!textheight 9in
+!textwidth 6.75in
+!columnsep .375in
+!columnseprule 0pt
+
+!def!@oddhead<>!def!@evenhead<>
+!def!@oddfoot<!rm!rightmark !hfil Page !thepage>
+!def!@evenfoot<!@oddfoot>
+
+!def!maketitle<!par
+!begingroup
+!def!thefootnote<!fnsymbol<footnote>>
+!def!@makefnmark<!hbox
+to 0pt<$^<!@thefnmark>$!hss>>
+!twocolumn(!@maketitle)
+!@thanks
+!endgroup
+!setcounter<footnote><0>
+!let!maketitle!relax
+!let!@maketitle!relax
+!gdef!@thanks<>!gdef!@author<>!gdef!@title<>!let!thanks!relax>
+!def!@maketitle<!vbox to 2.25in<!hsize!textwidth
+!linewidth!hsize !vfil !centering
+<!LARGE !@title !par>
+!vskip 2em
+<!large !begin<tabular>(t)<c>!@author !end<tabular>!par>
+!vfil>>
+!def!copyrightspace<!footnotetext(0)<!mbox<>!vrule height 97pt width 0pt>>
+!def!abstract<!section*<Abstract>>
+!def!endabstract<!par>
+
+!twocolumn
+!sloppy
+!parindent 1em
+!leftmargini 2em
+!leftmargin!leftmargini
+!leftmarginv .5em
+!leftmarginvi .5em
+!flushbottom
diff --git a/language/swedish/slatex/macros/rep10.sst b/language/swedish/slatex/macros/rep10.sst
new file mode 100644
index 0000000000..6772f4abb5
--- /dev/null
+++ b/language/swedish/slatex/macros/rep10.sst
@@ -0,0 +1,201 @@
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!def!@normalsize<!@setsize!normalsize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt>
+!def!small<!@setsize!small<11pt>!ixpt!@ixpt
+!abovedisplayskip 8.5pt plus 3pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus2pt%
+!belowdisplayshortskip 4pt plus2pt minus 2pt
+!def!@listi<!topsep 4pt plus 2pt minus 2pt!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>>
+!def!footnotesize<!@setsize!footnotesize<9.5pt>!viiipt!@viiipt
+!abovedisplayskip 6pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 3pt plus 1pt minus 2pt
+!def!@listi<!topsep 3pt plus 1pt minus 1pt!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>>
+!def!scriptsize<!@setsize!scriptsize<8pt>!viipt!@viipt>
+!def!tiny<!@setsize!tiny<6pt>!vpt!@vpt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!normalsize
+
+!if@twoside
+!oddsidemargin 44pt
+!evensidemargin 82pt
+!marginparwidth 107pt
+!else
+!oddsidemargin 63pt
+!evensidemargin 63pt
+!marginparwidth 90pt
+!fi
+!marginparsep 11pt
+!topmargin 27pt
+!headheight 12pt
+!headsep 25pt
+!footheight 12pt
+!footskip 30pt
+!textheight 528pt
+!textwidth 345pt
+!columnsep 10pt
+!columnseprule 0pt
+!footnotesep 6.65pt
+!skip!footins 9pt plus 4pt minus 2pt
+!floatsep 12pt plus 2pt minus 2pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 12pt plus 2pt minus 2pt
+!@maxsep 20pt
+!dblfloatsep 12pt plus 2pt minus 2pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 8pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 8pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+!marginparpush 5pt
+
+!parskip 0pt plus 1pt
+!parindent 15pt
+!topsep 8pt plus 2pt minus 4pt
+!partopsep 2pt plus 1pt minus 1pt
+!itemsep 4pt plus 2pt minus 1pt
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!def!part<!cleardoublepage
+!thispagestyle<plain>
+!if@twocolumn
+!onecolumn
+!@tempswatrue
+!else !@tempswafalse
+!fi
+!hbox<>!vfil
+!bgroup !centering
+!secdef!@part!@spart>
+!def!@part(#1)#2<!ifnum !c@secnumdepth !>-2!relax
+!refstepcounter<part>
+!addcontentsline<toc><part><!thepart
+!hspace<1em>#1>!else
+!addcontentsline<toc><part><#1>!fi
+!markboth<><>
+!ifnum !c@secnumdepth !>-2!relax
+!huge!bf Part !thepart
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!@endpart>
+!def!@endpart<!par!egroup
+!vfil!newpage
+!if@twoside
+!hbox<>
+!thispagestyle<empty>
+!newpage
+!fi
+!if@tempswa
+!twocolumn
+!fi>
+!def!@spart#1<!Huge !bf
+#1!@endpart>
+!def!@makechapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!ifnum !c@secnumdepth !>!m@ne
+!huge!bf !@chapapp<> !thechapter
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!@makeschapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!chapter<!clearpage
+!thispagestyle<plain>
+!global!@topnum!z@
+!@afterindentfalse
+!secdef!@chapter!@schapter>
+!def!@chapter(#1)#2<!ifnum !c@secnumdepth !>!m@ne
+!refstepcounter<chapter>
+!typeout<!@chapapp!space!thechapter.>
+!addcontentsline<toc><chapter><!protect
+!numberline<!thechapter>#1>!else
+!addcontentsline<toc><chapter><#1>!fi
+!chaptermark<#1>
+!addtocontents<lof><!protect!addvspace<10pt>>
+!addtocontents<lot><!protect!addvspace<10pt>>
+!if@twocolumn
+!@topnewpage(!@makechapterhead<#2>)
+!else !@makechapterhead<#2>
+!@afterheading
+!fi>
+!def!@schapter#1<!if@twocolumn !@topnewpage(!@makeschapterhead<#1>)
+!else !@makeschapterhead<#1>
+!@afterheading!fi>
+!def!section<!@startsection <section><1><!z@><-3.5ex plus -1ex minus
+-.2ex><2.3ex plus .2ex><!Large!bf>>
+!def!subsection<!@startsection<subsection><2><!z@><-3.25ex plus -1ex minus
+-.2ex><1.5ex plus .2ex><!large!bf>>
+!def!subsubsection<!@startsection<subsubsection><3><!z@><-3.25ex plus
+-1ex minus -.2ex><1.5ex plus .2ex><!normalsize!bf>>
+!def!paragraph<!@startsection
+<paragraph><4><!z@><3.25ex plus 1ex minus .2ex><-1em><!normalsize!bf>>
+!def!subparagraph<!@startsection
+<subparagraph><4><!parindent><3.25ex plus 1ex minus
+.2ex><-1em><!normalsize!bf>>
+!def!chaptermark#1<>
+!setcounter<secnumdepth><2>
+!def!appendix<!par
+!setcounter<chapter><0>
+!setcounter<section><0>
+!def!@chapapp<Appendix>
+!def!thechapter<!Alph<chapter>>>
+
+!leftmargini 25pt
+!leftmarginii 22pt
+!leftmarginiii 18.7pt
+!leftmarginiv 17pt
+!leftmarginv 10pt
+!leftmarginvi 10pt
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep 5pt
+!parsep 4pt plus 2pt minus 1pt
+!def!@listi<!leftmargin!leftmargini>
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep
+!topsep 4pt plus 2pt minus 1pt
+!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep 2pt plus 1pt minus 1pt
+!parsep !z@ !partopsep 1pt plus 0pt minus 1pt
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
diff --git a/language/swedish/slatex/macros/rep11.sst b/language/swedish/slatex/macros/rep11.sst
new file mode 100644
index 0000000000..707884fe87
--- /dev/null
+++ b/language/swedish/slatex/macros/rep11.sst
@@ -0,0 +1,201 @@
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!def!@normalsize<!@setsize!normalsize<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt
+!def!@listi<!topsep 6pt plus 2pt minus 2pt!parsep 3pt plus 2pt minus 1pt
+!itemsep !parsep>>
+!def!footnotesize<!@setsize!footnotesize<11pt>!ixpt!@ixpt
+!abovedisplayskip 8pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 4pt plus 2pt minus 2pt
+!def!@listi<!topsep 4pt plus 2pt minus 2pt!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!normalsize
+
+!if@twoside
+!oddsidemargin 36pt
+!evensidemargin 74pt
+!marginparwidth 100pt
+!else
+!oddsidemargin 54pt
+!evensidemargin 54pt
+!marginparwidth 83pt
+!fi
+!marginparsep 10pt
+!topmargin 27pt
+!headheight 12pt
+!headsep 25pt
+!footheight 12pt
+!footskip 30pt
+!textheight 530.4pt
+!textwidth 360pt
+!columnsep 10pt
+!columnseprule 0pt
+!footnotesep 7.7pt
+!skip!footins 10pt plus 4pt minus 2pt
+!floatsep 12pt plus 2pt minus 2pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 12pt plus 2pt minus 2pt
+!@maxsep 20pt
+!dblfloatsep 12pt plus 2pt minus 2pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 8pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 8pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+!marginparpush 5pt
+
+!parskip 0pt plus 1pt
+!parindent 17pt
+!topsep 9pt plus 3pt minus 5pt
+!partopsep 3pt plus 1pt minus 2pt
+!itemsep 4.5pt plus 2pt minus 1pt
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!def!part<!cleardoublepage
+!thispagestyle<plain>
+!if@twocolumn
+!onecolumn
+!@tempswatrue
+!else !@tempswafalse
+!fi
+!hbox<>!vfil
+!bgroup !centering
+!secdef!@part!@spart>
+!def!@part(#1)#2<!ifnum !c@secnumdepth !>-2!relax
+!refstepcounter<part>
+!addcontentsline<toc><part><!thepart
+!hspace<1em>#1>!else
+!addcontentsline<toc><part><#1>!fi
+!markboth<><>
+!ifnum !c@secnumdepth !>-2!relax
+!huge!bf Part !thepart
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!@endpart>
+!def!@endpart<!par!egroup
+!vfil!newpage
+!if@twoside
+!hbox<>
+!thispagestyle<empty>
+!newpage
+!fi
+!if@tempswa
+!twocolumn
+!fi>
+!def!@spart#1<!Huge !bf
+#1!@endpart>
+!def!@makechapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!ifnum !c@secnumdepth !>!m@ne
+!huge!bf !@chapapp<> !thechapter
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!@makeschapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!chapter<!clearpage
+!thispagestyle<plain>
+!global!@topnum!z@
+!@afterindentfalse
+!secdef!@chapter!@schapter>
+!def!@chapter(#1)#2<!ifnum !c@secnumdepth !>!m@ne
+!refstepcounter<chapter>
+!typeout<!@chapapp!space!thechapter.>
+!addcontentsline<toc><chapter><!protect
+!numberline<!thechapter>#1>!else
+!addcontentsline<toc><chapter><#1>!fi
+!chaptermark<#1>
+!addtocontents<lof><!protect!addvspace<10pt>>
+!addtocontents<lot><!protect!addvspace<10pt>>
+!if@twocolumn
+!@topnewpage(!@makechapterhead<#2>)
+!else !@makechapterhead<#2>
+!@afterheading
+!fi>
+!def!@schapter#1<!if@twocolumn !@topnewpage(!@makeschapterhead<#1>)
+!else !@makeschapterhead<#1>
+!@afterheading!fi>
+!def!section<!@startsection <section><1><!z@><-3.5ex plus -1ex minus
+-.2ex><2.3ex plus .2ex><!Large!bf>>
+!def!subsection<!@startsection<subsection><2><!z@><-3.25ex plus -1ex minus
+-.2ex><1.5ex plus .2ex><!large!bf>>
+!def!subsubsection<!@startsection<subsubsection><3><!z@><-3.25ex plus
+-1ex minus -.2ex><1.5ex plus .2ex><!normalsize!bf>>
+!def!paragraph<!@startsection
+<paragraph><4><!z@><3.25ex plus 1ex minus .2ex><-1em><!normalsize!bf>>
+!def!subparagraph<!@startsection
+<subparagraph><4><!parindent><3.25ex plus 1ex minus
+.2ex><-1em><!normalsize!bf>>
+!def!chaptermark#1<>
+!setcounter<secnumdepth><2>
+!def!appendix<!par
+!setcounter<chapter><0>
+!setcounter<section><0>
+!def!@chapapp<Appendix>
+!def!thechapter<!Alph<chapter>>>
+
+!leftmargini 2.5em
+!leftmarginii 2.2em
+!leftmarginiii 1.87em
+!leftmarginiv 1.7em
+!leftmarginv 1em
+!leftmarginvi 1em
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep .5em
+!parsep 4.5pt plus 2pt minus 1pt
+!def!@listi<!leftmargin!leftmargini>
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep
+!topsep 4.5pt plus 2pt minus 1pt
+!parsep 2pt plus 1pt minus 1pt
+!itemsep !parsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep 2pt plus 1pt minus 1pt
+!parsep !z@ !partopsep 1pt plus 0pt minus 1pt
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
diff --git a/language/swedish/slatex/macros/rep12.sst b/language/swedish/slatex/macros/rep12.sst
new file mode 100644
index 0000000000..3f030ab6c3
--- /dev/null
+++ b/language/swedish/slatex/macros/rep12.sst
@@ -0,0 +1,202 @@
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!def!@normalsize<!@setsize!normalsize<14.5pt>!xiipt!@xiipt
+!abovedisplayskip 12pt plus3pt minus7pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt
+!def!@listi<!parsep 4.5pt plus 2pt minus 1pt
+!itemsep !parsep
+!topsep 9pt plus 3pt minus 5pt>>
+!def!footnotesize<!@setsize!footnotesize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt
+!def!@listi<!topsep 6pt plus 2pt minus 2pt!parsep 3pt plus 2pt minus 1pt
+!itemsep !parsep>>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<18pt>!xivpt!@xivpt>
+!def!Large<!@setsize!Large<22pt>!xviipt!@xviipt>
+!def!LARGE<!@setsize!LARGE<25pt>!xxpt!@xxpt>
+!def!huge<!@setsize!huge<30pt>!xxvpt!@xxvpt>
+!let!Huge=!huge
+!normalsize
+
+!if@twoside
+!oddsidemargin 21pt
+!evensidemargin 59pt
+!marginparwidth 85pt
+!else
+!oddsidemargin 39.5pt
+!evensidemargin 39.5pt
+!marginparwidth 68pt
+!fi
+!marginparsep 10pt
+!topmargin 27pt
+!headheight 12pt
+!headsep 25pt
+!footheight 12pt
+!footskip 30pt
+!textheight 536.5pt
+!textwidth 390pt
+!columnsep 10pt
+!columnseprule 0pt
+!footnotesep 8.4pt
+!skip!footins 10.8pt plus 4pt minus 2pt
+!floatsep 14pt plus 2pt minus 4pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 14pt plus 4pt minus 4pt
+!@maxsep 20pt
+!dblfloatsep 14pt plus 2pt minus 4pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 10pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 10pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+!marginparpush 7pt
+
+!parskip 0pt plus 1pt
+!parindent 1.5em
+!topsep 10pt plus 4pt minus 6pt
+!partopsep 3pt plus 2pt minus 2pt
+!itemsep 5pt plus 2.5pt minus 1pt
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!def!part<!cleardoublepage
+!thispagestyle<plain>
+!if@twocolumn
+!onecolumn
+!@tempswatrue
+!else !@tempswafalse
+!fi
+!hbox<>!vfil
+!bgroup !centering
+!secdef!@part!@spart>
+!def!@part(#1)#2<!ifnum !c@secnumdepth !>-2!relax
+!refstepcounter<part>
+!addcontentsline<toc><part><!thepart
+!hspace<1em>#1>!else
+!addcontentsline<toc><part><#1>!fi
+!markboth<><>
+!ifnum !c@secnumdepth !>-2!relax
+!huge!bf Part !thepart
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!@endpart>
+!def!@endpart<!par!egroup
+!vfil!newpage
+!if@twoside
+!hbox<>
+!thispagestyle<empty>
+!newpage
+!fi
+!if@tempswa
+!twocolumn
+!fi>
+!def!@spart#1<!Huge !bf
+#1!@endpart>
+!def!@makechapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!ifnum !c@secnumdepth !>!m@ne
+!huge!bf !@chapapp<> !thechapter
+!par
+!vskip 20pt !fi
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!@makeschapterhead#1<
+!vspace*<50pt>
+< !parindent 0pt !raggedright
+!Huge !bf
+#1!par
+!nobreak
+!vskip 40pt
+> >
+!def!chapter<!clearpage
+!thispagestyle<plain>
+!global!@topnum!z@
+!@afterindentfalse
+!secdef!@chapter!@schapter>
+!def!@chapter(#1)#2<!ifnum !c@secnumdepth !>!m@ne
+!refstepcounter<chapter>
+!typeout<!@chapapp!space!thechapter.>
+!addcontentsline<toc><chapter><!protect
+!numberline<!thechapter>#1>!else
+!addcontentsline<toc><chapter><#1>!fi
+!chaptermark<#1>
+!addtocontents<lof><!protect!addvspace<10pt>>
+!addtocontents<lot><!protect!addvspace<10pt>>
+!if@twocolumn
+!@topnewpage(!@makechapterhead<#2>)
+!else !@makechapterhead<#2>
+!@afterheading
+!fi>
+!def!@schapter#1<!if@twocolumn !@topnewpage(!@makeschapterhead<#1>)
+!else !@makeschapterhead<#1>
+!@afterheading!fi>
+!def!section<!@startsection <section><1><!z@><-3.5ex plus -1ex minus
+-.2ex><2.3ex plus .2ex><!Large!bf>>
+!def!subsection<!@startsection<subsection><2><!z@><-3.25ex plus -1ex minus
+-.2ex><1.5ex plus .2ex><!large!bf>>
+!def!subsubsection<!@startsection<subsubsection><3><!z@><-3.25ex plus
+-1ex minus -.2ex><1.5ex plus .2ex><!normalsize!bf>>
+!def!paragraph<!@startsection
+<paragraph><4><!z@><3.25ex plus 1ex minus .2ex><-1em><!normalsize!bf>>
+!def!subparagraph<!@startsection
+<subparagraph><4><!parindent><3.25ex plus 1ex minus
+.2ex><-1em><!normalsize!bf>>
+!def!chaptermark#1<>
+!setcounter<secnumdepth><2>
+!def!appendix<!par
+!setcounter<chapter><0>
+!setcounter<section><0>
+!def!@chapapp<Appendix>
+!def!thechapter<!Alph<chapter>>>
+
+!leftmargini 2.5em
+!leftmarginii 2.2em
+!leftmarginiii 1.87em
+!leftmarginiv 1.7em
+!leftmarginv 1em
+!leftmarginvi 1em
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep .5em
+!parsep 5pt plus 2.5pt minus 1pt
+!def!@listi<!leftmargin!leftmargini>
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep
+!topsep 5pt plus 2.5pt minus 1pt
+!parsep 2.5pt plus 1pt minus 1pt
+!itemsep !parsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep 2.5pt plus 1pt minus 1pt
+!parsep !z@ !partopsep 1pt plus 0pt minus 1pt
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
diff --git a/language/swedish/slatex/macros/report.sst b/language/swedish/slatex/macros/report.sst
new file mode 100644
index 0000000000..be06cb4f6c
--- /dev/null
+++ b/language/swedish/slatex/macros/report.sst
@@ -0,0 +1,217 @@
+!typeout<Document Style `report'. Released 17 December 1985>
+!def!@ptsize<0>
+!@namedef<ds@11pt><!def!@ptsize<1>>
+!@namedef<ds@12pt><!def!@ptsize<2>>
+!def!ds@twoside<!@twosidetrue
+!@mparswitchtrue>
+!def!ds@draft<!overfullrule 5pt>
+!@options
+!input rep1!@ptsize.sst!relax
+
+!def!labelenumi<!arabic<enumi>.>
+!def!theenumi<!arabic<enumi>>
+!def!labelenumii<(!alph<enumii>)>
+!def!theenumii<!alph<enumii>>
+!def!p@enumii<!theenumi>
+!def!labelenumiii<!roman<enumiii>.>
+!def!theenumiii<!roman<enumiii>>
+!def!p@enumiii<!theenumi(!theenumii)>
+!def!labelenumiv<!Alph<enumiv>.>
+!def!theenumiv<!Alph<enumiv>>
+!def!p@enumiv<!p@enumiii!theenumiii>
+!def!labelitemi<$!bullet$>
+!def!labelitemii<!bf -->
+!def!labelitemiii<$!ast$>
+!def!labelitemiv<$!cdot$>
+!def!verse<!let!!=!@centercr
+!list<><!itemsep!z@ !itemindent -1.5em!listparindent !itemindent
+!rightmargin!leftmargin!advance!leftmargin 1.5em>!item()>
+!let!endverse!endlist
+!def!quotation<!list<><!listparindent 1.5em
+!itemindent!listparindent
+!rightmargin!leftmargin!parsep 0pt plus 1pt>!item()>
+!let!endquotation=!endlist
+!def!quote<!list<><!rightmargin!leftmargin>!item()>
+!let!endquote=!endlist
+!def!descriptionlabel#1<!hspace!labelsep !bf #1>
+!def!description<!list<><!labelwidth!z@ !itemindent-!leftmargin
+!let!makelabel!descriptionlabel>>
+!let!enddescription!endlist
+!newdimen!descriptionmargin
+!descriptionmargin=3em
+
+!def!titlepage<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!else !newpage !fi !thispagestyle<empty>!c@page!z@>
+!def!endtitlepage<!if@restonecol!twocolumn !else !newpage !fi>
+!arraycolsep 5pt
+!tabcolsep 6pt
+!arrayrulewidth .4pt
+!doublerulesep 2pt
+!tabbingsep !labelsep
+!skip!@mpfootins = !skip!footins
+!fboxsep = 3pt
+!fboxrule = .4pt
+
+!newcounter<part>
+!newcounter <chapter>
+!newcounter <section>(chapter)
+!newcounter <subsection>(section)
+!newcounter <subsubsection>(subsection)
+!newcounter <paragraph>(subsubsection)
+!newcounter <subparagraph>(paragraph)
+!def!thepart <!Roman<part>>
+!def!thechapter <!arabic<chapter>>
+!def!thesection <!thechapter.!arabic<section>>
+!def!thesubsection <!thesection.!arabic<subsection>>
+!def!thesubsubsection <!thesubsection .!arabic<subsubsection>>
+!def!theparagraph <!thesubsubsection.!arabic<paragraph>>
+!def!thesubparagraph <!theparagraph.!arabic<subparagraph>>
+!def!@chapapp<Chapter>
+
+!def!@pnumwidth<1.55em>
+!def!@tocrmarg <2.55em>
+!def!@dotsep<4.5>
+!setcounter<tocdepth><2>
+!def!tableofcontents<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!fi!chapter*<Contents!@mkboth<CONTENTS><CONTENTS>>
+!@starttoc<toc>!if@restonecol!twocolumn!fi>
+!def!l@part#1#2<!addpenalty<-!@highpenalty>
+!addvspace<2.25em plus 1pt>
+!begingroup
+!@tempdima 3em
+!parindent !z@ !rightskip !@pnumwidth
+!parfillskip -!@pnumwidth
+<!large !bf
+!leavevmode
+#1!hfil !hbox to!@pnumwidth<!hss #2>>!par
+!nobreak
+!endgroup>
+!def!l@chapter#1#2<!pagebreak(3)
+!vskip 1.0em plus 1pt
+!@tempdima 1.5em
+!begingroup
+!parindent !z@ !rightskip !@pnumwidth
+!parfillskip -!@pnumwidth
+!bf
+!leavevmode
+#1!hfil !hbox to!@pnumwidth<!hss #2>!par
+!endgroup>
+!def!l@section<!@dottedtocline<1><1.5em><2.3em>>
+!def!l@subsection<!@dottedtocline<2><3.8em><3.2em>>
+!def!l@subsubsection<!@dottedtocline<3><7.0em><4.1em>>
+!def!l@paragraph<!@dottedtocline<4><10em><5em>>
+!def!l@subparagraph<!@dottedtocline<5><12em><6em>>
+!def!listoffigures<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!fi!chapter*<List of Figures!@mkboth
+<LIST OF FIGURES><LIST OF FIGURES>>!@starttoc<lof>!if@restonecol!twocolumn
+!fi>
+!def!l@figure<!@dottedtocline<1><1.5em><2.3em>>
+!def!listoftables<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!fi!chapter*<List of Tables!@mkboth
+<LIST OF TABLES><LIST OF TABLES>>!@starttoc<lot>!if@restonecol!twocolumn
+!fi>
+!let!l@table!l@figure
+
+!def!thebibliography#1<!chapter*<Bibliography!@mkboth
+<BIBLIOGRAPHY><BIBLIOGRAPHY>>!list
+<!lbrack<>!arabic<enumi>!rbrack<>><!settowidth!labelwidth<!lbrack<>#1!rbrack<>>!leftmargin!labelwidth
+!advance!leftmargin!labelsep
+!usecounter<enumi>>
+!def!newblock<!hskip .11em plus .33em minus -.07em>
+!sloppy
+!sfcode`!.=1000!relax>
+!let!endthebibliography=!endlist
+
+!newif!if@restonecol
+!def!theindex<!@restonecoltrue!if@twocolumn!@restonecolfalse!fi
+!columnseprule !z@
+!columnsep 35pt!twocolumn(!@makeschapterhead<Index>)
+!@mkboth<INDEX><INDEX>!thispagestyle<plain>!parindent!z@
+!parskip!z@ plus .3pt!relax!let!item!@idxitem>
+!def!@idxitem<!par!hangindent 40pt>
+!def!subitem<!par!hangindent 40pt !hspace*<20pt>>
+!def!subsubitem<!par!hangindent 40pt !hspace*<30pt>>
+!def!endtheindex<!if@restonecol!onecolumn!else!clearpage!fi>
+!def!indexspace<!par !vskip 10pt plus 5pt minus 3pt!relax>
+
+!def!footnoterule<!kern-3!p@
+!hrule width .4!columnwidth
+!kern 2.6!p@>
+!@addtoreset<footnote><chapter>
+!long!def!@makefntext#1<!parindent 1em!noindent
+!hbox to 1.8em<!hss$^<!@thefnmark>$>#1>
+
+!setcounter<topnumber><2>
+!def!topfraction<.7>
+!setcounter<bottomnumber><1>
+!def!bottomfraction<.3>
+!setcounter<totalnumber><3>
+!def!textfraction<.2>
+!def!floatpagefraction<.5>
+!setcounter<dbltopnumber><2>
+!def!dbltopfraction<.7>
+!def!dblfloatpagefraction<.5>
+!long!def!@makecaption#1#2<
+!vskip 10pt
+!setbox!@tempboxa!hbox<#1: #2>
+!ifdim !wd!@tempboxa !>!hsize
+!unhbox!@tempboxa!par
+!else
+!hbox to!hsize<!hfil!box!@tempboxa!hfil>
+!fi>
+!newcounter<figure>(chapter)
+!def!thefigure<!thechapter.!@arabic!c@figure>
+!def!fps@figure<tbp>
+!def!ftype@figure<1>
+!def!ext@figure<lof>
+!def!fnum@figure<Figure !thefigure>
+!def!figure<!@float<figure>>
+!let!endfigure!end@float
+!@namedef<figure*><!@dblfloat<figure>>
+!@namedef<endfigure*><!end@dblfloat>
+!newcounter<table>(chapter)
+!def!thetable<!thechapter.!@arabic!c@table>
+!def!fps@table<tbp>
+!def!ftype@table<2>
+!def!ext@table<lot>
+!def!fnum@table<Table !thetable>
+!def!table<!@float<table>>
+!let!endtable!end@float
+!@namedef<table*><!@dblfloat<table>>
+!@namedef<endtable*><!end@dblfloat>
+
+!input titlepage.sst
+
+!mark<<><>>
+!if@twoside
+!def!ps@headings<!let!@mkboth!markboth
+!def!@oddfoot<>!def!@evenfoot<>%
+!def!@evenhead<!rm !thepage!hfil !sl !leftmark>%
+!def!@oddhead<!hbox<>!sl !rightmark !hfil !rm!thepage>%
+!def!chaptermark##1<!markboth <!uppercase<!ifnum !c@secnumdepth !>!m@ne
+!@chapapp! !thechapter. ! !fi ##1>><>>%
+!def!sectionmark##1<!markright <!uppercase<!ifnum !c@secnumdepth !>!z@
+!thesection. ! !fi ##1>>>>
+!else
+!def!ps@headings<!let!@mkboth!markboth
+!def!@oddfoot<>!def!@evenfoot<>%
+!def!@oddhead<!hbox <>!sl !rightmark !hfil !rm!thepage>%
+!def!chaptermark##1<!markright <!uppercase<!ifnum !c@secnumdepth !>!m@ne
+!@chapapp! !thechapter. ! !fi ##1>>>>
+!fi
+!def!ps@myheadings<!let!@mkboth!@gobbletwo
+!def!@oddhead<!hbox<>!sl!rightmark !hfil !rm!thepage>%
+!def!@oddfoot<>!def!@evenhead<!rm !thepage!hfil!sl!leftmark!hbox <>>%
+!def!@evenfoot<>!def!sectionmark##1<>!def!subsectionmark##1<>>
+
+!def!today<!ifcase!month!or
+January!or February!or March!or April!or May!or June!or
+July!or August!or September!or October!or November!or December!fi
+!space!number!day, !number!year>
+!@addtoreset<equation><chapter>
+!def!theequation<!thechapter.!arabic<equation>>
+
+!ps@plain
+!pagenumbering<arabic>
+!onecolumn
+!if@twoside!else!raggedbottom!fi
diff --git a/language/swedish/slatex/macros/titlepage.sst b/language/swedish/slatex/macros/titlepage.sst
new file mode 100644
index 0000000000..580e2a897d
--- /dev/null
+++ b/language/swedish/slatex/macros/titlepage.sst
@@ -0,0 +1,30 @@
+!def!maketitle<!begin<titlepage>
+!let!footnotesize!small
+!let!footnoterule!relax
+!setcounter<page><0>
+!null
+!vfil
+!vskip 60pt
+!begin<center>
+<!LARGE !@title !par>
+!vskip 3em
+<!large
+!lineskip .75em
+!begin<tabular>(t)<c>!@author
+!end<tabular>!par>
+!vskip 1.5em
+<!large !@date !par>
+!end<center> !par
+!@thanks
+!vfil
+!null
+!end<titlepage>
+!setcounter<footnote><0>
+!let!thanks!relax
+!gdef!@thanks<>!gdef!@author<>!gdef!@title<>!let!maketitle!relax>
+!def!abstract<!titlepage
+!null!vfil
+!begin<center>
+<!bf Abstract>
+!end<center>>
+!def!endabstract<!par!vfil!null!endtitlepage>
diff --git a/language/swedish/slatex/macros/twocolumn.sst b/language/swedish/slatex/macros/twocolumn.sst
new file mode 100644
index 0000000000..6063e60699
--- /dev/null
+++ b/language/swedish/slatex/macros/twocolumn.sst
@@ -0,0 +1,12 @@
+!twocolumn
+!sloppy
+!flushbottom
+!parindent 1em
+!leftmargini 2em
+!leftmarginv .5em
+!leftmarginvi .5em
+!oddsidemargin 30pt
+!evensidemargin 30pt
+!marginparwidth 48pt
+!marginparsep 10pt
+!textwidth 410pt
diff --git a/language/swedish/slatex/paren.tex b/language/swedish/slatex/paren.tex
new file mode 100644
index 0000000000..3e8198d292
--- /dev/null
+++ b/language/swedish/slatex/paren.tex
@@ -0,0 +1,511 @@
+%
+% $Header: paren.tex,v 1.2 86/09/14 00:19:23 sven Exp $
+%
+% $Log: paren.tex,v $
+% Revision 1.2 86/09/14 00:19:23 sven
+% Initial revision, LaTeX 2.09
+%
+% Revision 1.1 86/01/15 22:36:08 sven
+% Initial revision, LaTeX 2.08
+%
+%
+% Change the optional argument delimiters, [], to (). This file assumes
+% that the escape character still is '\'
+
+\typeout{Change optional argument delimiters from '[]' to '()'.}
+
+% from latex.tex
+
+\def\typein{\let\@typein\relax\@ifnextchar({\@xtypein}{\@xtypein(\@typein)}}
+\def\@xtypein(#1)#2{\typeout{#2}\read0 to#1\ifx #1\@defpar \def#1{}\else
+ \@iden{\expandafter\@strip\expandafter
+ #1#1\@gobble\@gobble} \@gobble\fi\@typein}
+
+\def\newcommand#1{\@ifnextchar ({\@argdef#1}{\@argdef#1(0)}}
+
+\def\renewcommand#1{\edef\@tempa{\expandafter\@cdr\string
+ #1\@nil}\@ifundefined{\@tempa}{\@latexerr{\string#1\space undefined}\@ehc
+ }{}\@ifnextchar ({\@reargdef#1}{\@reargdef#1(0)}}
+
+\def\newenvironment#1{\@ifnextchar
+ ({\@newenv{#1}}{\@newenv{#1}(0)}}
+
+\long\def\@newenv#1(#2)#3{\expandafter\newcommand
+ \csname #1\endcsname(#2){#3}\expandafter\long
+ \expandafter\def\csname end#1\endcsname}
+
+\def\renewenvironment#1{\@ifnextchar
+ ({\@renewenv{#1}}{\@renewenv{#1}(0)}}
+
+\long\def\@renewenv#1(#2)#3{\expandafter\renewcommand
+ \csname #1\endcsname(#2){#3}\expandafter\long
+ \expandafter\def\csname end#1\endcsname}
+
+\long\def\@argdef#1(#2)#3{\@ifdefinable #1{\@reargdef#1(#2){#3}}}
+
+\long\def\@reargdef#1(#2)#3{\@tempcnta#2\relax\let#1\relax
+\edef\@tempa{\long\def#1}\@tempcntb \@ne
+\let\@tempb\relax\@whilenum\@tempcnta>0
+\do{\edef\@tempa{\@tempa\@tempb\the\@tempcntb}\advance\@tempcntb \@ne \advance
+\@tempcnta \m@ne}\let\@tempb##\@tempa{#3}}
+
+\long\def\@dblarg#1{\@ifnextchar({#1}{\@xdblarg{#1}}}
+\long\def\@xdblarg#1#2{#1({#2}){#2}}
+
+\def\nopagebreak{\@ifnextchar({\@nopgbk}{\@nopgbk(4)}}
+\def\@nopgbk(#1){\ifvmode \penalty \@getpen{#1}\else
+\@bsphack\vadjust{\penalty \@getpen{#1}}\@esphack\fi}
+
+\def\pagebreak{\@ifnextchar({\@pgbk}{\@pgbk(4)}}
+\def\@pgbk(#1){\ifvmode \penalty -\@getpen{#1}\else
+\@bsphack\vadjust{\penalty -\@getpen{#1}}\@esphack\fi}
+
+\def\nolinebreak{\@ifnextchar({\@nolnbk}{\@nolnbk(4)}}
+\def\@nolnbk(#1){\ifvmode \@nolnerr\else \@tempskipa\lastskip
+ \unskip \penalty \@getpen{#1}\ifdim \@tempskipa >\z@
+ \hskip\@tempskipa\ignorespaces\fi\fi}
+
+\def\linebreak{\@ifnextchar({\@lnbk}{\@lnbk(4)}}
+\def\@lnbk(#1){\ifvmode \@nolnerr\else
+ \unskip\penalty -\@getpen{#1}\fi}
+
+\def\@xnewline{\@ifnextchar({\@newline}{\newline}}
+
+\def\@newline(#1){\ifhmode\unskip\fi\vspace{#1}\newline}
+
+{\catcode`(=1 \catcode`)=2
+\catcode`{=11 \catcode`}=11
+\gdef\@charlb({)
+\gdef\@charrb(})
+)% }brace matching
+
+\def\newcounter#1{\expandafter\@ifdefinable \csname c@#1\endcsname
+ {\@definecounter{#1}}\@ifnextchar({\@newctr{#1}}{}}
+
+\def\@newctr#1(#2){\@ifundefined{c@#2}{\@nocnterr}{\@addtoreset{#1}{#2}}}
+
+%% \(, \), \[ and \] are replaced with @math, @endmath, @displaymath and
+%% @enddisplaymath respectively in the following 8 definitions.
+
+%\def\@math{\relax\ifmmode\@badmath\else$%%$BRACE MATCH HACK
+%\fi}
+
+%\def\@endmath{\relax\ifmmode\ifinner$\else\@badmath%%$ BRACE MATCH HACK
+%\fi\else \@badmath\fi}
+
+%\def\@displaymath{\relax\ifmmode\@badmath\else
+% \ifvmode \nointerlineskip \makebox(.6\linewidth)\fi$$%%$$ BRACE MATCH HACK
+%\fi}
+
+%\def\@enddisplaymath{\relax\ifmmode\ifinner\@badmath\else$$\fi%%$$ BRACE ...
+% \else \@badmath \fi\ignorespaces}
+
+%\let\math=\@math
+%\let\endmath=\@endmath
+%\def\displaymath{\@displaymath}
+%\def\enddisplaymath{\@enddisplaymath\global\@ignoretrue}
+
+\def\({\relax\ifmmode\@badmath\else$%%$BRACE MATCH HACK
+\fi}
+
+\def\){\relax\ifmmode\ifinner$\else\@badmath%%$ BRACE MATCH HACK
+\fi\else \@badmath\fi}
+
+\def\[{\relax\ifmmode\@badmath\else
+ \ifvmode \nointerlineskip \makebox(.6\linewidth)\fi$$%%$$ BRACE MATCH HACK
+\fi}
+
+\def\]{\relax\ifmmode\ifinner\@badmath\else$$\fi%%$$ BRACE ...
+ \else \@badmath \fi\ignorespaces}
+
+\let\math=\(
+\let\endmath=\)
+\def\displaymath{\[}
+\def\enddisplaymath{\]\global\@ignoretrue}
+
+\def\sqrt{\@ifnextchar({\@sqrt}{\@@sqrt}}
+\def\@sqrt(#1){\root #1\of}
+
+\def\@yeqncr{\@ifnextchar ({\@xeqncr}{\@xeqncr(\z@)}}
+
+\def\@xeqncr(#1){\ifnum0=`{\fi}\@@eqncr
+ \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}}
+
+\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
+ ({\@icentercr}{\ignorespaces}}
+
+\def\@icentercr(#1){\vskip #1\ignorespaces}
+
+\def\center{\trivlist \centering\item()}
+
+\def\flushleft{\trivlist \raggedright\item()}
+
+\def\flushright{\trivlist \raggedleft\item()}
+
+\begingroup \catcode `|=0 \catcode `(= 1
+\catcode`)=2 \catcode `\{=12 \catcode `\}=12
+\catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}(#1|end(verbatim))
+|gdef|@sxverbatim#1\end{verbatim*}(#1|end(verbatim*))
+|endgroup
+
+\def\@verbatim{\trivlist \item()\if@minipage\else\vskip\parskip\fi
+\leftskip\@totalleftmargin\rightskip\z@
+\parindent\z@\parfillskip\@flushglue\parskip\z@
+\@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par}
+\obeylines \tt \catcode``=13 \@noligs \let\do\@makeother \dospecials}
+
+\def\item{\@ifnextchar ({\@item}{\@noitemargtrue \@item(\@itemlabel)}}
+
+\def\@item(#1){\if@noparitem \@donoparitem
+ \else \if@inlabel \indent \par \fi
+ \ifhmode \unskip\unskip \par \fi
+ \if@newlist \if@nobreak \@nbitem \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep \addvspace{-\parskip}\fi
+ \else \addpenalty\@itempenalty \addvspace\itemsep
+ \fi
+ \global\@inlabeltrue
+\fi
+\everypar{\global\@minipagefalse\global\@newlistfalse
+ \if@inlabel\global\@inlabelfalse \hskip -\parindent \box\@labels
+ \penalty\z@ \fi
+ \everypar{}}\global\@nobreakfalse
+\if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi
+\setbox\@tempboxa\hbox{\makelabel{#1}}%
+\global\setbox\@labels
+ \hbox{\unhbox\@labels \hskip \itemindent
+ \hskip -\labelwidth \hskip -\labelsep
+ \ifdim \wd\@tempboxa >\labelwidth
+ \box\@tempboxa
+ \else \hbox to\labelwidth {\makelabel{#1}}\fi
+ \hskip \labelsep}\ignorespaces}
+
+\def\makebox{\@ifnextchar ({\@makepicbox}{\@ifnextchar
+ ({\@makebox}{\mbox}}}
+
+\def\@makebox(#1){\leavevmode\@ifnextchar ({\@imakebox(#1)}{\@imakebox(#1)(x)}}
+
+\long\def\@imakebox(#1)(#2)#3{\hbox to#1{\let\mb@l\hss
+\let\mb@r\hss \expandafter\let\csname mb@#2\endcsname\relax
+\mb@l #3\mb@r}}
+
+\def\@makepicbox(#1,#2){\leavevmode\@ifnextchar
+ ({\@imakepicbox(#1,#2)}{\@imakepicbox(#1,#2)()}}
+
+\long\def\@imakepicbox(#1,#2)(#3)#4{\vbox to#2\unitlength
+ {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
+ \let\mb@t\vss
+ \@tfor\@tempa :=#3\do{\expandafter\let
+ \csname mb@\@tempa\endcsname\relax}%
+\mb@t\hbox to #1\unitlength{\mb@l #4\mb@r}\mb@b}}
+
+\def\savebox#1{\@ifnextchar ({\@savepicbox#1}{\@ifnextchar
+ ({\@savebox#1}{\sbox#1}}}
+
+\def\@savebox#1(#2){\@ifnextchar ({\@isavebox#1(#2)}{\@isavebox#1(#2)(x)}}
+
+\long\def\@isavebox#1(#2)(#3)#4{\setbox#1 \hbox{\@imakebox(#2)(#3){#4}}}
+
+\def\@savepicbox#1(#2,#3){\@ifnextchar
+ ({\@isavepicbox#1(#2,#3)}{\@isavepicbox#1(#2,#3)()}}
+
+\long\def\@isavepicbox#1(#2,#3)(#4)#5{\setbox#1 \hbox{\@imakepicbox
+ (#2,#3)(#4){#5}}}
+
+\def\framebox{\@ifnextchar ({\@framepicbox}{\@ifnextchar
+ ({\@framebox}{\fbox}}}
+
+\def\@framebox(#1){\@ifnextchar ({\@iframebox(#1)}{\@iframebox(#1)(x)}}
+
+\long\def\@iframebox(#1)(#2)#3{\leavevmode
+ \savebox\@tempboxa(#1)(#2){\kern\fboxsep #3\kern\fboxsep}\@tempdima\fboxrule
+ \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa
+ \hbox{\lower \@tempdima\hbox
+ {\vbox{\hrule \@height \fboxrule
+ \hbox{\vrule \@width \fboxrule \hskip-\fboxrule
+ \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\hskip
+ -\fboxrule\vrule \@width \fboxrule}
+ \hrule \@height \fboxrule}}}}
+
+\def\@framepicbox(#1,#2){\@ifnextchar
+ ({\@iframepicbox(#1,#2)}{\@iframepicbox(#1,#2)()}}
+
+\long\def\@iframepicbox(#1,#2)(#3)#4{\frame{\@imakepicbox(#1,#2)(#3){#4}}}
+
+\def\parbox{\@ifnextchar ({\@iparbox}{\@iparbox(c)}}
+
+\long\def\@iparbox(#1)#2#3{\leavevmode \@pboxswfalse
+ \if #1b\vbox
+ \else \if #1t\vtop
+ \else \ifmmode \vcenter
+ \else \@pboxswtrue $\vcenter
+ \fi
+ \fi
+ \fi{\hsize #2\@parboxrestore #3}\if@pboxsw $\fi}
+
+\def\minipage{\@ifnextchar ({\@iminipage}{\@iminipage(c)}}
+
+\def\@iminipage(#1)#2{\leavevmode \@pboxswfalse
+ \if #1b\vbox
+ \else \if #1t\vtop
+ \else \ifmmode \vcenter
+ \else \@pboxswtrue $\vcenter
+ \fi
+ \fi
+ \fi\bgroup
+ \hsize #2\textwidth\hsize \columnwidth\hsize
+ \@parboxrestore
+ \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
+ \let\@footnotetext\@mpfootnotetext
+ \let\@listdepth\@mplistdepth \@mplistdepth\z@
+ \@minipagerestore\@minipagetrue
+ \everypar{\global\@minipagefalse\everypar{}}}
+
+
+\def\rule{\@ifnextchar({\@rule}{\@rule(\z@)}}
+
+\def\@rule(#1)#2#3{\@tempdima#3\advance\@tempdima #1\leavevmode\hbox{\vrule
+ \@width#2 \@height\@tempdima \@depth-#1}}
+
+\def\raisebox#1{\@ifnextchar({\@argrsbox{#1}}{\@rsbox{#1}}}
+
+\def\@argrsbox#1(#2){%
+\@ifnextchar({\@iirsbox{#1}(#2)}{\@irsbox{#1}(#2)}}
+
+\long\def\@irsbox#1(#2)#3{\setbox\@tempboxa \hbox
+ {\raise #1\hbox{#3}}\ht\@tempboxa#2\leavevmode\box\@tempboxa}
+
+\long\def\@iirsbox#1(#2)(#3)#4{\setbox\@tempboxa \hbox
+ {\raise #1\hbox{#4}}\ht\@tempboxa#2\dp\@tempboxa#3\leavevmode\box\@tempboxa}
+
+\def\@xtabcr{\@ifnextchar({\@itabcr}{\@startline\ignorespaces}}
+
+\def\@itabcr(#1){\vskip #1\@startline\ignorespaces}
+
+\def\tabbing{\lineskip \z@\let\>\@rtab\let\<\@ltab\let\=\@settab
+ \let\+\@tabplus\let\-\@tabminus\let\`\@tabrj\let\'\@tablab
+ \let\\=\@tabcr
+ \global\@hightab\@firsttab
+ \global\@nxttabmar\@firsttab
+ \dimen\@firsttab\@totalleftmargin
+ \global\@tabpush0 \global\@rjfieldfalse
+ \trivlist \item()\if@minipage\else\vskip\parskip\fi
+ \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin
+ \the\everypar}}\def\@itemfudge{\box\@tabfbox}\@startline\ignorespaces}
+
+\def\@tabarray{\@ifnextchar({\@array}{\@array(c)}}
+
+\def\@array(#1)#2{\setbox\@arstrutbox=\hbox{\vrule
+ height\arraystretch \ht\strutbox
+ depth\arraystretch \dp\strutbox
+ width\z@}\@mkpream{#2}\edef\@preamble{\halign \noexpand\@halignto
+\bgroup \tabskip\z@ \@arstrut \@preamble \tabskip\z@ \cr}%
+\let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
+ \bgroup \let\par\relax
+ \let\@sharp##\let\protect\relax \lineskip\z@\baselineskip\z@\@preamble}
+
+\def\@xarraycr{\@ifnextchar({\@argarraycr}{\ifnum0=`{\fi}${}\cr}}
+
+\def\@argarraycr(#1){\ifnum0=`{\fi}${}\ifdim #1>\z@ \@xargarraycr{#1}\else
+ \@yargarraycr{#1}\fi}
+
+\def\@xtabularcr{\@ifnextchar({\@argtabularcr}{\ifnum0=`{\fi}\cr}}
+
+\def\@argtabularcr(#1){\ifnum0=`{\fi}\ifdim #1>\z@
+ \unskip\@xargarraycr{#1}\else \@yargarraycr{#1}\fi}
+
+\def\cline#1{\@cline(#1)}
+\def\@cline(#1-#2){\noalign{\global\@cla#1\relax
+\global\advance\@cla\m@ne
+\ifnum\@cla>0\global\let\@gtempa\@clinea\else
+ \global\let\@gtempa\@clineb\fi
+\global\@clb#2\relax
+\global\advance\@clb-\@cla}\@gtempa
+\noalign{\vskip-\arrayrulewidth}}
+
+\def\shortstack{\@ifnextchar({\@shortstack}{\@shortstack(c)}}
+
+\def\@shortstack(#1){\leavevmode
+\vbox\bgroup\baselineskip-1pt\lineskip 3pt\let\mb@l\hss
+\let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax
+\let\\\@stackcr\@ishortstack}
+
+\def\@ixstackcr{\@ifnextchar({\@istackcr}{\cr\ignorespaces}}
+
+\def\@istackcr(#1){\cr\noalign{\vskip #1}\ignorespaces}
+
+\def\oval(#1,#2){\@ifnextchar({\@oval(#1,#2)}{\@oval(#1,#2)()}}
+
+\def\@oval(#1,#2)(#3){\begingroup\boxmaxdepth \maxdimen
+ \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
+ \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx
+ #1\unitlength \@ovyy #2\unitlength
+ \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
+ \@getcirc \@tempdimb
+ \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
+ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
+ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
+ \@circlefnt \setbox\@tempboxa
+ \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
+ \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
+ \if@ovt \@ovhorz \kern -\@ovxx \fi
+ \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
+ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
+ \endgroup}
+
+\def\newtheorem#1{\@ifnextchar({\@othm{#1}}{\@nthm{#1}}}
+
+\def\@nthm#1#2{%
+\@ifnextchar({\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}}
+
+\def\@xnthm#1#2(#3){\expandafter\@ifdefinable\csname #1\endcsname
+{\@definecounter{#1}\@addtoreset{#1}{#3}%
+\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
+ \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}%
+\global\@namedef{#1}{\@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}}
+
+\def\@othm#1(#2)#3{\expandafter\@ifdefinable\csname #1\endcsname
+ {\global\@namedef{the#1}{\@nameuse{the#2}}%
+\global\@namedef{#1}{\@thm{#2}{#3}}%
+\global\@namedef{end#1}{\@endtheorem}}}
+
+\def\@thm#1#2{\refstepcounter
+ {#1}\@ifnextchar({\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
+
+\def\@ythm#1#2(#3){\@opargbegintheorem{#2}{\csname
+ the#1\endcsname}{#3}\ignorespaces}
+
+\def\@begintheorem#1#2{\it \trivlist \item(\hskip \labelsep{\bf #1\ #2})}
+\def\@opargbegintheorem#1#2#3{\it \trivlist
+ \item(\hskip \labelsep{\bf #1\ #2\ (#3)})}
+
+\def\thanks#1{\footnotemark\begingroup
+\def\protect{\noexpand\protect\noexpand}\xdef\@thanks{\@thanks
+ \protect\footnotetext(\the\c@footnote){#1}}\endgroup}
+
+\def\and{%% % \begin{tabular}
+\end{tabular}\hskip 1em plus .17fil\begin{tabular}(t){c}%% \end{tabular}
+}
+
+% @sect is redefined in write.tex
+
+%\def\@sect#1#2#3#4#5#6(#7)#8{\ifnum #2>\c@secnumdepth
+% \def\@svsec{}\else
+% \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname\hskip 1em }\fi
+% \@tempskipa #5\relax
+% \ifdim \@tempskipa>\z@
+% \begingroup #6\relax
+% \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}
+% \endgroup
+% \csname #1mark\endcsname{#7}\addcontentsline
+% {toc}{#1}{\ifnum #2>\c@secnumdepth \else
+% \protect\numberline{\csname the#1\endcsname}\fi
+% #7}\else
+% \def\@svsechd{#6\hskip #3\@svsec #8\csname #1mark\endcsname
+% {#7}\addcontentsline
+% {toc}{#1}{\ifnum #2>\c@secnumdepth \else
+% \protect\numberline{\csname the#1\endcsname}\fi
+% #7}}\fi
+% \@xsect{#5}}
+
+\def\bibitem{\@ifnextchar({\@lbibitem}{\@bibitem}}
+
+\def\@lbibitem(#1)#2{\item(\@biblabel{#1})\if@filesw
+ { \def\protect##1{\string ##1\space}\immediate
+ \write\@auxout{\string\bibcite{#2}{#1}}\fi\ignorespaces}}
+
+\def\cite{\@ifnextchar ({\@tempswatrue\@citex}{\@tempswafalse\@citex()}}
+
+\def\@citex(#1)#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
+ \def\@citea{}\@cite{\@for\@citeb:=#2\do
+ {\@citea\def\@citea{,}\@ifundefined
+ {b@\@citeb}{{\bf ?}\@warning
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+\hbox{\csname b@\@citeb\endcsname}}}{#1}}
+
+\def\@cite#1#2{\lbrack{#1\if@tempswa , #2\fi}\rbrack}
+\def\@biblabel#1{\lbrack#1\rbrack\hfill}
+
+% @caption is redefined in write.tex
+
+%\long\def\@caption#1(#2)#3{\addcontentsline{\csname
+% ext@#1\endcsname}{#1}{\protect\numberline{\csname
+% the#1\endcsname}{\ignorespaces #2}}\par
+% \begingroup
+% \@parboxrestore
+% \normalsize
+% \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+% \endgroup}
+
+\def\@float#1{\@ifnextchar({\@xfloat{#1}}{\edef\@tempa{\noexpand\@xfloat
+ {#1}(\csname fps@#1\endcsname)}\@tempa}}
+
+\def\@xfloat#1(#2){\ifhmode \@bsphack\@floatpenalty -\@Mii\else
+ \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
+ \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
+ \@tfor \@tempa :=#2\do
+ {\if\@tempa h\advance\@tempcnta \@ne\fi
+ \if\@tempa t\advance\@tempcnta \tw@\fi
+ \if\@tempa b\advance\@tempcnta 4\relax\fi
+ \if\@tempa p\advance\@tempcnta 8\relax\fi
+ }\global\count\@currbox\@tempcnta}\@fltovf\fi
+ \global\setbox\@currbox\vbox\bgroup
+ \boxmaxdepth\z@
+ \hsize\columnwidth \@parboxrestore}
+
+\def\@dbflt#1{\@ifnextchar({\@xdblfloat{#1}}{\@xdblfloat{#1}(tp)}}
+
+\def\@xdblfloat#1(#2){\@xfloat{#1}(#2)\hsize\textwidth\linewidth\textwidth}
+
+\def\marginpar{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
+ \@floatpenalty-\@Miii\fi\ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else\@next\@currbox\@freelist{}{}\@next\@marbox\@freelist{\global
+ \count\@marbox\m@ne}{\@floatpenalty\z@ \@fltovf\def\@currbox{\@tempboxa
+ }\def\@marbox{\@tempboxa}}\fi
+ \@ifnextchar ({\@xmpar}{\@ympar}}
+
+\long\def\@xmpar(#1)#2{\@savemarbox\@marbox{#1}\@savemarbox\@currbox
+ {#2}\@xympar}
+
+\def\footnote{\@ifnextchar({\@xfootnote}{\stepcounter
+ {\@mpfn}\xdef\@thefnmark{\thempfn}\@footnotemark\@footnotetext}}
+
+\def\@xfootnote(#1){\begingroup \csname c@\@mpfn\endcsname #1\relax
+ \xdef\@thefnmark{\thempfn}\endgroup
+ \@footnotemark\@footnotetext}
+
+\def\footnotemark{\@ifnextchar({\@xfootnotemark
+ }{\stepcounter{footnote}\xdef\@thefnmark{\thefootnote}\@footnotemark}}
+
+\def\@xfootnotemark(#1){\begingroup \c@footnote #1\relax
+ \xdef\@thefnmark{\thefootnote}\endgroup \@footnotemark}
+
+\def\footnotetext{\@ifnextchar
+ ({\@xfootnotenext}{\xdef\@thefnmark{\thempfn}\@footnotetext}}
+
+\def\@xfootnotenext(#1){\begingroup \csname c@\@mpfn\endcsname #1\relax
+ \xdef\@thefnmark{\thempfn}\endgroup \@footnotetext}
+
+\def\documentstyle{\@ifnextchar({\@documentstyle}{\@documentstyle()}}
+
+\def\@documentstyle(#1)#2{\makeatletter
+ \def\@optionlist{#1}\gdef\@optionfiles{}\input #2.sty\relax
+ \let\@elt\input \@optionfiles \let\@elt\relax \makeatother}
+
+\def\twocolumn{\clearpage \global\columnwidth\textwidth
+ \global\advance\columnwidth -\columnsep \global\divide\columnwidth\tw@
+ \global\hsize\columnwidth \global\linewidth\columnwidth
+ \global\@twocolumntrue \global\@firstcolumntrue
+ \@dblfloatplacement\@ifnextchar({\@topnewpage}{}}
+
+\long\def\@topnewpage(#1){\@next\@currbox\@freelist{}{}
+ \global\setbox\@currbox\vbox{\hsize\textwidth \@parboxrestore
+ #1\par\vskip -\dbltextfloatsep}\global\count\@currbox\tw@
+ \global\@dbltopnum\@ne \global\@dbltoproom\maxdimen\@addtodblcol
+ \global\vsize\@colht \global\@colroom\@colht}
+
diff --git a/language/swedish/slatex/readme b/language/swedish/slatex/readme
new file mode 100644
index 0000000000..04e6e1801d
--- /dev/null
+++ b/language/swedish/slatex/readme
@@ -0,0 +1,96 @@
+SLaTeX notes 871228
+
+Sven Mattisson Department of Applied Electronics
+ University of Lund
+ Box 118
+ S-221 00 Lund
+ Sweden
+
+ sven@tde.lu.se
+
+Files in this directory are:
+
+README: This file.
+
+slatex.1: On line SLaTeX manual.
+
+bang.tex:
+bar.tex:
+dquote.tex:
+paren.tex:
+slatex.tex:
+sst.tex:
+swedish.tex:
+write.tex: Macro files needed to make SLaTeX out of LaTeX.
+
+ex-article.tex:
+ex-brev.tex:
+ex-memo.tex: Sample SLaTeX documents in Swedish.
+
+ssample.tex:
+ssmall.tex: Some other SLaTeX samples. This time in English,
+ translated by means of l2sl from the standard
+ sample.tex and small.tex files respectively.
+
+macros: Directory with .sst files for standard style files.
+ These files are the SLaTeX versions of the LaTeX .sty
+ files. The .sty files has to be changed since they
+ are read into SLaTeX and hence use the new control
+ characters. The changes are straight forward but
+ watch out for '<' and '>' where you have to prepend
+ '!' if you have to convert other .sty files.
+
+tde-macros: This directory contains some style files (.doc, .sty
+ and .sst files) developed at Lund.
+
+tde-local.tex: Our version of the Local Guide. Gives some hints
+ regarding the use of the local style files.
+
+l2sl: Directory containing sources to a program that
+ automatically translates a LaTeX file into SLaTeX.
+ Some LaTeX to SLaTeX translations can be difficult to
+ make fool proof, thus l2sl does not to try to hard
+ with difficult commands, but instead makes a guess at
+ the intended meaning and issues a warning. The LaTeX
+ manual has been translated into SLaTeX lingo this way,
+ so it is not very difficult. This program is very
+ useful for maintaining .sty and .sst files from the
+ same .doc file.
+
+doc2sty: Source directory for the .doc file to .sty file
+ compression program.
+
+slbibtex.sh: A shell script that automatically, sort of, extracts
+ bibtex info from SLaTeX .aux files and puts that into
+ a LaTeX .aux file. Runs bibtex on that, and tries to
+ translate the resulting .blg file back to SLaTeX form.
+ This utility needs the l2sl program.
+
+All the files and programs in this directory may be freely distributed
+on a non-profit basis and provided the origin of the files is
+mentioned.
+
+Most of the files in this directory are the change-files needed to
+generate the Swedish LaTeX, SLaTeX for short. Nothing is changed in
+any of the regular files used to create LaTeX.
+
+To generate SLaTeX you need the initex, virtex and undump programs and
+the latex.tex, lfonts.tex and hyphen.tex TeX files from the TeX
+distribution tape.
+
+The procedure to generate SLaTeX is (assuming you are using the Unix
+distribution and that all files and programs are in this directory):
+
+ % initex
+ ** lplain \input slatex !dump
+
+ % virtex
+ ** &lplain !read 0 to !blort
+ !blort=^\
+
+ % undump slatex virtex core
+
+If you modify your lplain.tex to include slatex.tex (at the very end)
+the installation procedure will be the same as for LaTeX, i.e. no
+\input slatex is needed when running initex.
+
diff --git a/language/swedish/slatex/sample.tex b/language/swedish/slatex/sample.tex
new file mode 100644
index 0000000000..6877d069b9
--- /dev/null
+++ b/language/swedish/slatex/sample.tex
@@ -0,0 +1,179 @@
+% This is a sample LaTeX input file. (Version of 28 May 1985)
+%
+% A '%' character causes TeX to ignore all remaining text on the line,
+% and is used for comments like this one.
+
+\documentstyle{article} % Specifies the document style.
+
+ % The preamble begins here.
+\title{A Sample Document} % Declares the document's title.
+\author{Leslie Lamport} % Declares the author's name.
+\date{December 12, 1984} % Deleting this command produces today's date.
+
+\begin{document} % End of preamble and beginning of text.
+
+\maketitle % Produces the title.
+
+This is a sample input file. Comparing it with the output it
+generates can show you how to produce a simple document of
+your own.
+
+\section{Ordinary Text} % Produces section heading. Lower-level
+ % sections are begun with similar
+ % \subsection and \subsubsection commands.
+
+The ends of words and sentences are marked
+ by spaces. It doesn't matter how many
+spaces you type; one is as good as 100. The
+end of a line counts as a space.
+
+One or more blank lines denote the end
+of a paragraph.
+
+Since any number of consecutive spaces are treated like a single
+one, the formatting of the input file makes no difference to
+ \TeX, % The \TeX command generates the TeX logo.
+but it makes a difference to you.
+When you use
+ \LaTeX, % The \LaTeX command generates the LaTeX logo.
+making your input file as easy to read as possible
+will be a great help as you write your document and when you
+change it. This sample file shows how you can add comments to
+your own input file.
+
+Because printing is different from typewriting, there are a
+number of things that you have to do differently when preparing
+an input file than if you were just typing the document directly.
+Quotation marks like
+ ``this''
+have to be handled specially, as do quotes within quotes:
+ ``\,`this' % \, separates the double and single quote.
+ is what I just
+ wrote, not `that'\,''.
+
+Dashes come in three sizes: an
+ intra-word
+dash, a medium dash for number ranges like
+ 1--2,
+and a punctuation
+ dash---like
+this.
+
+A sentence-ending space should be larger than the space between words
+within a sentence. You sometimes have to type special commands in
+conjunction with punctuation characters to get this right, as in the
+following sentence.
+ Gnats, gnus, etc.\ % `\ ' makes an inter-word space.
+ all begin with G\@. % \@ marks end-of-sentence punctuation.
+You should check the spaces after periods when reading your output to
+make sure you haven't forgotten any special cases.
+Generating an ellipsis
+ \ldots\ % `\ ' needed because TeX ignores spaces after
+ % command names like \ldots made from \ + letters.
+ %
+ % Note how a `%' character causes TeX to ignore the
+ % end of the input line, so these blank lines do not
+ % start a new paragraph.
+with the right spacing around the periods
+requires a special command.
+
+\TeX\ interprets some common characters as commands, so you must type
+special commands to generate them. These characters include the
+following:
+ \$ \& \% \# \{ and \}.
+
+In printing, text is emphasized by using an
+ {\em italic\/} % The \/ command produces the tiny extra space that
+ % should be added between a slanted and a following
+ % unslanted letter.
+type style.
+
+\begin{em}
+ A long segment of text can also be emphasized in this way. Text within
+ such a segment given additional emphasis
+ with\/ {\em Roman}
+ type. Italic type loses its ability to emphasize and become simply
+ distracting when used excessively.
+\end{em}
+
+It is sometimes necessary to prevent \TeX\ from breaking a line where
+it might otherwise do so. This may be at a space, as between the
+``Mr.'' and ``Jones'' in
+ ``Mr.~Jones'', % ~ produces an unbreakable interword space.
+or within a word---especially when the word is a symbol like
+ \mbox{\em itemnum\/}
+that makes little sense when hyphenated across
+ lines.
+
+Footnotes\footnote{This is an example of a footnote.}
+pose no problem.
+
+\TeX\ is good at typesetting mathematical formulas like
+ \( x-3y = 7 \)
+or
+ \( a_{1} > x^{2n} / y^{2n} > x' \).
+Remember that a letter like
+ $x$ % $ ... $ and \( ... \) are equivalent
+is a formula when it denotes a mathematical symbol, and should
+be treated as one.
+
+\section{Displayed Text}
+
+Text is displayed by indenting it from the left margin.
+Quotations are commonly displayed. There are short quotations
+\begin{quote}
+ This is a short a quotation. It consists of a
+ single paragraph of text. There is no paragraph
+ indentation.
+\end{quote}
+and longer ones.
+\begin{quotation}
+ This is a longer quotation. It consists of two paragraphs
+ of text. The beginning of each paragraph is indicated
+ by an extra indentation.
+
+ This is the second paragarph of the quotation. It is just
+ as dull as the first paragraph.
+\end{quotation}
+Another frequently-displayed structure is a list.
+The following is an example of an {\em itemized} list.
+\begin{itemize}
+ \item This is the first item of an itemized list. Each item
+ in the list is marked with a ``tick''. The document
+ style determines what kind of tick mark is used.
+
+ \item This is the second item of the list. It contains another
+ list nested inside it. The inner list is an {\em enumerated}
+ list.
+ \begin{enumerate}
+ \item This is the first item of an enumerated list that
+ is nested within the itemized list.
+
+ \item This is the second item of the inner list. \LaTeX\
+ allows you to nest lists deeper than you really should.
+ \end{enumerate}
+ This is the rest of the second item of the outer list. It
+ is no more interesting than any other part of the item.
+ \item This is the third item of the list.
+\end{itemize}
+You can even display poetry.
+\begin{verse}
+ There is an environment for verse \\ % The \\ command separates lines
+ Whose features some poets will curse. % within a stanza.
+
+ % One or more blank lines separate stanzas.
+
+ For instead of making\\
+ Them do {\em all\/} line breaking, \\
+ It allows them to put too many words on a line when they'd
+ rather be forced to be terse.
+\end{verse}
+
+Mathematical formulas may also be displayed. A displayed formula is
+one-line long; multiline formulas require special formatting
+instructions.
+ \[ x' + y^{2} = z_{i}^{2}\]
+Don't start a paragraph with a displayed equation, nor make
+one a paragraph by itself.
+
+\end{document} % End of document.
diff --git a/language/swedish/slatex/slatex.1 b/language/swedish/slatex/slatex.1
new file mode 100644
index 0000000000..78994000e0
--- /dev/null
+++ b/language/swedish/slatex/slatex.1
@@ -0,0 +1,92 @@
+.TH SLATEX l
+.SH NAME
+slatex \- Swedish speaking version of latex
+.SH SYNOPSIS
+.B slatex
+[name]
+.SH DESCRIPTION
+.IR SLaTeX
+is a modified version of
+.IR LaTeX
+for writing Swedish text.
+.IR SLaTeX
+does, however, not restrict itself to Swedish text. Any character set
+supported by
+.IR LaTeX
+can be used, but
+.IR SLaTeX
+makes it more convenient to write in a language where the ASCII
+national characters have other meanings than in the US-ASCII set.
+.LP
+To write Swedish text with
+.IR SLaTeX
+you type the characters as they
+appear on the terminal keyboard (on US-ASCII keyboards you will find
+the national characters at the "]", "[" and "\e" keys). To accomplish
+this some of the
+.IR LaTeX
+special characters have to be substituted for others to avoid using
+the national symbols.
+.LP
+Thus, in
+.IR SLaTeX,
+the following character mappings relative to
+.IR LaTeX
+are done:
+.IP 1.
+The TeX escape and grouping characters, "\e", "{" and "}" are
+substituted for "!", "<" and ">" respectively.
+.IP 2.
+The
+.IR LaTeX
+optional argument delimiters, "[" and "]", are substituted for "(" and
+")".
+.IP 3.
+In
+.IR LaTeX
+picture points (coordinates) are written "(x,y)" but in
+.IR SLaTeX
+they should be substituted for '"x,y"' (note the double quotes), since
+the parenthesis are already taken as option delimiters.
+.IP 4.
+The vertical rule symbol for the array and tabular environments is
+changed from "|" to ":".
+.IP 5.
+The suffix for the document style option files, ".sty", has been
+substituted for ".sst".
+.IP 6.
+The special commands "\e[", "\e]", "\e(", "\e) and "\e\e" have the
+same meaning as in
+.IR LaTeX
+but are typed as "![", "!]", "!(", "!)" and "!!" respectively. To
+produce the characters "[", "]", "\e", "{", "}", "|" ">", "<" and "!"
+(not the national variants but the US-ASCII ones) type "!lbrack",
+"!rbrack", "!backslash", "!lbrace", "!rbrace", "!vert", "!gt", "!lt"
+and "!bang" respectively. The negative thin-space command, "\e!", is
+issued by typing "!nspace".
+.SH "SEE ALSO"
+.IR tex (l),
+.IR texprint (l),
+.IR dvi2ps (l),
+.IR lpr (1),
+the
+.IR gmacs (l)
+latex-mode, Donald E. Knuth, "The TeXbook" and
+Leslie Lamport, "The LaTeX Document Preparation System".
+.SH BUGS
+Well, one can format the
+.IR LaTeX
+manual so no obvious ones as yet... However, in strings the national
+characters are substituted for the ``\eaccent'' command making it
+easier to exhaust the string length used in
+.IR TeX .
+For example captions with lots of national characters may use up all
+string space.
+
+Be careful when using "!bang" to end a sentence as white space
+following a macro call is discarded. To preserve space after an
+exclamation mark use "!bang<>". Here the extra angle braces will
+terminate the macro name and preserve the meaning of the following
+white space.
+.SH CULPRIT
+sven@agaton.se
diff --git a/language/swedish/slatex/slatex.tex b/language/swedish/slatex/slatex.tex
new file mode 100644
index 0000000000..17c78d2ebe
--- /dev/null
+++ b/language/swedish/slatex/slatex.tex
@@ -0,0 +1,74 @@
+% Copyright: Sven Mattisson
+% 851203 Department of Applied Electronics
+% Lund University
+% Box 118
+% S-221 00 Lund sven@tde.lu.se
+% Sweden ...!enea!tde.lu.se!sven
+%
+% $Header: slatex.tex,v 1.3 86/11/04 21:05:01 sven Exp $
+%
+% $Log: slatex.tex,v $
+% Revision 1.3 86/11/04 21:05:01 sven
+% Fixed !input<file> bug, by letting \bgroup and \egroup to the new
+% group characters. /Sven 861104
+%
+% Revision 1.2 86/09/14 00:19:45 sven
+% Initial revision, LaTeX 2.09
+%
+% Revision 1.1 86/01/15 22:36:18 sven
+% Initial revision, LaTeX 2.08
+%
+%
+% slatex.tex. Change LaTeX such that national characters '}', '{', '|',
+% ']', '[' and '\' have no special meaning and install the Swedish
+% symbols for these characters.
+
+\everyjob{\typeout{SLaTeX 1.0, December 18 1987, LTH Applied Electronics}}
+\immediate\write10{SLaTeX 1.0, December 18 1987, LTH Applied Electronics}
+
+% To accomplish this the TeX special characters '\', '{' and '}' are
+% replaced with '!', '<' and'>' respectively. Furthermore the LaTeX
+% optional grouping characters '[' and ']' are substituted for '(' and ')'.
+
+% LaTeX makes special use of '(' and ')' in coordinates so the coordinate
+% delimiters are changed to '"' such that what used to be (x,y) is now "x,y".
+% Also '|' in array environments is substituted for ':'. The .sty files
+% for the modified LaTeX uses the suffix .sst.
+
+% lplain.tex and latex.tex are left untouched except for the very last lines
+% in lplain where this file is included. The macros needing attention are
+% copied to the appropriate file, see below, where the substitutions are
+% carried out. Several files focusing on one substitution are used to
+% make it easy to change the choise of replacement character. However some
+% of the changes migrates to the following files (especially the parens).
+
+\makeatletter % temporarily make at signs behave as letters
+
+\input paren.tex
+
+% parens must now replace brackets (to print brackets us \lbrack etc.)
+% in all files below.
+
+\input dquote.tex
+
+\input sst.tex
+
+\input bar.tex
+
+\input bang.tex
+
+\input swedish.tex
+
+% Now '!', '<' and '>' has to be used instead of '\', '{' and '}'.
+
+!input write.tex
+
+% The following macro sets up the verbatim environment
+
+!begingroup !catcode `|=0 !catcode `(= 1
+!catcode`)=2 !catcode `!<=12 !catcode `!>=12
+!catcode`!!=12 |gdef|@xverbatim#1!end<verbatim>(#1|end(verbatim))
+|gdef|@sxverbatim#1!end<verbatim*>(#1|end(verbatim*))
+|endgroup
+
+!makeatother % at signs are no longer letters
diff --git a/language/swedish/slatex/slbibtex.sh b/language/swedish/slatex/slbibtex.sh
new file mode 100644
index 0000000000..bc0b185fca
--- /dev/null
+++ b/language/swedish/slatex/slbibtex.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+case $# in
+1) case $1 in
+ *.aux) IN=$1 ;;
+ *) IN=$1.aux ;;
+ esac ;;
+*) echo "Usage: $0 file[.aux]"; exit 1;;
+esac
+ROOT=`basename $IN .aux`
+TMP=/tmp/slbibtex.$$
+ALL=
+HERE=$IN
+
+while true # Find ALL included .aux-files
+do # Maybe this should preserve .aux-file order?
+ ALL="$ALL $HERE"
+ HERE=`sed -n '/@input/s/^.*@input.\(.*\.aux\).*$/\1/p' $HERE`
+
+ if test X = X$HERE
+ then # No more .aux-files
+ break
+ fi
+done
+
+trap 'rm -f $TMP.*; exit 1' 1 2 15
+
+# Sort and remove duplicate .aux-files.
+HERE=`for i in $ALL
+do # sort needs a newline thus use a for-loop instead of plain echo
+ echo $i
+done | sort -u`
+
+# Extract bibtex info and convert (if needed) to LaTeX style
+sed -n -e 's/[\!\\]citation[<{]\(.*\)[>}]/\\citation{\1}/p' \
+ -e 's/[\!\\]bibstyle[<{]\(.*\)[>}]/\\bibstyle{\1}/p' \
+ -e 's/[\!\\]bibdata[<{]\(.*\)[>}]/\\bibdata{\1}/p' $HERE > $TMP.aux
+
+# Run bibtex on translated bibliography information
+bibtex $TMP
+
+# Convert to SLaTeX style
+l2sl < $TMP.bbl > $ROOT.bbl
+sed -e 's!'$TMP'!'$ROOT'!g' \
+ -e 's/\\/!/g' \
+ -e 's/{/</g' \
+ -e 's/}/>/g' $TMP.blg > $ROOT.blg
+
+rm -f $TMP.*
+
diff --git a/language/swedish/slatex/spell/deslatex.l b/language/swedish/slatex/spell/deslatex.l
new file mode 100644
index 0000000000..cbb85f1a77
--- /dev/null
+++ b/language/swedish/slatex/spell/deslatex.l
@@ -0,0 +1,60 @@
+/* Make this with: lex delatex.lex; cc lex.yy.c -ll -o delatex */
+L [A-Za-z\}\{\|\]\[\\]
+%Start Display Math Normal Tag
+%%
+<Normal>\' {yyleng--; yymore(); /* ignore apostrophes */}
+<Normal>{L}+!- {yyleng-=2; yymore(); /* ignore hyphens */}
+<Normal>[a-z]/[^A-Za-z] ; /* ignore single letter "words" */
+<Normal>[A-Z]+ ; /* ignore words all in uppercase */
+<Normal>{L}+('{L}*)*{L} {printf("%s\n",yytext); /* any other letter seq is a word */}
+<Normal>"%".* ; /* ignore comments */
+<Normal>!{L}+ ; /* ignore other control sequences */
+<Normal>"!begin<" BEGIN Tag; /* ignore this and up to next ">" */
+<Normal>"!bibitem<" BEGIN Tag;
+<Normal>"!bibliography<" BEGIN Tag;
+<Normal>"!bibstyle<" BEGIN Tag;
+<Normal>"!cite<" BEGIN Tag;
+<Normal>!documentstyle[\<\(] BEGIN Tag;
+<Normal>"!end<" BEGIN Tag;
+<Normal>"!include<" BEGIN Tag;
+<Normal>"!includeonly<" BEGIN Tag;
+<Normal>"!input<" BEGIN Tag;
+<Normal>"!label<" BEGIN Tag;
+<Normal>"!pageref<" BEGIN Tag;
+<Normal>"!ref<" BEGIN Tag;
+<Tag>[^>] ; /* ignore things up to next ">" */
+<Tag>">" BEGIN Normal;
+<Normal>[0-9]+ ; /* ignore numbers */
+<Normal>"!(" BEGIN Math; /* begin latex math mode */
+<Math>"!)" BEGIN Normal; /* end latex math mode */
+<Math>.|![^)]|\n ; /* ignore anything else in latex math mode */
+<Normal,Display>\$([^$]|!\$)+\$ ; /* ignore things in math mode */
+<Normal>"![" BEGIN Display; /* now in Latex display mode */
+<Normal>"$$" BEGIN Display; /* now in Display math mode */
+<Display>[^$]|![^\]] ; /* ignore most things in display math mode */
+<Display>"!]" BEGIN Normal; /* get out of Display math mode */
+<Display>"$$" BEGIN Normal; /* get out of Display math mode */
+<Normal>!. ; /* ignore other single character control sequences */
+<Normal>!\n ; /* more of the same */
+<Normal>\n|. ; /* ignore anything else, a character at a time */
+%%
+main(argc,argv)
+ char **argv;
+{
+ int i;
+
+ BEGIN Normal; /* Starts yylex off in the right state */
+ if (argc==1) {
+ yyin = stdin;
+ yylex();
+ }
+ else for (i=1; i<argc; i++) {
+ yyin = fopen(argv[i],"r");
+ if (yyin==NULL) {
+ fprintf(stderr,"can't open %s\n",argv[i]);
+ exit(1);
+ }
+ yylex();
+ }
+ exit(0);
+}
diff --git a/language/swedish/slatex/spell/destex.l b/language/swedish/slatex/spell/destex.l
new file mode 100644
index 0000000000..687926fd27
--- /dev/null
+++ b/language/swedish/slatex/spell/destex.l
@@ -0,0 +1,40 @@
+/* Make this with: lex detex.lex; cc lex.yy.c -ll -o detex */
+L [A-Za-z}{|\]\[\\]
+%Start Display Normal
+%%
+<Normal>\' {yyleng--; yymore(); /* ignore apostrophes */}
+<Normal>{L}+!- {yyleng-=2; yymore(); /* ignore hyphens */}
+<Normal>[a-z]/[^A-Za-z] ; /* ignore single letter "words" */
+<Normal>[A-Z]+ ; /* ignore words all in uppercase */
+<Normal>{L}+('{L}*)*{L} {printf("%s\n",yytext); /* any other letter seq is a word */}
+<Normal>!. ; /* ignore single character control sequences */
+<Normal>!\n ; /* more of the same */
+<Normal>"%".* ; /* ignore comments */
+<Normal>!{L}+ ; /* ignore other control sequences */
+<Normal>[0-9]+ ; /* ignore numbers */
+<Normal,Display>\$([^$]|!\$)+\$ ; /* ignore things in math mode */
+<Normal>\$\$ BEGIN Display; /* now in Display math mode */
+<Display>[^$]|!\$|!! ; /* ignore most things in display math mode */
+<Display>\$\$ BEGIN Normal; /* get out of Display math mode */
+<Normal>\n|. ; /* ignore anything else, a character at a time */
+%%
+main(argc,argv)
+ char **argv;
+{
+ int i;
+
+ BEGIN Normal; /* Starts yylex off in the right state */
+ if (argc==1) {
+ yyin = stdin;
+ yylex();
+ }
+ else for (i=1; i<argc; i++) {
+ yyin = fopen(argv[i],"r");
+ if (yyin==NULL) {
+ fprintf(stderr,"can't open %s\n",argv[i]);
+ exit(1);
+ }
+ yylex();
+ }
+ exit(0);
+}
diff --git a/language/swedish/slatex/spell/funiq.c b/language/swedish/slatex/spell/funiq.c
new file mode 100644
index 0000000000..c367cb3d44
--- /dev/null
+++ b/language/swedish/slatex/spell/funiq.c
@@ -0,0 +1,250 @@
+/* funiq.c
+ *
+ * Written by Bill Vaughn,
+ * CVS, Univ. of Rochester, Rochester, NY
+ * {seismo,allegra,decvax}!rochester!ur-cvsvax!bill
+ *
+ * This program reads one line from the standard input, searches for
+ * the line in an evolving binary tree sorted alphabetically.
+ * If the line is NOT found, it is inserted in the tree and put on
+ * the standard output. No action is taken if the line IS found.
+ *
+ * The program is intended to work with one-word-per-line input,
+ * but doesn't enforce that rule. The input to 'funiq' should be
+ * random, NOT sorted. Sorted input gives worst case running time.
+ * The program dynamically allocates all of its array space and uses
+ * a binary tree storage method which, according to theory, has an
+ * average search time proportional to log(N), where N is the number
+ * of nodes in the tree at the time the search is performed.
+ *
+ * Principal uses:
+ * 1) 'Funiq' can replace the 'sort -u' in the pipeline in /usr/bin/spell.
+ * 'Funiq' will not block the pipe and it will run faster than sort.
+ * The input to /usr/lib/spell doesn't have to be sorted anyway; the
+ * final sort in the pipe does that. The reason for the 'sort -u' at
+ * that point in the pipeline is to limit the calls to the hashing
+ * function in /usr/lib/spell. 'Funiq' accomplishes this task much
+ * more efficiently.
+ *
+ * 2) Also, 'funiq' can replace the default mode of 'uniq' in cases where
+ * the output need not be sorted. The input should not be sorted
+ * (as opposed to 'uniq', where is must be sorted.)
+ *
+ * Possible improvements:
+ * Use a balancing method on the binary tree to improve
+ * performance. See Knuth, 'Searching and Sorting', pp. 451-463
+ * for an algorithm to balance binary trees during insertion.
+ * It will require an extra byte of data per node however.
+ * (Further analysis reveals that this might not be worth the effort.)
+ *
+ * Compilation:
+ * cc -O funiq.c -o funiq
+ * or cc -O -DSTATS funiq.c -o funiq (produces statistics)
+ */
+
+#include <stdio.h>
+
+/* The following defines the binary tree node structure
+ */
+
+struct btreenode {
+ char *str;
+ struct btreenode *left, *right;
+};
+
+struct btreenode *head; /* binary tree head*/
+struct btreenode *alloc, *hend; /* allocator pointers */
+char *cstore, *cend; /* character array begining and end */
+
+char *nextstr(), *allocstr();
+struct btreenode *nextnode(), *allocbtree();
+char *calloc(), *malloc(), *gets();
+
+/* Feel free to change the following allocation parameters as desired/needed.
+ * One can spend as much or as little time in 'malloc/calloc' as one wants.
+ */
+#define NODES 4096 /* Initial allocation for btree nodes */
+#define STR 8192 /* Initial allocation for strings */
+#define ADDNOD 1024 /* Additional allocation for btree nodes */
+#define ADDSTR 2048 /* Additional allocation for strings */
+
+#ifdef STATS
+int charsused = 0;
+char statfile[] = "/usr/dict/bstats";
+#endif
+
+main(argc,argv)
+char *argv[];
+{
+ register int n;
+ register char *q;
+ register struct btreenode *r;
+#ifdef STATS
+ register ncmps = 0;
+ register maxdepth = 0;
+ register nodesused = 0;
+ register depth;
+ register total = 0;
+ FILE *f;
+#endif
+
+ if (argc > 1) {
+ if (freopen(argv[1],"r",stdin) == NULL) {
+ fprintf(stderr,"funiq: %s not accessible\n",argv[1]);
+ exit(1);
+ }
+ }
+
+ /* Initialize the binary tree with first string of the input.
+ * Being a little more selective here might help
+ * balance the tree, but who knows? Random input is
+ * supposed to produce a reasonably balanced tree.
+ */
+
+ q = cstore = allocstr(STR); /* allocate string space */
+ cend = cstore + STR;
+ if (gets(q)==NULL) /* get first line */
+ exit(0);
+
+ alloc = head = allocbtree(NODES);/* allocate tree nodes */
+ hend = head + NODES; /* we're depending upon 'calloc' */
+ alloc->str = q; /* to set all the pointers to NULL */
+ puts(q); /* output the sucker */
+#ifdef STATS
+ total++;
+ nodesused++;
+#endif
+ q = nextstr(q); /* get new string pointer. */
+
+ /* Traverse tree with each input line, inserting and printing
+ * it if it's NOT found and discarding it if it is.
+ */
+ while(gets(q)!=NULL) {
+ r = head;
+#ifdef STATS
+ total++;
+ depth=0;
+ while ((ncmps++ , (n = strcmp(q,r->str))) != 0) {
+#else
+ while ((n = strcmp(q,r->str)) != 0) {
+#endif
+ if (n < 0) {
+ if (r->left != NULL) {
+ r = r->left;
+#ifdef STATS
+ depth++;
+#endif
+ continue; /* traversing left */
+ }
+ else {
+ /* Creating a left subtree */
+ r->left = nextnode();
+#ifdef STATS
+ nodesused++;
+#endif
+ puts( (r->left)->str = q );
+ q = nextstr(q);
+ break; /* get next line */
+ }
+ }
+ else {
+ if (r->right != NULL) {
+ r = r->right;
+#ifdef STATS
+ depth++;
+#endif
+ continue; /* traversing right */
+ }
+ else {
+ /* Creating a right subtree */
+ r->right = nextnode();
+#ifdef STATS
+ nodesused++;
+#endif
+ puts( (r->right)->str = q );
+ q = nextstr(q);
+ break; /* get next line */
+ }
+ }
+ }
+#ifdef STATS
+ if (++depth > maxdepth)
+ maxdepth = depth;
+ }
+ f = fopen(statfile,"a");
+ fprintf(f,"%d\t%d\t%d\t%d\t%d\n",
+ charsused,nodesused,total,ncmps,maxdepth);
+ fclose(f);
+#else
+ }
+#endif
+ exit(0); /* That was fairly simple wasn't it? */
+}
+
+/*
+ * Returns pointer to an array of 'n' btree nodes.
+ */
+struct btreenode *allocbtree(n)
+{
+ register struct btreenode *x;
+
+ x = (struct btreenode *)
+ calloc((unsigned)n,(unsigned)sizeof(struct btreenode));
+ if (x == NULL) {
+ fprintf(stderr,"funiq: not enough memory for tree nodes\n");
+ exit(1);
+ }
+ return(x);
+}
+
+/*
+ * Returns a pointer to the next available btree node.
+ * Gets more space if necessary.
+ */
+struct btreenode *nextnode()
+{
+ if (++alloc >= hend ) {
+ alloc = allocbtree(ADDNOD);
+ hend = alloc + ADDNOD;
+ }
+ return(alloc);
+}
+
+/*
+ * Returns pointer to 'n' bytes for character string storage.
+ */
+char *allocstr(n)
+{
+ register char *x;
+
+ x = malloc((unsigned)n);
+ if (x == NULL) {
+ fprintf(stderr,"funiq: not enough memory for strings\n");
+ exit(1);
+ }
+ return(x);
+}
+
+/*
+ * Returns a pointer to the next available string space.
+ * Gets more space if necessary.
+ */
+char *nextstr(s)
+register char *s;
+{
+ register char *x;
+ register int i;
+
+#ifdef STATS
+ charsused += (i = strlen(s) + 1);
+#else
+ i = strlen(s) + 1;
+#endif
+
+ if ((x = s + i) >= cend) {
+ x = allocstr(ADDSTR);
+ cend = x + ADDSTR;
+ }
+ return(x);
+}
+
diff --git a/language/swedish/slatex/spell/makefile b/language/swedish/slatex/spell/makefile
new file mode 100644
index 0000000000..0a31f6c5c8
--- /dev/null
+++ b/language/swedish/slatex/spell/makefile
@@ -0,0 +1,42 @@
+# Makefile for detex and others
+#
+# Sven 860110
+
+ALL= detex destex delatex deslatex funiq s-spell
+CFLAGS= -O
+DESTDIR= /usr/local/bin
+
+all: $(ALL)
+
+detex: detex.o
+ cc -o detex detex.o -ll
+
+destex: destex.o
+ cc -o destex destex.o -ll
+
+delatex: delatex.o
+ cc -o delatex delatex.o -ll
+
+deslatex: deslatex.o
+ cc -o deslatex deslatex.o -ll
+
+funiq: funiq.o
+ cc -o funiq funiq.o
+
+s-spell: s-spell.sh
+ cp s-spell.sh s-spell
+ chmod +x s-spell
+
+s-spell.sh: /usr/bin/spell
+ cp /usr/bin/spell s-spell.sh
+ patch s-spell.sh < spell.patch
+
+install: $(ALL)
+ for i in $(ALL); do \
+ install -s $$i $(DESTDIR)/$$i; done
+
+instman:; cp detex.1 /usr/man/manl/detex.l
+
+debug:
+ lex deslatex.l
+ mv lex.yy.c deslatex.c
diff --git a/language/swedish/slatex/spell/readme b/language/swedish/slatex/spell/readme
new file mode 100644
index 0000000000..534c2dd3be
--- /dev/null
+++ b/language/swedish/slatex/spell/readme
@@ -0,0 +1,9 @@
+destex.l and deslatex.l are derived from detex.l and delatex.l from
+the standard UNIX distribution (author Howard Trickey at Stanford
+University).
+
+Funiq.c is due to Bill Vaughn at University of Rochester. Funiq makes
+spell a bit faster.
+
+spell.patch is relative to /usr/bin/spell on a SUN 3 running SUN UNIX
+version 3.2, but most 4.2-derived spells will probably do.
diff --git a/language/swedish/slatex/spell/spell.patch b/language/swedish/slatex/spell/spell.patch
new file mode 100644
index 0000000000..0d80cb0239
--- /dev/null
+++ b/language/swedish/slatex/spell/spell.patch
@@ -0,0 +1,49 @@
+*** /usr/bin/spell Mon Sep 15 21:41:35 1986
+--- s-spell.sh Tue Dec 29 00:30:40 1987
+***************
+*** 5,10 ****
+--- 5,11 ----
+ : V data for -v, B flags, D dictionary, S stop, H history, F files, T temp
+ V=/dev/null B= F=
+ S=/usr/dict/hstop H=/dev/null T=/tmp/spell.$$
++ deform=deroff@-w
+ next="F=$F@"
+ trap "rm -f $T ${T}a ; exit" 0
+ for A in $*
+***************
+*** 18,23 ****
+--- 19,29 ----
+ -d) next="D=" ;;
+ -s) next="S=" ;;
+ -h) next="H=" ;;
++ -r) deform=deroff@-w ;;
++ -t) deform=detex ;;
++ -l) deform=delatex ;;
++ -st) deform=destex ;;
++ -sl) deform=deslatex ;;
+ -*) echo "Bad flag for spell: $A"
+ echo "Usage: spell [ -v ] [ -b ] [ -d hlist ] [ -s hstop ] [ -h spellhist ]"
+ exit ;;
+***************
+*** 27,36 ****
+ done
+ IFS=@
+ case $H in
+! /dev/null) deroff -w $F | sort -u | /usr/lib/spell $S $T |
+ /usr/lib/spell ${D-/usr/dict/hlista} $V $B |
+ sort -u +0f +0 - $T ;;
+! *) deroff -w $F | sort -u | /usr/lib/spell $S $T |
+ /usr/lib/spell ${D-/usr/dict/hlista} $V $B |
+ sort -u +0f +0 - $T | tee -a $H
+ who am i >> $H 2> /dev/null ;;
+--- 33,42 ----
+ done
+ IFS=@
+ case $H in
+! /dev/null) $deform $F | funiq | /usr/lib/spell $S $T |
+ /usr/lib/spell ${D-/usr/dict/hlista} $V $B |
+ sort -u +0f +0 - $T ;;
+! *) $deform $F | funiq | /usr/lib/spell $S $T |
+ /usr/lib/spell ${D-/usr/dict/hlista} $V $B |
+ sort -u +0f +0 - $T | tee -a $H
+ who am i >> $H 2> /dev/null ;;
diff --git a/language/swedish/slatex/ssample.tex b/language/swedish/slatex/ssample.tex
new file mode 100644
index 0000000000..e5ff2c0c3d
--- /dev/null
+++ b/language/swedish/slatex/ssample.tex
@@ -0,0 +1,179 @@
+% This is a sample LaTeX input file. (Version of 28 May 1985)
+%
+% A '%' character causes TeX to ignore all remaining text on the line,
+% and is used for comments like this one.
+
+!documentstyle<article> % Specifies the document style.
+
+ % The preamble begins here.
+!title<A Sample Document> % Declares the document's title.
+!author<Leslie Lamport> % Declares the author's name.
+!date<December 12, 1984> % Deleting this command produces today's date.
+
+!begin<document> % End of preamble and beginning of text.
+
+!maketitle % Produces the title.
+
+This is a sample input file. Comparing it with the output it
+generates can show you how to produce a simple document of
+your own.
+
+!section<Ordinary Text> % Produces section heading. Lower-level
+ % sections are begun with similar
+ % \subsection and \subsubsection commands.
+
+The ends of words and sentences are marked
+ by spaces. It doesn't matter how many
+spaces you type; one is as good as 100. The
+end of a line counts as a space.
+
+One or more blank lines denote the end
+of a paragraph.
+
+Since any number of consecutive spaces are treated like a single
+one, the formatting of the input file makes no difference to
+ !TeX, % The \TeX command generates the TeX logo.
+but it makes a difference to you.
+When you use
+ !LaTeX, % The \LaTeX command generates the LaTeX logo.
+making your input file as easy to read as possible
+will be a great help as you write your document and when you
+change it. This sample file shows how you can add comments to
+your own input file.
+
+Because printing is different from typewriting, there are a
+number of things that you have to do differently when preparing
+an input file than if you were just typing the document directly.
+Quotation marks like
+ ``this''
+have to be handled specially, as do quotes within quotes:
+ ``!,`this' % \, separates the double and single quote.
+ is what I just
+ wrote, not `that'!,''.
+
+Dashes come in three sizes: an
+ intra-word
+dash, a medium dash for number ranges like
+ 1--2,
+and a punctuation
+ dash---like
+this.
+
+A sentence-ending space should be larger than the space between words
+within a sentence. You sometimes have to type special commands in
+conjunction with punctuation characters to get this right, as in the
+following sentence.
+ Gnats, gnus, etc.! % `\ ' makes an inter-word space.
+ all begin with G!@. % \@ marks end-of-sentence punctuation.
+You should check the spaces after periods when reading your output to
+make sure you haven't forgotten any special cases.
+Generating an ellipsis
+ !ldots! % `\ ' needed because TeX ignores spaces after
+ % command names like \ldots made from \ + letters.
+ %
+ % Note how a `%' character causes TeX to ignore the
+ % end of the input line, so these blank lines do not
+ % start a new paragraph.
+with the right spacing around the periods
+requires a special command.
+
+!TeX! interprets some common characters as commands, so you must type
+special commands to generate them. These characters include the
+following:
+ !$ !& !% !# !{ and !}.
+
+In printing, text is emphasized by using an
+ <!em italic!/> % The \/ command produces the tiny extra space that
+ % should be added between a slanted and a following
+ % unslanted letter.
+type style.
+
+!begin<em>
+ A long segment of text can also be emphasized in this way. Text within
+ such a segment given additional emphasis
+ with!/ <!em Roman>
+ type. Italic type loses its ability to emphasize and become simply
+ distracting when used excessively.
+!end<em>
+
+It is sometimes necessary to prevent !TeX! from breaking a line where
+it might otherwise do so. This may be at a space, as between the
+``Mr.'' and ``Jones'' in
+ ``Mr.~Jones'', % ~ produces an unbreakable interword space.
+or within a word---especially when the word is a symbol like
+ !mbox<!em itemnum!/>
+that makes little sense when hyphenated across
+ lines.
+
+Footnotes!footnote<This is an example of a footnote.>
+pose no problem.
+
+!TeX! is good at typesetting mathematical formulas like
+ !( x-3y = 7 !)
+or
+ !( a_<1> !> x^<2n> / y^<2n> !> x' !).
+Remember that a letter like
+ $x$ % $ ... $ and \( ... \) are equivalent
+is a formula when it denotes a mathematical symbol, and should
+be treated as one.
+
+!section<Displayed Text>
+
+Text is displayed by indenting it from the left margin.
+Quotations are commonly displayed. There are short quotations
+!begin<quote>
+ This is a short a quotation. It consists of a
+ single paragraph of text. There is no paragraph
+ indentation.
+!end<quote>
+and longer ones.
+!begin<quotation>
+ This is a longer quotation. It consists of two paragraphs
+ of text. The beginning of each paragraph is indicated
+ by an extra indentation.
+
+ This is the second paragarph of the quotation. It is just
+ as dull as the first paragraph.
+!end<quotation>
+Another frequently-displayed structure is a list.
+The following is an example of an <!em itemized> list.
+!begin<itemize>
+ !item This is the first item of an itemized list. Each item
+ in the list is marked with a ``tick''. The document
+ style determines what kind of tick mark is used.
+
+ !item This is the second item of the list. It contains another
+ list nested inside it. The inner list is an <!em enumerated>
+ list.
+ !begin<enumerate>
+ !item This is the first item of an enumerated list that
+ is nested within the itemized list.
+
+ !item This is the second item of the inner list. !LaTeX!
+ allows you to nest lists deeper than you really should.
+ !end<enumerate>
+ This is the rest of the second item of the outer list. It
+ is no more interesting than any other part of the item.
+ !item This is the third item of the list.
+!end<itemize>
+You can even display poetry.
+!begin<verse>
+ There is an environment for verse !! % The \\ command separates lines
+ Whose features some poets will curse. % within a stanza.
+
+ % One or more blank lines separate stanzas.
+
+ For instead of making!!
+ Them do <!em all!/> line breaking, !!
+ It allows them to put too many words on a line when they'd
+ rather be forced to be terse.
+!end<verse>
+
+Mathematical formulas may also be displayed. A displayed formula is
+one-line long; multiline formulas require special formatting
+instructions.
+ ![ x' + y^<2> = z_<i>^<2>!]
+Don't start a paragraph with a displayed equation, nor make
+one a paragraph by itself.
+
+!end<document> % End of document.
diff --git a/language/swedish/slatex/ssmall.tex b/language/swedish/slatex/ssmall.tex
new file mode 100644
index 0000000000..6043d86b85
--- /dev/null
+++ b/language/swedish/slatex/ssmall.tex
@@ -0,0 +1,39 @@
+% SMALL.TEX -- Released 5 July 1985
+% USE THIS FILE AS A MODEL FOR MAKING YOUR OWN LaTeX INPUT FILE.
+% EVERYTHING TO THE RIGHT OF A % IS A REMARK TO YOU AND IS IGNORED BY LaTeX.
+
+% THE FILE /usr/local/lib/tex82/local.gid TELLS HOW TO RUN LaTeX.
+
+% WARNING! DO NOT TYPE ANY OF THE FOLLOWING 10 CHARACTERS EXCEPT AS DIRECTED:
+% & $ # % _ { } ^ ~ \
+
+!documentstyle<article> % YOUR INPUT FILE MUST CONTAIN THESE TWO LINES
+!begin<document> % PLUS THE \end COMMAND AT THE END.
+
+
+!section<Simple Text> % THIS COMMAND MAKES A SECTION TITLE.
+
+Words are separated by one or more spaces. Paragraphs are separated by
+one or more blank lines. The output is not affected by adding extra
+spaces or extra blank lines to the input file.
+
+Double quotes are typed like this: ``quoted text''.
+Single quotes are typed like this: `single-quoted text'.
+
+Long dashes are typed as three dash characters---like this.
+
+Italic text is typed like this: <!em this is italic text>.
+Bold text is typed like this: <!bf this is bold text>.
+
+!subsection<A Warning or Two> % THIS COMMAND MAKES A SUBSECTION TITLE.
+
+If you get too much space after a mid-sentence period---abbreviations
+like etc.! are the common culprits)---then type a backslash followed by
+a space after the period, as in this sentence.
+
+Remember, don't type the 10 special characters (such as dollar sign and
+backslash) except as directed!bang<> The following seven are printed by
+typing a backslash in front of them: !$ !& !# !% !_ !{ and !}.
+The manual tells how to make other symbols.
+
+!end<document> % THE INPUT FILE ENDS WITH THIS COMMAND.
diff --git a/language/swedish/slatex/sst.tex b/language/swedish/slatex/sst.tex
new file mode 100644
index 0000000000..ee9f068091
--- /dev/null
+++ b/language/swedish/slatex/sst.tex
@@ -0,0 +1,27 @@
+%
+% $Header: sst.tex,v 1.2 86/09/14 00:19:51 sven Exp $
+%
+% $Log: sst.tex,v $
+% Revision 1.2 86/09/14 00:19:51 sven
+% Initial revision, LaTeX 2.09
+%
+% Revision 1.1 86/01/15 22:36:26 sven
+% Initial revision, LaTeX 2.08
+%
+%
+% Change the documentstyle file suffix from .sty to .sst to enable
+% having the standard files as well as the modified files in the same
+% directory. The macros below assume that the optional argument
+% delimiters, [], have been substituted for ().
+
+\typeout{Change .sty suffix to .sst.}
+
+\def\@documentstyle(#1)#2{\makeatletter
+ \def\@optionlist{#1}\gdef\@optionfiles{}\input #2.sst\relax
+ \let\@elt\input \@optionfiles \let\@elt\relax \makeatother}
+
+\def\@options{\let\@elt\relax
+ \@for\@tempa:=\@optionlist\do
+ {\@ifundefined{ds@\@tempa}{\xdef\@optionfiles{\@optionfiles
+ \@elt \@tempa.sst\relax}}{\csname ds@\@tempa\endcsname}}}
+
diff --git a/language/swedish/slatex/swedish.tex b/language/swedish/slatex/swedish.tex
new file mode 100644
index 0000000000..c20d656fb0
--- /dev/null
+++ b/language/swedish/slatex/swedish.tex
@@ -0,0 +1,90 @@
+%
+% $Header: swedish.tex,v 1.3 86/11/04 21:02:49 sven Exp $
+%
+% $Log: swedish.tex,v $
+% Revision 1.3 86/11/04 21:02:49 sven
+% Fixed !input<file> bug, by letting \bgroup and \egroup to the new
+% group characters. /Sven 861104
+%
+% Revision 1.2 86/09/14 00:19:57 sven
+% Initial revision, LaTeX 2.09
+%
+% Revision 1.1 86/01/15 22:36:34 sven
+% Initial revision, LaTeX 2.08
+%
+%
+% Change escape character from '\' to '!', grouping characters from
+% '{}' to '<>' and set up Swedish characters at [{]}\|.
+
+\typeout{Change national characters to Swedish.}
+
+% Make some special characters accesible
+
+%\def\bang{{\char'041}}
+\let\bang=!
+\def\|{\relax\ifmmode\vert\else$\vert$\fi}
+
+% The following two are already defined in lplain.tex
+%\def\{{\relax\ifmmode\lbrace\else$\lbrace$\fi}
+%\def\}{\relax\ifmmode\rbrace\else$\rbrace$\fi}
+
+\def\<{<} \def\>{>}
+%\def\lt{{\char'074}} \def\gt{{\char'076}}
+%\let\<=< \let\>=>
+\let\lt=< \let\gt=>
+
+% \! was neg. thin space in math-mode but !! cannot be used as it is a
+% special LaTeX command. Thus \! is replaced by \nspace
+
+\def\nspace{\mskip-\thinmuskip}
+
+\escapechar`\!
+\catcode`\!=0 \catcode`\<=1 \catcode`\>=2
+!catcode`!{=12 !catcode`!\=12 !catcode`!}=12
+
+% Make national characters active
+
+!def!svenska<!catcode`{=13 !catcode`|=13 !catcode`}=13
+ !catcode`[=13 !catcode`\=13 !catcode`]=13>
+
+!svenska
+
+% Map active characters
+
+!def{<!sveae> !def|<!sveoe> !def}<!sveaa>
+ !def[<!sveAE> !def\<!sveOE> !def]<!sveAA>
+
+!catcode`{=12 !catcode`|=12 !catcode`}=12
+!catcode`[=12 !catcode`\=12 !catcode`]=12
+
+% Define national characters
+
+!def!sveae<!accent"7F a>
+!def!sveaa<!accent'27 a>
+!def!sveoe<!accent"7F o>
+!def!sveAE<!accent"7F A>
+!def!sveOE<!accent"7F O>
+!def!sveAA<!accent'27 A>
+
+%!newdimen!ringoffset
+%!newdimen!dotoffset
+
+% Twiddle with the placement of the ring and the dots for } and {
+
+%!def!sveae<!leavevmode!rlap<!kern!dotoffset!hbox<!char'177>>a>
+%!def!sveaa<!leavevmode!rlap<!ringfont!kern!ringoffset!hbox<!char'27>>a>
+
+%!def!rm<!ringoffset=-0.16em !dotoffset=-0.03em
+% !let !ringfont=!rmfont !fam0 !rmfont>
+%!def!sl<!ringoffset=-0.06em !dotoffset=-0.03em
+% !let !ringfont=!rmfont !fam!slfam !slfont>
+%!def!it<!ringoffset=-0.00em !dotoffset=-0.03em
+% !let !ringfont=!rmfont !fam!itfam !itfont>
+%!def!bf<!ringoffset=-0.16em !dotoffset=-0.03em
+% !let !ringfont=!bffont !fam!bffam !bffont>
+%!def!tt<!fam!ttfam !ttfont>
+
+!svenska
+
+% Change implicit characters
+!let!bgroup=< !let!egroup=>
diff --git a/language/swedish/slatex/tde-local.tex b/language/swedish/slatex/tde-local.tex
new file mode 100644
index 0000000000..7e1414ab4f
--- /dev/null
+++ b/language/swedish/slatex/tde-local.tex
@@ -0,0 +1,674 @@
+% local.tex -- released 24 September 1985
+% for LaTeX version 2.09
+% modified for TdE 13 September 1987 /Sven
+%
+% This file is used to produce a Local Guide for LaTeX users containing
+% information specific to a site plus errors and omissions from the LaTeX
+% manual (to be published by Addison-Wesley in the fall).
+%
+% The installer of LaTeX at a site is responsible for customizing this
+% document and providing copies for users. He will have to read the
+% text of this file CAREFULLY to see what must be added, removed, and
+% changed.
+
+% This version of the local guide corresponds to the standard Unix TeX
+% distribution. Note that you will still have to change parts of this to
+% reflect the method you use to spool DVI files to your printer. If you put
+% sample.tex anywhere other than in /usr/lib/tex/macros, you'll have to
+% adjust that information as well.
+
+% The \contact command is defined to generate the name of the person to
+% whom questions should be sent. This should be someone at the site.
+% Most users' questions are easily answered by anyone slightly familiar
+% with LaTeX or TeX. Don't bother anyone at another site with questions
+% that can be answered locally.
+
+\documentstyle[titlepage,a4,11pt,par,tags,headings]{article}
+
+\pagestyle{numheadings}
+
+\markboth{\LaTeX{} Local Guide -- Sven Mattisson}{\LaTeX{}
+Local Guide -- Sven Mattisson}
+
+\newcommand{\contact}{Sven}
+
+\newcommand{\BibTeX}{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
+ T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
+
+\newcommand{\SLiTeX}{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em T\kern
+ -.1667em\lower.7ex\hbox{E}\kern-.125emX}}
+
+\newcommand{\SLaTeX}{{\rm S\LaTeX}}
+
+\newcommand\bs{\char '134 } % A backslash character for \tt font
+
+
+\title{Using \LaTeX}
+
+\author{Sven Mattisson \\ (modified from that prepared by \\ Leslie Lamport
+and Richard Furuta)}
+
+\date{\today\\ % Keep this date current
+For \LaTeX{} Version 2.09}
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\newpage
+
+\LaTeX{} runs on a variety of computers at many different sites. This
+document tells you how to use \LaTeX{} at Berkeley Unix sites running the
+standardly distributed Unix version of \TeX{} and \LaTeX. It is not about
+\LaTeX{} itself, which is described in the manual---{\em \LaTeX: A Document
+Preparation System}, available from Addison-Wesley (ISBN 0-201-15790-X).
+
+Local additions to \LaTeX{} particular to the Department of Applied
+Electronics at Lund, for example \SLaTeX, are also described in this
+document. Everything said about \LaTeX{} is valid for \SLaTeX{} as
+well, with proper attention to the differences in file name suffixes
+and special characters. See section~\ref{sec:slatex} for details.
+
+If you have a question that you can't answer by reading the manual and
+this document, ask \contact. He should also be informed of any
+possible \LaTeX{} bugs or undocumented anomalies.
+
+
+\section{Getting Started}
+
+\subsection{Running a Sample File} \label{sec:sample}
+
+Before preparing your own documents, you may want to get acquainted
+with \LaTeX{} by running it on a sample input file. First make your own
+copy of the file \mbox{\tt sample.tex} by typing the following
+Unix command:
+\begin{verbatim}
+ cp /usr/lib/tex/macros/sample.tex .
+\end{verbatim}
+(You must type the space followed by the period at the end. This
+and all other Unix commands are ended by typing {\em return}.)
+A copy of the file \mbox{\tt sample.tex} is now in your current
+directory; you can edit it just like any other file. If you destroy or
+mess up your copy, typing the above command again gets you a fresh
+one.
+
+Next, run \LaTeX{} on the file \mbox{\tt sample.tex} by typing:
+\begin{verbatim}
+ latex sample
+\end{verbatim}
+When \LaTeX{} has finished, it will have produced the file \mbox{\tt
+sample.dvi} in your directory. You can print this file by typing the
+command
+\begin{verbatim}
+ texprint sample
+\end{verbatim}
+The output will be produced on your site's laser printer.
+After it has been printed,
+you can delete \mbox{\tt sample.dvi} by typing
+\begin{verbatim}
+ rm sample.dvi
+\end{verbatim}
+
+You can run the same example with \SLaTeX. Try the file
+\mbox{\tt ssample.tex} instead.
+
+\subsection{Preparing and Running \LaTeX{} on Your Own Files}
+
+You must use a text editor to prepare an input file for \LaTeX. Contact your
+computer's administrator
+for more
+information on the text editors available to you\footnote{This is an
+excellent opportunity to start learning {\em Emacs} which has some
+nice featrures to help you use \LaTeX{} and \SLaTeX.}.
+The easiest way to start learning about \LaTeX{} is by
+examining the file \mbox{\tt small.tex}, \mbox{\tt ssmall.tex} if you
+are using \SLaTeX, with your text editor.
+You can obtain your own copy of this file, in your directory,
+by typing the command
+\begin{verbatim}
+ cp /usr/lib/tex/macros/small.tex .
+\end{verbatim}
+
+After you have prepared your file, whose name should have the extension
+{\tt tex}, you must run it through \LaTeX{} and print the output.
+Follow the instructions in Section~\ref{sec:sample}, except substitute
+the first name of your file for ``\mbox{\tt sample}''. Remember to
+save disk space by deleting the {\tt dvi} file after printing the
+output.
+
+
+%List the text editors, available, and any special features they have
+%for producing \LaTeX{} input. Explain how the various text editors
+%could cause bad characters to appear in the input file that would
+%generate the
+%\begin{verbatim}
+%! Text line contains an invalid character.
+%\end{verbatim}
+%error.
+
+If you want to stop \LaTeX{} in the middle of its execution, perhaps
+because it is printing a seemingly unending string of uninformative
+error messages, type {\em Control-C\/} (press $C$ while holding down
+the key labeled {\em CTRL\/}). This will make \LaTeX{} stop as if it
+had encountered an ordinary error, and you can return to Unix command
+level by typing {\tt X}, as described in the manual. If typing {\em
+Control-C\/} doesn't work, typing {\em Control-Z\/} will get you
+immediately to Unix command level, but this will leave a stopped job
+hanging around. A stopped job won't hurt anything and will disappear
+when you log out, but it forces you to type two successive \mbox{\tt
+logout} commands to log out.
+
+To use the {\em spell\/} program for finding spelling errors in a
+\LaTeX{} input file named, for example, \mbox{\tt myfile.tex}, type the
+following command\footnote{{\em Emacs} has a special spell package
+which knowns about \LaTeX. Try using {\tt M-x spell-buffer} on a \LaTeX or
+\SLaTeX buffer.}:
+\begin{verbatim}
+ delatex myfile.tex | spell
+\end{verbatim}
+This will type a list of possibly misspelled words on your terminal.
+If you'd rather have the output written to a file named \mbox{\tt
+foo.bar}, type
+\begin{verbatim}
+ delatex myfile.tex | spell >foo.bar
+\end{verbatim}
+
+The command \mbox{\tt deslatex} works for a \SLaTeX{} file.
+
+\section{Carrying On}
+
+\subsection{\LaTeX{} on Unix} \label{sec:op-system}
+
+The only special problems in using \LaTeX{} caused by the Unix
+operating system involve the way Unix handles files. The first
+problem arises because, when a program starts to write a file, Unix
+destroys the previous version of that file. Thus, if an error forces
+you to stop \LaTeX{} prematurely (by typing {\em Control-C\/} or {\em
+Control-Z\/}), then the files that \LaTeX{} was writing are incomplete,
+and the previous complete versions have been destroyed. You probably
+don't care about the output on the {\tt dvi} file, but, if you are
+making a table of contents or using cross-referencing commands, then
+\LaTeX{} also writes one or more {\em auxiliary files\/} that it reads
+the next time it processes the same input file. If the auxiliary files
+are incomplete because \LaTeX{} was stopped before reaching the end of
+its input file, then the table of contents and cross-references will be
+incorrect the next time \LaTeX{} is run on the same input file. You
+will have to run \LaTeX{} a second time to get them right. If you want
+to avoid having to run \LaTeX{} twice after making an error---for
+example, if your input is very long---then you should save copies of
+these auxiliary files before running \LaTeX. An input file named
+\mbox{\tt myfile.tex} and all the auxiliary files produced by \LaTeX\
+from it are included in the Unix file specifier \mbox{\tt myfile.*}.
+Use the Unix {\tt cp} command to save copies of these files.
+
+The second problem in using \LaTeX{} on Unix involves the files that
+\LaTeX{} reads. The file whose name you type with Unix's {\tt latex}
+command is called the {\em root file}. In addition to reading the root
+file, \LaTeX{} also reads the files specified by \hbox{\verb|\input|}
+and \hbox{\verb|\include|} commands. With the Unix directory system,
+\LaTeX{} must know not only the names of these file but also on what
+directories they are. It will have no problem finding the correct
+files if you follow two simple rules:
+\begin{enumerate}
+ \item Run \LaTeX{} from the directory containing the root file.
+ \item Keep all files specified by \hbox{\verb|\input|} and
+ \hbox{\verb|\include|} commands in the same directory as the root
+ file.
+\end{enumerate}
+If you follow these rules, you never have to type an Unix path
+specifier when using \LaTeX.
+
+You should never break the first rule, otherwise \LaTeX{} will have
+trouble finding auxiliary files. (To run \LaTeX{} on someone else's
+file, copy the file to your directory.) If you break the second
+rule, specifying a file from another directory in an
+\hbox{\verb|\input|} or \hbox{\verb|\include|} command, you must use a
+complete path name. For example, to include the file \mbox{\tt hisfile.tex}
+from Jones' directory \hbox{\verb|/foo/bar|}, you can type
+\begin{verbatim}
+ \include{/udir/jones/foo/bar/hisfile}
+\end{verbatim}
+A \verb|~| character may not appear in the argument of an
+\hbox{\verb|\input|} or \hbox{\verb|\include|} command, so you {\em
+can not\/} use a file name such as \hbox{\verb|~jones/hisfile|}.
+
+For people who don't like to obey rules,
+here is exactly how \LaTeX{} finds its
+files. The root file is found by Unix according to its usual rules.
+\LaTeX's auxiliary files are read and written in the directory from
+which it is run. All file names specified in the \LaTeX{} input,
+including the names of document-style ({\tt sty}) files\footnote{{\tt
+sst} files with \SLaTeX.} specified by
+the \hbox{\verb|\documentstyle|} command, are interpreted relative to
+the directory from which \LaTeX{} is run. If \LaTeX{} does not find a
+file starting in this directory, it looks in the system directory
+\hbox{\verb|/usr/lib/tex/macros|}. You can change the directories in
+which \LaTeX{} looks for its input files by setting the environment
+variable \mbox{\tt TEXINPUTS}. Putting the command
+\begin{verbatim}
+setenv TEXINPUTS :.:/u/jones/myown:/usr/lib/tex/macros:
+\end{verbatim}
+in your \mbox{\tt .login} file causes \LaTeX{} to look for files first
+in the current directory, then in Jones' {\tt /myown} directory, and
+then in the system directory. You might want to do this if your name
+is Jones and you have your own personal document-style files in your
+{\tt /myown} directory.
+
+\subsection{Document Styles}
+
+Some document styles described in the manual have been modified for
+Swedish text. These are the \mbox{\tt rapport}, \mbox{\tt artikel}
+and, \mbox{\tt brev} styles. The commands in these modified
+document styles preserve their meaing from the
+original styles but the date is written in a Swedish fashion and
+headers produce Swedish text rather than English.
+
+The \mbox{\tt brev} document style uses English \verb=\cc= and
+\verb=\encl= commands. To get the Swedish ones use \verb=\kopia= and
+\verb=\bil= respectivelly.
+
+\subsubsection{Special Styles}
+
+In addition to the nationalized document styles some special style
+options are available:
+\begin{center}
+\begin{tabular}{ll}
+a4 & Set page margins for A4 paper size \\
+headings & Miscallaneous heading styles \\
+lists & Miscallaneous list types \\
+logo & Include a PostScript picture in chapter head \\
+lutedxpage & Generate department cover page \\
+memo & Memorandom page style\\
+par & Swedish paragraph style \\
+tags & Hanging list tag \\
+viewg & Make text centered on page
+\end{tabular}
+\end{center}
+
+These style options are available with \LaTeX{} as well as \SLaTeX.
+Please add to the list of available options or put suggestions forward
+to \contact.
+
+\subsubsection{The {\tt a4} papers size Style Option} \label{sec:a4}
+
+Redefine page margins for the A4 paper size, add 48 pt to the height
+and subtract 17 pt from the width. You almost always want this option.
+
+\subsubsection{The {\tt headings} Style Option}
+
+This style options defines a number of heading styles (page styles).
+\begin{center}
+\begin{tabular}{ll}
+bfheadings & Use the \verb'\bf' font in the header \\
+numheadings & Use a 3/7 page numbering style \\
+mynumheadings & {\tt myheadings} with modified page numbers \\
+bfnumheadings & guess what
+\end{tabular}
+\end{center}
+
+This report uses the numheadings page style. To use any of the above
+page styles, include \mbox{\tt headings} in the list of options to the
+\mbox{\tt documentstyle} command, and, for example, put
+\begin{verbatim}
+\pagestyle{numheadings}
+\end{verbatim}
+before the first page. If you are using any of the numheading styles
+you will get the following warning the first time you run \LaTeX:
+\begin{verbatim}
+LaTeX Warning: Reference `@lastpage' on page 13 undefined.
+\end{verbatim}
+That's normal, just ignore it. It will disappear the next time you
+run the file.
+
+\subsubsection{The {\tt lists} Style Option}
+
+New list environments not fully tested yet.
+
+\subsubsection{The {\tt logo} Style Option}
+
+This option redifines the \verb'\chapter' command to include a
+PostScript file and place it in the chapter header. The PostScript
+file is included at the left margin by means of the \verb'\special'
+command. The chapter heading is indented \verb'\logowidth' pt
+(default 0). Before the first chapter the name of the PostScript file
+has to be defined with the \verb'\logofile' command. This name can be
+changed before each chapter if desired. For example one can use the
+following commands
+
+\begin{verbatim}
+\def\logofile{cube.ps}
+\def\logowidth{0pt}
+
+\chapter{Fancy chapter heading}
+\end{verbatim}
+
+Note the use of the \verb'\def' command. This option only works with
+the {\tt report} document style.
+
+\subsubsection{The {\tt lutedxpage} Style Option}
+
+Generate a cover page for department reports. The {\tt lutedx} number
+is set by the \verb'\lutedx' command, for example
+\begin{verbatim}
+\lutedx{LUTEDX/(TETE-7019)/1-111(1986)}
+\end{verbatim}
+and the page is ejected by the \verb'\makelutedx' command.
+
+\subsubsection{The {\tt memo} Style Option}
+
+The {\tt memo} style option prints the author name, institution and
+the date in the upper left corner on the first page. The following
+fields are available
+\begin{center}
+\begin{tabular}{ll}
+field & default \\ \hline
+\verb'\author' & empty \\
+\verb'\memoinst' & Institutionen f\"or Till\"ampad Elektronik \\
+ & Lunds Tekniska H\"ogskola \\
+\verb'\date' & Lund 1987 -- 11 -- 20 \\
+\verb'\memonote' & empty
+\end{tabular}
+\end{center}
+
+An example$\ldots$
+\begin{verbatim}
+\author{Humble Self}
+\memonote{First Attempt}
+\end{verbatim}
+
+The {\tt memonote} field is printed in the upper right corner.
+
+\subsubsection{The {\tt par} Style Option}
+
+The {\tt par} option redefines parameters controlling paragraph
+styles. With this option paragraphs will be unindented but separated
+with some vertical white space.
+
+\subsubsection{The {\tt tags} Style Option}
+
+List environment option. A {\tt tags} list places a hanging tag to
+tyhe left of the list. The environment takes an argument which
+defines the width of the widest label.
+
+Thus
+\begin{verbatim}
+\begin{tags}{\bf Wide label}
+\item[\bf narrow] Narrow label followed by...
+\item[\bf Wide label] Wide label followed by lots of...
+\end{tags}
+\end{verbatim}
+yields
+\begin{tags}{\bf Wide label}
+\item[\bf narrow] Narrow label followed by text text text text text
+text text text text text text text text.
+\item[\bf Wide label] Wide label followed by lots of text text text
+text text text text text text text text text text text text text text
+text text text text text text text text text text text text text text
+text text text text text.
+\end{tags}
+
+\subsubsection{The {\tt viewg} Style Option}
+
+Style option suitable for producing view graphs. The text is centered
+just above the middle of the page. Furthermore the
+\verb'\raggedright' and \verb'\sloppy' commands are issued (but thet
+can be overridden of course).
+
+\subsection{Where the Files Are}
+
+% must explain where the following files are:
+% small.tex, sample.tex, *.sty, *.doc, lablst.tex, idx.tex
+%
+
+All \LaTeX{} files mentioned in the manual, including the {\tt sty,
+sst} and {\tt doc} files, are on the directory \mbox{\tt
+/usr/lib/tex/macros}. Fonts are stored in /usr/lib/tex/fonts. The
+\mbox{\tt *.tfm} files are used by \TeX{} and \LaTeX. The \mbox{\tt
+*.*pk} files are pixel files used by {\em texprint\/} and other device
+drivers. The actual font file type depends on the laser printer
+driver and may vary. However, this is of no concern for the regular
+user.
+
+\subsection{Running {\tt lablst.tex} and {\tt idx.tex}}
+
+A list of labels and citations in an input file is printed
+by running \LaTeX{} on the input file \mbox{\tt lablst.tex},
+which is done by typing
+\begin{verbatim}
+ latex lablst
+\end{verbatim}
+\LaTeX{} will then ask for the name of the input file, which should be
+typed without an extension, and for the name of the main document style
+(e.g., \mbox{\tt article}), used by that file.
+
+The index entries on an {\tt idx} file are printed by running \LaTeX\
+on the file \mbox{\tt idx.tex}, which is done by typing
+\begin{verbatim}
+ latex idx
+\end{verbatim}
+\LaTeX{} will ask for the name of the {\tt idx} file, which is typed
+without an extension.
+
+These files are currently not available for \SLaTeX. Any takers?
+
+\subsection{Using \SLaTeX} \label{sec:slatex}
+
+\SLaTeX{} is a modified version of \LaTeX{} for writing Swedish text.
+\SLaTeX{} does, however, not restrict itself to Swedish text.
+Any character set supported by \LaTeX{} can be used, but \SLaTeX{}
+makes it more convenient to write in a language where the ASCII
+national characters have other meanings than in the US-ASCII set.
+
+To write Swedish text with \SLaTeX{} you type the characters as they
+appear on the terminal keyboard (on US-ASCII keyboards you will find
+the national characters at the ']', '[' and '\verb=\=' keys).
+To accomplish this some of the \LaTeX{} special characters have to
+be substituted for others to avoid using the national symbols.
+
+Thus, in \SLaTeX, the following character mappings relative to
+\LaTeX{} are done:
+\begin{tags}{111}
+\item[1.] The TeX escape and grouping characters, '$\backslash$', '\{'
+and '\}' are substituted for '!', '$<$' and '$>$' respectively.
+\item[2.] The \LaTeX{} optional argument delimiters, '[' and ']',
+are substituted for '(' and ')'.
+\item[3.] In \LaTeX{} picture points (coordinates) are written
+``(x,y)'' but in \SLaTeX{} they should be substituted for ``~"x,y"~''
+(note the double quotes), since the parenthesis are already taken
+as option delimiters.
+\item[4.] The vertical rule symbol for the array and tabular
+environments is changed from '$\vert$' to ':'.
+\item[5.] The suffix for the document style option files, ``.sty'',
+has been substituted for ``.sst''.
+\item[6.] The special commands ``$\backslash[$'', ``$\backslash]$'',
+``$\backslash($'', ``$\backslash)$'' and ``$\backslash\backslash$'' have the
+same meaning as in \LaTeX{} but
+are typed as ``!['', ``!]'', ``!('', ``!)'' and ``!!'' respectively. To
+produce the characters '[', ']', '$\backslash$', '\{', '\}',
+'$\vert$' '$>$', '$<$' and '!'
+(not the national variants but the US-ASCII ones) type ``!lbrack'',
+``!rbrack'', ``!backslash'', ``!lbrace'', ``!rbrace'', ``!vert'',
+``!gt'', ``!lt'' and ``!bang'' respectively. The negative thin-space
+command, ``$\backslash!$'', is issued by typing ``!nspace''.
+\end{tags}
+
+So far \SLaTeX{} has proved to be pretty bug free. Well, one can at
+least format the \LaTeX{} manual so no obvious bugs should remain.
+However, in strings the national characters are
+substituted for the ``\verb+\accent+'' command, making it easier to
+exhaust the string length used in \TeX. For example captions with
+lots of national characters may use up all string space.
+
+Be careful when using ``!bang'' to end a sentence as white space
+following a macro call is discarded. To preserve space after an
+exclamation mark use ``!bang$<>$''. Here the extra angle braces will
+terminate the macro name and preserve the meaning of the following
+white space.
+
+\subsection{Using \BibTeX}
+
+\BibTeX{} is a program for compiling a reference list for a document
+from a bibliographic database. It is run by typing
+\begin{verbatim}
+ bibtex myfile
+\end{verbatim}
+where \mbox{\tt myfile.tex} is the name of your \LaTeX{} input file.
+This reads the file \mbox{\tt myfile.aux}, which was created when you
+ran \LaTeX{} on \mbox{\tt myfile.tex}, and produces the file \mbox{\tt
+myfile.bbl}. \BibTeX{} should be run from the directory containing
+\mbox{\tt myfile.tex} (which should be the same directory from which
+\LaTeX{} was run on that file).
+
+A version of \BibTeX, compatible with \SLaTeX{} is available. This
+version is called {\tt slbibtex}.
+
+If the {\tt bib} file is not in the same directory as the \LaTeX{} input
+file---for example, if you're using someone else's {\tt bib}
+file---then you must include a path as part of the file name specified
+by the \hbox{\verb|\bibliography|} command. A \verb|~| cannot appear
+in the argument of a \hbox{\verb|\bibliography|} command, so you should
+use a complete path name. For example, the \LaTeX{} command
+\begin{verbatim}
+ \bibliography{/udir/jones/bibfiles/gnus}
+\end{verbatim}
+specifies the file \mbox{\tt gnus.bib} kept by Jones in his
+\mbox{\tt /bibfiles} directory.
+
+
+There is now no formal provision for sharing bibliographic database
+information, nor are there programs to assist in making your own {\tt
+bib} files. Suggestions for forming one or more common {\tt bib} files
+are welcome.
+
+There are no bibliography styles available other than the
+ones described in the manual.
+
+In addition to the usual three-letter abbreviations for the months, the
+following abbreviations are defined by the bibliography styles:
+\begin{list}{}{\labelwidth 0pt \itemindent-.5\leftmargin
+ \itemsep=2pt plus 1pt
+ \let\makelabel\descriptionlabel}\it
+\item[\tt acmcs] ACM Computing Surveys
+\item[\tt acta] Acta Informatica
+\item[\tt cacm] Communications of the ACM
+\item[\tt ibmjrd] IBM Journal of Research and Development
+\item[\tt ibmsj] IBM Systems Journal
+\item[\tt ieeese] IEEE Transactions on Software Engineering
+\item[\tt ieeetc] IEEE Transactions on Computers
+\item[\tt ieeetcad] IEEE Transactions on Computer-Aided Design of
+Integrated Circuits
+\item[\tt ipl] Information Processing Letters
+\item[\tt jacm] Journal of the ACM
+\item[\tt jcss] Journal of Computer and System Sciences
+\item[\tt scp] Science of Computer Programming
+\item[\tt sicomp] SIAM Journal on Computing
+\item[\tt tocs] ACM Transactions on Computer Systems
+\item[\tt tods] ACM Transactions on Database Systems
+\item[\tt tog] ACM Transactions on Graphics
+\item[\tt toms] ACM Transactions on Mathematical Software
+\item[\tt toois] ACM Transactions on Office Information Systems
+\item[\tt toplas] ACM Transactions on Programming Languages and Systems
+\item[\tt tcs] Theoretical Computer Science
+\end{list}
+
+% Note: All styles should share the same set of abbreviations.
+
+\subsection{Fonts}
+
+Almost all the symbols available on our fonts can be generated by
+ordinary \LaTeX{} commands. However, there are type sizes not
+obtainable by \LaTeX's size-changing commands with the ordinary
+document styles. Consult a local \TeX{} expert to find the
+\TeX{} name for such a font.
+
+Tables~\ref{tab:styles} and \ref{tab:fonts} allow you
+to determine if the font for a type style at a particular
+size is preloaded, loaded on demand, or unavailable.
+\begin{table}
+\centering
+\begin{tabular}{l|r|r|r|}
+\multicolumn{1}{l}{size} &
+\multicolumn{1}{c}{default (10pt)} &
+ \multicolumn{1}{c}{11pt option} &
+ \multicolumn{1}{c}{12pt option}\\
+\cline{2-4}
+\verb|\tiny| & 5pt & 6pt & 6pt\\
+\cline{2-4}
+\verb|\scriptsize| & 7pt & 8pt & 8pt\\
+\cline{2-4}
+\verb|\normalsize| & 10pt & 11pt & 12pt \\
+\cline{2-4}
+\verb|\large| & 12pt & 12pt & 14pt \\
+\cline{2-4}
+\verb|\Large| & 14pt & 14pt & 17pt \\
+\cline{2-4}
+\verb|\LARGE| & 17pt & 17pt & 20pt\\
+\cline{2-4}
+\verb|\huge| & 20pt & 20pt & 25pt\\
+\cline{2-4}
+\verb|\Huge| & 25pt & 25pt & 25pt\\
+\cline{2-4}
+\end{tabular}
+\caption{Type sizes for \LaTeX{} size-changing commands.}\label{tab:styles}
+\end{table}
+\begin{table}
+\centering
+\begin{tabular}{l|c|c|c|c|c|c|}
+\multicolumn{1}{l}{}&
+\multicolumn{1}{c}{\tt \bs it} &
+\multicolumn{1}{c}{\tt \bs bf} &
+\multicolumn{1}{c}{\tt \bs sl} &
+\multicolumn{1}{c}{\tt \bs sf} &
+\multicolumn{1}{c}{\tt \bs sc} &
+\multicolumn{1}{c}{\tt \bs tt} \\
+\cline{2-7}
+5pt & D & D & X & X & X & X \\
+\cline{2-7}
+6pt & X & D & X & X & X & X \\
+\cline{2-7}
+7pt & P & D & X & X & X & X \\
+\cline{2-7}
+8pt & P & D & D & D & D & D \\
+\cline{2-7}
+9pt & P & P & D & D & D & P \\
+\cline{2-7}
+10pt & P & P & P & P & D & P \\
+\cline{2-7}
+11pt & P & P & P & P & D & P \\
+\cline{2-7}
+12pt & P & P & P & P & D & P \\
+\cline{2-7}
+14pt & D & P & D & D & D & D \\
+\cline{2-7}
+17pt & D & P & D & D & D & D \\
+\cline{2-7}
+20pt & D & D & D & D & D & D \\
+\cline{2-7}
+25pt & X & D & X & X & X & X \\
+\cline{2-7}
+\end{tabular}
+\caption{Font classes: P = preloaded, D = loaded on demand,
+ X = unavailable.}\label{tab:fonts}
+\end{table}
+Table~\ref{tab:styles} tells you what size of type is used for each
+\LaTeX{} type-size command in the various document-style options. For
+example, with the {\tt 12pt} option, the \hbox{\verb|\large|}
+declaration causes \LaTeX{} to use 14pt type. Table~\ref{tab:fonts}
+tells, for every type size, to which class of fonts each type style
+belongs. For example, in 14pt type, \verb|\bf| uses a preloaded
+font and the other five type-style commands use load-on-demand fonts.
+Roman (\verb|\rm|) and math italic (\verb|\mit|) fonts are all
+preloaded; the \hbox{\verb|\em|} declaration uses either italic
+(\verb|\it|) or roman.
+
+%Describe any special fonts available here.
+
+%Tell where to find a font manual, listing the character numbers of
+%the symbols on different fonts.
+
+%Include a table telling which fonts are preloaded, loaded on demand,
+%and unavailable.
+
+\end{document}
diff --git a/language/swedish/slatex/tde-macros/a4.doc b/language/swedish/slatex/tde-macros/a4.doc
new file mode 100644
index 0000000000..9d6d0d1456
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/a4.doc
@@ -0,0 +1,26 @@
+%
+% $Header: a4.doc,v 1.1 85/12/19 21:21:36 sven Exp $
+%------------------------------------------------------------------
+%
+% $Source: /usr/piraten/sven/lib/tex/RCS/a4.doc,v $
+% $Revision: 1.1 $
+% $Date: 85/12/19 21:21:36 $
+% $State: Exp $
+% $Author: sven $
+% $Locker: $
+%
+%------------------------------------------------------------------
+% $Log: a4.doc,v $
+% Revision 1.1 85/12/19 21:21:36 sven
+% Initial revision
+%
+%------------------------------------------------------------------
+%
+% A4 DOCUMENT STYLE PAGE SIZE
+% for LaTeX version 2.08
+
+% The American standard page size, 216mm(612pt) x 280mm(794pt), is changed
+% to the European A4 standard size, 210mm(595pt) x 297mm(842pt).
+
+\advance\textheight 48pt
+\advance\textwidth -17pt
diff --git a/language/swedish/slatex/tde-macros/a4.sst b/language/swedish/slatex/tde-macros/a4.sst
new file mode 100644
index 0000000000..366a9a9ea2
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/a4.sst
@@ -0,0 +1,2 @@
+!advance!textheight 48pt
+!advance!textwidth -17pt
diff --git a/language/swedish/slatex/tde-macros/artikel.doc b/language/swedish/slatex/tde-macros/artikel.doc
new file mode 100644
index 0000000000..971dbe5adb
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/artikel.doc
@@ -0,0 +1,693 @@
+%
+% $Header: artikel.doc,v 1.2 86/11/07 11:46:00 sven Exp $
+%
+% $Log: artikel.doc,v $
+% Revision 1.2 86/11/07 11:46:00 sven
+% Headings changed to Swedish
+%
+% Revision 1.1 86/09/29 23:07:38 sven
+% Initial revision
+%
+%
+% ARTICLE DOCUMENT STYLE -- released 17 December 1985
+% for LaTeX version 2.09
+% Copyright (C) 1985 by Leslie Lamport
+
+\typeout{Document Style `artikel'. Released 29 September 1986}
+
+% The type size option is handled by reading a different file for each
+% size, as follows:
+% 10pt : ART10, 11pt : ART11, 12pt : ART12
+% Implemented by \def'ing \@ptsize to last digit of file name.
+%
+
+\def\@ptsize{0} % Default is ART10.STY
+\@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option reads in ART11.STY
+\@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option reads in ART12.STY
+
+% Two-side or one-side printing.
+%
+% \@twosidefalse % Default is one-sided printing.
+\def\ds@twoside{\@twosidetrue % Defines twoside option.
+ \@mparswitchtrue} % Marginpars go on outside of page.
+% draft option
+%
+% \overfullrule = 0pt % Default is don't mark overfull hboxes.
+\def\ds@draft{\overfullrule 5pt} % Causes overfull hboxes to be marked.
+
+% The \@options command causes the execution of every command \ds@FOO
+% which is defined and for which the user typed the FOO option in his
+% \documentstyle command. For every option BAR he typed for which
+% \ds@BAR is not defined, the file BAR.sty will be read after the present
+% (main) .STY file is executed.
+
+\@options
+
+\input art1\@ptsize.sty\relax
+
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% ENUMERATE
+% Enumeration is done with four counters: enumi, enumii, enumiii
+% and enumiv, where enumN controls the numbering of the Nth level
+% enumeration. The label is generated by the commands \labelenumi
+% ... \labelenumiv. The expansion of \p@enumN\theenumN defines the
+% output of a \ref command.
+
+\def\labelenumi{\arabic{enumi}.}
+\def\theenumi{\arabic{enumi}}
+
+\def\labelenumii{(\alph{enumii})}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+
+\def\labelenumiii{\roman{enumiii}.}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+
+\def\labelenumiv{\Alph{enumiv}.}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+
+% ITEMIZE
+% Itemization is controlled by four commands: \labelitemi, \labelitemii,
+% \labelitemiii, and \labelitemiv, which define the labels of the various
+% itemization levels.
+
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+
+
+% VERSE
+% The verse environment is defined by making clever use of the
+% list environment's parameters. The user types \\ to end a line.
+% This is implemented by \let'in \\ equal \@centercr.
+%
+\def\verse{\let\\=\@centercr
+ \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
+ \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
+\let\endverse\endlist
+
+% QUOTATION
+% Fills lines
+% Indents paragraph
+%
+\def\quotation{\list{}{\listparindent 1.5em
+ \itemindent\listparindent
+ \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
+\let\endquotation=\endlist
+
+% QUOTE -- same as quotation except no paragraph indentation,
+%
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote=\endlist
+
+% DESCRIPTION
+%
+% To change the formatting of the label, you must redefine
+% \descriptionlabel.
+
+\def\descriptionlabel#1{\hspace\labelsep \bf #1}
+\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+
+\let\enddescription\endlist
+
+%\newdimen\descriptionmargin
+%\descriptionmargin=3em
+
+% ****************************************
+% * OTHER ENVIRONMENTS *
+% ****************************************
+%
+%
+% THEOREM
+% \@begintheorem ... \@endtheorem are the commands executed at the
+% beginning and end of a (user-defined) theorem-like environment.
+% Except \@opargbegintheorem is executed when an optional argument is
+% given. Cf. LATEX.TEX.
+%
+% \def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\bf #1\ #2}]}
+% \def\@opargbegintheorem#1#2#3{\it \trivlist
+% \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]}
+% \def\@endtheorem{\endtrivlist}
+
+
+% EQUATION and EQNARRAY
+%
+% \newcounter{equation}
+% Default is for left-hand side of equations to be flushleft.
+% To make them flushright, do:
+% \let\@eqnsel = \hfil
+%
+
+\def\theequation{\arabic{equation}}
+
+% \jot = 3pt % Extra space added between lines of an eqnarray environment
+
+% The macro \@eqnnum defines how equation numbers are to appear in equations.
+%
+% \def\@eqnnum{(\theequation)}
+%
+
+% TITLEPAGE
+% In the normal environments, the titlepage environment does nothing but
+% start and end a page, and inhibit page numbers. It also resets the
+% page number to zero.
+%
+
+\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \else \newpage \fi \thispagestyle{empty}\c@page\z@}
+
+\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi}
+
+% ARRAY AND TABULAR
+%
+
+\arraycolsep 5pt % Half the space between columns in an array environment.
+\tabcolsep 6pt % Half the space between columns in a tabular environment.
+\arrayrulewidth .4pt % Width of rules in array and tabular environment.
+\doublerulesep 2pt % Space between adjacent rules in array or tabular env.
+
+% TABBING
+%
+\tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.)
+
+% MINIPAGE
+% \@minipagerestore is called upon entry to a minipage environment to
+% set up things that are to be handled differently inside a minipage
+% environment. In the current styles, it does nothing.
+
+% \skip\@mpfootins : plays same role for footnotes in a minipage as
+% \skip\footins does for ordinary footnotes
+
+\skip\@mpfootins = \skip\footins
+
+% FRAMEBOX
+%
+\fboxsep = 3pt % Space left between box and text by \fbox and \framebox.
+\fboxrule = .4pt % Width of rules in box made by \fbox and \framebox.
+
+
+% ****************************************
+% * SECTIONS *
+% ****************************************
+%
+% DEFINE COUNTERS:
+%
+% \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is
+% reset to zero when counter OLDCTR is stepped.
+% Counter OLDCTR must already be defined.
+
+\newcounter{part}
+\newcounter {section}
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+
+% For any counter CTR, \theCTR is a macro that defines the printed version
+% of counter CTR. It is defined in terms of the following macros:
+%
+% \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral.
+% \roman{COUNTER} : Its value printed as a lower-case roman numberal.
+% \Roman{COUNTER} : Its value printed as an upper-case roman numberal.
+% \alph{COUNTER} : Value of COUNTER printed as a lower-case letter:
+% 1 = a, 2 = b, etc.
+% \Alph{COUNTER} : Value of COUNTER printed as an upper-case letter:
+% 1 = A, 2 = B, etc.
+%
+
+\def\thepart{\Roman{part}} % Roman numeral part numbers.
+\def\thesection {\arabic{section}}
+\def\thesubsection {\thesection.\arabic{subsection}}
+\def\thesubsubsection {\thesubsection .\arabic{subsubsection}}
+\def\theparagraph {\thesubsubsection.\arabic{paragraph}}
+\def\thesubparagraph {\theparagraph.\arabic{subparagraph}}
+
+
+% ****************************************
+% * TABLE OF CONTENTS, ETC. *
+% ****************************************
+%
+% A \subsection command writes a
+% \contentsline{subsection}{TITLE}{PAGE}
+% command on the .toc file, where TITLE contains the contents of the
+% entry and PAGE is the page number. If subsections are being numbered,
+% then TITLE will be of the form
+% \numberline{NUM}{HEADING}
+% where NUM is the number produced by \thesubsection. Other sectioning
+% commands work similarly.
+%
+% A \caption command in a 'figure' environment writes
+% \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE}
+% on the .lof file, where NUM is the number produced by \thefigure and
+% CAPTION is the figure caption. It works similarly for a 'table' environment.
+%
+% The command \contentsline{NAME} expands to \l@NAME. So, to specify
+% the table of contents, we must define \l@section,
+% \l@subsection, ... ; to specify the list of figures, we must define
+% \l@figure; and so on. Most of these can be defined with the
+% \@dottedtocline command, which works as follows.
+%
+% \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE}
+% LEVEL : An entry is produced only if LEVEL < or = value of
+% 'tocdepth' counter. Note that \section is level 1,
+% \subsection is level 2, etc.
+% INDENT : The indentation from the outer left margin of the start of
+% the contents line.
+% NUMWIDTH : The width of a box in which the section number is to go,
+% if TITLE includes a \numberline command.
+%
+% This command uses the following three parameters, which are set
+% with a \def (so em's can be used to make them depend upon the font).
+% \@pnumwidth : The width of a box in which the page number is put.
+% \@tocrmarg : The right margin for multiple line entries. One
+% wants \@tocrmarg > or = \@pnumwidth
+% \@dotsep : Separation between dots, in mu units. Should be \def'd to
+% a number like 2 or 1.7
+
+\def\@pnumwidth{1.55em}
+\def\@tocrmarg {2.55em}
+\def\@dotsep{4.5}
+\setcounter{tocdepth}{3}
+
+
+% TABLEOFCONTENTS
+%
+\def\tableofcontents{\section*{Inneh\aa{}ll\@mkboth
+ {INNEH\AA{}LL}{INNEH\AA{}LL}}
+ \@starttoc{toc}}
+
+\def\l@part#1#2{\addpenalty{\@secpenalty}
+ \addvspace{2.25em plus 1pt} % space above part line
+ \begingroup
+ \@tempdima 3em % width of box holding part number, used by
+ \parindent \z@ \rightskip \@pnumwidth %% \numberline
+ \parfillskip -\@pnumwidth
+ {\large \bf % set line in \large boldface
+ \leavevmode % TeX command to enter horizontal mode.
+ #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+ \nobreak % Never break after part entry
+ \endgroup}
+
+\def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break
+ \addvspace{1.0em plus 1pt} % space above toc entry
+ \@tempdima 1.5em % width of box holding section number
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \bf % Boldface.
+ \leavevmode % TeX command to enter horizontal mode.
+ #1\hfil \hbox to\@pnumwidth{\hss #2}\par
+ \endgroup}
+
+\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
+\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
+\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
+\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
+
+% LIST OF FIGURES
+%
+\def\listoffigures{\section*{Figurf\"orteckning\@mkboth
+ {FIGURF\"ORTECKNING}{FIGURF\"ORTECKNING}}\@starttoc{lof}}
+
+\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
+
+% LIST OF TABLES
+%
+\def\listoftables{\section*{Tabellf\"orteckning\@mkboth
+ {TABELLF\"ORTECKNING}{TABELLF\"ORTECKNING}}\@starttoc{lot}}
+\let\l@table\l@figure
+
+
+
+% ****************************************
+% * BIBLIOGRAPHY *
+% ****************************************
+%
+% The thebibliography environment executes the following commands:
+%
+% \def\newblock{\hskip .11em plus .33em minus -.07em} --
+% Defines the `closed' format, where the blocks (major units of
+% information) of an entry run together.
+%
+% \sloppy -- Used because it's rather hard to do line breaks in
+% bibliographies,
+%
+% \sfcode`\.=1000\relax --
+% Causes a `.' (period) not toproduce an end-of-sentence space.
+
+\def\thebibliography#1{\section*{Referenser\@mkboth
+ {REFERENSER}{REFERENSER}}\list
+ {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \usecounter{enumi}}
+ \def\newblock{\hskip .11em plus .33em minus -.07em}
+ \sloppy
+ \sfcode`\.=1000\relax}
+
+\let\endthebibliography=\endlist
+
+% \def\@biblabel#1{[#1]\hfill} % Produces the label for a \bibitem[...]
+ % command.
+% \def\@cite#1{[#1]} % Produces the output of the \cite command.
+
+
+
+% ****************************************
+% * THE INDEX *
+% ****************************************
+%
+% THE THEINDEX ENVIRONMENT
+% Produces double column format, with each paragraph a separate entry.
+% The user commands \item, \subitem and \subsubitem are used to
+% produce the entries, and \indexspace adds an extra vertical space
+% that's the right size to put above the first entry with a new letter
+% of the alphabet.
+
+\newif\if@restonecol
+
+\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+\columnseprule \z@
+\columnsep 35pt\twocolumn[\section*{Register}]
+ \@mkboth{REGISTER}{REGISTER}\thispagestyle{plain}\parindent\z@
+ \parskip\z@ plus .3pt\relax\let\item\@idxitem}
+
+\def\@idxitem{\par\hangindent 40pt}
+
+\def\subitem{\par\hangindent 40pt \hspace*{20pt}}
+
+\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}}
+
+\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
+
+\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}
+
+
+% ****************************************
+% * FOOTNOTES *
+% ****************************************
+%
+% \footnoterule is a macro to draw the rule separating the footnotes from
+% the text. It should take zero vertical space, so it needs a negative
+% skip to compensate for any positive space taken by the rule. (See
+% PLAIN.TEX.)
+
+\def\footnoterule{\kern-3\p@
+ \hrule width .4\columnwidth
+ \kern 2.6\p@} % The \hrule has default height of .4pt .
+
+% \newcounter{footnote}
+
+% The numbering style (arabic, alph, etc.) for ordinary footnotes
+% is defined by the macro \thefootnote.
+%
+% \@makefntext{NOTE} :
+% Must produce the actual footnote, using \@thefnmark as the mark
+% of the footnote and NOTE as the text. It is called when effectively
+% inside a \parbox of width \columnwidth (i.e., with \hsize =
+% \columnwidth).
+%
+% The following macro indents all lines of the footnote by 10pt, and
+% indents the first line of a new paragraph by 1em. To change these
+% dimensions, just substitute the desired value for '10pt' [in both
+% places] or '1em'. The mark is flushright against the footnote.
+% \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize
+% \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par
+% \parindent 1em\noindent \hbox to \z@{\hss$^{\@thefnmark}$}#1}
+%
+% A simpler macro is used, in which the footnote text is
+% set like an ordinary text paragraph, with no indentation except
+% on the first line of a paragraph, and the first line of the
+% footnote. Thus, all the macro must do is set \parindent
+% to the appropriate value for succeeding paragraphs and put the
+% proper indentation before mark.
+
+\long\def\@makefntext#1{\parindent 1em\noindent
+ \hbox to 1.8em{\hss$^{\@thefnmark}$}#1}
+
+% \@makefnmark : A macro to generate the footnote marker that goes
+% in the text. Default definition used.
+
+
+
+% ****************************************
+% * FIGURES AND TABLES *
+% ****************************************
+%
+% Float placement parameters. See LaTeX manual for their definition.
+%
+\setcounter{topnumber}{2}
+\def\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\def\textfraction{.2}
+\def\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+
+% \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption.
+% NUMBER : Figure or table number--e.g., 'Figure 3.2'
+% TEXT : The caption text.
+% Macro should be called inside a \parbox of right width, with \normalsize.
+
+\long\def\@makecaption#1#2{
+ \vskip 10pt
+ \setbox\@tempboxa\hbox{#1: #2}
+ \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
+ \unhbox\@tempboxa\par % THEN set as ordinary paragraph.
+ \else % ELSE center.
+ \hbox to\hsize{\hfil\box\@tempboxa\hfil}
+ \fi}
+
+% To define a float of type TYPE (e.g., TYPE = figure), the document style
+% must define the following.
+%
+% \fps@TYPE : The default placement specifier for floats of type TYPE.
+%
+% \ftype@TYPE : The type number for floats of type TYPE. Each TYPE has
+% associated a unique positive TYPE NUMBER, which is a power
+% of two. E.g., figures might have type number 1, tables type
+% number 2, programs type number 4, etc.
+%
+% \ext@TYPE : The file extension indicating the file on which the
+% contents list for float type TYPE is stored. For example,
+% \ext@figure = 'lof'.
+%
+% \fnum@TYPE : A macro to generate the figure number for a caption.
+% For example, \fnum@TYPE == Figure \thefigure.
+%
+% The actual float-making environment commands--e.g., the commands
+% \figure and \endfigure--are defined in terms of the macros \@float
+% and \end@float, which are described below.
+%
+% \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a
+% single-column float of type TYPE with PLACEMENT as the placement
+% specifier. The default value of PLACEMENT is defined by \fps@TYPE.
+% The environment is ended by \end@float.
+% E.g., \figure == \@float{figure}, \endfigure == \end@float.
+
+
+% FIGURE
+
+\newcounter{figure}
+\def\thefigure{\@arabic\c@figure}
+
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+\def\fnum@figure{Figur \thefigure}
+\def\figure{\@float{figure}}
+\let\endfigure\end@float
+\@namedef{figure*}{\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+
+% TABLE
+%
+\newcounter{table}
+\def\thetable{\@arabic\c@table}
+
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{Tabell \thetable}
+\def\table{\@float{table}}
+\let\endtable\end@float
+\@namedef{table*}{\@dblfloat{table}}
+\@namedef{endtable*}{\end@dblfloat}
+
+
+% ****************************************
+% * TITLE AND ABSTRACT *
+% ****************************************
+%
+
+% \maketitle ==
+% BEGIN
+% \par
+% \begingroup
+% redefine \@makefnmark so footnote marks take zero space (this make
+% centering look better)
+% \thefootnote == \fnsymbol{footnote} % to number by *, dagger, etc.
+% if @twocolumn = true
+% then \twocolumn[\@maketitle]
+% else \@maketitle
+% fi
+% \thispagestyle{plain}
+% \@thanks % \thanks defines \@thanks to have \footnotetext commands for
+% % producing footnotes.
+% \endgroup
+% END
+
+\def\maketitle{\par
+ \begingroup
+ \def\thefootnote{\fnsymbol{footnote}}
+ \def\@makefnmark{\hbox
+ to 0pt{$^{\@thefnmark}$\hss}}
+ \if@twocolumn
+ \twocolumn[\@maketitle]
+ \else \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle \fi\thispagestyle{plain}\@thanks
+ \endgroup
+ \setcounter{footnote}{0}
+ \let\maketitle\relax
+ \let\@maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
+
+\def\@maketitle{\newpage
+ \null
+ \vskip 2em % Vertical space above title.
+ \begin{center}
+ {\LARGE \@title \par} % Title set in \LARGE size.
+ \vskip 1.5em % Vertical space after title.
+ {\large % each author set in \large, in a
+ \lineskip .5em % tabular environment
+ \begin{tabular}[t]{c}\@author
+ \end{tabular}\par}
+ \vskip 1em % Vertical space after author.
+ {\large \@date} % Date set in \large size.
+\end{center}
+ \par
+ \vskip 1.5em} % Vertical space after date.
+
+\def\abstract{\if@twocolumn
+\section*{Sammanfattning}
+\else \small
+\begin{center}
+{\bf Sammanfattning\vspace{-.5em}\vspace{0pt}}
+\end{center}
+\quotation
+\fi}
+
+\def\endabstract{\if@twocolumn\else\endquotation\fi}
+
+
+% ****************************************
+% * PAGE STYLES *
+% ****************************************
+%
+% The page style 'foo' is defined by defining the command \ps@foo. This
+% command should make only local definitions. There should be no stray
+% spaces in the definition, since they could lead to mysterious extra
+% spaces in the output.
+%
+% The \ps@... command defines the macros \@oddhead, \@oddfoot,
+% \@evenhead, and \@evenfoot to define the running heads and
+% feet---e.g., \@oddhead is the macro to produce the contents of the
+% heading box for odd-numbered pages. It is called inside an \hbox of
+% width \textwidth.
+%
+% To make headings determined by the sectioning commands, the page style
+% defines the commands \sectionmark, ... , where
+% \sectionmark{TEXT} is called by \section to set a mark, and so on.
+% The \...mark commands and the \...head macros are defined with the
+% help of the following macros. (All the \...mark commands should be
+% initialized to no-ops.)
+%
+% MARKING CONVENTIONS:
+% LaTeX extends TeX's \mark facility by producing two kinds of marks
+% a 'left' and a 'right' mark, using the following commands:
+% \markboth{LEFT}{RIGHT} : Adds both marks.
+% \markright{RIGHT} : Adds a 'right' mark.
+% \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot
+% macro, gets the current 'left' mark. Works like TeX's
+% \botmark command.
+% \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot
+% macro, gets the current 'right' mark. Works like TeX's
+% \firstmark command.
+% The marking commands work reasonably well for right marks 'numbered
+% within' left marks--e.g., the left mark is changed by a \section command and
+% the right mark is changed by a \subsection command. However, it does
+% produce somewhat anomalous results if two \bothmark's occur on the same page.
+%
+% Commands like \tableofcontents that should set the marks in some page styles
+% use a \@mkboth command, which is \let by the pagestyle command (\ps@...)
+% to \markboth for setting the heading or \@gobbletwo to do nothing.
+
+\mark{{}{}} % Initializes TeX's marks
+
+% \ps@empty and \ps@plain defined in LATEX.TEX
+
+% Definition of 'headings' page style
+% Note the use of ##1 for parameter of \def\sectionmark inside the
+% \def\ps@headings.
+%
+
+\if@twoside % If two-sided printing.
+\def\ps@headings{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@evenhead{\rm \thepage\hfil \sl \leftmark}% Left heading.
+\def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage}% Right heading.
+\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection\hskip 1em\relax \fi ##1}}{}}%
+\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
+ \thesubsection\hskip 1em\relax \fi ##1}}}
+\else % If one-sided printing.
+\def\ps@headings{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@oddhead{\hbox {}\sl \rightmark \hfil \rm\thepage}% Heading.
+\def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection\hskip 1em\relax \fi ##1}}}}
+\fi
+
+% Definition of 'myheadings' page style.
+%
+\def\ps@myheadings{\let\@mkboth\@gobbletwo
+\def\@oddhead{\hbox{}\sl\rightmark \hfil \rm\thepage}%
+\def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark\hbox {}}%
+\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+
+
+% ****************************************
+% * MISCELLANEOUS *
+% ****************************************
+%
+% DATE
+%
+\def\today{\number\day\space\ifcase\month\or
+ januari\or februari\or mars\or april\or maj\or juni\or
+ juli\or augusti\or september\or oktober\or november\or december\fi
+ \space\number\year}
+
+
+% ****************************************
+% * INITIALIZATION *
+% ****************************************
+%
+% Default initializations
+
+\ps@plain % 'plain' page style
+\pagenumbering{arabic} % Arabic page numbers
+\onecolumn % Single-column.
+\if@twoside\else\raggedbottom\fi % Ragged bottom unless twoside option.
diff --git a/language/swedish/slatex/tde-macros/artikel.sst b/language/swedish/slatex/tde-macros/artikel.sst
new file mode 100644
index 0000000000..6b1bd63ab8
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/artikel.sst
@@ -0,0 +1,243 @@
+!typeout<Document Style `artikel'. Released 29 September 1986>
+!def!@ptsize<0>
+!@namedef<ds@11pt><!def!@ptsize<1>>
+!@namedef<ds@12pt><!def!@ptsize<2>>
+!def!ds@twoside<!@twosidetrue
+!@mparswitchtrue>
+!def!ds@draft<!overfullrule 5pt>
+!@options
+!input art1!@ptsize.sst!relax
+
+!def!labelenumi<!arabic<enumi>.>
+!def!theenumi<!arabic<enumi>>
+!def!labelenumii<(!alph<enumii>)>
+!def!theenumii<!alph<enumii>>
+!def!p@enumii<!theenumi>
+!def!labelenumiii<!roman<enumiii>.>
+!def!theenumiii<!roman<enumiii>>
+!def!p@enumiii<!theenumi(!theenumii)>
+!def!labelenumiv<!Alph<enumiv>.>
+!def!theenumiv<!Alph<enumiv>>
+!def!p@enumiv<!p@enumiii!theenumiii>
+!def!labelitemi<$!bullet$>
+!def!labelitemii<!bf -->
+!def!labelitemiii<$!ast$>
+!def!labelitemiv<$!cdot$>
+!def!verse<!let!!=!@centercr
+!list<><!itemsep!z@ !itemindent -1.5em!listparindent !itemindent
+!rightmargin!leftmargin!advance!leftmargin 1.5em>!item()>
+!let!endverse!endlist
+!def!quotation<!list<><!listparindent 1.5em
+!itemindent!listparindent
+!rightmargin!leftmargin !parsep 0pt plus 1pt>!item()>
+!let!endquotation=!endlist
+!def!quote<!list<><!rightmargin!leftmargin>!item()>
+!let!endquote=!endlist
+!def!descriptionlabel#1<!hspace!labelsep !bf #1>
+!def!description<!list<><!labelwidth!z@ !itemindent-!leftmargin
+!let!makelabel!descriptionlabel>>
+!let!enddescription!endlist
+
+!def!theequation<!arabic<equation>>
+!def!titlepage<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!else !newpage !fi !thispagestyle<empty>!c@page!z@>
+!def!endtitlepage<!if@restonecol!twocolumn !else !newpage !fi>
+!arraycolsep 5pt
+!tabcolsep 6pt
+!arrayrulewidth .4pt
+!doublerulesep 2pt
+!tabbingsep !labelsep
+!skip!@mpfootins = !skip!footins
+!fboxsep = 3pt
+!fboxrule = .4pt
+
+!newcounter<part>
+!newcounter <section>
+!newcounter <subsection>(section)
+!newcounter <subsubsection>(subsection)
+!newcounter <paragraph>(subsubsection)
+!newcounter <subparagraph>(paragraph)
+!def!thepart<!Roman<part>>
+!def!thesection <!arabic<section>>
+!def!thesubsection <!thesection.!arabic<subsection>>
+!def!thesubsubsection <!thesubsection .!arabic<subsubsection>>
+!def!theparagraph <!thesubsubsection.!arabic<paragraph>>
+!def!thesubparagraph <!theparagraph.!arabic<subparagraph>>
+
+!def!@pnumwidth<1.55em>
+!def!@tocrmarg <2.55em>
+!def!@dotsep<4.5>
+!setcounter<tocdepth><3>
+!def!tableofcontents<!section*<Inneh!aa<>ll!@mkboth
+<INNEH!AA<>LL><INNEH!AA<>LL>>
+!@starttoc<toc>>
+!def!l@part#1#2<!addpenalty<!@secpenalty>
+!addvspace<2.25em plus 1pt>
+!begingroup
+!@tempdima 3em
+!parindent !z@ !rightskip !@pnumwidth
+!parfillskip -!@pnumwidth
+<!large !bf
+!leavevmode
+#1!hfil !hbox to!@pnumwidth<!hss #2>>!par
+!nobreak
+!endgroup>
+!def!l@section#1#2<!addpenalty<!@secpenalty>
+!addvspace<1.0em plus 1pt>
+!@tempdima 1.5em
+!begingroup
+!parindent !z@ !rightskip !@pnumwidth
+!parfillskip -!@pnumwidth
+!bf
+!leavevmode
+#1!hfil !hbox to!@pnumwidth<!hss #2>!par
+!endgroup>
+!def!l@subsection<!@dottedtocline<2><1.5em><2.3em>>
+!def!l@subsubsection<!@dottedtocline<3><3.8em><3.2em>>
+!def!l@paragraph<!@dottedtocline<4><7.0em><4.1em>>
+!def!l@subparagraph<!@dottedtocline<5><10em><5em>>
+!def!listoffigures<!section*<Figurf!"orteckning!@mkboth
+<FIGURF!"ORTECKNING><FIGURF!"ORTECKNING>>!@starttoc<lof>>
+!def!l@figure<!@dottedtocline<1><1.5em><2.3em>>
+!def!listoftables<!section*<Tabellf!"orteckning!@mkboth
+<TABELLF!"ORTECKNING><TABELLF!"ORTECKNING>>!@starttoc<lot>>
+!let!l@table!l@figure
+
+!def!thebibliography#1<!section*<Referenser!@mkboth
+<REFERENSER><REFERENSER>>!list
+<!lbrack<>!arabic<enumi>!rbrack<>><!settowidth!labelwidth<!lbrack<>#1!rbrack<>>!leftmargin!labelwidth
+!advance!leftmargin!labelsep
+!usecounter<enumi>>
+!def!newblock<!hskip .11em plus .33em minus -.07em>
+!sloppy
+!sfcode`!.=1000!relax>
+!let!endthebibliography=!endlist
+
+!newif!if@restonecol
+!def!theindex<!@restonecoltrue!if@twocolumn!@restonecolfalse!fi
+!columnseprule !z@
+!columnsep 35pt!twocolumn(!section*<Register>)
+!@mkboth<REGISTER><REGISTER>!thispagestyle<plain>!parindent!z@
+!parskip!z@ plus .3pt!relax!let!item!@idxitem>
+!def!@idxitem<!par!hangindent 40pt>
+!def!subitem<!par!hangindent 40pt !hspace*<20pt>>
+!def!subsubitem<!par!hangindent 40pt !hspace*<30pt>>
+!def!endtheindex<!if@restonecol!onecolumn!else!clearpage!fi>
+!def!indexspace<!par !vskip 10pt plus 5pt minus 3pt!relax>
+
+!def!footnoterule<!kern-3!p@
+!hrule width .4!columnwidth
+!kern 2.6!p@>
+!long!def!@makefntext#1<!parindent 1em!noindent
+!hbox to 1.8em<!hss$^<!@thefnmark>$>#1>
+
+!setcounter<topnumber><2>
+!def!topfraction<.7>
+!setcounter<bottomnumber><1>
+!def!bottomfraction<.3>
+!setcounter<totalnumber><3>
+!def!textfraction<.2>
+!def!floatpagefraction<.5>
+!setcounter<dbltopnumber><2>
+!def!dbltopfraction<.7>
+!def!dblfloatpagefraction<.5>
+!long!def!@makecaption#1#2<
+!vskip 10pt
+!setbox!@tempboxa!hbox<#1: #2>
+!ifdim !wd!@tempboxa !>!hsize
+!unhbox!@tempboxa!par
+!else
+!hbox to!hsize<!hfil!box!@tempboxa!hfil>
+!fi>
+!newcounter<figure>
+!def!thefigure<!@arabic!c@figure>
+!def!fps@figure<tbp>
+!def!ftype@figure<1>
+!def!ext@figure<lof>
+!def!fnum@figure<Figur !thefigure>
+!def!figure<!@float<figure>>
+!let!endfigure!end@float
+!@namedef<figure*><!@dblfloat<figure>>
+!@namedef<endfigure*><!end@dblfloat>
+!newcounter<table>
+!def!thetable<!@arabic!c@table>
+!def!fps@table<tbp>
+!def!ftype@table<2>
+!def!ext@table<lot>
+!def!fnum@table<Tabell !thetable>
+!def!table<!@float<table>>
+!let!endtable!end@float
+!@namedef<table*><!@dblfloat<table>>
+!@namedef<endtable*><!end@dblfloat>
+
+!def!maketitle<!par
+!begingroup
+!def!thefootnote<!fnsymbol<footnote>>
+!def!@makefnmark<!hbox
+to 0pt<$^<!@thefnmark>$!hss>>
+!if@twocolumn
+!twocolumn(!@maketitle)
+!else !newpage
+!global!@topnum!z@
+!@maketitle !fi!thispagestyle<plain>!@thanks
+!endgroup
+!setcounter<footnote><0>
+!let!maketitle!relax
+!let!@maketitle!relax
+!gdef!@thanks<>!gdef!@author<>!gdef!@title<>!let!thanks!relax>
+!def!@maketitle<!newpage
+!null
+!vskip 2em
+!begin<center>
+<!LARGE !@title !par>
+!vskip 1.5em
+<!large
+!lineskip .5em
+!begin<tabular>(t)<c>!@author
+!end<tabular>!par>
+!vskip 1em
+<!large !@date>
+!end<center>
+!par
+!vskip 1.5em>
+!def!abstract<!if@twocolumn
+!section*<Sammanfattning>
+!else !small
+!begin<center>
+<!bf Sammanfattning!vspace<-.5em>!vspace<0pt>>
+!end<center>
+!quotation
+!fi>
+!def!endabstract<!if@twocolumn!else!endquotation!fi>
+
+!mark<<><>>
+!if@twoside
+!def!ps@headings<!let!@mkboth!markboth
+!def!@oddfoot<>!def!@evenfoot<>%
+!def!@evenhead<!rm !thepage!hfil !sl !leftmark>%
+!def!@oddhead<!hbox<>!sl !rightmark !hfil !rm!thepage>%
+!def!sectionmark##1<!markboth <!uppercase<!ifnum !c@secnumdepth !>!z@
+!thesection!hskip 1em!relax !fi ##1>><>>%
+!def!subsectionmark##1<!markright <!ifnum !c@secnumdepth !>!@ne
+!thesubsection!hskip 1em!relax !fi ##1>>>
+!else
+!def!ps@headings<!let!@mkboth!markboth
+!def!@oddfoot<>!def!@evenfoot<>%
+!def!@oddhead<!hbox <>!sl !rightmark !hfil !rm!thepage>%
+!def!sectionmark##1<!markright <!uppercase<!ifnum !c@secnumdepth !>!z@
+!thesection!hskip 1em!relax !fi ##1>>>>
+!fi
+!def!ps@myheadings<!let!@mkboth!@gobbletwo
+!def!@oddhead<!hbox<>!sl!rightmark !hfil !rm!thepage>%
+!def!@oddfoot<>!def!@evenhead<!rm !thepage!hfil!sl!leftmark!hbox <>>%
+!def!@evenfoot<>!def!sectionmark##1<>!def!subsectionmark##1<>>
+
+!def!today<!number!day!space!ifcase!month!or
+januari!or februari!or mars!or april!or maj!or juni!or
+juli!or augusti!or september!or oktober!or november!or december!fi
+!space!number!year>
+
+!ps@plain
+!pagenumbering<arabic>
+!onecolumn
+!if@twoside!else!raggedbottom!fi
diff --git a/language/swedish/slatex/tde-macros/artikel.sty b/language/swedish/slatex/tde-macros/artikel.sty
new file mode 100644
index 0000000000..fc9d84ddc0
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/artikel.sty
@@ -0,0 +1,243 @@
+\typeout{Document Style `artikel'. Released 29 September 1986}
+\def\@ptsize{0}
+\@namedef{ds@11pt}{\def\@ptsize{1}}
+\@namedef{ds@12pt}{\def\@ptsize{2}}
+\def\ds@twoside{\@twosidetrue
+\@mparswitchtrue}
+\def\ds@draft{\overfullrule 5pt}
+\@options
+\input art1\@ptsize.sty\relax
+
+\def\labelenumi{\arabic{enumi}.}
+\def\theenumi{\arabic{enumi}}
+\def\labelenumii{(\alph{enumii})}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+\def\labelenumiii{\roman{enumiii}.}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+\def\labelenumiv{\Alph{enumiv}.}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+\def\verse{\let\\=\@centercr
+\list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
+\rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
+\let\endverse\endlist
+\def\quotation{\list{}{\listparindent 1.5em
+\itemindent\listparindent
+\rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
+\let\endquotation=\endlist
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote=\endlist
+\def\descriptionlabel#1{\hspace\labelsep \bf #1}
+\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
+\let\makelabel\descriptionlabel}}
+\let\enddescription\endlist
+
+\def\theequation{\arabic{equation}}
+\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+\else \newpage \fi \thispagestyle{empty}\c@page\z@}
+\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi}
+\arraycolsep 5pt
+\tabcolsep 6pt
+\arrayrulewidth .4pt
+\doublerulesep 2pt
+\tabbingsep \labelsep
+\skip\@mpfootins = \skip\footins
+\fboxsep = 3pt
+\fboxrule = .4pt
+
+\newcounter{part}
+\newcounter {section}
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+\def\thepart{\Roman{part}}
+\def\thesection {\arabic{section}}
+\def\thesubsection {\thesection.\arabic{subsection}}
+\def\thesubsubsection {\thesubsection .\arabic{subsubsection}}
+\def\theparagraph {\thesubsubsection.\arabic{paragraph}}
+\def\thesubparagraph {\theparagraph.\arabic{subparagraph}}
+
+\def\@pnumwidth{1.55em}
+\def\@tocrmarg {2.55em}
+\def\@dotsep{4.5}
+\setcounter{tocdepth}{3}
+\def\tableofcontents{\section*{Inneh\aa{}ll\@mkboth
+{INNEH\AA{}LL}{INNEH\AA{}LL}}
+\@starttoc{toc}}
+\def\l@part#1#2{\addpenalty{\@secpenalty}
+\addvspace{2.25em plus 1pt}
+\begingroup
+\@tempdima 3em
+\parindent \z@ \rightskip \@pnumwidth
+\parfillskip -\@pnumwidth
+{\large \bf
+\leavevmode
+#1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+\nobreak
+\endgroup}
+\def\l@section#1#2{\addpenalty{\@secpenalty}
+\addvspace{1.0em plus 1pt}
+\@tempdima 1.5em
+\begingroup
+\parindent \z@ \rightskip \@pnumwidth
+\parfillskip -\@pnumwidth
+\bf
+\leavevmode
+#1\hfil \hbox to\@pnumwidth{\hss #2}\par
+\endgroup}
+\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
+\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
+\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
+\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
+\def\listoffigures{\section*{Figurf\"orteckning\@mkboth
+{FIGURF\"ORTECKNING}{FIGURF\"ORTECKNING}}\@starttoc{lof}}
+\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
+\def\listoftables{\section*{Tabellf\"orteckning\@mkboth
+{TABELLF\"ORTECKNING}{TABELLF\"ORTECKNING}}\@starttoc{lot}}
+\let\l@table\l@figure
+
+\def\thebibliography#1{\section*{Referenser\@mkboth
+{REFERENSER}{REFERENSER}}\list
+{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
+\advance\leftmargin\labelsep
+\usecounter{enumi}}
+\def\newblock{\hskip .11em plus .33em minus -.07em}
+\sloppy
+\sfcode`\.=1000\relax}
+\let\endthebibliography=\endlist
+
+\newif\if@restonecol
+\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+\columnseprule \z@
+\columnsep 35pt\twocolumn[\section*{Register}]
+\@mkboth{REGISTER}{REGISTER}\thispagestyle{plain}\parindent\z@
+\parskip\z@ plus .3pt\relax\let\item\@idxitem}
+\def\@idxitem{\par\hangindent 40pt}
+\def\subitem{\par\hangindent 40pt \hspace*{20pt}}
+\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}}
+\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
+\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}
+
+\def\footnoterule{\kern-3\p@
+\hrule width .4\columnwidth
+\kern 2.6\p@}
+\long\def\@makefntext#1{\parindent 1em\noindent
+\hbox to 1.8em{\hss$^{\@thefnmark}$}#1}
+
+\setcounter{topnumber}{2}
+\def\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\def\textfraction{.2}
+\def\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+\long\def\@makecaption#1#2{
+\vskip 10pt
+\setbox\@tempboxa\hbox{#1: #2}
+\ifdim \wd\@tempboxa >\hsize
+\unhbox\@tempboxa\par
+\else
+\hbox to\hsize{\hfil\box\@tempboxa\hfil}
+\fi}
+\newcounter{figure}
+\def\thefigure{\@arabic\c@figure}
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+\def\fnum@figure{Figur \thefigure}
+\def\figure{\@float{figure}}
+\let\endfigure\end@float
+\@namedef{figure*}{\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+\newcounter{table}
+\def\thetable{\@arabic\c@table}
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{Tabell \thetable}
+\def\table{\@float{table}}
+\let\endtable\end@float
+\@namedef{table*}{\@dblfloat{table}}
+\@namedef{endtable*}{\end@dblfloat}
+
+\def\maketitle{\par
+\begingroup
+\def\thefootnote{\fnsymbol{footnote}}
+\def\@makefnmark{\hbox
+to 0pt{$^{\@thefnmark}$\hss}}
+\if@twocolumn
+\twocolumn[\@maketitle]
+\else \newpage
+\global\@topnum\z@
+\@maketitle \fi\thispagestyle{plain}\@thanks
+\endgroup
+\setcounter{footnote}{0}
+\let\maketitle\relax
+\let\@maketitle\relax
+\gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
+\def\@maketitle{\newpage
+\null
+\vskip 2em
+\begin{center}
+{\LARGE \@title \par}
+\vskip 1.5em
+{\large
+\lineskip .5em
+\begin{tabular}[t]{c}\@author
+\end{tabular}\par}
+\vskip 1em
+{\large \@date}
+\end{center}
+\par
+\vskip 1.5em}
+\def\abstract{\if@twocolumn
+\section*{Sammanfattning}
+\else \small
+\begin{center}
+{\bf Sammanfattning\vspace{-.5em}\vspace{0pt}}
+\end{center}
+\quotation
+\fi}
+\def\endabstract{\if@twocolumn\else\endquotation\fi}
+
+\mark{{}{}}
+\if@twoside
+\def\ps@headings{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{}%
+\def\@evenhead{\rm \thepage\hfil \sl \leftmark}%
+\def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage}%
+\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\z@
+\thesection\hskip 1em\relax \fi ##1}}{}}%
+\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
+\thesubsection\hskip 1em\relax \fi ##1}}}
+\else
+\def\ps@headings{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{}%
+\def\@oddhead{\hbox {}\sl \rightmark \hfil \rm\thepage}%
+\def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
+\thesection\hskip 1em\relax \fi ##1}}}}
+\fi
+\def\ps@myheadings{\let\@mkboth\@gobbletwo
+\def\@oddhead{\hbox{}\sl\rightmark \hfil \rm\thepage}%
+\def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark\hbox {}}%
+\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+\def\today{\number\day\space\ifcase\month\or
+januari\or februari\or mars\or april\or maj\or juni\or
+juli\or augusti\or september\or oktober\or november\or december\fi
+\space\number\year}
+
+\ps@plain
+\pagenumbering{arabic}
+\onecolumn
+\if@twoside\else\raggedbottom\fi
diff --git a/language/swedish/slatex/tde-macros/brev.doc b/language/swedish/slatex/tde-macros/brev.doc
new file mode 100644
index 0000000000..0efb1846f5
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/brev.doc
@@ -0,0 +1,859 @@
+%
+% $Header: brev.doc,v 1.3 86/09/29 23:18:20 sven Exp $
+%------------------------------------------------------------------
+%
+% $Source: /usr.MC68020/piraten/sven/lib/tex/RCS/brev.doc,v $
+% $Revision: 1.3 $
+% $Date: 86/09/29 23:18:20 $
+% $State: Exp $
+% $Author: sven $
+% $Locker: $
+%
+%------------------------------------------------------------------
+% $Log: brev.doc,v $
+% Revision 1.3 86/09/29 23:18:20 sven
+% Brev.doc version 2.09
+%
+% Revision 1.2 86/05/30 08:56:52 sven
+% Added bil and kopia commands -- Swedish versions of encl and cc.
+%
+% Revision 1.1 85/12/19 21:22:19 sven
+% Initial revision
+%
+%------------------------------------------------------------------
+%
+% LETTER DOCUMENT STYLE -- Released 21 July 1985
+% for LaTeX version 2.09
+% Copyright (C) 1985 by Leslie Lamport
+
+\typeout{Document Style 'brev'. Released 22 September 1986}
+
+% The type size option is handled by \def'ing \@ptsize to the following
+% values:
+% 10pt : 0, 11pt : 1, 12pt : 2
+% Then loading the different fonts accordingly.
+%
+
+\def\@ptsize{0} % Default is 10pt.
+\@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option.
+\@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option.
+
+
+% no twoside option
+%
+\@twosidefalse
+
+% draft option
+%
+% \overfullrule = 0pt % Default is don't mark overfull hboxes.
+\def\ds@draft{\overfullrule 5pt} % Causes overfull hboxes to be marked.
+
+% The \@options command causes the execution of every command \ds@FOO
+% which is defined and for which the user typed the FOO option in his
+% \documentstyle command. For every option BAR he typed for which
+% \ds@BAR is not defined, the file BAR.sty will be read after the present
+% (main) .STY file is executed.
+
+\@options
+
+% ****************************************
+% * FONTS *
+% ****************************************
+%
+
+\lineskip 1pt % \lineskip is 1pt for all font sizes.
+\normallineskip 1pt
+\def\baselinestretch{1}
+
+% Each size-changing command \SIZE executes the command
+% \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE
+% where:
+% BASELINESKIP = Normal value of \baselineskip for that size. (Actual
+% value will be \baselinestretch * BASELINESKIP.)
+%
+% \FONTSIZE = Name of font-size command. The currently available
+% (preloaded) font sizes are: \vpt (5pt), \vipt (6pt),
+% \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt,
+% \xivpt, \xviipt, \xxpt, \xxvpt.
+% \@FONTSIZE = The same as the font-size command except with an
+% '@' in front---e.g., if \FONTSIZE = \xivpt then
+% \@FONTSIZE = \@xivpt.
+%
+% For reasons of efficiency that needn't concern the designer,
+% the document style defines \@normalsize instead of \normalsize . This is
+% done only for \normalsize, not for any other size-changing commands.
+
+\ifcase \@ptsize\relax % 10pt option
+
+\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
+\abovedisplayskip 10pt plus2pt minus5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6pt plus3pt minus3pt}
+
+\def\small{\@setsize\small{11pt}\ixpt\@ixpt
+\abovedisplayskip 8.5pt plus 3pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus2pt%
+\belowdisplayshortskip 4pt plus2pt minus 2pt}
+
+\def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt
+\abovedisplayskip 6pt plus 2pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus 1pt%
+\belowdisplayshortskip 3pt plus 1pt minus 2pt}
+
+\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+
+\or % 11pt option
+
+\def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt
+\abovedisplayskip 11pt plus3pt minus6pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt}
+
+\def\small{\@setsize\small{12pt}\xpt\@xpt
+\abovedisplayskip 10pt plus2pt minus5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6pt plus3pt minus3pt}
+
+\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
+\abovedisplayskip 8pt plus 2pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus 1pt%
+\belowdisplayshortskip 4pt plus 2pt minus 2pt}
+
+\def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
+\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+
+\or % 12pt option
+
+\def\@normalsize{\@setsize\normalsize{15pt}\xiipt\@xiipt
+\abovedisplayskip 12pt plus3pt minus7pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt}
+
+\def\small{\@setsize\small{13.6pt}\xipt\@xipt
+\abovedisplayskip 11pt plus3pt minus6pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt}
+
+\def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
+\abovedisplayskip 10pt plus2pt minus5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6pt plus3pt minus3pt}
+
+\def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
+\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+\def\large{\@setsize\large{18pt}\xivpt\@xivpt}
+\def\Large{\@setsize\Large{22pt}\xviipt\@xviipt}
+\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
+\def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt}
+\let\Huge=\huge
+\fi
+
+\normalsize % Choose the normalsize font.
+
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+%
+% All margin dimensions measured from a point one inch from top and side
+% of page. Dimensions shrink by about 2 percent
+
+% SIDE MARGINS:
+\oddsidemargin 84pt % Left margin on odd-numbered pages.
+\evensidemargin 84pt % Left margin on even-numbered pages.
+\marginparwidth 59pt % Width of marginal notes.
+\marginparsep 11pt % Horizontal space between outer margin and
+ % marginal note
+\marginparpush 5pt % Minimum vertical space between marginal notes.
+
+% VERTICAL SPACING:
+ % Top of page:
+\topmargin 27pt % Nominal distance from top of page to top of
+ % box containing running head.
+\headheight 12pt % Height of box containing running head.
+\headsep 45pt % Space between running head and text.
+% \topskip = 10pt % '\baselineskip' for first line of page.
+ % Bottom of page:
+\footheight 12pt % Height of box containing running foot.
+\footskip 25pt % Distance from baseline of box containing foot
+ % to baseline of last line of text.
+
+% DIMENSION OF TEXT:
+
+\textheight 505pt % Height of text (including footnotes and figures,
+ % excluding running head and foot).
+\textwidth 331pt % Width of text line.
+ % For two-column mode:
+\columnsep 10pt % Space between columns
+\columnseprule 0pt % Width of rule between columns.
+
+\raggedbottom % 'ragged bottom' (all pages set to natural
+ % height, with no stretch or shrinkage)
+
+% FOOTNOTES:
+
+\footnotesep 12pt % Height of strut placed at the beginning of every
+ % footnote.
+\skip\footins 10pt plus 2pt minus 4pt % Space between last line of text and
+ % top of first footnote.
+
+
+% FLOATS:
+% The following items must be defined, even though there are no
+% floats in this style.
+\floatsep 12pt plus 2pt minus 2pt
+\textfloatsep 20pt plus 2pt minus 4pt
+\intextsep 12pt plus 2pt minus 2pt
+\dblfloatsep 12pt plus 2pt minus 2pt
+\dbltextfloatsep 20pt plus 2pt minus 4pt
+\@maxsep 20pt
+\@dblmaxsep 20pt
+\@fptop 0pt plus 1fil
+\@fpsep 8pt plus 2fil
+\@fpbot 0pt plus 1fil
+\@dblfptop 0pt plus 1fil
+\@dblfpsep 8pt plus 2fil
+\@dblfpbot 0pt plus 1fil
+
+
+
+% ****************************************
+% * LETTER COMMANDS *
+% ****************************************
+%
+% The following declarations, shown with examples, give information about the
+% sender:
+%
+% \name{Dr. L. User} : to be used for the return address on the envelope.
+% \signature{Larry User} : goes after the closing.
+% \address{3245 Foo St.\\Gnu York} : used as the return address in the letter
+% and on the envelope. If not declared, then an institutional
+% standard address is used.
+% \location{Room 374} : Acts as modifier to the standard institutional address.
+% \telephone{(415)123-4567} : Just in case some style puts it on the letter.
+%
+% The \makelabels declaration causes mailing labels to be made. It must
+% go before the \begin{document} command.
+%
+% The letter environment: creates a new letter, starting from page 1.
+% (The first page is unnumbered.) It has a single argument, which
+% is the adressee and his address, as in
+% \begin{letter}{Sam Jones \\
+% Institute for Retarded Study\\ Princeton, N.J.}
+%
+% Local declarations, such as \address, can follow the \begin{letter}.
+%
+% Text is begun with the \opening command, whose argument generates the
+% salutation, as in
+% \opening{Dear Henry,}
+% The body of the letter follows, ended by a \closing command, as in
+% \closing{Yours truly,}
+% The 'signature' is provided automatically.
+%
+% After the \closing you can put arbitrary stuff, which is typeset
+% with \parindent = 0 and no page breaking. Commands designed
+% for use after the closing are:
+%
+% \cc{Tinker\\Evers\\Chance} -- which produces:
+% cc: Tinker
+% Evers
+% Chance
+%
+% \encl{Foo(2)\\Bar} -- which produces:
+% encl: Foo(2)
+% Bar
+%
+%
+% DOCUMENT STYLE PARAMETERS AND COMMANDS. CHANGE THESE TO
+% CUSTOMIZE LETTER STYLE.
+%
+% \opening{Dear Mr. Foo:}- Command to produce everything up to and including
+% Should produce everything up to and including the 'Dear Mr. Foo:'
+% and a \par command that follows. Since there's a \vfil at the bottom
+% of every page, it can add vertical fil to position a short letter.
+% It should use the following commands:
+%
+% \toname : name part of 'to' address. Will be one line long.
+% \toaddress : address part of 'to' address. Lines separated by \\.
+% \fromname : name of sender.
+% \fromaddress : argument of current \address declaration--null if none.
+% Should use standard institutional address if null.
+% \fromlocation : argument of current \location declaration--null if none.
+% \telephonenum : argument of current \telephone declaration--null if none.
+%
+% Note that \ifx\foo\@empty tests for a null value of \foo.
+%
+% \closing{TXT} : Generates the closing matter, and the signature.
+% An obvious thing to do is to use a \parbox for the closing
+% and the signature. Should use the following:
+%
+% \fromsig : argument of current \signature declaration or, if null,
+% the \fromname .
+% \stopbreaks : a macro that inhibits page breaking.
+%
+% \cc{ARG} and \encl{ARG} : obvious use of a \parbox[t] .
+%
+% \ps : The only thing that this needs to do is call \startbreaks, which
+% allows page breaking again.
+%
+% \stopletter : Command called by \endletter to do the following:
+% * Add any desired fil or other material at the end of the letter.
+% * Define \returnaddress to be the return address for the mailing label.
+% More precisely, it is the first argument of the \mlabel command
+% described below. It should be \def'd to null if the return address
+% doesn't appear on the labels. Any command, other than \\, that
+% should not be expanded until the \mlabel command is actually
+% executed must be preceded by \protect. Whenever possible,
+% \protect commands in the definition of \returnaddress---it's
+% much more efficient that way. In particular, when the standard
+% return address is used, you should \def \returnaddress to something
+% like \protect\standardreturnaddress .
+%
+% CUSTOMIZING THE LABELS
+%
+% Commands for generating the labels are put on the .AUX file, which is
+% read in and processed by the \end{document} command. You have to
+% define the following two commands:
+%
+% \startlabels : Should reset the page layout parameters if necessary.
+%
+% \mlabel{RETURN ADDRESS}{TO ADRESS} : Command to generate a single
+% label.
+%
+
+
+% ****************************************
+% * THE SRI LETTER FORMAT *
+% ****************************************
+%
+% Much of the following is copied from the letter format in the TeXbook.
+
+\advance\textwidth 15mm
+\newdimen\longindentation
+\longindentation=80mm %.5\textwidth
+\newdimen\indentedwidth
+
+
+\def\opening#1{\indentedwidth=\textwidth
+ \advance\indentedwidth -\longindentation
+ \noindent\hspace*{\longindentation}\today\par
+ \ifx\@empty\fromaddress
+ \thispagestyle{firstpage}
+ \else % home address
+ \thispagestyle{empty}\noindent
+ \parbox[t]{\longindentation}{\everypar{\hangindent2em}\sloppy
+ \raggedright \fromname \\ \fromaddress}\par
+ \fi
+ \vspace{2\parskip}\noindent
+ \hspace*{\longindentation}\parbox
+ {\indentedwidth}{\everypar{\hangindent2em}\sloppy
+ \raggedright\toname \\ \toaddress}\par
+ \vspace{2\parskip}
+ #1\par\nobreak}
+
+\long\def\closing#1{\par\nobreak\vspace{\parskip}
+ \stopbreaks
+ \noindent\raggedright
+ \hspace*{\longindentation}\parbox
+ {\indentedwidth}{\everypar{\hangindent2em}\raggedright
+ \ignorespaces #1\\[6\parskip]
+ \ifx\@empty\fromsig
+ \fromname
+ \else \fromsig \fi\strut}
+ \par}
+
+
+\def\ps{\par\startbreaks}
+
+\def\cc#1{\par\noindent
+\parbox[t]{\textwidth}{\@hangfrom{\rm cc: }\ignorespaces #1\strut}\par}
+
+\def\kopia#1{\par\noindent
+\parbox[t]{\textwidth}{\@hangfrom{\rm kopia: }\ignorespaces #1\strut}\par}
+
+\def\encl#1{\par\noindent
+\parbox[t]{\textwidth}{\@hangfrom{\rm encl: }\ignorespaces #1\strut}\par}
+
+\def\bil#1{\par\noindent
+\parbox[t]{\textwidth}{\@hangfrom{\rm bil: }\ignorespaces #1\strut}\par}
+
+\def\stopletter{}
+
+% Labels
+
+\def\returnaddress{}
+\newcount\labelcount
+
+
+% The following \startlabels command sets things up for producing
+% labels in two columns of five 2" X 4-1/4" labels each, suitable
+% for reproducing onto Avery brand number 5352 address labels.
+
+\def\startlabels{\labelcount=0 \baselineskip=0pt \lineskip=0pt
+\pagestyle{empty}
+\let\@texttop=\relax
+\topmargin -50pt
+\headsep 0pt
+\oddsidemargin -35pt
+\evensidemargin -35pt
+\textheight 10in
+\@colht\textheight \@colroom\textheight \vsize\textheight
+\textwidth 550pt
+\columnsep 25pt
+\xpt
+\baselineskip=0pt
+\lineskip=0pt
+\boxmaxdepth=0pt
+\twocolumn\relax}
+
+\def\mlabel#1#2{\setbox0\vbox{\parbox[b]{3.6in}{\strut\ignorespaces #2}}
+ \vbox to 2in{\vss \box0 \vss}}
+
+
+
+% ****************************************
+% * THE GENERIC LETTER COMMANDS *
+% ****************************************
+%
+
+
+
+\long\def\letter#1{\newpage
+ \c@page\@ne
+ \interlinepenalty=200 % smaller than the TeXbook value
+ \@processto{#1}}
+
+\def\endletter{\stopletter\@@par\pagebreak\@@par
+ \if@filesw
+ \begingroup
+ \def\protect{\string}
+ \let\\=\relax
+ \def\protect##1{\string##1\space}
+ \immediate\write\@auxout{\string\mlabel{\returnaddress}{\toname
+ \\\toaddress}}
+ \endgroup
+ \fi}
+
+% \@processto gets the \toname and \toaddress from the letter
+% environment's macro.
+%
+\long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty
+ \else \@yproc #1@@@\fi}
+\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
+\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
+
+\def\stopbreaks{\interlinepenalty \@M
+ \def\par{\@@par\nobreak}\let\\=\@nobreakcr
+ \let\vspace\@nobreakvspace}
+
+\def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
+
+\def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else
+ \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
+
+\def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}}
+
+\def\startbreaks{\let\\=\@normalcr
+ \interlinepenalty 200\def\par{\@@par\penalty 200}}
+
+\def\name#1{\def\fromname{#1}}
+
+\def\signature#1{\def\fromsig{#1}}
+\def\fromsig{}
+
+\long\def\address#1{\def\fromaddress{#1}}
+\def\fromaddress{}
+
+\def\location#1{\def\fromlocation{#1}}
+\def\fromlocation{}
+
+\def\telephone#1{\def\telephonenum{#1}}
+\def\telephonenum{}
+
+% \document redefined so it writes '\startlabels\@startlabels' on the
+% AUX file if it's making one.
+%
+\def\document{\endgroup
+ \@colht\textheight \@colroom\textheight \vsize\textheight
+ \columnwidth\textwidth \@clubpenalty\clubpenalty
+ \if@twocolumn \advance\columnwidth -\columnsep
+ \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
+ \fi
+ \hsize\columnwidth \linewidth\hsize
+ \begingroup\@floatplacement\@dblfloatplacement\endgroup
+ \if@filesw \immediate\openout\@mainaux=\jobname.aux
+ \immediate\write\@mainaux{\string\startlabels\string\@startlabels}\fi
+ \def\do##1{\let ##1\@notprerr}
+ \@preamblecmds
+ \let\do\noexpand
+ \@normalsize\everypar{}}
+
+% Redefine \enddocument so it outputs the last page of labels, if necessary.
+%
+\def\enddocument{\@checkend{document}\newpage\begingroup
+\if@filesw \immediate\closeout\@mainaux
+\makeatletter\input \jobname.aux\clearpage
+\fi\endgroup\deadcycles\z@\@@end}
+
+
+\def\makelabels{\@fileswtrue}
+
+\def\@startlabels{}
+
+
+
+% ****************************************
+% * PAGE STYLES *
+% ****************************************
+%
+
+% The letter style sets \@texttop to \vskip 0pt plus .00006fil on
+% the first page of a letter, which centers a short letter on the page.
+% This fil value may have to be changed for other letterheads.
+
+\def\@texttop{\ifnum\c@page=1\vskip 0pt plus .00006fil\relax\fi}
+
+\def\ps@headings{\def\@oddhead{\sl To \ignorespaces\toname \hfil \today
+ \hfil Page \thepage}\def\@oddfoot{}}
+
+\def\ps@empty{\def\@oddhead{}\def\@oddfoot{}%
+\def\@evenhead{}\def\@evenfoot{}}
+
+
+% The firstpage heading style puts the telephone number
+% in the proper place for the SRI letterhead. It must be changed for
+% other sites.
+
+\def\ps@firstpage{\def\@oddhead{}\def\@oddfoot{\raisebox
+ {-45pt}[0pt]{\hbox to \textwidth
+ {\hspace*{100pt}\xpt\fromlocation \hfill \telephonenum}}\hss}%
+\def\@evenhead{}\def\@evenfoot{}}
+
+\def\ps@plain{\def\@oddhead{\rm\hfil\thepage}\def\@oddfoot{}%
+\let\@evenhead\@oddhead\let\@evenfoot\@oddfoot}
+
+
+% ****************************************
+% * PARAGRAPHING *
+% ****************************************
+%
+\parskip .7em % Extra vertical space between paragraphs.
+\parindent 0pt % Width of paragraph indentation.
+\topsep .4em % Extra vertical space, in addition to
+ % \parskip, added above and below list and
+ % paragraphing environments.
+\partopsep 0pt % Extra vertical space, in addition to
+ % \parskip and \topsep, added when user
+ % leaves blank line before environment.
+\itemsep .4em % Extra vertical space, in addition to
+ % \parskip, added between list items.
+
+% The following page-breaking penalties are defined
+
+\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
+\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
+\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
+
+\@beginparpenalty -\@lowpenalty % Before a list or paragraph environment.
+\@endparpenalty -\@lowpenalty % After a list or paragraph environment.
+\@itempenalty -\@lowpenalty % Between list items.
+
+% \clubpenalty % 'Club line' at bottom of page.
+% \widowpenalty % 'Widow line' at top of page.
+% \displaywidowpenalty % Math display widow line.
+% \predisplaypenalty % Breaking before a math display.
+% \postdisplaypenalty % Breaking after a math display.
+% \interlinepenalty % SET BY THE LETTER COMMANDS
+% \brokenpenalty % Breaking after a hyphenated line.
+
+
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% The following commands are used to set the default values for the list
+% environment's parameters. See the LaTeX manual for an explanation of
+% the meanings of the parameters. Defaults for the list environment are
+% set as follows. First, \rightmargin, \listparindent and \itemindent
+% are set to 0pt. Then, for a Kth level list, the command \@listK is
+% called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is
+% called for a third-level list.) By convention, \@listK should set
+% \leftmargin to \leftmarginK.
+%
+% For efficiency, level-one list's values are defined at top level, and
+% \@listi is defined to be a no-op.
+
+\leftmargini 2.5em
+\leftmarginii 2.2em % > \labelsep + width of '(m)'
+\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
+\leftmarginiv 1.7em % > \labelsep + width of 'M.'
+\leftmarginv 1em
+\leftmarginvi 1em
+
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+\labelsep 5pt
+\parsep 0pt
+\let\@listi\relax
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep .2em
+ \itemsep \topsep}
+
+\def\@listiv{\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv\advance\labelwidth-\labelsep}
+
+\def\@listv{\leftmargin\leftmarginv
+ \labelwidth\leftmarginv\advance\labelwidth-\labelsep}
+
+\def\@listvi{\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi\advance\labelwidth-\labelsep}
+
+% ENUMERATE
+% Enumeration is done with four counters: enumi, enumii, enumiii
+% and enumiv, where enumN controls the numbering of the Nth level
+% enumeration. The label is generated by the commands \labelenumi
+% ... \labelenumiv. The expansion of \p@enumN\theenumN defines the
+% output of a \ref command.
+
+\def\labelenumi{\arabic{enumi}.}
+\def\theenumi{\arabic{enumi}}
+
+\def\labelenumii{(\alph{enumii})}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+
+\def\labelenumiii{\roman{enumiii}.}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+
+\def\labelenumiv{\Alph{enumiv}.}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+
+% ITEMIZE
+% Itemization is controlled by four commands: \labelitemi, \labelitemii,
+% \labelitemiii, and \labelitemiv, which define the labels of the various
+% itemization levels.
+
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+
+% VERSE
+% The verse environment is defined by making clever use of the
+% list environment's parameters. The user types \\ to end a line.
+% This is implemented by \let'in \\ equal \@centercr.
+%
+\def\verse{\let\\=\@centercr
+ \list{}{\itemsep\z@ \itemindent -15pt\listparindent \itemindent
+ \rightmargin\leftmargin\advance\leftmargin 15pt}\item[]}
+\let\endverse\endlist
+
+% QUOTATION
+% Fills lines
+% Indents paragraph
+%
+\def\quotation{\list{}{\listparindent 1.5em
+ \itemindent\listparindent
+ \rightmargin\leftmargin}\item[]}
+\let\endquotation=\endlist
+
+% QUOTE -- same as quotation except no paragraph indentation,
+%
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote=\endlist
+
+% DESCRIPTION
+%
+% The description environment produces a list with \leftmargin equal
+% to \descriptionmargin and \labelwidth equal to \leftmargin - \labelsep
+% (which makes the left edge of the box containing the label line up with
+% the prevailing left margin of the outer environment), and with \makelabel
+% \let to \descriptionlabel. To change the formatting of the label, you must
+% redefine \descriptionlabel. For example,
+% \def\descriptionlabel #1{\bf #1:\hfil}
+% will cause the label to be set in boldface, flush with the left margin,
+% followed by a (bold) colon. Remember that \descriptionlabel must contain
+% an \hfil.
+
+\def\descriptionlabel#1{\hfil \it #1}
+
+\def\description{\list{}{\leftmargin\descriptionmargin
+ \labelwidth\leftmargin \advance\labelwidth -\labelsep
+ \let\makelabel\descriptionlabel}}
+
+\let\enddescription\endlist
+
+\newdimen\descriptionmargin
+\descriptionmargin=3em
+
+
+% ****************************************
+% * OTHER ENVIRONMENTS *
+% ****************************************
+%
+%
+% THEOREM
+% \@begintheorem ... \@endtheorem are the commands executed at the
+% beginning and end of a (user-defined) theorem-like environment.
+% Except \@opargbegintheorem is executed when an optional argument is
+% given. Cf. LATEX.TEX.
+%
+% \def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\bf #1\ #2}]}
+% \def\@opargbegintheorem#1#2#3{\it \trivlist
+% \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]}
+% \def\@endtheorem{\endtrivlist}
+
+
+% EQUATION and EQNARRAY
+%
+% \newcounter{equation}
+% Default is for left-hand side of equations to be flushleft.
+% To make them flushright, do:
+% \let\@eqnsel = \hfil
+%
+
+\def\theequation{\arabic{equation}}
+
+% \jot = 3pt % Extra space added between lines of an eqnarray environment
+
+\arraycolsep 5pt % Half the space between columns in an array environment.
+\tabcolsep 6pt % Half the space between columns in a tabular environment.
+\arrayrulewidth .4pt % Width of rules in array and tabular environment.
+\doublerulesep 2pt % Space between adjacent rules in array or tabular env.
+
+% TABBING
+%
+\tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.)
+
+% MINIPAGE
+% \@minipagerestore is called upon entry to a minipage environment to
+% set up things that are to be handled differently inside a minipage
+% environment. In the current styles, it does nothing.
+%
+% \skip\@mpfootins : plays same role for footnotes in a minipage as
+% \skip\footins does for ordinary footnotes
+
+\skip\@mpfootins = \skip\footins
+
+% FRAMEBOX
+%
+\fboxsep = 3pt % Space left between box and text by \fbox and \framebox.
+\fboxrule = .4pt % Width of rules in box made by \fbox and \framebox.
+
+
+% ****************************************
+% * FOOTNOTES *
+% ****************************************
+%
+% \footnoterule is a macro to draw the rule separating the footnotes from
+% the text. It should take zero vertical space, so it needs a negative
+% skip to compensate for any positive space taken by the rule. (See
+% PLAIN.TEX.)
+
+\def\footnoterule{\kern-1\p@
+ \hrule width .4\columnwidth
+ \kern .6\p@} % The \hrule has default height of .4pt .
+
+% \newcounter{footnote}
+
+% The numbering style (arabic, alph, etc.) for ordinary footnotes
+% is defined by the macro \thefootnote.
+%
+% \@makefntext{NOTE} :
+% Must produce the actual footnote, using \@thefnmark as the mark
+% of the footnote and NOTE as the text. It is called when effectively
+% inside a \parbox, with \hsize = \columnwidth.
+%
+
+\long\def\@makefntext#1{\noindent % Macro to make the text of a footnote
+ \hangindent 5pt\hbox
+ to 5pt{\hss $^{\@thefnmark}$}#1}
+
+% \@makefnmark : A macro to generate the footnote marker that goes
+% in the text. Default definition used.
+
+
+% ****************************************
+% * FIGURES AND TABLES *
+% ****************************************
+%
+% Float placement parameters set by some commands. Easier to define
+% them than change the commands.
+
+\c@topnumber=2
+\def\topfraction{.7}
+\c@bottomnumber=1
+\def\bottomfraction{.3}
+\c@totalnumber=3
+\def\textfraction{.2}
+\def\floatpagefraction{.5}
+\c@dbltopnumber= 2
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+
+
+% ****************************************
+% * MISCELLANEOUS *
+% ****************************************
+%
+% DATE
+%
+\def\today{\number\year --\ifcase\month\or
+ 01\or 02\or 03\or 04\or 05\or 06\or
+ 07\or 08\or 09\or 10\or 11\or 12\fi
+ --\ifcase\day\or
+ 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or
+ 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or
+ 19\or 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or
+ 28\or 29\or 30\or 31\fi}
+
+%\def\today{\ifcase\month\or
+% January\or February\or March\or April\or May\or June\or
+% July\or August\or September\or October\or November\or December\fi
+% \space\number\day, \number\year}
+
+
+
+% ****************************************
+% * INITIALIZATION *
+% ****************************************
+%
+% Default initializations
+
+\smallskipamount=.5\parskip % These values are used by the letter macros.
+\medskipamount=\parskip
+\bigskipamount=2\parskip
+
+\ps@plain % 'plain' page style
+\pagenumbering{arabic} % Arabic page numbers
+\onecolumn % Single-column
+\@fileswfalse % Inhibits writing of .AUX file.
diff --git a/language/swedish/slatex/tde-macros/brev.sst b/language/swedish/slatex/tde-macros/brev.sst
new file mode 100644
index 0000000000..5604c0c33b
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/brev.sst
@@ -0,0 +1,356 @@
+!typeout<Document Style 'brev'. Released 22 September 1986>
+!def!@ptsize<0>
+!@namedef<ds@11pt><!def!@ptsize<1>>
+!@namedef<ds@12pt><!def!@ptsize<2>>
+!@twosidefalse
+!def!ds@draft<!overfullrule 5pt>
+!@options
+!lineskip 1pt
+!normallineskip 1pt
+!def!baselinestretch<1>
+!ifcase !@ptsize!relax
+!def!@normalsize<!@setsize!normalsize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt>
+!def!small<!@setsize!small<11pt>!ixpt!@ixpt
+!abovedisplayskip 8.5pt plus 3pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus2pt%
+!belowdisplayshortskip 4pt plus2pt minus 2pt>
+!def!footnotesize<!@setsize!footnotesize<9.5pt>!viiipt!@viiipt
+!abovedisplayskip 6pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 3pt plus 1pt minus 2pt>
+!def!scriptsize<!@setsize!scriptsize<8pt>!viipt!@viipt>
+!def!tiny<!@setsize!tiny<6pt>!vpt!@vpt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!or
+!def!@normalsize<!@setsize!normalsize<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt>
+!def!footnotesize<!@setsize!footnotesize<11pt>!ixpt!@ixpt
+!abovedisplayskip 8pt plus 2pt minus 4pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus 1pt%
+!belowdisplayshortskip 4pt plus 2pt minus 2pt>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<14pt>!xiipt!@xiipt>
+!def!Large<!@setsize!Large<18pt>!xivpt!@xivpt>
+!def!LARGE<!@setsize!LARGE<22pt>!xviipt!@xviipt>
+!def!huge<!@setsize!huge<25pt>!xxpt!@xxpt>
+!def!Huge<!@setsize!Huge<30pt>!xxvpt!@xxvpt>
+!or
+!def!@normalsize<!@setsize!normalsize<15pt>!xiipt!@xiipt
+!abovedisplayskip 12pt plus3pt minus7pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!small<!@setsize!small<13.6pt>!xipt!@xipt
+!abovedisplayskip 11pt plus3pt minus6pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6.5pt plus3.5pt minus3pt>
+!def!footnotesize<!@setsize!footnotesize<12pt>!xpt!@xpt
+!abovedisplayskip 10pt plus2pt minus5pt%
+!belowdisplayskip !abovedisplayskip
+!abovedisplayshortskip !z@ plus3pt%
+!belowdisplayshortskip 6pt plus3pt minus3pt>
+!def!scriptsize<!@setsize!scriptsize<9.5pt>!viiipt!@viiipt>
+!def!tiny<!@setsize!tiny<7pt>!vipt!@vipt>
+!def!large<!@setsize!large<18pt>!xivpt!@xivpt>
+!def!Large<!@setsize!Large<22pt>!xviipt!@xviipt>
+!def!LARGE<!@setsize!LARGE<25pt>!xxpt!@xxpt>
+!def!huge<!@setsize!huge<30pt>!xxvpt!@xxvpt>
+!let!Huge=!huge
+!fi
+!normalsize
+
+!oddsidemargin 84pt
+!evensidemargin 84pt
+!marginparwidth 59pt
+!marginparsep 11pt
+!marginparpush 5pt
+!topmargin 27pt
+!headheight 12pt
+!headsep 45pt
+!footheight 12pt
+!footskip 25pt
+!textheight 505pt
+!textwidth 331pt
+!columnsep 10pt
+!columnseprule 0pt
+!raggedbottom
+!footnotesep 12pt
+!skip!footins 10pt plus 2pt minus 4pt
+!floatsep 12pt plus 2pt minus 2pt
+!textfloatsep 20pt plus 2pt minus 4pt
+!intextsep 12pt plus 2pt minus 2pt
+!dblfloatsep 12pt plus 2pt minus 2pt
+!dbltextfloatsep 20pt plus 2pt minus 4pt
+!@maxsep 20pt
+!@dblmaxsep 20pt
+!@fptop 0pt plus 1fil
+!@fpsep 8pt plus 2fil
+!@fpbot 0pt plus 1fil
+!@dblfptop 0pt plus 1fil
+!@dblfpsep 8pt plus 2fil
+!@dblfpbot 0pt plus 1fil
+
+
+!advance!textwidth 15mm
+!newdimen!longindentation
+!longindentation=80mm
+!newdimen!indentedwidth
+!def!opening#1<!indentedwidth=!textwidth
+!advance!indentedwidth -!longindentation
+!noindent!hspace*<!longindentation>!today!par
+!ifx!@empty!fromaddress
+!thispagestyle<firstpage>
+!else
+!thispagestyle<empty>!noindent
+!parbox(t)<!longindentation><!everypar<!hangindent2em>!sloppy
+!raggedright !fromname !! !fromaddress>!par
+!fi
+!vspace<2!parskip>!noindent
+!hspace*<!longindentation>!parbox
+<!indentedwidth><!everypar<!hangindent2em>!sloppy
+!raggedright!toname !! !toaddress>!par
+!vspace<2!parskip>
+#1!par!nobreak>
+!long!def!closing#1<!par!nobreak!vspace<!parskip>
+!stopbreaks
+!noindent!raggedright
+!hspace*<!longindentation>!parbox
+<!indentedwidth><!everypar<!hangindent2em>!raggedright
+!ignorespaces #1!!(6!parskip)
+!ifx!@empty!fromsig
+!fromname
+!else !fromsig !fi!strut>
+!par>
+!def!ps<!par!startbreaks>
+!def!cc#1<!par!noindent
+!parbox(t)<!textwidth><!@hangfrom<!rm cc: >!ignorespaces #1!strut>!par>
+!def!kopia#1<!par!noindent
+!parbox(t)<!textwidth><!@hangfrom<!rm kopia: >!ignorespaces #1!strut>!par>
+!def!encl#1<!par!noindent
+!parbox(t)<!textwidth><!@hangfrom<!rm encl: >!ignorespaces #1!strut>!par>
+!def!bil#1<!par!noindent
+!parbox(t)<!textwidth><!@hangfrom<!rm bil: >!ignorespaces #1!strut>!par>
+!def!stopletter<>
+!def!returnaddress<>
+!newcount!labelcount
+!def!startlabels<!labelcount=0 !baselineskip=0pt !lineskip=0pt
+!pagestyle<empty>
+!let!@texttop=!relax
+!topmargin -50pt
+!headsep 0pt
+!oddsidemargin -35pt
+!evensidemargin -35pt
+!textheight 10in
+!@colht!textheight !@colroom!textheight !vsize!textheight
+!textwidth 550pt
+!columnsep 25pt
+!xpt
+!baselineskip=0pt
+!lineskip=0pt
+!boxmaxdepth=0pt
+!twocolumn!relax>
+!def!mlabel#1#2<!setbox0!vbox<!parbox(b)<3.6in><!strut!ignorespaces #2>>
+!vbox to 2in<!vss !box0 !vss>>
+
+!long!def!letter#1<!newpage
+!c@page!@ne
+!interlinepenalty=200
+!@processto<#1>>
+!def!endletter<!stopletter!@@par!pagebreak!@@par
+!if@filesw
+!begingroup
+!def!protect<!string>
+!let!!=!relax
+!def!protect##1<!string##1!space>
+!immediate!write!@auxout<!string!mlabel<!returnaddress><!toname
+!!!toaddress>>
+!endgroup
+!fi>
+!long!def!@processto#1<!@xproc #1!!@@@!ifx!toaddress!@empty
+!else !@yproc #1@@@!fi>
+!long!def!@xproc #1!!#2@@@<!def!toname<#1>!def!toaddress<#2>>
+!long!def!@yproc #1!!#2@@@<!def!toaddress<#2>>
+!def!stopbreaks<!interlinepenalty !@M
+!def!par<!@@par!nobreak>!let!!=!@nobreakcr
+!let!vspace!@nobreakvspace>
+!def!@nobreakvspace<!@ifstar<!@nobreakvspacex><!@nobreakvspacex>>
+!def!@nobreakvspacex#1<!ifvmode!nobreak!vskip #1!relax!else
+!@bsphack!vadjust<!nobreak!vskip #1>!@esphack!fi>
+!def!@nobreakcr<!vadjust<!penalty!@M>!@ifstar<!@xnewline><!@xnewline>>
+!def!startbreaks<!let!!=!@normalcr
+!interlinepenalty 200!def!par<!@@par!penalty 200>>
+!def!name#1<!def!fromname<#1>>
+!def!signature#1<!def!fromsig<#1>>
+!def!fromsig<>
+!long!def!address#1<!def!fromaddress<#1>>
+!def!fromaddress<>
+!def!location#1<!def!fromlocation<#1>>
+!def!fromlocation<>
+!def!telephone#1<!def!telephonenum<#1>>
+!def!telephonenum<>
+!def!document<!endgroup
+!@colht!textheight !@colroom!textheight !vsize!textheight
+!columnwidth!textwidth !@clubpenalty!clubpenalty
+!if@twocolumn !advance!columnwidth -!columnsep
+!divide!columnwidth!tw@ !hsize!columnwidth !@firstcolumntrue
+!fi
+!hsize!columnwidth !linewidth!hsize
+!begingroup!@floatplacement!@dblfloatplacement!endgroup
+!if@filesw !immediate!openout!@mainaux=!jobname.aux
+!immediate!write!@mainaux<!string!startlabels!string!@startlabels>!fi
+!def!do##1<!let ##1!@notprerr>
+!@preamblecmds
+!let!do!noexpand
+!@normalsize!everypar<>>
+!def!enddocument<!@checkend<document>!newpage!begingroup
+!if@filesw !immediate!closeout!@mainaux
+!makeatletter!input !jobname.aux!clearpage
+!fi!endgroup!deadcycles!z@!@@end>
+!def!makelabels<!@fileswtrue>
+!def!@startlabels<>
+
+!def!@texttop<!ifnum!c@page=1!vskip 0pt plus .00006fil!relax!fi>
+!def!ps@headings<!def!@oddhead<!sl To !ignorespaces!toname !hfil !today
+!hfil Page !thepage>!def!@oddfoot<>>
+!def!ps@empty<!def!@oddhead<>!def!@oddfoot<>%
+!def!@evenhead<>!def!@evenfoot<>>
+!def!ps@firstpage<!def!@oddhead<>!def!@oddfoot<!raisebox
+<-45pt>(0pt)<!hbox to !textwidth
+<!hspace*<100pt>!xpt!fromlocation !hfill !telephonenum>>!hss>%
+!def!@evenhead<>!def!@evenfoot<>>
+!def!ps@plain<!def!@oddhead<!rm!hfil!thepage>!def!@oddfoot<>%
+!let!@evenhead!@oddhead!let!@evenfoot!@oddfoot>
+
+!parskip .7em
+!parindent 0pt
+!topsep .4em
+!partopsep 0pt
+!itemsep .4em
+!@lowpenalty 51
+!@medpenalty 151
+!@highpenalty 301
+!@beginparpenalty -!@lowpenalty
+!@endparpenalty -!@lowpenalty
+!@itempenalty -!@lowpenalty
+
+!leftmargini 2.5em
+!leftmarginii 2.2em
+!leftmarginiii 1.87em
+!leftmarginiv 1.7em
+!leftmarginv 1em
+!leftmarginvi 1em
+!leftmargin!leftmargini
+!labelwidth!leftmargini!advance!labelwidth-!labelsep
+!labelsep 5pt
+!parsep 0pt
+!let!@listi!relax
+!def!@listii<!leftmargin!leftmarginii
+!labelwidth!leftmarginii!advance!labelwidth-!labelsep>
+!def!@listiii<!leftmargin!leftmarginiii
+!labelwidth!leftmarginiii!advance!labelwidth-!labelsep
+!topsep .2em
+!itemsep !topsep>
+!def!@listiv<!leftmargin!leftmarginiv
+!labelwidth!leftmarginiv!advance!labelwidth-!labelsep>
+!def!@listv<!leftmargin!leftmarginv
+!labelwidth!leftmarginv!advance!labelwidth-!labelsep>
+!def!@listvi<!leftmargin!leftmarginvi
+!labelwidth!leftmarginvi!advance!labelwidth-!labelsep>
+!def!labelenumi<!arabic<enumi>.>
+!def!theenumi<!arabic<enumi>>
+!def!labelenumii<(!alph<enumii>)>
+!def!theenumii<!alph<enumii>>
+!def!p@enumii<!theenumi>
+!def!labelenumiii<!roman<enumiii>.>
+!def!theenumiii<!roman<enumiii>>
+!def!p@enumiii<!theenumi(!theenumii)>
+!def!labelenumiv<!Alph<enumiv>.>
+!def!theenumiv<!Alph<enumiv>>
+!def!p@enumiv<!p@enumiii!theenumiii>
+!def!labelitemi<$!bullet$>
+!def!labelitemii<!bf -->
+!def!labelitemiii<$!ast$>
+!def!labelitemiv<$!cdot$>
+!def!verse<!let!!=!@centercr
+!list<><!itemsep!z@ !itemindent -15pt!listparindent !itemindent
+!rightmargin!leftmargin!advance!leftmargin 15pt>!item()>
+!let!endverse!endlist
+!def!quotation<!list<><!listparindent 1.5em
+!itemindent!listparindent
+!rightmargin!leftmargin>!item()>
+!let!endquotation=!endlist
+!def!quote<!list<><!rightmargin!leftmargin>!item()>
+!let!endquote=!endlist
+!def!descriptionlabel#1<!hfil !it #1>
+!def!description<!list<><!leftmargin!descriptionmargin
+!labelwidth!leftmargin !advance!labelwidth -!labelsep
+!let!makelabel!descriptionlabel>>
+!let!enddescription!endlist
+!newdimen!descriptionmargin
+!descriptionmargin=3em
+
+!def!theequation<!arabic<equation>>
+!arraycolsep 5pt
+!tabcolsep 6pt
+!arrayrulewidth .4pt
+!doublerulesep 2pt
+!tabbingsep !labelsep
+!skip!@mpfootins = !skip!footins
+!fboxsep = 3pt
+!fboxrule = .4pt
+
+!def!footnoterule<!kern-1!p@
+!hrule width .4!columnwidth
+!kern .6!p@>
+!long!def!@makefntext#1<!noindent
+!hangindent 5pt!hbox
+to 5pt<!hss $^<!@thefnmark>$>#1>
+
+!c@topnumber=2
+!def!topfraction<.7>
+!c@bottomnumber=1
+!def!bottomfraction<.3>
+!c@totalnumber=3
+!def!textfraction<.2>
+!def!floatpagefraction<.5>
+!c@dbltopnumber= 2
+!def!dbltopfraction<.7>
+!def!dblfloatpagefraction<.5>
+
+!def!today<!number!year --!ifcase!month!or
+01!or 02!or 03!or 04!or 05!or 06!or
+07!or 08!or 09!or 10!or 11!or 12!fi
+--!ifcase!day!or
+01!or 02!or 03!or 04!or 05!or 06!or 07!or 08!or 09!or
+10!or 11!or 12!or 13!or 14!or 15!or 16!or 17!or 18!or
+19!or 20!or 21!or 22!or 23!or 24!or 25!or 26!or 27!or
+28!or 29!or 30!or 31!fi>
+
+!smallskipamount=.5!parskip
+!medskipamount=!parskip
+!bigskipamount=2!parskip
+!ps@plain
+!pagenumbering<arabic>
+!onecolumn
+!@fileswfalse
diff --git a/language/swedish/slatex/tde-macros/brev.sty b/language/swedish/slatex/tde-macros/brev.sty
new file mode 100644
index 0000000000..fc6704994a
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/brev.sty
@@ -0,0 +1,356 @@
+\typeout{Document Style 'brev'. Released 22 September 1986}
+\def\@ptsize{0}
+\@namedef{ds@11pt}{\def\@ptsize{1}}
+\@namedef{ds@12pt}{\def\@ptsize{2}}
+\@twosidefalse
+\def\ds@draft{\overfullrule 5pt}
+\@options
+\lineskip 1pt
+\normallineskip 1pt
+\def\baselinestretch{1}
+\ifcase \@ptsize\relax
+\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
+\abovedisplayskip 10pt plus2pt minus5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6pt plus3pt minus3pt}
+\def\small{\@setsize\small{11pt}\ixpt\@ixpt
+\abovedisplayskip 8.5pt plus 3pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus2pt%
+\belowdisplayshortskip 4pt plus2pt minus 2pt}
+\def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt
+\abovedisplayskip 6pt plus 2pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus 1pt%
+\belowdisplayshortskip 3pt plus 1pt minus 2pt}
+\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+\or
+\def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt
+\abovedisplayskip 11pt plus3pt minus6pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt}
+\def\small{\@setsize\small{12pt}\xpt\@xpt
+\abovedisplayskip 10pt plus2pt minus5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6pt plus3pt minus3pt}
+\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
+\abovedisplayskip 8pt plus 2pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus 1pt%
+\belowdisplayshortskip 4pt plus 2pt minus 2pt}
+\def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
+\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+\or
+\def\@normalsize{\@setsize\normalsize{15pt}\xiipt\@xiipt
+\abovedisplayskip 12pt plus3pt minus7pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt}
+\def\small{\@setsize\small{13.6pt}\xipt\@xipt
+\abovedisplayskip 11pt plus3pt minus6pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt}
+\def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
+\abovedisplayskip 10pt plus2pt minus5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6pt plus3pt minus3pt}
+\def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
+\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+\def\large{\@setsize\large{18pt}\xivpt\@xivpt}
+\def\Large{\@setsize\Large{22pt}\xviipt\@xviipt}
+\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
+\def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt}
+\let\Huge=\huge
+\fi
+\normalsize
+
+\oddsidemargin 84pt
+\evensidemargin 84pt
+\marginparwidth 59pt
+\marginparsep 11pt
+\marginparpush 5pt
+\topmargin 27pt
+\headheight 12pt
+\headsep 45pt
+\footheight 12pt
+\footskip 25pt
+\textheight 505pt
+\textwidth 331pt
+\columnsep 10pt
+\columnseprule 0pt
+\raggedbottom
+\footnotesep 12pt
+\skip\footins 10pt plus 2pt minus 4pt
+\floatsep 12pt plus 2pt minus 2pt
+\textfloatsep 20pt plus 2pt minus 4pt
+\intextsep 12pt plus 2pt minus 2pt
+\dblfloatsep 12pt plus 2pt minus 2pt
+\dbltextfloatsep 20pt plus 2pt minus 4pt
+\@maxsep 20pt
+\@dblmaxsep 20pt
+\@fptop 0pt plus 1fil
+\@fpsep 8pt plus 2fil
+\@fpbot 0pt plus 1fil
+\@dblfptop 0pt plus 1fil
+\@dblfpsep 8pt plus 2fil
+\@dblfpbot 0pt plus 1fil
+
+
+\advance\textwidth 15mm
+\newdimen\longindentation
+\longindentation=80mm
+\newdimen\indentedwidth
+\def\opening#1{\indentedwidth=\textwidth
+\advance\indentedwidth -\longindentation
+\noindent\hspace*{\longindentation}\today\par
+\ifx\@empty\fromaddress
+\thispagestyle{firstpage}
+\else
+\thispagestyle{empty}\noindent
+\parbox[t]{\longindentation}{\everypar{\hangindent2em}\sloppy
+\raggedright \fromname \\ \fromaddress}\par
+\fi
+\vspace{2\parskip}\noindent
+\hspace*{\longindentation}\parbox
+{\indentedwidth}{\everypar{\hangindent2em}\sloppy
+\raggedright\toname \\ \toaddress}\par
+\vspace{2\parskip}
+#1\par\nobreak}
+\long\def\closing#1{\par\nobreak\vspace{\parskip}
+\stopbreaks
+\noindent\raggedright
+\hspace*{\longindentation}\parbox
+{\indentedwidth}{\everypar{\hangindent2em}\raggedright
+\ignorespaces #1\\[6\parskip]
+\ifx\@empty\fromsig
+\fromname
+\else \fromsig \fi\strut}
+\par}
+\def\ps{\par\startbreaks}
+\def\cc#1{\par\noindent
+\parbox[t]{\textwidth}{\@hangfrom{\rm cc: }\ignorespaces #1\strut}\par}
+\def\kopia#1{\par\noindent
+\parbox[t]{\textwidth}{\@hangfrom{\rm kopia: }\ignorespaces #1\strut}\par}
+\def\encl#1{\par\noindent
+\parbox[t]{\textwidth}{\@hangfrom{\rm encl: }\ignorespaces #1\strut}\par}
+\def\bil#1{\par\noindent
+\parbox[t]{\textwidth}{\@hangfrom{\rm bil: }\ignorespaces #1\strut}\par}
+\def\stopletter{}
+\def\returnaddress{}
+\newcount\labelcount
+\def\startlabels{\labelcount=0 \baselineskip=0pt \lineskip=0pt
+\pagestyle{empty}
+\let\@texttop=\relax
+\topmargin -50pt
+\headsep 0pt
+\oddsidemargin -35pt
+\evensidemargin -35pt
+\textheight 10in
+\@colht\textheight \@colroom\textheight \vsize\textheight
+\textwidth 550pt
+\columnsep 25pt
+\xpt
+\baselineskip=0pt
+\lineskip=0pt
+\boxmaxdepth=0pt
+\twocolumn\relax}
+\def\mlabel#1#2{\setbox0\vbox{\parbox[b]{3.6in}{\strut\ignorespaces #2}}
+\vbox to 2in{\vss \box0 \vss}}
+
+\long\def\letter#1{\newpage
+\c@page\@ne
+\interlinepenalty=200
+\@processto{#1}}
+\def\endletter{\stopletter\@@par\pagebreak\@@par
+\if@filesw
+\begingroup
+\def\protect{\string}
+\let\\=\relax
+\def\protect##1{\string##1\space}
+\immediate\write\@auxout{\string\mlabel{\returnaddress}{\toname
+\\\toaddress}}
+\endgroup
+\fi}
+\long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty
+\else \@yproc #1@@@\fi}
+\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
+\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
+\def\stopbreaks{\interlinepenalty \@M
+\def\par{\@@par\nobreak}\let\\=\@nobreakcr
+\let\vspace\@nobreakvspace}
+\def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
+\def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else
+\@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
+\def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}}
+\def\startbreaks{\let\\=\@normalcr
+\interlinepenalty 200\def\par{\@@par\penalty 200}}
+\def\name#1{\def\fromname{#1}}
+\def\signature#1{\def\fromsig{#1}}
+\def\fromsig{}
+\long\def\address#1{\def\fromaddress{#1}}
+\def\fromaddress{}
+\def\location#1{\def\fromlocation{#1}}
+\def\fromlocation{}
+\def\telephone#1{\def\telephonenum{#1}}
+\def\telephonenum{}
+\def\document{\endgroup
+\@colht\textheight \@colroom\textheight \vsize\textheight
+\columnwidth\textwidth \@clubpenalty\clubpenalty
+\if@twocolumn \advance\columnwidth -\columnsep
+\divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
+\fi
+\hsize\columnwidth \linewidth\hsize
+\begingroup\@floatplacement\@dblfloatplacement\endgroup
+\if@filesw \immediate\openout\@mainaux=\jobname.aux
+\immediate\write\@mainaux{\string\startlabels\string\@startlabels}\fi
+\def\do##1{\let ##1\@notprerr}
+\@preamblecmds
+\let\do\noexpand
+\@normalsize\everypar{}}
+\def\enddocument{\@checkend{document}\newpage\begingroup
+\if@filesw \immediate\closeout\@mainaux
+\makeatletter\input \jobname.aux\clearpage
+\fi\endgroup\deadcycles\z@\@@end}
+\def\makelabels{\@fileswtrue}
+\def\@startlabels{}
+
+\def\@texttop{\ifnum\c@page=1\vskip 0pt plus .00006fil\relax\fi}
+\def\ps@headings{\def\@oddhead{\sl To \ignorespaces\toname \hfil \today
+\hfil Page \thepage}\def\@oddfoot{}}
+\def\ps@empty{\def\@oddhead{}\def\@oddfoot{}%
+\def\@evenhead{}\def\@evenfoot{}}
+\def\ps@firstpage{\def\@oddhead{}\def\@oddfoot{\raisebox
+{-45pt}[0pt]{\hbox to \textwidth
+{\hspace*{100pt}\xpt\fromlocation \hfill \telephonenum}}\hss}%
+\def\@evenhead{}\def\@evenfoot{}}
+\def\ps@plain{\def\@oddhead{\rm\hfil\thepage}\def\@oddfoot{}%
+\let\@evenhead\@oddhead\let\@evenfoot\@oddfoot}
+
+\parskip .7em
+\parindent 0pt
+\topsep .4em
+\partopsep 0pt
+\itemsep .4em
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+
+\leftmargini 2.5em
+\leftmarginii 2.2em
+\leftmarginiii 1.87em
+\leftmarginiv 1.7em
+\leftmarginv 1em
+\leftmarginvi 1em
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+\labelsep 5pt
+\parsep 0pt
+\let\@listi\relax
+\def\@listii{\leftmargin\leftmarginii
+\labelwidth\leftmarginii\advance\labelwidth-\labelsep}
+\def\@listiii{\leftmargin\leftmarginiii
+\labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+\topsep .2em
+\itemsep \topsep}
+\def\@listiv{\leftmargin\leftmarginiv
+\labelwidth\leftmarginiv\advance\labelwidth-\labelsep}
+\def\@listv{\leftmargin\leftmarginv
+\labelwidth\leftmarginv\advance\labelwidth-\labelsep}
+\def\@listvi{\leftmargin\leftmarginvi
+\labelwidth\leftmarginvi\advance\labelwidth-\labelsep}
+\def\labelenumi{\arabic{enumi}.}
+\def\theenumi{\arabic{enumi}}
+\def\labelenumii{(\alph{enumii})}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+\def\labelenumiii{\roman{enumiii}.}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+\def\labelenumiv{\Alph{enumiv}.}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+\def\verse{\let\\=\@centercr
+\list{}{\itemsep\z@ \itemindent -15pt\listparindent \itemindent
+\rightmargin\leftmargin\advance\leftmargin 15pt}\item[]}
+\let\endverse\endlist
+\def\quotation{\list{}{\listparindent 1.5em
+\itemindent\listparindent
+\rightmargin\leftmargin}\item[]}
+\let\endquotation=\endlist
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote=\endlist
+\def\descriptionlabel#1{\hfil \it #1}
+\def\description{\list{}{\leftmargin\descriptionmargin
+\labelwidth\leftmargin \advance\labelwidth -\labelsep
+\let\makelabel\descriptionlabel}}
+\let\enddescription\endlist
+\newdimen\descriptionmargin
+\descriptionmargin=3em
+
+\def\theequation{\arabic{equation}}
+\arraycolsep 5pt
+\tabcolsep 6pt
+\arrayrulewidth .4pt
+\doublerulesep 2pt
+\tabbingsep \labelsep
+\skip\@mpfootins = \skip\footins
+\fboxsep = 3pt
+\fboxrule = .4pt
+
+\def\footnoterule{\kern-1\p@
+\hrule width .4\columnwidth
+\kern .6\p@}
+\long\def\@makefntext#1{\noindent
+\hangindent 5pt\hbox
+to 5pt{\hss $^{\@thefnmark}$}#1}
+
+\c@topnumber=2
+\def\topfraction{.7}
+\c@bottomnumber=1
+\def\bottomfraction{.3}
+\c@totalnumber=3
+\def\textfraction{.2}
+\def\floatpagefraction{.5}
+\c@dbltopnumber= 2
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+
+\def\today{\number\year --\ifcase\month\or
+01\or 02\or 03\or 04\or 05\or 06\or
+07\or 08\or 09\or 10\or 11\or 12\fi
+--\ifcase\day\or
+01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or
+10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or
+19\or 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or
+28\or 29\or 30\or 31\fi}
+
+\smallskipamount=.5\parskip
+\medskipamount=\parskip
+\bigskipamount=2\parskip
+\ps@plain
+\pagenumbering{arabic}
+\onecolumn
+\@fileswfalse
diff --git a/language/swedish/slatex/tde-macros/headings.doc b/language/swedish/slatex/tde-macros/headings.doc
new file mode 100644
index 0000000000..2759b401f2
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/headings.doc
@@ -0,0 +1,68 @@
+% $Header: headings.doc,v 1.2 87/03/17 23:12:22 sven Exp $
+%
+% $Log: headings.doc,v $
+% Revision 1.2 87/03/17 23:12:22 sven
+% first release
+%
+% Revision 1.1 87/03/17 16:46:58 sven
+% Initial revision
+
+%
+% bfheadings: headings in bold face with plain page number
+% numheadings, mynumheadings, bfnumheadings: display pagenumber as 3/7
+% where 7 is th last page
+
+\if@twoside % If two-sided printing.
+\def\ps@bfheadings{\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@evenhead{\bf \thepage\hfil \bf \leftmark}% Left heading.
+\def\@oddhead{\hbox{}\bf \rightmark \hfil \bf\thepage}% Right heading.
+\def\chaptermark##1{\markboth {\ifnum \c@secnumdepth >\m@ne
+ \thechapter \ \ \fi ##1}{}}%
+\def\sectionmark##1{\markright {\ifnum \c@secnumdepth >\z@
+ \thesection \ \ \fi ##1}}}
+\else % If one-sided printing.
+\def\ps@bfheadings{\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@oddhead{\hbox {}\bf \rightmark \hfil \bf\thepage}% Heading.
+\def\chaptermark##1{\markright {\ifnum \c@secnumdepth >\m@ne
+ \thechapter \ \ \fi ##1}}}
+\fi
+
+\let\@oldenddocument\enddocument % redefine enddocument
+\def\enddocument{\label{@lastpage}\@oldenddocument}
+
+\if@twoside % If two-sided printing.
+\def\ps@numheadings{\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@evenhead{\rm \thepage/\pageref{@lastpage}\hfil \sl \leftmark}%
+\def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage/\pageref{@lastpage}}%
+\def\chaptermark##1{\markboth {\ifnum \c@secnumdepth >\m@ne
+ \thechapter \ \ \fi ##1}{}}%
+\def\sectionmark##1{\markright {\ifnum \c@secnumdepth >\z@
+ \thesection \ \ \fi ##1}}}
+\else % If one-sided printing.
+\def\ps@numheadings{\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@oddhead{\hbox {}\sl \rightmark \hfil \rm\thepage/\pageref{@lastpage}}%
+\def\chaptermark##1{\markright {\ifnum \c@secnumdepth >\m@ne
+ \thechapter \ \ \fi ##1}}}
+\fi
+
+\def\ps@mynumheadings{\let\@mkboth\@gobbletwo
+\def\@oddhead{\hbox{}\sl\rightmark \hfil \rm\thepage/\pageref{@lastpage}}%
+\def\@oddfoot{}\def\@evenhead{\rm \thepage/\pageref{@lastpage}%
+\hfil\sl\leftmark\hbox {}}%
+\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+\if@twoside % If two-sided printing.
+\def\ps@bfnumheadings{\def\@oddfoot{}\def\@evenfoot{}%
+\def\@evenhead{\bf \thepage/\pageref{@lastpage}\hfil \bf \leftmark}%
+\def\@oddhead{\hbox{}\bf \rightmark \hfil \bf\thepage/\pageref{@lastpage}}%
+\def\chaptermark##1{\markboth {\ifnum \c@secnumdepth >\m@ne
+ \thechapter \ \ \fi ##1}{}}%
+\def\sectionmark##1{\markright {\ifnum \c@secnumdepth >\z@
+ \thesection \ \ \fi ##1}}}
+\else % If one-sided printing.
+\def\ps@bfnumheadings{\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@oddhead{\hbox {}\bf \rightmark \hfil \bf\thepage/\pageref{@lastpage}}%
+\def\chaptermark##1{\markright {\ifnum \c@secnumdepth >\m@ne
+ \thechapter \ \ \fi ##1}}}
+\fi
+
diff --git a/language/swedish/slatex/tde-macros/headings.sst b/language/swedish/slatex/tde-macros/headings.sst
new file mode 100644
index 0000000000..6cfed1b439
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/headings.sst
@@ -0,0 +1,49 @@
+!if@twoside
+!def!ps@bfheadings<!def!@oddfoot<>!def!@evenfoot<>%
+!def!@evenhead<!bf !thepage!hfil !bf !leftmark>%
+!def!@oddhead<!hbox<>!bf !rightmark !hfil !bf!thepage>%
+!def!chaptermark##1<!markboth <!ifnum !c@secnumdepth !>!m@ne
+!thechapter ! ! !fi ##1><>>%
+!def!sectionmark##1<!markright <!ifnum !c@secnumdepth !>!z@
+!thesection ! ! !fi ##1>>>
+!else
+!def!ps@bfheadings<!def!@oddfoot<>!def!@evenfoot<>%
+!def!@oddhead<!hbox <>!bf !rightmark !hfil !bf!thepage>%
+!def!chaptermark##1<!markright <!ifnum !c@secnumdepth !>!m@ne
+!thechapter ! ! !fi ##1>>>
+!fi
+!let!@oldenddocument!enddocument
+!def!enddocument<!label<@lastpage>!@oldenddocument>
+!if@twoside
+!def!ps@numheadings<!def!@oddfoot<>!def!@evenfoot<>%
+!def!@evenhead<!rm !thepage/!pageref<@lastpage>!hfil !sl !leftmark>%
+!def!@oddhead<!hbox<>!sl !rightmark !hfil !rm!thepage/!pageref<@lastpage>>%
+!def!chaptermark##1<!markboth <!ifnum !c@secnumdepth !>!m@ne
+!thechapter ! ! !fi ##1><>>%
+!def!sectionmark##1<!markright <!ifnum !c@secnumdepth !>!z@
+!thesection ! ! !fi ##1>>>
+!else
+!def!ps@numheadings<!def!@oddfoot<>!def!@evenfoot<>%
+!def!@oddhead<!hbox <>!sl !rightmark !hfil !rm!thepage/!pageref<@lastpage>>%
+!def!chaptermark##1<!markright <!ifnum !c@secnumdepth !>!m@ne
+!thechapter ! ! !fi ##1>>>
+!fi
+!def!ps@mynumheadings<!let!@mkboth!@gobbletwo
+!def!@oddhead<!hbox<>!sl!rightmark !hfil !rm!thepage/!pageref<@lastpage>>%
+!def!@oddfoot<>!def!@evenhead<!rm !thepage/!pageref<@lastpage>%
+!hfil!sl!leftmark!hbox <>>%
+!def!@evenfoot<>!def!sectionmark##1<>!def!subsectionmark##1<>>
+!if@twoside
+!def!ps@bfnumheadings<!def!@oddfoot<>!def!@evenfoot<>%
+!def!@evenhead<!bf !thepage/!pageref<@lastpage>!hfil !bf !leftmark>%
+!def!@oddhead<!hbox<>!bf !rightmark !hfil !bf!thepage/!pageref<@lastpage>>%
+!def!chaptermark##1<!markboth <!ifnum !c@secnumdepth !>!m@ne
+!thechapter ! ! !fi ##1><>>%
+!def!sectionmark##1<!markright <!ifnum !c@secnumdepth !>!z@
+!thesection ! ! !fi ##1>>>
+!else
+!def!ps@bfnumheadings<!def!@oddfoot<>!def!@evenfoot<>%
+!def!@oddhead<!hbox <>!bf !rightmark !hfil !bf!thepage/!pageref<@lastpage>>%
+!def!chaptermark##1<!markright <!ifnum !c@secnumdepth !>!m@ne
+!thechapter ! ! !fi ##1>>>
+!fi
diff --git a/language/swedish/slatex/tde-macros/headings.sty b/language/swedish/slatex/tde-macros/headings.sty
new file mode 100644
index 0000000000..8b38a81258
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/headings.sty
@@ -0,0 +1,49 @@
+\if@twoside
+\def\ps@bfheadings{\def\@oddfoot{}\def\@evenfoot{}%
+\def\@evenhead{\bf \thepage\hfil \bf \leftmark}%
+\def\@oddhead{\hbox{}\bf \rightmark \hfil \bf\thepage}%
+\def\chaptermark##1{\markboth {\ifnum \c@secnumdepth >\m@ne
+\thechapter \ \ \fi ##1}{}}%
+\def\sectionmark##1{\markright {\ifnum \c@secnumdepth >\z@
+\thesection \ \ \fi ##1}}}
+\else
+\def\ps@bfheadings{\def\@oddfoot{}\def\@evenfoot{}%
+\def\@oddhead{\hbox {}\bf \rightmark \hfil \bf\thepage}%
+\def\chaptermark##1{\markright {\ifnum \c@secnumdepth >\m@ne
+\thechapter \ \ \fi ##1}}}
+\fi
+\let\@oldenddocument\enddocument
+\def\enddocument{\label{@lastpage}\@oldenddocument}
+\if@twoside
+\def\ps@numheadings{\def\@oddfoot{}\def\@evenfoot{}%
+\def\@evenhead{\rm \thepage/\pageref{@lastpage}\hfil \sl \leftmark}%
+\def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage/\pageref{@lastpage}}%
+\def\chaptermark##1{\markboth {\ifnum \c@secnumdepth >\m@ne
+\thechapter \ \ \fi ##1}{}}%
+\def\sectionmark##1{\markright {\ifnum \c@secnumdepth >\z@
+\thesection \ \ \fi ##1}}}
+\else
+\def\ps@numheadings{\def\@oddfoot{}\def\@evenfoot{}%
+\def\@oddhead{\hbox {}\sl \rightmark \hfil \rm\thepage/\pageref{@lastpage}}%
+\def\chaptermark##1{\markright {\ifnum \c@secnumdepth >\m@ne
+\thechapter \ \ \fi ##1}}}
+\fi
+\def\ps@mynumheadings{\let\@mkboth\@gobbletwo
+\def\@oddhead{\hbox{}\sl\rightmark \hfil \rm\thepage/\pageref{@lastpage}}%
+\def\@oddfoot{}\def\@evenhead{\rm \thepage/\pageref{@lastpage}%
+\hfil\sl\leftmark\hbox {}}%
+\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
+\if@twoside
+\def\ps@bfnumheadings{\def\@oddfoot{}\def\@evenfoot{}%
+\def\@evenhead{\bf \thepage/\pageref{@lastpage}\hfil \bf \leftmark}%
+\def\@oddhead{\hbox{}\bf \rightmark \hfil \bf\thepage/\pageref{@lastpage}}%
+\def\chaptermark##1{\markboth {\ifnum \c@secnumdepth >\m@ne
+\thechapter \ \ \fi ##1}{}}%
+\def\sectionmark##1{\markright {\ifnum \c@secnumdepth >\z@
+\thesection \ \ \fi ##1}}}
+\else
+\def\ps@bfnumheadings{\def\@oddfoot{}\def\@evenfoot{}%
+\def\@oddhead{\hbox {}\bf \rightmark \hfil \bf\thepage/\pageref{@lastpage}}%
+\def\chaptermark##1{\markright {\ifnum \c@secnumdepth >\m@ne
+\thechapter \ \ \fi ##1}}}
+\fi
diff --git a/language/swedish/slatex/tde-macros/memo.doc b/language/swedish/slatex/tde-macros/memo.doc
new file mode 100644
index 0000000000..a2930692ad
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/memo.doc
@@ -0,0 +1,68 @@
+%
+% $Header: memo.doc,v 1.3 87/11/23 13:09:19 sven Exp $
+%
+% $Log: memo.doc,v $
+% Revision 1.3 87/11/23 13:09:19 sven
+% Made memo a document style rather than an option
+%
+% Revision 1.2 87/03/28 11:10:27 sven
+% Redifined \document to include \makememo
+%
+% Revision 1.1 86/11/07 12:11:25 sven
+% Initial revision
+%
+%
+% MEMO DOCUMENT-STYLE - released 23 November 1987
+% for LaTeX version 2.09
+
+\typeout{Document Style 'memo'. Released 23 November 1987}
+
+\input article.sty
+
+\def\makememo{\begin{memopage}\let\thanks=\memothanks
+ \def\thefootnote{\fnsymbol{footnote}}
+ \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}
+ \let\footnotesize\small % Local definitions to make \thanks produce
+ \let\footnoterule\relax % \normalsize footnotes with no separating rule.
+ \newsavebox{\@memobox}\setlength{\unitlength}{1mm}
+ \begin{picture}(0,0)
+ \savebox{\@memobox}(0,0)[tl]{\begin{minipage}{10cm}\raggedright
+ \setlength{\tabcolsep}{0pt}
+ \begin{tabular}[t]{l}\@author
+ \end{tabular} \\
+ \@memoinst \\
+ \@date \par
+ \end{minipage}}
+ \put(-25,30){\usebox{\@memobox}} % put box up left
+ \savebox{\@memobox}(0,0)[tl]{\begin{minipage}{5cm}\raggedright
+ \setlength{\tabcolsep}{0pt}
+ \@memonote \par
+ \end{minipage}}
+ \put(95,30){\usebox{\@memobox}} % put box up right
+ \end{picture}\par
+ \null
+ \end{memopage}}
+
+\def\memopage{\newpage \thispagestyle{empty}\c@page\z@}
+\let\endmemopage=\relax
+\author{\relax} % Initialize author to define \@author
+
+\def\memoinst#1{\gdef\@memoinst{#1}}\gdef\@memoinst
+ {Institutionen f\"or Till\"ampad Elektronik \\ Lunds Tekniska H\"ogskola}
+
+\gdef\@date{Lund \number\year --\ifcase\month\or
+ 01\or 02\or 03\or 04\or 05\or 06\or
+ 07\or 08\or 09\or 10\or 11\or 12\fi
+ --\ifcase\day\or
+ 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or
+ 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or
+ 19\or 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or
+ 28\or 29\or 30\or 31\fi}
+
+\def\memothanks#1{\relax}
+
+\def\memonote#1{\gdef\@memonote{#1}}\gdef\@memonote{\relax}
+
+\let\@olddocument\document % save old beginning
+\def\document{\@olddocument\makememo} % insert makememo automatically
+
diff --git a/language/swedish/slatex/tde-macros/memo.sst b/language/swedish/slatex/tde-macros/memo.sst
new file mode 100644
index 0000000000..f16cc535d3
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/memo.sst
@@ -0,0 +1,42 @@
+!typeout<Document Style 'memo'. Released 23 November 1987>
+!input article.sst
+!def!makememo<!begin<memopage>!let!thanks=!memothanks
+!def!thefootnote<!fnsymbol<footnote>>
+!def!@makefnmark<!hbox to 0pt<$^<!@thefnmark>$!hss>>
+!let!footnotesize!small
+!let!footnoterule!relax
+!newsavebox<!@memobox>!setlength<!unitlength><1mm>
+!begin<picture>"0,0"
+!savebox<!@memobox>"0,0"(tl)<!begin<minipage><10cm>!raggedright
+!setlength<!tabcolsep><0pt>
+!begin<tabular>(t)<l>!@author
+!end<tabular> !!
+!@memoinst !!
+!@date !par
+!end<minipage>>
+!put"-25,30"<!usebox<!@memobox>>
+!savebox<!@memobox>"0,0"(tl)<!begin<minipage><5cm>!raggedright
+!setlength<!tabcolsep><0pt>
+!@memonote !par
+!end<minipage>>
+!put"95,30"<!usebox<!@memobox>>
+!end<picture>!par
+!null
+!end<memopage>>
+!def!memopage<!newpage !thispagestyle<empty>!c@page!z@>
+!let!endmemopage=!relax
+!author<!relax>
+!def!memoinst#1<!gdef!@memoinst<#1>>!gdef!@memoinst
+<Institutionen f!"or Till!"ampad Elektronik !! Lunds Tekniska H!"ogskola>
+!gdef!@date<Lund !number!year --!ifcase!month!or
+01!or 02!or 03!or 04!or 05!or 06!or
+07!or 08!or 09!or 10!or 11!or 12!fi
+--!ifcase!day!or
+01!or 02!or 03!or 04!or 05!or 06!or 07!or 08!or 09!or
+10!or 11!or 12!or 13!or 14!or 15!or 16!or 17!or 18!or
+19!or 20!or 21!or 22!or 23!or 24!or 25!or 26!or 27!or
+28!or 29!or 30!or 31!fi>
+!def!memothanks#1<!relax>
+!def!memonote#1<!gdef!@memonote<#1>>!gdef!@memonote<!relax>
+!let!@olddocument!document
+!def!document<!@olddocument!makememo>
diff --git a/language/swedish/slatex/tde-macros/memo.sty b/language/swedish/slatex/tde-macros/memo.sty
new file mode 100644
index 0000000000..a78175d8e6
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/memo.sty
@@ -0,0 +1,42 @@
+\typeout{Document Style 'memo'. Released 23 November 1987}
+\input article.sty
+\def\makememo{\begin{memopage}\let\thanks=\memothanks
+\def\thefootnote{\fnsymbol{footnote}}
+\def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}
+\let\footnotesize\small
+\let\footnoterule\relax
+\newsavebox{\@memobox}\setlength{\unitlength}{1mm}
+\begin{picture}(0,0)
+\savebox{\@memobox}(0,0)[tl]{\begin{minipage}{10cm}\raggedright
+\setlength{\tabcolsep}{0pt}
+\begin{tabular}[t]{l}\@author
+\end{tabular} \\
+\@memoinst \\
+\@date \par
+\end{minipage}}
+\put(-25,30){\usebox{\@memobox}}
+\savebox{\@memobox}(0,0)[tl]{\begin{minipage}{5cm}\raggedright
+\setlength{\tabcolsep}{0pt}
+\@memonote \par
+\end{minipage}}
+\put(95,30){\usebox{\@memobox}}
+\end{picture}\par
+\null
+\end{memopage}}
+\def\memopage{\newpage \thispagestyle{empty}\c@page\z@}
+\let\endmemopage=\relax
+\author{\relax}
+\def\memoinst#1{\gdef\@memoinst{#1}}\gdef\@memoinst
+{Institutionen f\"or Till\"ampad Elektronik \\ Lunds Tekniska H\"ogskola}
+\gdef\@date{Lund \number\year --\ifcase\month\or
+01\or 02\or 03\or 04\or 05\or 06\or
+07\or 08\or 09\or 10\or 11\or 12\fi
+--\ifcase\day\or
+01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or
+10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or
+19\or 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or
+28\or 29\or 30\or 31\fi}
+\def\memothanks#1{\relax}
+\def\memonote#1{\gdef\@memonote{#1}}\gdef\@memonote{\relax}
+\let\@olddocument\document
+\def\document{\@olddocument\makememo}
diff --git a/language/swedish/slatex/tde-macros/par.doc b/language/swedish/slatex/tde-macros/par.doc
new file mode 100644
index 0000000000..7b4dd21af5
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/par.doc
@@ -0,0 +1,11 @@
+%
+% $Header: par.doc,v 1.1 86/02/14 12:07:35 sven Exp $
+%
+% $Log: par.doc,v $
+% Revision 1.1 86/02/14 12:07:35 sven
+% Initial revision
+%
+%
+% Make paragraphs with no indent and some spacing
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{1.5ex plus 0.3ex}
diff --git a/language/swedish/slatex/tde-macros/par.sst b/language/swedish/slatex/tde-macros/par.sst
new file mode 100644
index 0000000000..34862f9f4b
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/par.sst
@@ -0,0 +1,2 @@
+!setlength<!parindent><0pt>
+!setlength<!parskip><1.5ex plus 0.3ex>
diff --git a/language/swedish/slatex/tde-macros/par.sty b/language/swedish/slatex/tde-macros/par.sty
new file mode 100644
index 0000000000..02cdfa9797
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/par.sty
@@ -0,0 +1,2 @@
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{1.5ex plus 0.3ex}
diff --git a/language/swedish/slatex/tde-macros/rapport.doc b/language/swedish/slatex/tde-macros/rapport.doc
new file mode 100644
index 0000000000..1dc2fa74c9
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/rapport.doc
@@ -0,0 +1,660 @@
+%
+% $Header: rapport.doc,v 1.2 86/11/07 11:45:18 sven Exp $
+%
+% $Log: rapport.doc,v $
+% Revision 1.2 86/11/07 11:45:18 sven
+% Headings changed to Swedish
+%
+% Revision 1.1 86/09/29 23:08:10 sven
+% Initial revision
+%
+%
+% REPORT DOCUMENT STYLE -- Released 17 December 1985
+% for LaTeX version 2.09
+% Copyright (C) 1985 by Leslie Lamport
+
+\typeout{Document Style `rapport'. Released 29 September 1986}
+
+% The type size option is handled by reading a different file for each
+% size, as follows, to define font size-specific commands:
+% 10pt : REP10, 11pt : REP11, 12pt : REP12
+% Implemented by \def'ing \@ptsize to last digit of file name.
+%
+
+\def\@ptsize{0} % Default is REP10.STY
+\@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option reads in REP11.STY
+\@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option reads in REP12.STY
+
+% Two-side or one-side printing.
+%
+% \@twosidefalse % Default is one-sided printing.
+\def\ds@twoside{\@twosidetrue % Defines twoside option.
+ \@mparswitchtrue} % Marginpars go on outside of page.
+% draft option
+%
+% \overfullrule = 0pt % Default is don't mark overfull hboxes.
+\def\ds@draft{\overfullrule 5pt} % Causes overfull hboxes to be marked.
+
+% The \@options command causes the execution of every command \ds@FOO
+% which is defined and for which the user typed the FOO option in his
+% \documentstyle command. For every option BAR he typed for which
+% \ds@BAR is not defined, the file BAR.sty will be read after the present
+% (main) .STY file is executed.
+
+\@options
+
+\input rep1\@ptsize.sty\relax
+
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% ENUMERATE
+% Enumeration is done with four counters: enumi, enumii, enumiii
+% and enumiv, where enumN controls the numbering of the Nth level
+% enumeration. The label is generated by the commands \labelenumi
+% ... \labelenumiv. The expansion of \p@enumN\theenumN defines the
+% output of a \ref command.
+
+\def\labelenumi{\arabic{enumi}.}
+\def\theenumi{\arabic{enumi}}
+
+\def\labelenumii{(\alph{enumii})}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+
+\def\labelenumiii{\roman{enumiii}.}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+
+\def\labelenumiv{\Alph{enumiv}.}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+
+% ITEMIZE
+% Itemization is controlled by four commands: \labelitemi, \labelitemii,
+% \labelitemiii, and \labelitemiv, which define the labels of the various
+% itemization levels.
+
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+
+
+% VERSE
+% The verse environment is defined by making clever use of the
+% list environment's parameters. The user types \\ to end a line.
+% This is implemented by \let'in \\ equal \@centercr.
+%
+\def\verse{\let\\=\@centercr
+ \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
+ \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
+\let\endverse\endlist
+
+% QUOTATION
+% Fills lines
+% Indents paragraph
+%
+\def\quotation{\list{}{\listparindent 1.5em
+ \itemindent\listparindent
+ \rightmargin\leftmargin\parsep 0pt plus 1pt}\item[]}
+\let\endquotation=\endlist
+
+% QUOTE -- same as quotation except no paragraph indentation,
+%
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote=\endlist
+
+% DESCRIPTION
+%
+% To change the formatting of the label, you must redefine
+% \descriptionlabel.
+
+\def\descriptionlabel#1{\hspace\labelsep \bf #1}
+\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+
+\let\enddescription\endlist
+
+\newdimen\descriptionmargin
+\descriptionmargin=3em
+
+
+% ****************************************
+% * OTHER ENVIRONMENTS *
+% ****************************************
+%
+%
+% THEOREM
+% \@begintheorem ... \@endtheorem are the commands executed at the
+% beginning and end of a (user-defined) theorem-like environment.
+% Except \@opargbegintheorem is executed when an optional argument is
+% given. Cf. LATEX.TEX.
+%
+% \def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\bf #1\ #2}]}
+% \def\@opargbegintheorem#1#2#3{\it \trivlist
+% \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]}
+% \def\@endtheorem{\endtrivlist}
+
+
+% TITLEPAGE
+% In the normal environments, the titlepage environment does nothing but
+% start and end a page, and inhibit page numbers. It also resets the
+% page number to zero. In two-column style, it still makes a one-column
+% page.
+\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \else \newpage \fi \thispagestyle{empty}\c@page\z@}
+
+\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi}
+
+% ARRAY AND TABULAR
+%
+
+\arraycolsep 5pt % Half the space between columns in an array environment.
+\tabcolsep 6pt % Half the space between columns in a tabular environment.
+\arrayrulewidth .4pt % Width of rules in array and tabular environment.
+\doublerulesep 2pt % Space between adjacent rules in array or tabular env.
+
+% TABBING
+%
+\tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.)
+
+% MINIPAGE
+% \@minipagerestore is called upon entry to a minipage environment to
+% set up things that are to be handled differently inside a minipage
+% environment. In the current styles, it does nothing.
+%
+% \skip\@mpfootins : plays same role for footnotes in a minipage as
+% \skip\footins does for ordinary footnotes
+
+\skip\@mpfootins = \skip\footins
+
+% FRAMEBOX
+%
+\fboxsep = 3pt % Space left between box and text by \fbox and \framebox.
+\fboxrule = .4pt % Width of rules in box made by \fbox and \framebox.
+
+
+% ****************************************
+% * CHAPTERS AND SECTIONS *
+% ****************************************
+%
+% DEFINE COUNTERS:
+%
+% \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is
+% reset to zero when counter OLDCTR is stepped.
+% Counter OLDCTR must already be defined.
+
+\newcounter{part}
+\newcounter {chapter}
+\newcounter {section}[chapter]
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+
+% For any counter CTR, \theCTR is a macro that defines the printed version
+% of counter CTR. It is defined in terms of the following macros:
+%
+% \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral.
+% \roman{COUNTER} : Its value printed as a lower-case roman numberal.
+% \Roman{COUNTER} : Its value printed as an upper-case roman numberal.
+% \alph{COUNTER} : Value of COUNTER printed as a lower-case letter:
+% 1 = a, 2 = b, etc.
+% \Alph{COUNTER} : Value of COUNTER printed as an upper-case letter:
+% 1 = A, 2 = B, etc.
+%
+
+\def\thepart {\Roman{part}}
+\def\thechapter {\arabic{chapter}}
+\def\thesection {\thechapter.\arabic{section}}
+\def\thesubsection {\thesection.\arabic{subsection}}
+\def\thesubsubsection {\thesubsection .\arabic{subsubsection}}
+\def\theparagraph {\thesubsubsection.\arabic{paragraph}}
+\def\thesubparagraph {\theparagraph.\arabic{subparagraph}}
+
+% \@chapapp is initially defined to be 'Chapter'. The \appendix
+% command redefines it to be 'Appendix'.
+% hacked by bjorn@agaton to be 'Kapitel'.
+%
+\def\@chapapp{Kapitel}
+
+
+
+% ****************************************
+% * TABLE OF CONTENTS, ETC. *
+% ****************************************
+%
+% A \subsection command writes a
+% \contentsline{subsection}{TITLE}{PAGE}
+% command on the .toc file, where TITLE contains the contents of the
+% entry and PAGE is the page number. If subsections are being numbered,
+% then TITLE will be of the form
+% \numberline{NUM}{HEADING}
+% where NUM is the number produced by \thesubsection. Other sectioning
+% commands work similarly.
+%
+% A \caption command in a 'figure' environment writes
+% \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE}
+% on the .lof file, where NUM is the number produced by \thefigure and
+% CAPTION is the figure caption. It works similarly for a 'table' environment.
+%
+% The command \contentsline{NAME} expands to \l@NAME. So, to specify
+% the table of contents, we must define \l@chapter, \l@section,
+% \l@subsection, ... ; to specify the list of figures, we must define
+% \l@figure; and so on. Most of these can be defined with the
+% \@dottedtocline command, which works as follows.
+%
+% \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE}
+% LEVEL : An entry is produced only if LEVEL < or = value of
+% 'tocdepth' counter. Note, \chapter is level 0, \section
+% is level 1, etc.
+% INDENT : The indentation from the outer left margin of the start of
+% the contents line.
+% NUMWIDTH : The width of a box in which the section number is to go,
+% if TITLE includes a \numberline command.
+%
+% This command uses the following three parameters, which are set
+% with a \def (so em's can be used to make them depend upon the font).
+% \@pnumwidth : The width of a box in which the page number is put.
+% \@tocrmarg : The right margin for multiple line entries. One
+% wants \@tocrmarg > or = \@pnumwidth
+% \@dotsep : Separation between dots, in mu units. Should be \def'd to
+% a number like 2 or 1.7
+
+\def\@pnumwidth{1.55em}
+\def\@tocrmarg {2.55em}
+\def\@dotsep{4.5}
+\setcounter{tocdepth}{2}
+
+
+% TABLEOFCONTENTS
+% In report style, \tableofcontents, \listoffigures, etc. are always
+% set in single-column style. @restonecol
+
+
+\def\tableofcontents{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi\chapter*{Inneh\aa{}ll\@mkboth
+ {INNEH\AA{}LL}{INNEH\AA{}LL}}
+ \@starttoc{toc}\if@restonecol\twocolumn\fi}
+
+\def\l@part#1#2{\addpenalty{-\@highpenalty}
+ \addvspace{2.25em plus 1pt} % space above part line
+ \begingroup
+ \@tempdima 3em % width of box holding part number, used by
+ \parindent \z@ \rightskip \@pnumwidth %% \numberline
+ \parfillskip -\@pnumwidth
+ {\large \bf % set line in \large boldface
+ \leavevmode % TeX command to enter horizontal mode.
+ #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+ \nobreak % Never break after part entry
+ \endgroup}
+
+
+\def\l@chapter#1#2{\pagebreak[3]
+ \vskip 1.0em plus 1pt % space above chapter line
+ \@tempdima 1.5em % width of box holding chapter number
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \bf % Boldface.
+ \leavevmode % TeX command to enter horizontal mode.
+ #1\hfil \hbox to\@pnumwidth{\hss #2}\par
+ \endgroup}
+
+\def\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
+\def\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
+\def\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
+\def\l@paragraph{\@dottedtocline{4}{10em}{5em}}
+\def\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
+
+% LIST OF FIGURES
+%
+\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi\chapter*{Figurf\"orteckning\@mkboth
+ {FIGURF\"ORTECKNING}{FIGURF\"ORTECKNING}}\@starttoc{lof}\if@restonecol\twocolumn
+ \fi}
+
+\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
+
+% LIST OF TABLES
+%
+\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi\chapter*{Tabellf\"orteckning\@mkboth
+ {TABELLF\"ORTECKNING}{TABELLF\"ORTECKNING}}\@starttoc{lot}\if@restonecol\twocolumn
+ \fi}
+
+\let\l@table\l@figure
+
+
+
+% ****************************************
+% * BIBLIOGRAPHY *
+% ****************************************
+%
+% The thebibliography environment executes the following commands:
+%
+% \def\newblock{\hskip .11em plus .33em minus -.07em} --
+% Defines the `closed' format, where the blocks (major units of
+% information) of an entry run together.
+%
+% \sloppy -- Used because it's rather hard to do line breaks in
+% bibliographies,
+%
+% \sfcode`\.=1000\relax --
+% Causes a `.' (period) not toproduce an end-of-sentence space.
+
+\def\thebibliography#1{\chapter*{Referenser\@mkboth
+ {REFERENSER}{REFERENSER}}\list
+ {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \usecounter{enumi}}
+ \def\newblock{\hskip .11em plus .33em minus -.07em}
+ \sloppy
+ \sfcode`\.=1000\relax}
+
+\let\endthebibliography=\endlist
+
+% \def\@biblabel#1{[#1]\hfill} % Produces the label for a \bibitem[...]
+ % command.
+% \def\@cite#1{[#1]} % Produces the output of the \cite command.
+
+
+
+% ****************************************
+% * THE INDEX *
+% ****************************************
+%
+% THE THEINDEX ENVIRONMENT
+% Produces double column format, with each paragraph a separate entry.
+% The user commands \item, \subitem and \subsubitem are used to
+% produce the entries, and \indexspace adds an extra vertical space
+% that's the right size to put above the first entry with a new letter
+% of the alphabet.
+
+\newif\if@restonecol
+
+\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+\columnseprule \z@
+\columnsep 35pt\twocolumn[\@makeschapterhead{Register}]
+ \@mkboth{REGISTER}{REGISTER}\thispagestyle{plain}\parindent\z@
+ \parskip\z@ plus .3pt\relax\let\item\@idxitem}
+
+\def\@idxitem{\par\hangindent 40pt}
+
+\def\subitem{\par\hangindent 40pt \hspace*{20pt}}
+
+\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}}
+
+\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
+
+\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}
+
+
+% ****************************************
+% * FOOTNOTES *
+% ****************************************
+%
+% \footnoterule is a macro to draw the rule separating the footnotes from
+% the text. It should take zero vertical space, so it needs a negative
+% skip to compensate for any positive space taken by the rule. (See
+% PLAIN.TEX.)
+
+\def\footnoterule{\kern-3\p@
+ \hrule width .4\columnwidth
+ \kern 2.6\p@} % The \hrule has default height of .4pt .
+
+% \newcounter{footnote}
+\@addtoreset{footnote}{chapter} % Numbers footnotes within chapters
+
+% \@makefntext{NOTE} :
+% Must produce the actual footnote, using \@thefnmark as the mark
+% of the footnote and NOTE as the text. It is called when effectively
+% inside a \parbox of width \columnwidth (i.e., with \hsize =
+% \columnwidth).
+%
+% The following macro indents all lines of the footnote by 10pt, and
+% indents the first line of a new paragraph by 1em. To change these
+% dimensions, just substitute the desired value for '10pt' [in both
+% places] or '1em'. The mark is flushright against the footnote.
+% \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize
+% \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par
+% \parindent 1em\noindent \hbox to \z@{\hss$^{\@thefnmark}$}#1}
+%
+% A simpler macro is used, in which the footnote text is
+% set like an ordinary text paragraph, with no indentation except
+% on the first line of a paragraph, and the first line of the
+% footnote. Thus, all the macro must do is set \parindent
+% to the appropriate value for succeeding paragraphs and put the
+% proper indentation before mark.
+
+\long\def\@makefntext#1{\parindent 1em\noindent
+ \hbox to 1.8em{\hss$^{\@thefnmark}$}#1}
+
+% \@makefnmark : A macro to generate the footnote marker that goes
+% in the text. Default used.
+%
+
+
+
+% ****************************************
+% * FIGURES AND TABLES *
+% ****************************************
+%
+% Float placement parameters. See LaTeX manual for their definition.
+%
+\setcounter{topnumber}{2}
+\def\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\def\textfraction{.2}
+\def\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+
+% \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption.
+% NUMBER : Figure or table number--e.g., 'Figure 3.2'
+% TEXT : The caption text.
+% Macro should be called inside a \parbox of right width, with \normalsize.
+
+\long\def\@makecaption#1#2{
+ \vskip 10pt
+ \setbox\@tempboxa\hbox{#1: #2}
+ \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
+ \unhbox\@tempboxa\par % THEN set as ordinary paragraph.
+ \else % ELSE center.
+ \hbox to\hsize{\hfil\box\@tempboxa\hfil}
+ \fi}
+
+% To define a float of type TYPE (e.g., TYPE = figure), the document style
+% must define the following.
+%
+% \fps@TYPE : The default placement specifier for floats of type TYPE.
+%
+% \ftype@TYPE : The type number for floats of type TYPE. Each TYPE has
+% associated a unique positive TYPE NUMBER, which is a power
+% of two. E.g., figures might have type number 1, tables type
+% number 2, programs type number 4, etc.
+%
+% \ext@TYPE : The file extension indicating the file on which the
+% contents list for float type TYPE is stored. For example,
+% \ext@figure = 'lof'.
+%
+% \fnum@TYPE : A macro to generate the figure number for a caption.
+% For example, \fnum@TYPE == Figure \thefigure.
+%
+% The actual float-making environment commands--e.g., the commands
+% \figure and \endfigure--are defined in terms of the macros \@float
+% and \end@float, which are described below.
+%
+% \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a
+% single-column float of type TYPE with PLACEMENT as the placement
+% specifier. The default value of PLACEMENT is defined by \fps@TYPE.
+% The environment is ended by \end@float.
+% E.g., \figure == \@float{figure}, \endfigure == \end@float.
+
+
+% FIGURE
+
+\newcounter{figure}[chapter]
+\def\thefigure{\thechapter.\@arabic\c@figure}
+
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+%\def\fnum@figure{Figure \thefigure}
+% hacked for swedish by bjorn@agaton
+\def\fnum@figure{Figur \thefigure}
+\def\figure{\@float{figure}}
+\let\endfigure\end@float
+\@namedef{figure*}{\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+
+% TABLE
+%
+\newcounter{table}[chapter]
+\def\thetable{\thechapter.\@arabic\c@table}
+
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+%\def\fnum@table{Table \thetable}
+%Modified for Swedish 860822 /JOHNNY
+\def\fnum@table{Tabell \thetable}
+\def\table{\@float{table}}
+\let\endtable\end@float
+\@namedef{table*}{\@dblfloat{table}}
+\@namedef{endtable*}{\end@dblfloat}
+
+
+% ****************************************
+% * TITLE AND ABSTRACT *
+% ****************************************
+%
+%
+% Uses same title and abstract format as the article style's
+% titlepage option.
+
+\input titlepage.sty
+
+
+% ****************************************
+% * PAGE STYLES *
+% ****************************************
+%
+% The page style 'foo' is defined by defining the command \ps@foo. This
+% command should make only local definitions. There should be no stray
+% spaces in the definition, since they could lead to mysterious extra
+% spaces in the output.
+%
+% The \ps@... command defines the macros \@oddhead, \@oddfoot,
+% \@evenhead, and \@evenfoot to define the running heads and
+% feet---e.g., \@oddhead is the macro to produce the contents of the
+% heading box for odd-numbered pages. It is called inside an \hbox of
+% width \textwidth.
+%
+% To make headings determined by the sectioning commands, the page style
+% defines the commands \chaptermark, \sectionmark, ... , where
+% \chaptermark{TEXT} is called by \chapter to set a mark, and so on.
+% The \...mark commands and the \...head macros are defined with the
+% help of the following macros. (All the \...mark commands should be
+% initialized to no-ops.)
+%
+% MARKING CONVENTIONS:
+% LaTeX extends TeX's \mark facility by producing two kinds of marks
+% a 'left' and a 'right' mark, using the following commands:
+% \markboth{LEFT}{RIGHT} : Adds both marks.
+% \markright{RIGHT} : Adds a 'right' mark.
+% \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot
+% macro, gets the current 'left' mark. Works like TeX's
+% \botmark command.
+% \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot
+% macro, gets the current 'right' mark. Works like TeX's
+% \firstmark command.
+% The marking commands work reasonably well for right marks 'numbered
+% within' left marks--e.g., the left mark is changed by a \chapter command and
+% the right mark is changed by a \section command. However, it does
+% produce somewhat anomalous results if two \bothmark's occur on the same page.
+%
+% Commands like \tableofcontents that should set the marks in some page styles
+% use a \@mkboth command, which is \let by the pagestyle command (\ps@...)
+% to \markboth for setting the heading or \@gobbletwo to do nothing.
+
+\mark{{}{}} % Initializes TeX's marks
+
+% \ps@empty and \ps@plain defined in LATEX.TEX
+
+% Definition of 'headings' page style
+% Note the use of ##1 for parameter of \def\chaptermark inside the
+% \def\ps@headings.
+%
+
+\if@twoside % If two-sided printing.
+\def\ps@headings{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@evenhead{\rm \thepage\hfil \sl \leftmark}% Left heading.
+\def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage}% Right heading.
+\def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne
+ \@chapapp\ \thechapter. \ \fi ##1}}{}}%
+\def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection. \ \fi ##1}}}}
+\else % If one-sided printing.
+\def\ps@headings{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@oddhead{\hbox {}\sl \rightmark \hfil \rm\thepage}% Heading.
+\def\chaptermark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\m@ne
+ \@chapapp\ \thechapter. \ \fi ##1}}}}
+\fi
+
+% Definition of 'myheadings' page style.
+%
+\def\ps@myheadings{\let\@mkboth\@gobbletwo
+\def\@oddhead{\hbox{}\sl\rightmark \hfil \rm\thepage}%
+\def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark\hbox {}}%
+\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+
+
+% ****************************************
+% * MISCELLANEOUS *
+% ****************************************
+%
+% DATE
+%
+\def\today{\number\day\space
+ \ifcase\month\or
+ januari\or februari\or mars\or april\or maj\or juni\or juli\or
+ augusti\or september\or oktober\or november\or december\fi
+ \space\number\year}
+
+% EQUATION and EQNARRAY -- put here because it must follow \chapter definition
+%
+% \newcounter{equation}
+%
+\@addtoreset{equation}{chapter} % Makes \chapter reset 'equation' counter.
+
+\def\theequation{\thechapter.\arabic{equation}}
+
+% \jot = 3pt % Extra space added between lines of an eqnarray environment
+
+% The macro \@eqnnum defines how equation numbers are to appear in equations.
+%
+% \def\@eqnnum{(\theequation)}
+%
+
+
+% ****************************************
+% * INITIALIZATION *
+% ****************************************
+%
+% Default initializations
+
+\ps@plain % 'plain' page style
+\pagenumbering{arabic} % Arabic page numbers
+\onecolumn % Single-column.
+\if@twoside\else\raggedbottom\fi % Ragged bottom unless twoside option.
diff --git a/language/swedish/slatex/tde-macros/rapport.sst b/language/swedish/slatex/tde-macros/rapport.sst
new file mode 100644
index 0000000000..adb36edaa1
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/rapport.sst
@@ -0,0 +1,219 @@
+!typeout<Document Style `rapport'. Released 29 September 1986>
+!def!@ptsize<0>
+!@namedef<ds@11pt><!def!@ptsize<1>>
+!@namedef<ds@12pt><!def!@ptsize<2>>
+!def!ds@twoside<!@twosidetrue
+!@mparswitchtrue>
+!def!ds@draft<!overfullrule 5pt>
+!@options
+!input rep1!@ptsize.sst!relax
+
+!def!labelenumi<!arabic<enumi>.>
+!def!theenumi<!arabic<enumi>>
+!def!labelenumii<(!alph<enumii>)>
+!def!theenumii<!alph<enumii>>
+!def!p@enumii<!theenumi>
+!def!labelenumiii<!roman<enumiii>.>
+!def!theenumiii<!roman<enumiii>>
+!def!p@enumiii<!theenumi(!theenumii)>
+!def!labelenumiv<!Alph<enumiv>.>
+!def!theenumiv<!Alph<enumiv>>
+!def!p@enumiv<!p@enumiii!theenumiii>
+!def!labelitemi<$!bullet$>
+!def!labelitemii<!bf -->
+!def!labelitemiii<$!ast$>
+!def!labelitemiv<$!cdot$>
+!def!verse<!let!!=!@centercr
+!list<><!itemsep!z@ !itemindent -1.5em!listparindent !itemindent
+!rightmargin!leftmargin!advance!leftmargin 1.5em>!item()>
+!let!endverse!endlist
+!def!quotation<!list<><!listparindent 1.5em
+!itemindent!listparindent
+!rightmargin!leftmargin!parsep 0pt plus 1pt>!item()>
+!let!endquotation=!endlist
+!def!quote<!list<><!rightmargin!leftmargin>!item()>
+!let!endquote=!endlist
+!def!descriptionlabel#1<!hspace!labelsep !bf #1>
+!def!description<!list<><!labelwidth!z@ !itemindent-!leftmargin
+!let!makelabel!descriptionlabel>>
+!let!enddescription!endlist
+!newdimen!descriptionmargin
+!descriptionmargin=3em
+
+!def!titlepage<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!else !newpage !fi !thispagestyle<empty>!c@page!z@>
+!def!endtitlepage<!if@restonecol!twocolumn !else !newpage !fi>
+!arraycolsep 5pt
+!tabcolsep 6pt
+!arrayrulewidth .4pt
+!doublerulesep 2pt
+!tabbingsep !labelsep
+!skip!@mpfootins = !skip!footins
+!fboxsep = 3pt
+!fboxrule = .4pt
+
+!newcounter<part>
+!newcounter <chapter>
+!newcounter <section>(chapter)
+!newcounter <subsection>(section)
+!newcounter <subsubsection>(subsection)
+!newcounter <paragraph>(subsubsection)
+!newcounter <subparagraph>(paragraph)
+!def!thepart <!Roman<part>>
+!def!thechapter <!arabic<chapter>>
+!def!thesection <!thechapter.!arabic<section>>
+!def!thesubsection <!thesection.!arabic<subsection>>
+!def!thesubsubsection <!thesubsection .!arabic<subsubsection>>
+!def!theparagraph <!thesubsubsection.!arabic<paragraph>>
+!def!thesubparagraph <!theparagraph.!arabic<subparagraph>>
+!def!@chapapp<Kapitel>
+
+!def!@pnumwidth<1.55em>
+!def!@tocrmarg <2.55em>
+!def!@dotsep<4.5>
+!setcounter<tocdepth><2>
+!def!tableofcontents<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!fi!chapter*<Inneh!aa<>ll!@mkboth
+<INNEH!AA<>LL><INNEH!AA<>LL>>
+!@starttoc<toc>!if@restonecol!twocolumn!fi>
+!def!l@part#1#2<!addpenalty<-!@highpenalty>
+!addvspace<2.25em plus 1pt>
+!begingroup
+!@tempdima 3em
+!parindent !z@ !rightskip !@pnumwidth
+!parfillskip -!@pnumwidth
+<!large !bf
+!leavevmode
+#1!hfil !hbox to!@pnumwidth<!hss #2>>!par
+!nobreak
+!endgroup>
+!def!l@chapter#1#2<!pagebreak(3)
+!vskip 1.0em plus 1pt
+!@tempdima 1.5em
+!begingroup
+!parindent !z@ !rightskip !@pnumwidth
+!parfillskip -!@pnumwidth
+!bf
+!leavevmode
+#1!hfil !hbox to!@pnumwidth<!hss #2>!par
+!endgroup>
+!def!l@section<!@dottedtocline<1><1.5em><2.3em>>
+!def!l@subsection<!@dottedtocline<2><3.8em><3.2em>>
+!def!l@subsubsection<!@dottedtocline<3><7.0em><4.1em>>
+!def!l@paragraph<!@dottedtocline<4><10em><5em>>
+!def!l@subparagraph<!@dottedtocline<5><12em><6em>>
+!def!listoffigures<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!fi!chapter*<Figurf!"orteckning!@mkboth
+<FIGURF!"ORTECKNING><FIGURF!"ORTECKNING>>!@starttoc<lof>!if@restonecol!twocolumn
+!fi>
+!def!l@figure<!@dottedtocline<1><1.5em><2.3em>>
+!def!listoftables<!@restonecolfalse!if@twocolumn!@restonecoltrue!onecolumn
+!fi!chapter*<Tabellf!"orteckning!@mkboth
+<TABELLF!"ORTECKNING><TABELLF!"ORTECKNING>>!@starttoc<lot>!if@restonecol!twocolumn
+!fi>
+!let!l@table!l@figure
+
+!def!thebibliography#1<!chapter*<Referenser!@mkboth
+<REFERENSER><REFERENSER>>!list
+<!lbrack<>!arabic<enumi>!rbrack<>><!settowidth!labelwidth<!lbrack<>#1!rbrack<>>!leftmargin!labelwidth
+!advance!leftmargin!labelsep
+!usecounter<enumi>>
+!def!newblock<!hskip .11em plus .33em minus -.07em>
+!sloppy
+!sfcode`!.=1000!relax>
+!let!endthebibliography=!endlist
+
+!newif!if@restonecol
+!def!theindex<!@restonecoltrue!if@twocolumn!@restonecolfalse!fi
+!columnseprule !z@
+!columnsep 35pt!twocolumn(!@makeschapterhead<Register>)
+!@mkboth<REGISTER><REGISTER>!thispagestyle<plain>!parindent!z@
+!parskip!z@ plus .3pt!relax!let!item!@idxitem>
+!def!@idxitem<!par!hangindent 40pt>
+!def!subitem<!par!hangindent 40pt !hspace*<20pt>>
+!def!subsubitem<!par!hangindent 40pt !hspace*<30pt>>
+!def!endtheindex<!if@restonecol!onecolumn!else!clearpage!fi>
+!def!indexspace<!par !vskip 10pt plus 5pt minus 3pt!relax>
+
+!def!footnoterule<!kern-3!p@
+!hrule width .4!columnwidth
+!kern 2.6!p@>
+!@addtoreset<footnote><chapter>
+!long!def!@makefntext#1<!parindent 1em!noindent
+!hbox to 1.8em<!hss$^<!@thefnmark>$>#1>
+
+!setcounter<topnumber><2>
+!def!topfraction<.7>
+!setcounter<bottomnumber><1>
+!def!bottomfraction<.3>
+!setcounter<totalnumber><3>
+!def!textfraction<.2>
+!def!floatpagefraction<.5>
+!setcounter<dbltopnumber><2>
+!def!dbltopfraction<.7>
+!def!dblfloatpagefraction<.5>
+!long!def!@makecaption#1#2<
+!vskip 10pt
+!setbox!@tempboxa!hbox<#1: #2>
+!ifdim !wd!@tempboxa !>!hsize
+!unhbox!@tempboxa!par
+!else
+!hbox to!hsize<!hfil!box!@tempboxa!hfil>
+!fi>
+!newcounter<figure>(chapter)
+!def!thefigure<!thechapter.!@arabic!c@figure>
+!def!fps@figure<tbp>
+!def!ftype@figure<1>
+!def!ext@figure<lof>
+!def!fnum@figure<Figur !thefigure>
+!def!figure<!@float<figure>>
+!let!endfigure!end@float
+!@namedef<figure*><!@dblfloat<figure>>
+!@namedef<endfigure*><!end@dblfloat>
+!newcounter<table>(chapter)
+!def!thetable<!thechapter.!@arabic!c@table>
+!def!fps@table<tbp>
+!def!ftype@table<2>
+!def!ext@table<lot>
+!def!fnum@table<Tabell !thetable>
+!def!table<!@float<table>>
+!let!endtable!end@float
+!@namedef<table*><!@dblfloat<table>>
+!@namedef<endtable*><!end@dblfloat>
+
+!input titlepage.sst
+
+!mark<<><>>
+!if@twoside
+!def!ps@headings<!let!@mkboth!markboth
+!def!@oddfoot<>!def!@evenfoot<>%
+!def!@evenhead<!rm !thepage!hfil !sl !leftmark>%
+!def!@oddhead<!hbox<>!sl !rightmark !hfil !rm!thepage>%
+!def!chaptermark##1<!markboth <!uppercase<!ifnum !c@secnumdepth !>!m@ne
+!@chapapp! !thechapter. ! !fi ##1>><>>%
+!def!sectionmark##1<!markright <!uppercase<!ifnum !c@secnumdepth !>!z@
+!thesection. ! !fi ##1>>>>
+!else
+!def!ps@headings<!let!@mkboth!markboth
+!def!@oddfoot<>!def!@evenfoot<>%
+!def!@oddhead<!hbox <>!sl !rightmark !hfil !rm!thepage>%
+!def!chaptermark##1<!markright <!uppercase<!ifnum !c@secnumdepth !>!m@ne
+!@chapapp! !thechapter. ! !fi ##1>>>>
+!fi
+!def!ps@myheadings<!let!@mkboth!@gobbletwo
+!def!@oddhead<!hbox<>!sl!rightmark !hfil !rm!thepage>%
+!def!@oddfoot<>!def!@evenhead<!rm !thepage!hfil!sl!leftmark!hbox <>>%
+!def!@evenfoot<>!def!sectionmark##1<>!def!subsectionmark##1<>>
+
+!def!today<!number!day!space
+!ifcase!month!or
+januari!or februari!or mars!or april!or maj!or juni!or juli!or
+augusti!or september!or oktober!or november!or december!fi
+!space!number!year>
+!@addtoreset<equation><chapter>
+!def!theequation<!thechapter.!arabic<equation>>
+
+!ps@plain
+!pagenumbering<arabic>
+!onecolumn
+!if@twoside!else!raggedbottom!fi
diff --git a/language/swedish/slatex/tde-macros/rapport.sty b/language/swedish/slatex/tde-macros/rapport.sty
new file mode 100644
index 0000000000..e147510d4d
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/rapport.sty
@@ -0,0 +1,219 @@
+\typeout{Document Style `rapport'. Released 29 September 1986}
+\def\@ptsize{0}
+\@namedef{ds@11pt}{\def\@ptsize{1}}
+\@namedef{ds@12pt}{\def\@ptsize{2}}
+\def\ds@twoside{\@twosidetrue
+\@mparswitchtrue}
+\def\ds@draft{\overfullrule 5pt}
+\@options
+\input rep1\@ptsize.sty\relax
+
+\def\labelenumi{\arabic{enumi}.}
+\def\theenumi{\arabic{enumi}}
+\def\labelenumii{(\alph{enumii})}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+\def\labelenumiii{\roman{enumiii}.}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+\def\labelenumiv{\Alph{enumiv}.}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+\def\verse{\let\\=\@centercr
+\list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
+\rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
+\let\endverse\endlist
+\def\quotation{\list{}{\listparindent 1.5em
+\itemindent\listparindent
+\rightmargin\leftmargin\parsep 0pt plus 1pt}\item[]}
+\let\endquotation=\endlist
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote=\endlist
+\def\descriptionlabel#1{\hspace\labelsep \bf #1}
+\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
+\let\makelabel\descriptionlabel}}
+\let\enddescription\endlist
+\newdimen\descriptionmargin
+\descriptionmargin=3em
+
+\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+\else \newpage \fi \thispagestyle{empty}\c@page\z@}
+\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi}
+\arraycolsep 5pt
+\tabcolsep 6pt
+\arrayrulewidth .4pt
+\doublerulesep 2pt
+\tabbingsep \labelsep
+\skip\@mpfootins = \skip\footins
+\fboxsep = 3pt
+\fboxrule = .4pt
+
+\newcounter{part}
+\newcounter {chapter}
+\newcounter {section}[chapter]
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+\def\thepart {\Roman{part}}
+\def\thechapter {\arabic{chapter}}
+\def\thesection {\thechapter.\arabic{section}}
+\def\thesubsection {\thesection.\arabic{subsection}}
+\def\thesubsubsection {\thesubsection .\arabic{subsubsection}}
+\def\theparagraph {\thesubsubsection.\arabic{paragraph}}
+\def\thesubparagraph {\theparagraph.\arabic{subparagraph}}
+\def\@chapapp{Kapitel}
+
+\def\@pnumwidth{1.55em}
+\def\@tocrmarg {2.55em}
+\def\@dotsep{4.5}
+\setcounter{tocdepth}{2}
+\def\tableofcontents{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+\fi\chapter*{Inneh\aa{}ll\@mkboth
+{INNEH\AA{}LL}{INNEH\AA{}LL}}
+\@starttoc{toc}\if@restonecol\twocolumn\fi}
+\def\l@part#1#2{\addpenalty{-\@highpenalty}
+\addvspace{2.25em plus 1pt}
+\begingroup
+\@tempdima 3em
+\parindent \z@ \rightskip \@pnumwidth
+\parfillskip -\@pnumwidth
+{\large \bf
+\leavevmode
+#1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+\nobreak
+\endgroup}
+\def\l@chapter#1#2{\pagebreak[3]
+\vskip 1.0em plus 1pt
+\@tempdima 1.5em
+\begingroup
+\parindent \z@ \rightskip \@pnumwidth
+\parfillskip -\@pnumwidth
+\bf
+\leavevmode
+#1\hfil \hbox to\@pnumwidth{\hss #2}\par
+\endgroup}
+\def\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
+\def\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
+\def\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
+\def\l@paragraph{\@dottedtocline{4}{10em}{5em}}
+\def\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
+\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+\fi\chapter*{Figurf\"orteckning\@mkboth
+{FIGURF\"ORTECKNING}{FIGURF\"ORTECKNING}}\@starttoc{lof}\if@restonecol\twocolumn
+\fi}
+\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
+\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+\fi\chapter*{Tabellf\"orteckning\@mkboth
+{TABELLF\"ORTECKNING}{TABELLF\"ORTECKNING}}\@starttoc{lot}\if@restonecol\twocolumn
+\fi}
+\let\l@table\l@figure
+
+\def\thebibliography#1{\chapter*{Referenser\@mkboth
+{REFERENSER}{REFERENSER}}\list
+{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
+\advance\leftmargin\labelsep
+\usecounter{enumi}}
+\def\newblock{\hskip .11em plus .33em minus -.07em}
+\sloppy
+\sfcode`\.=1000\relax}
+\let\endthebibliography=\endlist
+
+\newif\if@restonecol
+\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+\columnseprule \z@
+\columnsep 35pt\twocolumn[\@makeschapterhead{Register}]
+\@mkboth{REGISTER}{REGISTER}\thispagestyle{plain}\parindent\z@
+\parskip\z@ plus .3pt\relax\let\item\@idxitem}
+\def\@idxitem{\par\hangindent 40pt}
+\def\subitem{\par\hangindent 40pt \hspace*{20pt}}
+\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}}
+\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
+\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}
+
+\def\footnoterule{\kern-3\p@
+\hrule width .4\columnwidth
+\kern 2.6\p@}
+\@addtoreset{footnote}{chapter}
+\long\def\@makefntext#1{\parindent 1em\noindent
+\hbox to 1.8em{\hss$^{\@thefnmark}$}#1}
+
+\setcounter{topnumber}{2}
+\def\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\def\textfraction{.2}
+\def\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+\long\def\@makecaption#1#2{
+\vskip 10pt
+\setbox\@tempboxa\hbox{#1: #2}
+\ifdim \wd\@tempboxa >\hsize
+\unhbox\@tempboxa\par
+\else
+\hbox to\hsize{\hfil\box\@tempboxa\hfil}
+\fi}
+\newcounter{figure}[chapter]
+\def\thefigure{\thechapter.\@arabic\c@figure}
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+\def\fnum@figure{Figur \thefigure}
+\def\figure{\@float{figure}}
+\let\endfigure\end@float
+\@namedef{figure*}{\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+\newcounter{table}[chapter]
+\def\thetable{\thechapter.\@arabic\c@table}
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{Tabell \thetable}
+\def\table{\@float{table}}
+\let\endtable\end@float
+\@namedef{table*}{\@dblfloat{table}}
+\@namedef{endtable*}{\end@dblfloat}
+
+\input titlepage.sty
+
+\mark{{}{}}
+\if@twoside
+\def\ps@headings{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{}%
+\def\@evenhead{\rm \thepage\hfil \sl \leftmark}%
+\def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage}%
+\def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne
+\@chapapp\ \thechapter. \ \fi ##1}}{}}%
+\def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
+\thesection. \ \fi ##1}}}}
+\else
+\def\ps@headings{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{}%
+\def\@oddhead{\hbox {}\sl \rightmark \hfil \rm\thepage}%
+\def\chaptermark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\m@ne
+\@chapapp\ \thechapter. \ \fi ##1}}}}
+\fi
+\def\ps@myheadings{\let\@mkboth\@gobbletwo
+\def\@oddhead{\hbox{}\sl\rightmark \hfil \rm\thepage}%
+\def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark\hbox {}}%
+\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+\def\today{\number\day\space
+\ifcase\month\or
+januari\or februari\or mars\or april\or maj\or juni\or juli\or
+augusti\or september\or oktober\or november\or december\fi
+\space\number\year}
+\@addtoreset{equation}{chapter}
+\def\theequation{\thechapter.\arabic{equation}}
+
+\ps@plain
+\pagenumbering{arabic}
+\onecolumn
+\if@twoside\else\raggedbottom\fi
diff --git a/language/swedish/slatex/tde-macros/tags.doc b/language/swedish/slatex/tde-macros/tags.doc
new file mode 100644
index 0000000000..09aacd6c01
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/tags.doc
@@ -0,0 +1,30 @@
+%
+% $Header: tags.doc,v 1.1 85/12/19 21:23:29 sven Exp $
+%------------------------------------------------------------------
+%
+% $Source: /usr.MC68020/piraten/sven/lib/tex/RCS/tags.doc,v $
+% $Revision: 1.1 $
+% $Date: 85/12/19 21:23:29 $
+% $State: Exp $
+% $Author: sven $
+% $Locker: $
+%
+%------------------------------------------------------------------
+% $Log: tags.doc,v $
+% Revision 1.1 85/12/19 21:23:29 sven
+% Initial revision
+%
+%------------------------------------------------------------------
+%
+% TAGS ENVIRONMENT
+% Put a hanging tag at each paragraf. The argument to the \tags command
+% is a box with the desired labelwidth. Tags must be supplied via the
+% \item optional argument. Tags wider than the labelwidth will protrud
+% into the text like the description labels do.
+
+\def\tagslabel#1{{#1\hfil}}
+\def\tags#1{\list{}{\settowidth{\labelwidth}{#1} \leftmargin\labelwidth
+\advance\leftmargin \labelsep
+\let\makelabel\tagslabel}}
+\let\endtags\endlist
+
diff --git a/language/swedish/slatex/tde-macros/tags.sst b/language/swedish/slatex/tde-macros/tags.sst
new file mode 100644
index 0000000000..4303516321
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/tags.sst
@@ -0,0 +1,5 @@
+!def!tagslabel#1<<#1!hfil>>
+!def!tags#1<!list<><!settowidth<!labelwidth><#1> !leftmargin!labelwidth
+!advance!leftmargin !labelsep
+!let!makelabel!tagslabel>>
+!let!endtags!endlist
diff --git a/language/swedish/slatex/tde-macros/tags.sty b/language/swedish/slatex/tde-macros/tags.sty
new file mode 100644
index 0000000000..205a7dbc88
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/tags.sty
@@ -0,0 +1,5 @@
+\def\tagslabel#1{{#1\hfil}}
+\def\tags#1{\list{}{\settowidth{\labelwidth}{#1} \leftmargin\labelwidth
+\advance\leftmargin \labelsep
+\let\makelabel\tagslabel}}
+\let\endtags\endlist
diff --git a/language/swedish/slatex/tde-macros/viewg.doc b/language/swedish/slatex/tde-macros/viewg.doc
new file mode 100644
index 0000000000..2f170235ff
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/viewg.doc
@@ -0,0 +1,2 @@
+\def\@texttop{\vskip 0pt plus .5fil\relax}
+\sloppy \raggedright
diff --git a/language/swedish/slatex/tde-macros/viewg.sst b/language/swedish/slatex/tde-macros/viewg.sst
new file mode 100644
index 0000000000..5332e6a4b5
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/viewg.sst
@@ -0,0 +1,2 @@
+!def!@texttop<!vskip 0pt plus .5fil!relax>
+!sloppy !raggedright
diff --git a/language/swedish/slatex/tde-macros/viewg.sty b/language/swedish/slatex/tde-macros/viewg.sty
new file mode 100644
index 0000000000..2f170235ff
--- /dev/null
+++ b/language/swedish/slatex/tde-macros/viewg.sty
@@ -0,0 +1,2 @@
+\def\@texttop{\vskip 0pt plus .5fil\relax}
+\sloppy \raggedright
diff --git a/language/swedish/slatex/write.tex b/language/swedish/slatex/write.tex
new file mode 100644
index 0000000000..f9d11ffe55
--- /dev/null
+++ b/language/swedish/slatex/write.tex
@@ -0,0 +1,118 @@
+%
+% $Header: write.tex,v 1.2 86/09/14 00:20:05 sven Exp $
+%
+% $Log: write.tex,v $
+% Revision 1.2 86/09/14 00:20:05 sven
+% Initial revision, LaTeX 2.09
+%
+% Revision 1.1 86/01/15 22:36:41 sven
+% Initial revision, LaTeX 2.08
+%
+%
+% Change the macros writing on files such that they use all of the new
+% special characters, or '\', '{' and '}' may be printed on the .aux,
+% and other, files. The TeX and LaTeX logos also have to be redefined
+% for the same reason.
+
+!typeout<Fix macros writing on files and redefine logos.>
+
+!def!LaTeX<<!rm L!kern-.36em!raise.3ex!hbox<!sc a>!kern-.15em
+ T!kern-.1667em!lower.7ex!hbox<E>!kern-.125emX>>
+
+!def!TeX<T!kern-.1667em!lower.5ex!hbox<E>!kern-.125emX>
+
+!def!include#1<!clearpage
+!if@filesw !immediate!write!@mainaux<!string!@input<#1.aux>>!fi
+!@tempswatrue!if@partsw !@tempswafalse!def!@tempb<#1>!@for
+!@tempa:=!@partlist!do<!ifx!@tempa!@tempb!@tempswatrue!fi>!fi
+!if@tempswa !if@filesw !let!@auxout=!@partaux
+!immediate!openout!@partaux #1.aux
+!immediate!write!@partaux<!relax>!fi!@input<#1.tex>!clearpage
+!@writeckpt<#1>!if@filesw !immediate!closeout!@partaux !fi
+!let!@auxout=!@mainaux!else!@nameuse<cp@#1>!fi>
+
+!def!@writeckpt#1<!if@filesw
+!immediate!write!@partaux<!string!global!string!@namedef<cp@#1>!@charlb>%
+<!let!@elt!@wckptelt !cl@@ckpt>!immediate!write!@partaux<!@charrb>!fi>
+
+!def!@wckptelt#1<!immediate!write!@partaux
+<!string!setcounter<#1><!the!@nameuse<c@#1>>>>
+
+<!catcode`[=1 !catcode`]=2
+!catcode`<=11 !catcode`>=11
+!gdef!@charlb[<]
+!gdef!@charrb[>]
+]% }brace matching
+
+!def!label#1<!@bsphack!if@filesw <!let!thepage!relax
+ !xdef!@gtempa<!write!@auxout<!string
+ !newlabel<#1><<!@currentlabel><!thepage>>>>>!@gtempa
+ !if@nobreak !ifvmode!nobreak!fi!fi!fi!@esphack>
+
+!def!@sect#1#2#3#4#5#6(#7)#8<!ifnum #2!>!c@secnumdepth
+ !def!@svsec<>!else
+ !refstepcounter<#1>!edef!@svsec<!csname the#1!endcsname!hskip 1em >!fi
+ !@tempskipa #5!relax
+ !ifdim !@tempskipa!>!z@
+ !begingroup #6!relax
+ !@hangfrom<!hskip #3!relax!@svsec><!interlinepenalty !@M #8!par>
+ !endgroup
+ !csname #1mark!endcsname<#7>!addcontentsline
+ <toc><#1><!ifnum #2!>!c@secnumdepth !else
+ !protect!numberline<!csname the#1!endcsname>!fi
+ #7>!else
+ !def!@svsechd<#6!hskip #3!@svsec #8!csname #1mark!endcsname
+ <#7>!addcontentsline
+ <toc><#1><!ifnum #2!>!c@secnumdepth !else
+ !protect!numberline<!csname the#1!endcsname>!fi
+ #7>>!fi
+ !@xsect<#5>>
+
+!def!addcontentsline#1#2#3<!if@filesw !begingroup
+!let!label!@gobble !let!index!@gobble
+!def!protect##1<!string!string!string##1!string!space
+ !space>!@temptokena<!thepage>%
+!edef!@tempa<!write !@auxout<!string!@writefile<#1><!protect
+ !contentsline<#2><#3><!the!@temptokena>>>>!@tempa
+ !if@nobreak !ifvmode!nobreak!fi!fi!endgroup!fi>
+
+!long!def!addtocontents#1#2<!if@filesw !begingroup
+!let!label!@gobble !let!index!@gobble
+!def!protect##1<!string!string!string##1!string!space!space>%
+!edef!@tempa<!write !@auxout <!string!@writefile<#1><#2>>>!@tempa
+ !if@nobreak !ifvmode!nobreak!fi!fi!endgroup!fi>
+
+!def!@wrindex#1#2<!let!thepage!relax
+ !xdef!@gtempa<!write#1<!string
+ !indexentry<#2><!thepage>>>!endgroup!@gtempa
+ !if@nobreak !ifvmode!nobreak!fi!fi!@esphack>
+
+!def!@lbibitem(#1)#2<!item(!@biblabel<#1>)!if@filesw
+ < !def!protect##1<!string ##1!space>!immediate
+ !write!@auxout<!string!bibcite<#2><#1>>!fi!ignorespaces>>
+
+!def!@bibitem#1<!item!if@filesw !immediate!write!@auxout
+ <!string!bibcite<#1><!the!c@enumi>>!fi!ignorespaces>
+
+!def!@citex(#1)#2<!if@filesw!immediate!write!@auxout<!string!citation<#2>>!fi
+ !def!@citea<>!@cite<!@for!@citeb:=#2!do
+ <!@citea!def!@citea<,>!@ifundefined
+ <b@!@citeb><<!bf ?>!@warning
+ <Citation `!@citeb' on page !thepage !space undefined>>%
+!hbox<!csname b@!@citeb!endcsname>>><#1>>
+
+!def!bibliography#1<!if@filesw!immediate!write!@auxout<!string!bibdata<#1>>!fi
+ !@input<!jobname.bbl>>
+
+!def!bibliographystyle#1<!if@filesw!immediate!write!@auxout
+ <!string!bibstyle<#1>>!fi>
+
+!long!def!@caption#1(#2)#3<!addcontentsline<!csname
+ ext@#1!endcsname><#1><!protect!numberline<!csname
+ the#1!endcsname><!ignorespaces #2>>!par
+ !begingroup
+ !@parboxrestore
+ !normalsize
+ !@makecaption<!csname fnum@#1!endcsname><!ignorespaces #3>!par
+ !endgroup>
+