summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex-dev/base/ltnews30.tex
blob: cfb67b0c689b22ad66cc68c6c1f2356ceb5a5652 (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
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
% \iffalse meta-comment
%
% Copyright 2019
% 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: ltnews30.tex
%
% This is issue 30 of LaTeX News.

\documentclass{ltnews}
\usepackage[T1]{fontenc}

\usepackage{lmodern,url,hologo}

\usepackage{csquotes}

\providecommand\acro[1]{\textsc{#1}}
\providecommand\meta[1]{$\langle$\textit{#1}$\rangle$}
\providecommand\option[1]{\texttt{#1}}
\providecommand\env[1]{\texttt{#1}}


\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}

% 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\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#2}%
          	    {gnats issue #1/#2}%
           )}%
     \par}

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\iffalse % only for TUB production
\usepackage{graphicx}
\makeatletter
% Xe\TeX{} requires reflecting the first E, hence we complain if the
% graphics package is not present.  (For plain documents, this can be
% loaded via Eplain.)  Also, at Barbara's suggestion, if the current
% font is slanted, we rotate by 180 instead of reflecting so there is at
% least a chance to look ok.  (The magic values here seem more or less
% ok for \texttt{cmsl} and \texttt{cmti}.)
%
%    \begin{macrocode}
\def\tubreflect#1{%
  \@ifundefined{reflectbox}{%
    \TBerror{A graphics package must be loaded for \string\XeTeX}%
  }{%
    \ifdim \fontdimen1\font>0pt
      \raise 1.6ex \hbox{\kern.1em\rotatebox{180}{#1}}\kern-.1em
    \else
      \reflectbox{#1}%
    \fi
  }%
}
\def\tubhideheight#1{\setbox0=\hbox{#1}\ht0=0pt \dp0=0pt \box0 }
\def\XekernbeforeE{-.125em}
\def\XekernafterE{-.1667em}
\DeclareRobustCommand{\Xe}{\leavevmode
  \tubhideheight{\hbox{X%
    \setbox0=\hbox{\TeX}\setbox1=\hbox{E}%
    \ifdim \fontdimen1\font>0pt \def\XekernbeforeE{0em}\fi
    \lower\dp0\hbox{\raise\dp1\hbox{\kern\XekernbeforeE\tubreflect{E}}}%
    \kern\XekernafterE}}}
\def\XeTeX{\Xe\TeX}
\def\XeLaTeX{\Xe{\kern.11em \LaTeX}}
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\publicationmonth{October}
\publicationyear{2019}

\publicationissue{30}

\begin{document}

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

\maketitle
\tableofcontents

\setlength\rightskip{0pt plus 3em}

%\newpage

\medskip


%%CCC Does it need an intro?
%% \section{Introduction}

%% This document is under construction \ldots


\section{\LaTeX\texttt{-dev} formats now available}


We know that many of you, especially developers and maintainers of
important packages, have a strong interest in a stable \LaTeX{}
environment.

In order to keep \LaTeX{} very stable for users whilst allowing for
further development to continue, we now have a development branch of
\LaTeX{} on GitHub containing development code for the upcoming
release. When this code is ready for wider consumption and testing, we
generate a pre-release of \LaTeX{} from this development branch and make
it available on \CTAN.

For users of the \TL{} and \MiKTeX{} distributions it is therefore now
straightforward to test their documents and code against the upcoming
\LaTeX{} release with ease, simply by selecting a different program name
(when using the command line) or by selecting a menu entry (after
setting it up; see below).

If you do this then the latest version of the \LaTeX{} development format
will be used to process your document, allowing you to test the
upcoming release with your own documents and packages. For example, if
you run
\begin{verbatim}
  pdflatex-dev myfile
\end{verbatim}
then you will be greeted on the screen with something like \texttt{LaTeX2e
  <2019-10-01> pre-release-2} (identifying the pre-release format)
instead of the normal \texttt{LaTeX2e <2018-12-01>}. In this
pre-release you will find the latest new features that we have
developed.

\subsection{Our hopes}

We don’t expect everybody to start using the development formats to
participate in testing, but we hope that people with a strong interest
in a stable \LaTeX{} environment (especially developers and maintainers
of important packages) will use the new facilities and help us to
ensure that future public releases of \LaTeX{} do not (as has happened in
the past) require some immediate patches because of issues that were
not identified by our internal regression test suite or by other
testing
we do.

Any issue identified when using the development format should
preferably be logged as an issue on GitHub, following the procedure
outlined on our website at \url{https://www.latex-project.org/bugs/}
including the use of the \pkg{latexbug} package as described.

Our bug reporting process normally states that issues involving
third-party software are out of scope as we can’t correct external
packages; see~\cite{30:Mittelbach:TB39-1}. However, in the particular
case of the development format showing an incompatibility with a
third-party package, it is fine to open an issue with us (in addition,
please, to informing the maintainer of that package) so that we know
about the problem and can jointly work on resolving it.

\subsection{Details please \ldots}

More details and some background information about the concepts and
the process are available in an upcoming \textsl{TUGboat} article: \enquote{The
  \LaTeX{} release workflow and the \LaTeX{} dev
  formats}~\cite{devformat}.

\subsection{Setting up menu items}

While the command line call works out of the box if you have a recent
\TL{} or \MiKTeX{} installation, its use within an integrated
editing environment doesn’t at this point in time (maybe the
developers of these editors will include it in the future). However,
it is normally fairly simple to enable it as most (or even all?)\ of
them provide simple ways to call your own setup. How this works in
detail depends very much on the environment you use, so we can’t give
much help here.

But as an example: to provide an additional menu entry for
\texttt{XeLaTeX-dev} on a MacBook all that is necessary is to copy
the file \texttt{XeLaTeX.engine} to \texttt{XeLaTeX-dev.engine} and change the
call from \texttt{xelatex} to \texttt{xelatex-dev} inside.




\section{Improving Unicode handling in \pdfTeX{}}

Perhaps the most important improvement in this release is
even
better support for \acro{utf}-8 characters when using \pdfTeX{}.\footnote{The
  Japanese engines e-p\TeX{} and e-up\TeX{} can't use these features
  yet as they don't support the primitive \cs{ifincsname}. Work is
  under way to resolve this in the engines.}

When using a \enquote{Unicode engine},
any Unicode character (that is not acting as a command,
i.e., is not \enquote{active})
can be used as part of the
\cs{label}/\cs{ref} mechanism or can be displayed in a message or
written to a file. In 8-bit engines, however, this was severely
restricted:
essentially you had to limit yourself to using
\acro{ascii} letters, digits and a few punctuation symbols.  With the
new release, most of these restrictions have been removed and you now
can write labels such as
\begin{verbatim}
  \label{eq:größer}
\end{verbatim}
or use accented characters, etc., as part of a \cs{typeout} message.
The only requirement remaining is that only those \acro{utf}-8 characters
that are also available for typesetting can be used, i.e., only those
characters for
which adequate font support is loaded. Otherwise you will get an
error message stating that
the
particular Unicode character is not set
up for use with \LaTeX{}.

Note, however, that the restrictions on what characters can be
used in the names of commands have not changed.

What is not possible when using
an 8-bit engine such as \pdfTeX{} is to use
characters other than \acro{ascii} letters as part of a command
name. This is due to the fact that all other characters in such
engines are not single character tokens, but in fact consist of a
sequence of bytes and this is not supported in command names.

\section{Improving file name handling in \pdfTeX{}}

A related change is that file names used as part of \cs{input},
\cs{includegraphics}, etc., commands
can now contain any
Unicode characters allowed by the file system in use,
including spaces.
In this case,
 even characters that can't be typeset
(due to lack of font support) can be used.


\section{Improving the \env{filecontents} environment}

The \env{filecontents} environment now supports an optional argument
in which you can specify that it is allowed to \option{overwrite} an
already existing file;
 by default nothing is written if a file with the given name
exists anywhere in the search tree. An alternative name for this
option is \texttt{force}.
Even then the environment will refuse to write
to \cs{jobname}\texttt{.tex} to avoid clobbering its own input
file. However, if you use a different extension on your input file you
could still overwrite it (there is no way to test for that).

There is also an
option
\option{nosearch},
which specifies that only the current directory is
examined for an existing file, not the whole \TeX{} inputs tree.
This is useful if you want to write a
local copy of a standard system file.
Finally, \option{noheader} prevents writing a preamble to the file
(this
is the same as using the star form of the environment).

Another change is that this
environment is
now allowed anywhere in the document,
which means
it provides everything (and more) of what the now obsolete
\pkg{filecontents} package provided.



\section{Making more user commands robust}

In the early days of \LaTeX{} many commands were fragile, i.e., they
needed \cs{protect} in front of them when used in places such as
section headings and other \enquote{moving arguments}, etc.
In \LaTeXe{} many of these commands were made robust,
but still a fairly large number remained unnecessarily fragile.

In this release of \LaTeX{} we have now
made a lot more commands robust.
There is a very small collection of commands that must stay fragile
because their expansion (maybe partially) at just the right time is critical.
Yet others are unlikely to ever be needed in a \enquote{moving argument}.

Doing this for \cs{begin} and \cs{end} was rather tricky as the
standard mechanism with \cs{DeclareRobustCommand} doesn't work here,
at least not for \cs{end} as that needs to expand during typesetting
without generating a \cs{relax} (from the \cs{protect}). Such a token
would start a new row in table environments, such as \texttt{tabular},
etc. Furthermore, some packages try to look into the definition of
\cs{end} by expanding it several times. Thus expansion with
\cs{expandafter} had to produce exactly the same result as before. But
in the end we overcame that hurdle too, so now environments are
automatically robust if used in places like headings or
\verb=\typeout= and so forth.

%%CCC do we need to say something about possible problems if other packages
%%   or documents have redefined commands whose robustness has changed?

What hasn't been tackled yet is the redefinitions in \pkg{amsmath}:
this package
redefines a number of basic math constructs
that are now robust, so that
they become fragile again
once the package is loaded.
This area will be addressed in a followup release.
%
\githubissue{123}



\section{Other changes to the \LaTeX{} kernel}

\subsection{Guard against \cs{unskip} in tabular cells}

If a \env{tabular} or \env{array} cell started with a
command that started with an
\cs{unskip}
then centering the column broke
 because the stretching glue
 on the left got removed. The fix for this was to add
 a minuscule, and hence unnoticeable, additional space after the stretching space:
removing this extra space causes no problems.

This change was also applied in the \pkg{array} package.

\githubissue{102}


\subsection{Fix Unicode table data}

\texttt{U+012F} which is \enquote{i with ogonek} produced a
\enquote{dotless i with ogonek} by mistake. This has been corrected.

\githubissue{122}

The Unicode slots \texttt{27E8} and \texttt{27E9} have been mapped to
\cs{textlangle} and \cs{textrangle} which is the recommended mapping.
In the past they raised a
\\
\LaTeX{} error.
%
\githubissue{110}

When doing cut-and-paste from other documents or websites, f-ligatures and others ligatures
might end up as
single Unicode characters in your file. In the past those got rejected by \LaTeX{}.
 We
 now define those Unicode slots and map them back to the sequence of
 individual characters constituting the ligature.
If supported by the current font
(which is normally the case) they
are then reconstructed as ligatures and thus get typeset
as desired.
Otherwise they will come out as individual characters which
is still better than an error message.

\githubissue{154}


\subsection{Improve \cs{InputIfFileExists}'s handling of file names}

In rare circumstances it was possible that \cs{InputIfFileExists}
would work incorrectly, e.g., a construction such as
\begin{verbatim}
\InputIfFileExists{foo}{\input{bar}}{}
\end{verbatim}
would not load the files \texttt{foo.tex} and \texttt{bar.tex} but
would load \texttt{bar.tex} twice. This has been corrected.

\githubissue{109}


\subsection{Improve interface for cross-references}

%%CCC  should be 'provide' as they still exist. FMi - no they no longer do that
The packages \pkg{fncylab} and \pkg{varioref} provided
a slightly
improved definition of \cs{refstepcounter} which allowed
the internal
\cs{p@..} commands to receive the counter value as an argument,
instead of
acting as a simple prefix. This supports
more complex
formatting of the value in the reference.


These packages also provided
the command \cs{labelformat} to help in the specification of
such formatting in an easy way.  For
example, \verb=\labelformat{equation}{eq.~(#1)}= specifies that
references to equations
automatically come out as
\enquote{eq.~(5)} or similar. As such a \cs{labelformat} declaration
means a \cs{ref} command can no
longer be successfully used at the start of a sentence, the packages also
provided \cs{Ref} for such scenarios.

Both of these commands, \cs{labelformat} and \cs{Ref},
are now removed from the packages and instead made available in
the kernel so there is no
need to load additional packages.




\subsection{Improve wording of a warning message}

The kernel now says \enquote{Trying to load \ldots}
instead of \enquote{Try loading \ldots} in one of its informal
messages to match style of similar messages.
%
\githubissue{107}


\subsection{Avoid bad side-effects of \cs{DeclareErrorFont}}

As a side effect of setting up the error font for \acro{nfss}, this
declaration also changed the current font size back to 10pt.
In most
circumstances that doesn't matter, because that declaration was meant
to be used only during the format generation and not during
a \LaTeX{} run.
However, it has turned out to  be
used by some developers in other places
(incorrectly in fact:
e.g., inside some \texttt{.fd} files) where
resetting the size causes
havoc
seemingly at random.
The command has now changed to not produce such side effects.

\gnatsissue{latex}{4399}



\subsection{\pkg{nfssfont}: Make font table generation the default action}

With the small file \texttt{nfssfont.tex} it is possible to produce
font tables and other font tests
in the style set up by Don Knuth.
In nearly all cases
a font table is wanted,
so this action has been made the default.
Now one can simply hit enter
instead of having to write \verb=\table\bye=.


\subsection{\pkg{trace}: Add package support in the kernel}

The \pkg{trace} package implements the commands \cs{traceon}
and \cs{traceoff} that work like
\cs{tracingall} but skip
certain code blocks that produce a lot of tracing output.
%%CCC   being of no interest to anyone!! -- FMi I love your encouragement
This is useful when debugging, to suppress uninteresting tracing
from, for example, loading a font.
Code blocks that should not be traced
need to be surrounded by the commands
\cs{conditionally@traceoff} and \cs{conditionally@traceon}.

The \LaTeX{} kernel now provides dummy definitions for these two
commands so that package writers can use them in their packages
regardless of \pkg{trace} being loaded or not.




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

\subsection{\pkg{array}: Warn if primitive column specifiers are overwritten}

With \cs{newcolumntype} it is possible to define your own column
specifiers for a \texttt{tabular} preamble; it is also possible to
change existing ones. However, doing that for a primitive column
specifier, such as \texttt{c}, is seldom a good idea, since then its
functionality becomes unavailable.
The package was therefore supposed
to warn the user in this case, but due to a missing \cs{expandafter}
in the code it never did---now it does.
%
\githubissue{148}


\subsection{\pkg{multicol}: Introduce \texttt{minrows} counter for balancing}

When there are only a few lines of text on a page at the end of a
\env{multicols} environment,
balancing the columns often looks rather odd: such as
three columns each containing a single line. The balancing behavior
can now be controlled through the counter \texttt{minrows}
(default is~1) which specifies that,
after balancing, there must be at least that many lines in the first column.
Thus, if you set \texttt{minrows}
to \texttt{2} then you
would get a
distribution of \texttt{2+1+0} lines and if set
to three, the result
would be
\texttt{3+0+0} instead of the default \texttt{1+1+1}.

What is most appropriate really depends on the circumstances, but this
now gives you the tools to make local or global adjustments.


\subsection{\pkg{varioref}: Better support for \pkg{cleveref}}

The \pkg{varioref} package has been internally updated to provide
better interfaces for packages such as \pkg{hyperref} and
\pkg{cleveref}.

It also
has a new package option \option{nospace} that stops
\pkg{varioref} from meddling with space in front of
its commands. The
original behavior was always somewhat problematical and it is
suggested that
all new documents
use this option (which
should really have been the default).

Support was also added for the Arabic language through the option
\option{arabic}.




\subsection[\pkg{xr}: Support citations to bibliographies in\\ external documents]
{\pkg{xr}: Support citations to bibliographies in external documents}

The \pkg{xr} package can be used to cross-reference an external \LaTeX{}
document.
This means that even when a work is split over different documents (that
need to be processed separately), \cs{ref} or \cs{pageref} can use labels from
any document, creating links between them. This facility has now been extended
so that \cs{cite} commands and
their cousins can now also reference bibliographies in external
documents; this feature was first provided in the package
\pkg{xcite} by Enrico Gregorio.

Note that for technical reasons \pkg{xr} doesn't work with
\pkg{hyperref}. Use \pkg{xr-hyper} instead if you need the latter
package.


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

\subsection{\pkg{amsmath}: Introduce \cs{overunderset} command}

The \pkg{amsmath} package has always offered
the commands \cs{overset} and
\cs{underset} to produce binary operators with something set above or
below. But sometimes one needs to put something above and something below:
The newly added \cs{overunderset} makes this
easily possible.



\section{Documentation updates}

There are a number of
%small
documentation updates in files
on the documentation page of the project website~\cite{30:site-doc}.

\subsection{Highlighting the standard \texorpdfstring{\acro{nfss}}{NFSS} codes for series}

The \emph{Font Selection Guide}~\cite{fntguide} has been
updated to strongly recommend that the standard codes should be used
when providing font support.  The reason for this recommendation is explained here.


The font selection scheme uses a number of standard codes for
\cs{fontseries} and \cs{fontshape} to ensure that different fonts are
comparable, e.g., that you get a \enquote{light} weight if you specify
\texttt{l} and \enquote{extra bold} when you write \texttt{eb},
etc. Over the years people came up with a number of other creative
short codes like \texttt{k}, \texttt{j}, \texttt{t} and others with
the result that changing a font family required different codes and
thus prevented users from easily mixing and matching different
families.
Some work has been undertaken to get back to a coherent scheme and
all the font families supported through the program \texttt{autoinst}
are now producing the standard codes again.


\subsection{\LaTeX{} \texttt{base} and \texttt{doc} distribution reunited}

For a long time the \LaTeX{} distribution available from \CTAN{} was
split into several parts to allow them to be uploaded or downloaded
separately. As this is these days more confusing than helpful we have
recombined the base part with the documentation part (as both are
anyway always updated together). Thus the package \texttt{latex-doc}
is no longer separately available from \CTAN{} but contained in the
\texttt{latex-base} distribution.


\begin{thebibliography}{9}

%\fontsize{9.3}{11.3}\selectfont

\bibitem{30:Mittelbach:TB39-1} Frank Mittelbach:
  \emph{New rules for reporting bugs in the \LaTeX{} core software}.
  In: TUGboat, 39\#1, 2018.
  \url{https://latex-project.org/publications/}

\bibitem{devformat} Frank Mittelbach:
  \emph{The
  \LaTeX{} release workflow and the \LaTeX{} dev formats}.
  In: TUGboat, 40\#2, 2019.
  \url{https://latex-project.org/publications/}

\bibitem{fntguide} \LaTeX{} Project Team:
  \emph{\LaTeXe{} font selection}.\\
  \url{https://latex-project.org/documentation/}

\bibitem{30:site-doc}
  \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\
  \url{https://latex-project.org/documentation/}

%\bibitem{30:site-pub}
%  \emph{\LaTeX{} Project publications on the \LaTeX{} Project Website}.\\
%  \url{https://latex-project.org/publications/}

\end{thebibliography}

\end{document}