You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Claudio Beccari (claudio.beccari at gmail.com) wrote me the following. 1) His reasoning seems plausible; 2) I am doubtful you will want to make any change; 3) I didn't feel it was my place to make the decision. I imagine Claudio could provide an example document showing the problem, if useful. Thanks ... --karl
From: Claudio Beccari
The book standard class had the \table of contents macro un modified for
the past, maybe, 30 years and nobody complained. Therefore you are
evidently free to skip what follows'.
The actual definition is the following:
Why? Because in the original definition the \markboth macro is part of
the \chapter* argument and might get expanded at the wrong moment; with
the suggested "correction" it is not a moving argument and does not get
expanded until it is its turn to do so.
The difference is just a closed brace moved from one position to an
earlier one. It is a negligible detail, but it produces a robust
command. Possibly a \protect might do the same job, but displacing a
brace appears to me a simpler solution.
If a change is made, it would be a good idea to control the similar
macros the are contained in the other standard classes.
Of course I might redefine this command whenever I use my files; but it
seems to me that the small change I am suggesting is simple and without
consequences; I might be wrong, since I do not have a full vision over
all packages that might interact with this definition; I do not have the
software and the competence to do this kind of tests.
The text was updated successfully, but these errors were encountered:
Why? Because in the original definition the \markboth macro is part of
the \chapter* argument and might get expanded at the wrong moment; with
the suggested "correction" it is not a moving argument and does not get
expanded until it is its turn to do so.
as the definition contains a \chapter* (and not a \chapter) there is no
moving argument involved. So in fact the execution is happening at the
right moment.
I personally never really liked the fact that the LaTeX manual claims
you can put \markboth or \label at this point, but that is not enough to
warrant changing the std classes.
The difference is just a closed brace moved from one position to an
earlier one. It is a negligible detail, but it produces a robust
command. Possibly a \protect might do the same job, but displacing a
brace appears to me a simpler solution.
history has proven over and over again that there is no such thing as a
negligible detail, so in order to advocate a change it is really
important that it will fix a problem and not just be done due to an
abstract reason, as any such change is likely to break something that
then needs mending.
frank
Claudio Beccari (claudio.beccari at gmail.com) wrote me the following. 1) His reasoning seems plausible; 2) I am doubtful you will want to make any change; 3) I didn't feel it was my place to make the decision. I imagine Claudio could provide an example document showing the problem, if useful. Thanks ... --karl
From: Claudio Beccari
The book standard class had the \table of contents macro un modified for
the past, maybe, 30 years and nobody complained. Therefore you are
evidently free to skip what follows'.
The actual definition is the following:
\newcommand\tableofcontents{%
\if@twocolumn
@restonecoltrue\onecolumn
\else
@restonecolfalse
\fi
\chapter*{\contentsname
@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
@starttoc{toc}%
\if@restonecol\twocolumn\fi
}
while I suggest it should the following:
\renewcommand\tableofcontents{%
\if@twocolumn
@restonecoltrue\onecolumn
\else
@restonecolfalse
\fi
\chapter*{\contentsname}
@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}%
@starttoc{toc}%
\if@restonecol\twocolumn\fi
}
Why? Because in the original definition the \markboth macro is part of
the \chapter* argument and might get expanded at the wrong moment; with
the suggested "correction" it is not a moving argument and does not get
expanded until it is its turn to do so.
The difference is just a closed brace moved from one position to an
earlier one. It is a negligible detail, but it produces a robust
command. Possibly a \protect might do the same job, but displacing a
brace appears to me a simpler solution.
If a change is made, it would be a good idea to control the similar
macros the are contained in the other standard classes.
Of course I might redefine this command whenever I use my files; but it
seems to me that the small change I am suggesting is simple and without
consequences; I might be wrong, since I do not have a full vision over
all packages that might interact with this definition; I do not have the
software and the competence to do this kind of tests.
The text was updated successfully, but these errors were encountered: