summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex-dev/base/ltnews38.tex
blob: 38745b9dbfb104a1a888c7dffb4fa5074464abd3 (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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
% \iffalse meta-comment
%
% Copyright 2021-2023
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX base system.
% -——————————————
%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
%    https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 or later.
%
% This file has the LPPL maintenance status "maintained".
%
% The list of all files belonging to the LaTeX base distribution is
% given in the file `manifest.txt'. See also `legal.txt' for additional
% information.
%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
%
% \fi
% Filename: ltnews38.tex
%
% This is issue 38 of LaTeX News.

\NeedsTeXFormat{LaTeX2e}[2020-02-02]

\documentclass{ltnews}

%%  Maybe needed only for Chris' inadequate system:
\providecommand\Dash {\unskip \textemdash}

%% NOTE:  Chris' preferred hyphens!
%%\showhyphens{parameters}
%%  \hyphenation{because parameters parameter}

\usepackage[T1]{fontenc}

\usepackage{lmodern,url,hologo}

\usepackage{csquotes}
\usepackage{multicol}
\usepackage{color}

\providecommand\hook[1]{\texttt{#1}}

\providecommand\meta[1]{$\langle$\textrm{\itshape#1}$\rangle$}
\providecommand\option[1]{\texttt{#1}}
\providecommand\env[1]{\texttt{#1}}
\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}}


\providecommand\eTeX{\hologo{eTeX}}
\providecommand\XeTeX{\hologo{XeTeX}}
\providecommand\LuaTeX{\hologo{LuaTeX}}
\providecommand\pdfTeX{\hologo{pdfTeX}}
\providecommand\MiKTeX{\hologo{MiKTeX}}
\providecommand\CTAN{\textsc{ctan}}
\providecommand\TL{\TeX\,Live}
\providecommand\githubissue[2][]{\ifhmode\unskip\fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(%
       \href{https://github.com/latex3/latex2e/issues/\getfirstgithubissue#2 \relax}%
          	    {github issue#1 #2}%
           )}%
     \par\smallskip}
%% But Chris has to mostly disable \href for his TEXPAD app:
%%  \def\href #1{}  % Only For Chris' deficient TeX engine

% simple solution right now (just link to the first issue if there are more)
\def\getfirstgithubissue#1 #2\relax{#1}

\providecommand\sxissue[1]{\ifhmode\unskip
     \else
       % githubissue preceding
       \vskip-\smallskipamount
       \vskip-\parskip
     \fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(\url{https://tex.stackexchange.com/#1})}\par}

\providecommand\gnatsissue[2]{\ifhmode\unskip\fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(%
       \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=#1\%2F\getfirstgithubissue#2 \relax}%
          	    {gnats issue #1/#2}%
           )}%
     \par}

\let\cls\pkg
\providecommand\env[1]{\texttt{#1}}
\providecommand\acro[1]{\textsc{#1}}

\vbadness=1400  % accept slightly empty columns


\makeatletter
% maybe not the greatest design but normally we wouldn't have subsubsections
\renewcommand{\subsubsection}{%
   \@startsection      {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}%
      {-1em}{\@subheadingfont\colonize}%
}
\providecommand\colonize[1]{#1:}
\makeatother

\let\finalvspace\vspace          % for document layout fixes

% Undo ltnews's \verbatim@font with active < and >
\makeatletter
\def\verbatim@font{%
  \normalsize\ttfamily}
\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\providecommand\tubcommand[1]{}
\tubcommand{\input{tubltmac}}

\publicationmonth{November}
\publicationyear{2023  --- DRAFT version for upcoming release}

\publicationissue{38}

\begin{document}

\tubcommand{\addtolength\textheight{4.2pc}}   % only for TUB

\maketitle
{\hyphenpenalty=10000 \exhyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000
\tableofcontents}

\setlength\rightskip{0pt plus 3em}

\medskip

\section{Introduction}


\section{Sockets and plugs}

\emph{write}

For documentation see \texttt{texdoc ltsockets-doc} for now.

\section{Extended cross-referencing of document properties}

Traditionally \LaTeX{} allowed with \cs{label} to record two \enquote{local} 
properties of the document: the representation of the current page number and 
of the current counter. Their values could then be referenced with the 
(non-expandable)  commands \cs{ref} and \cs{pageref} in arbitrary places of a 
document.  With the summer 2023 release the \cs{label} was enhanced to record 
also if set by packages like \pkg{nameref} or \pkg{hyperref} the title and 
the name of the link target. 

Over the years packages extended the label-ref system in various ways. 
Examples are for example the \pkg{refcount} package to reference the values 
expandably, the \pkg{smartref} package, which allows to store more counter 
values and so to reference the current chapter together with the current 
equation, the \pkg{cleveref} package, which stores in a second internal label 
beside other the name of the counter,  the \pkg{hyperref} package whose 
\cs{autoref} command tries to retrieve the name of the counter from the name 
of the link target, the \pkg{tikzmarks} which records absolute positions on 
the page, and the \pkg{zref} package which implements a general method to 
record and reference properties. 

Starting with this release the \LaTeX{} kernel contains now its own 
extension. It is loosely based on \pkg{zref}. It allows to declare new 
properties, to record arbitrary combinations of properties. The values are 
retrieved expandably. 

As an example to setup a new property which records the current chapter 
number the following declaration could be used: 
\begin{verbatim}
\NewProperty{chapter}{now}{?}{\thechapter}
\end{verbatim}
The second argument means that the property is recorded immediately 
(\enquote{now}) and not at shipout. The third argument sets a default if a 
label is unknown. It is then possible to record a list of properties with 
\cs{RecordProperties}: 
\begin{verbatim}
\RecordProperties{mylabel}{chapter,page,currentlabel}
\end{verbatim}
To reference the value the \cs{RefProperty} command is provided which takes 
two arguments, the label and the property: 
\begin{verbatim}
\RefProperty{mylabel}{chapter}
\end{verbatim}
 
The new module predeclares a set of generally useful properties: 
\texttt{currentlabel} (the standard counter representation), \texttt{page} 
(the page representation), \texttt{title} (the title if set e.g.~by 
\pkg{nameref}), \texttt{target} (the name of the link target if set e.g.~by 
\pkg{hyperref}), \texttt{pagenum} (the page as an arabic number), 
\texttt{abspage} (the absolute page number), \texttt{counter} (the name of 
the current counter), \texttt{xpos} and \texttt{ypos} the position on the 
page as set by a previous \cs{pdfsavepos}. 
  
The module provides both \LaTeXe{} camel case commands and expl3 commands.    

For documentation see \texttt{texdoc ltproperties-doc}. 

\section{New or improved commands}

%
\githubissue{xxx}

\section{\emph{Removed} commands}

It is very rare that commands are removed from the \LaTeX{} kernel. However, in
this release we have elected to remove \cs{GetDocumentCommandArgSpec},
\cs{GetDocumentEnvironmentArgSpec}, \cs{ShowDocumentCommandArgSpec} and
\cs{ShowDocumentEnvironmentArgSpec} from the kernel. These commands have been
moved back to the \enquote{stub} \pkg{xparse} provided in \pkg{l3packages}. The
reason for this change is that the commands were essentially part of debugging
early forms of the kernel code, and expose implementation detail in a way that
was not helpful.

\section{Code improvements}

\subsection{Support for tabs in \cs{verb*} and \texttt{verbatim*}}

\LaTeX{} converts a single tab to a single space, which is then treated like a
\enquote{real} space in typesetting. The same has been true to date inside
\cs{verb}, but was done in a way that meant that they remained as normal spaces
even in \cs{verb*}, etc. We have now adjusted the code so that tabs are
retained within the argument to \cs{verb} and \cs{verb*}, and the
\texttt{verbatim} and \texttt{verbatim*} environments independently from
spaces, and are set up to print in the same way spaces do. This means that they
now generate visible spaces inside \cs{verb*} and \texttt{verbatim*}, and their
behavior can be adjusted if required to be different from that of spaces.
%
\githubissue{1085}

\section{Bug fixes}

\section{Changes to packages in the \pkg{amsmath} category}

\section{Changes to packages in the \pkg{graphics} category}

\section{Changes to packages in the \pkg{tools} category}


%\medskip

\begin{thebibliography}{9}

\fontsize{9.3}{11.3}\selectfont

\end{thebibliography}

\end{document}