@@ -81,11 +81,11 @@ Bug reports can be opened (category \texttt{#1}) at\\%
81
81
% \begin{macrocode}
82
82
\DeclareRelease {}{1994-06-01}{amsmath-2018-12-01.sty}
83
83
\DeclareRelease {}{2018-12-01}{amsmath-2018-12-01.sty}
84
- \DeclareCurrentRelease {}{2024-10-30 }
84
+ \DeclareCurrentRelease {}{2019-04-01 }
85
85
% \end{macrocode}
86
86
%
87
87
% \begin{macrocode}
88
- \ProvidesPackage {amsmath}[2024/10/30 v2.17s AMS math features]
88
+ \ProvidesPackage {amsmath}[2024/11/05 v2.17t AMS math features]
89
89
% \end{macrocode}
90
90
%
91
91
% \section{Catcode defenses}
@@ -1002,10 +1002,6 @@ Foreign command \@backslashchar#1;\MessageBreak
1002
1002
\let\DOTSI\relax
1003
1003
\let\DOTSB\relax
1004
1004
\let\DOTSX\relax
1005
- % \end{macrocode}
1006
- % In the definitions below, special \cs{uccode}s are used to generate macros
1007
- % with arguments delimited by catcode 12 letters as returned by \cs{meaning}.
1008
- % \begin{macrocode}
1009
1005
{\uccode `7=`\\ \uccode `8=`m \uccode `9=`a \uccode `0=`t \uccode `!=`h
1010
1006
\uppercase {%
1011
1007
\gdef\math@ #1#2#3#4#5#6\math@ {\gtest@false \ifx 7#1\ifx 8#2%
@@ -1043,13 +1039,6 @@ Foreign command \@backslashchar#1;\MessageBreak
1043
1039
}
1044
1040
\fi
1045
1041
% \end{macrocode}
1046
- % \changes{v2.17s}{2024/10/30}{guard against primitive if (gh/1448)}
1047
- % \begin{macrocode}
1048
- {\uccode `7=`\\ \uccode `(=`i \uccode `)=`f
1049
- \uppercase {\gdef\testif@ #1#2#3#4\testif@ {%
1050
- \ifx 7#1\ifx (#2\ifx )#3\@tempswafalse \fi\fi\fi }
1051
- }}
1052
- % \end{macrocode}
1053
1042
% \begin{macrocode}
1054
1043
\newcount\classnum@
1055
1044
\def\getmathch@ #1.#2\getmathch@ {\classnum@ #1 \divide\classnum@ 4096
@@ -1098,14 +1087,6 @@ Foreign command \@backslashchar#1;\MessageBreak
1098
1087
\ifx 9#2 \@xp\@xp\@xp\zap@to@space \fi }}}
1099
1088
\def\zap@to@space #1 {}
1100
1089
% \end{macrocode}
1101
- %
1102
- % \changes{v2.17r}{2024/06/29}{macro added to strip \cs{protected} (gh/1265)}
1103
- % \begin{macrocode}
1104
- {\uccode `9=`\p %
1105
- \uppercase {\gdef\stripprotected@ #1#2#3\relax {%
1106
- \ifx 9#2 \@xp\@xp\@xp\zap@to@space \fi }}}
1107
- % \end{macrocode}
1108
- %
1109
1090
% \begin{macrocode}
1110
1091
\def\keybin@ {\gtest@true
1111
1092
\ifx \@let@token +\else\ifx \@let@token =\else
@@ -1158,43 +1139,15 @@ Foreign command \@backslashchar#1;\MessageBreak
1158
1139
\gdef\thedots@ {\dotsb@ }%
1159
1140
\else
1160
1141
% \end{macrocode}
1161
- % In case \cs{@let@token} is a robust \LaTeXe{} command, i.e.,
1162
- % expands to \cs{protect}
1163
- % \verb*=\somename =, we save the \cs{meaning} of
1164
- % \verb*=\somename = in \cs{meaning@} (possibly followed by some dots that have
1165
- % not been consumed as arguments during the expansion).
1166
- % Otherwise, we save the
1167
- % \cs{meaning} of \cs{@let@token} in \cs{meaning@}. The dots at the end
1168
- % as well as the space are
1169
- % used in later parts of the checking (this could probably be cleaned up a bit).
1170
- % \changes{v2.15d}{2016/06/28}{Add space token to prevent runaway
1171
- % argument error}
1172
- % \changes{v2.17r}{2024/06/29}{Drop \cs{protect} if present (gh/1265)}
1173
- % \changes{v2.17s}{2024/10/30}{skip protect testif detect primitive if (gh/1448)}
1142
+ % \changes{v2.15d}{2016/06/28}{Add space token to prevent runaway argument error}
1174
1143
% \begin{macrocode}
1175
1144
\xdef\meaning@ {\meaning\@let@token . .........}%
1176
- \@tempswatrue
1177
- \@xp\testif@\meaning@ ....\testif@
1178
- \if @tempswa
1179
- \begingroup
1180
- \def\protect {\protect }% % make it a quark
1181
- \xdef\meaning@ {\@xp\stripprotect@\@let@token .........\stripprotect@ . .........}%
1182
- \endgroup
1183
- \fi
1184
- % \end{macrocode}
1185
- % In previous versions \verb|\long| macros were not seen by the lookahead.
1145
+ % \end{macrocode}
1146
+ % In previous versions \verb|\long| macros were not seen by the lokkahead.
1186
1147
% That was bad as this file uses \verb|\(re)newcommand| for \verb|\implies| etc.
1187
1148
% \begin{macrocode}
1188
1149
\xdef\meaning@@ {\@xp\striplong@\meaning@\relax\meaning@ }%
1189
1150
% \end{macrocode}
1190
- % Until now \cs{protected} macros also stopped the lookahead, e.g.,
1191
- % $\cong$ wasn't recognized correctly for that reason.
1192
- %
1193
- % \changes{v2.17r}{2024/06/29}{Handle \cs{protected} macros in
1194
- % lookahead for dots (gh/1265)}
1195
- % \begin{macrocode}
1196
- \xdef\meaning@@ {\@xp\stripprotected@\meaning@@\relax\meaning@@ }%
1197
- % \end{macrocode}
1198
1151
% \begin{macrocode}
1199
1152
\@xp\math@\meaning@\math@
1200
1153
\ifgtest@ % if \mathxxx test
@@ -1255,15 +1208,6 @@ Foreign command \@backslashchar#1;\MessageBreak
1255
1208
\thedots@ }
1256
1209
% \end{macrocode}
1257
1210
%
1258
- % The helper to generate the meaning of \cs{\@let@token}, or of its
1259
- % first-level expansion with \cs{protect} removed.
1260
- % \changes{v2.17r}{2024/06/29}{Drop \cs{protect} if present (gh/1265)}
1261
- % \begin{macrocode}
1262
- \def\stripprotect@ #1#2\stripprotect@ {\ifx #1\protect
1263
- \meaning #2\else \meaning\@let@token \fi }
1264
-
1265
- % \end{macrocode}
1266
- %
1267
1211
% The \qc{\=} character is necessary in the two \cs{let} assignments
1268
1212
% in \cs{boldsymboldots@}, because the symbol we are making
1269
1213
% bold might be an \qc{\=} sign.
0 commit comments