Impossible d'utiliser une macro à l'intérieur du crochet ou pour le rognage
J'essaie de définir les paramètres facultatifs de la figure par défaut avec une commande utilisateur, mais je ne peux pas l'utiliser dans le [ ]
. L'exemple suivant lève une exception lorsque je remplace le trim=0 0 0 0
par trim=\trim
.
\usepackage[demo]{graphicx}
\newcommand{\trim}{0 0 0 0}
\begin{document}
\begin{figure}[htbp]
\centering
\includegraphics[width=\linewidth,trim=0 0 0 0,clip]{Figure}
\caption{blablabla.}
\end{figure}
\end{document}
De plus, mon objectif est de définir une commande telle que je puisse remplacer toute la phrase à l' width=\linewidth,trim=0 0 0 0,clip
intérieur [ ]
par elle.
Réponses
MODIFIER LE 20 AOÛT 2020
Une fois de plus, je (Ulrich Diez) me mets dans une situation embarrassante:
En écrivant les choses ci-dessous, je (Ulrich Diez) n'a pas pensé au fait que les crochets [
et - ]
contrairement aux accolades - ne sont pas du code de catégorie 1 et 2 mais sont des caractères ordinaires du code de catégorie 12 et que donc des crochets peut se produire dans les macro-arguments. Moins compliqué et beaucoup plus court que le code ci-dessous est:
\documentclass{article}
\usepackage[demo]{graphicx}
\newcommand\exchange[2]{#2#1}
\newcommand{\trim}{0 0 0 0}
\begin{document}
\begin{figure}[htbp]
\centering
\expandafter\exchange\expandafter{\trim}{%
\includegraphics[width=\linewidth,trim=%
},clip]{/path/to/graphics/file.jpg}%%%%%
% Why two captions?
\caption{Testing of the Y-axis.}%%%%%
\caption{blablabla.}%%%%%
\end{figure}
\end{document}
La séquence
\expandafter\exchange\expandafter{\trim}{%
\includegraphics[width=\linewidth,trim=%
},clip]{/path/to/graphics/file.jpg}%%%%%
déclenche ce qui suit:
La \expandafter
-chain conduit à l'expansion \trim
:
\exchange{0 0 0 0}{%
\includegraphics[width=\linewidth,trim=%
},clip]{/path/to/graphics/file.jpg}%%%%%
Augmenter les \exchange
rendements:
\includegraphics[width=\linewidth,trim=%
0 0 0 0,clip]{/path/to/graphics/file.jpg}%%%%%
FIN DE MODIFICATION LE 20 AOÛT 2020
Si la définition de la commande \trim
-commande peut changer d'une figure à l'autre, vous pouvez, par exemple, utiliser la \romannumeral0
technique -expansion- et d'échange- \romannumeral0
d'arguments-l'essentiel de -expansion est:
- TeX étend les jetons extensibles tout en rassemblant les jetons qui appartiennent à la quantité «en nombre» qui doit être représentée en chiffres romains.
- Si le premier jeton que TeX trouve lors de la collecte de la quantité de « nombre» est un chiffre, par exemple,
0
alors le processus de collecte de jetons qui appartiennent à la quantité de « nombre» se transforme en un processus de collecte de plus de chiffres ou quelque chose qui ne l'est pas. un chiffre et met donc fin au processus de collecte. Les jetons extensibles sont étendus lors de la collecte de chiffres. Un jeton d'espace terminant une séquence de chiffres met fin au processus de collecte de plus de chiffres et est éliminé en silence. - Si le nombre recueilli n'est pas positif, TeX avalera silencieusement les jetons formant la quantité «en nombre» sans livrer aucun jeton en retour.
Cela implique que cela \romannumeral
peut être utilisé pour inciter TeX à faire beaucoup de travail d'expansion et d'échange d'arguments tant qu'il est assuré qu'à la fin un nombre non positif est trouvé.
\documentclass{article}
\usepackage[demo]{graphicx}
\newcommand\exchange[2]{#2#1}
\newcommand{\trim}{0 0 0 0}
\begin{document}
\begin{figure}[htbp]
\centering
\expandafter\includegraphics\expandafter[%
\romannumeral0%
\expandafter\exchange
\expandafter{\trim}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
% Why two captions?
\caption{Testing of the Y-axis.}%%%%%
\caption{blablabla.}%%%%%
\end{figure}
\end{document}
La séquence
\expandafter\includegraphics\expandafter[%
\romannumeral0%
\expandafter\exchange
\expandafter{\trim}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
déclenche ce qui suit:
Le processus d'obtention de l'extension (de niveau supérieur) de \expandafter
déclenche le processus de fourniture de l'extension de niveau supérieur du jeton suivant mais un et se termine lorsque le processus d'obtention de l'extension de niveau supérieur du jeton suivant, sauf un, se termine. . Donc:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggers the process of obtaining the top-level-
% expansion of the next but one token:
\includegraphics\expandafter[%
\romannumeral0%
\expandafter\exchange
\expandafter{\trim}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
Le jeton suivant mais un sortant du premier \expandafter
est également un \expandafter
, donc:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggers the process of obtaining the top-level-
% expansion of the next but one token:
[%
\romannumeral0%
\expandafter\exchange
\expandafter{\trim}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
Le jeton suivant mais un sortant du second \expandafter
est \romannumeral
, ainsi:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of \romannumeral:
[%
% Process of obtaining the top-level-expansion of \romannumeral in progress;
% Sub-process of \romannumeral-expansion for gathering tokens of a <number>-
% quantity in progress:
0%
\expandafter\exchange
\expandafter{\trim}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
TeX trouve le chiffre 0
, donc \romannumeral
le sous-processus de collecte de jetons d'une quantité de « nombre» se transforme en processus de collecte de plus de chiffres ou quelque chose qui termine la séquence de chiffres:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of \romannumeral:
[%
% Process of obtaining the top-level-expansion of \romannumeral in progress;
% Sub-process of \romannumeral-expansion for gathering more digits of a
% <number>-quantity in progress; digit "0" found so far:
\expandafter\exchange
\expandafter{\trim}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
En recherchant plus de jetons / chiffres appartenant à la quantité « nombre», TeX rencontre le troisième \expandafter
:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of \romannumeral:
[%
% Process of obtaining the top-level-expansion of \romannumeral in progress;
% Sub-process of \romannumeral-expansion for gathering more digits of a
% <number>-quantity in progress; digit "0" found so far:
% Process of obtaining the top-level-expansion of the third \expandafter
% in progress, this process triggers the process of obtaining the top-
% level-expansion of the next but one token:
\exchange
\expandafter{\trim}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
Le prochain jeton sortant du troisième \expandafter
est \expandafter
donc:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of \romannumeral:
[%
% Process of obtaining the top-level-expansion of \romannumeral in progress;
% Sub-process of \romannumeral-expansion for gathering more digits of a
% <number>-quantity in progress; digit "0" found so far:
% Process of obtaining the top-level-expansion of the third \expandafter
% in progress, this process triggerd the process of obtaining the top-
% level-expansion of the fourth \expandafter:
\exchange
% Process of obtaining the top-level-expansion of the fourth \expandafter
% in progress, this process triggers the process of obtaining the top-
% level-expansion of the next but one token:
{\trim}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
Le prochain jeton sortant du quatrième \expandafter
est \trim
, ainsi le processus d'obtention de l'expansion de niveau supérieur du quatrième se \expandafter
termine lorsque le processus d'obtention de l'expansion de niveau supérieur de \trim
is se termine:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of \romannumeral:
[%
% Process of obtaining the top-level-expansion of \romannumeral in progress;
% Sub-process of \romannumeral-expansion for gathering more digits of a
% <number>-quantity in progress, digit "0" found so far:
% Process of obtaining the top-level-expansion of the third \expandafter
% in progress, this process triggerd the process of obtaining the top-
% level-expansion of the fourth \expandafter:
\exchange
% Process of obtaining the top-level-expansion of the fourth \expandafter
% terminated.
{0 0 0 0}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
Lorsque le processus d'obtention de l'expansion de niveau supérieur du quatrième \expandafter
est terminé, le processus d'obtention de l'expansion de niveau supérieur du troisième se \expandafter
termine également:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of \romannumeral:
[%
% Process of obtaining the top-level-expansion of \romannumeral in progress;
% Sub-process of \romannumeral-expansion for gathering more digits of a
% <number>-quantity in progress, digit "0" found so far:
% Process of obtaining the top-level-expansion of the third \expandafter
% terminated.
\exchange
{0 0 0 0}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%
Au fur et à mesure que le processus d'obtention de l'expansion de niveau supérieur du troisième \expandafter
se termine, l' \romannumeral
expansion se poursuit, ce qui entraîne une expansion \exchange
:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of \romannumeral:
[%
% Process of obtaining the top-level-expansion of \romannumeral in progress;
% Sub-process of \romannumeral-expansion for gathering more digits of a
% <number>-quantity in progress; digit "0" found so far:
<space-token>width=\linewidth,trim=0 0 0 0,clip%
]{/path/to/graphics/file.jpg}%%%%%
TeX trouve un jeton d'espace. Ce jeton d'espace met fin au sous-processus de collecte de plus de chiffres d'une quantité de « nombre» et est ignoré en silence.
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of \romannumeral:
[%
% Process of obtaining the top-level-expansion of \romannumeral in progress;
% Sub-process of \romannumeral-expansion for gathering more digits of a
% <number>-quantity terminated; number "0" found.
width=\linewidth,trim=0 0 0 0,clip%
]{/path/to/graphics/file.jpg}%%%%%
Comme TeX a trouvé une quantité de ` ` nombre '' dont la valeur est 0
, bien qu'elle 0
ne soit pas une valeur positive, le processus d'obtention de l'expansion de niveau supérieur de se \romannumeral
termine en avalant silencieusement les jetons formant cette quantité de ` ` nombre '' sans que TeX ne délivre aucun jeton dans revenir.
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of \romannumeral:
[%
% Process of obtaining the top-level-expansion of \romannumeral terminated.
width=\linewidth,trim=0 0 0 0,clip%
]{/path/to/graphics/file.jpg}%%%%%
Lorsque le processus d'obtention de l'expansion de niveau supérieur de \romannumeral
est terminé, le processus d'obtention de l'expansion de niveau supérieur de la seconde se \expandafter
termine également:
% Process of obtaining the top-level-expansion of the first \expandafter in
% progress, this process triggerd the process of obtaining the top-level-
% expansion of the second \expandafter:
\includegraphics
% Process of obtaining the top-level-expansion of the second \expandafter
% terminated.
[%
width=\linewidth,trim=0 0 0 0,clip%
]{/path/to/graphics/file.jpg}%%%%%
Lorsque le processus d'obtention de l'expansion de niveau supérieur du second \expandafter
est terminé, le processus d'obtention de l'expansion de niveau supérieur du premier se \expandafter
termine également:
% Process of obtaining the top-level-expansion of the first \expandafter
% terminated.
\includegraphics
[%
width=\linewidth,trim=0 0 0 0,clip%
]{/path/to/graphics/file.jpg}%%%%%