summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3kernel/l3news.tex
blob: 1c1b9eed797fcf7b70a259c1eb3c3afe88c8b485 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
% Copyright 2019 The LaTeX3 Project

\providecommand*{\lastissue}{12}

\documentclass{ltnews}

\AtBeginDocument{%
  \renewcommand{\LaTeXNews}{\LaTeX3~News}%
  \RaggedRight
  \setlength\parindent{1em}%
}
\usepackage{catchfile}
\usepackage{csquotes}
\usepackage{enumitem}
\usepackage{fancyvrb}
\usepackage{hologo}
\usepackage{metalogo}
\usepackage{multicol}
\usepackage{ragged2e}
\usepackage{siunitx}
\usepackage{tikz}
\usepackage{underscore}
\usepackage{xparse}
\usepackage{hyperref}
\hypersetup{colorlinks}
\usepackage{bookmark}

\makeatletter
\newcounter{issue}
\renewcommand*{\theissue}{%
  \ifnum\value{issue}<10 0\fi
  \number\value{issue}%
}
\newcommand*{\MonthJanuary}{01}
\newcommand*{\MonthFebruary}{02}
\newcommand*{\MonthMarch}{03}
\newcommand*{\MonthApril}{04}
\newcommand*{\MonthMay}{05}
\newcommand*{\MonthJune}{06}
\newcommand*{\MonthJuly}{07}
\newcommand*{\MonthAugust}{08}
\newcommand*{\MonthSeptember}{09}
\newcommand*{\MonthOctober}{10}
\newcommand*{\MonthNovember}{11}
\newcommand*{\MonthDecember}{12}
\newcommand*{\printissue}{%
  Issue %
  \texorpdfstring{\number\value{issue}}{\theissue}, %
  \texorpdfstring{\@month\space\@year}{\@year/\@nameuse{Month\@month}}%
}
\let\l@part\l@section
\let\l@section\l@subsection
\let\l@subsection\l@subsubsection
\let\l@subsubsection\l@paragraph
\let\l@paragraph\l@subparagraph
\newcommand*{\makefirsttitle}{%
  \twocolumn[{%
    \parbox[t][4\baselineskip]{\textwidth}{%
      \@titlefont\@title, Issues 1--\lastissue
    }%
  }]%
}
\makeatother

\begin{document}

%%% Title and Table of Contents

\makefirsttitle
\pdfbookmark[0]{\contentsname}{toc}
\tableofcontents
\clearpage

\begingroup
  \renewcommand*{\AtBeginDocument}[1]{#1}%
  \renewcommand*{\PassOptionsToPackage}[2]{}%
  \renewcommand*{\usepackage}[2][]{}%
  \renewcommand*{\RequirePackage}[2][]{}%
  \renewcommand*{\documentclass}[2][]{%
    \setcounter{footnote}{0}%
    \gobbleopt
  }%
  \newcommand*{\gobbleopt}[1][]{}%
  \makeatletter
  \let\org@twocolumn\twocolumn
  \renewenvironment{document}{%
    \clearpage
    \ifnum\@issue=20 %
      \addtocontents{toc}{\protect\setcounter{tocdepth}{5}}%
      \addtocontents{toc}{%
        \protect\makeatletter
       }%
       \addtocontents{toc}{%
         \let\protect\saved@l@paragraph\protect\l@paragraph
       }%
       \addtocontents{toc}{%
         \let\protect\l@paragraph\protect\l@subsection
       }%
    \fi
    \ifnum\@issue=\lastissue\space
      \addtocontents{toc}{%
        \let\protect\l@paragraph\protect\saved@l@paragraph
      }%
      \def\toclevel@subsection{1}%
      \def\toclevel@subsubsection{2}%
      \addtocontents{toc}{\protect\setcounter{tocdepth}{4}}%
      \renewcommand*{\tableofcontents}{%
        \section*{\contentsname}%
        \@starttoc{toc\lastissue}%
      }%
      \let\saved@addtocontents\addtocontents
      \renewcommand*{\addtocontents}[2]{%
        \saved@addtocontents{##1}{##2}%
        \def\temp@toc{toc}%
        \def\temp@param{##1}%
        \ifx\temp@toc\temp@param
          \saved@addtocontents{toc\lastissue}{##2}%
        \fi
      }%
      \let\l@subsubsection\l@subsection
      \let\l@subsection\l@section
      \let\l@section\l@part
      \let\l@part\@gobbletwo
    \fi
    \def\twocolumn[{%
      \let\twocolumn\org@twocolumn
      \org@twocolumn[%
      {% because of optional argument of \twocolumn
        \pdfbookmark[0]{\printissue}{issue\theissue}%
      }%
      \begingroup
        \let\WriteBookmarks\relax
        \@firstofone{% inside opt. arg. of \twocolumn: protect "]"
          \renewcommand*{\Hy@writebookmark}[5]{}%
        }%
        \phantomsection
        \addcontentsline{toc}{part}{\printissue}%
      \endgroup
    }%
  }{%
    \clearpage
  }%
  \makeatother
  \loop
  \ifnum\value{issue}<\lastissue
    \stepcounter{issue}%
    \input{l3news\theissue}%
  \repeat
  \stepcounter{issue}%
  \IfFileExists{l3news\theissue}{%
    \@latex@error{\jobname.tex is out of date,\MessageBreak
      there is `l3news\theissue.tex'%
    }\@ehc
  }{}%
\endgroup

\end{document}