ब्रैकेट के अंदर या ट्रिमिंग के लिए मैक्रो का उपयोग नहीं कर सकते

Aug 17 2020

मैं एक उपयोगकर्ता कमांड के साथ डिफ़ॉल्ट के रूप में आंकड़ा वैकल्पिक मापदंडों को परिभाषित करने की कोशिश कर रहा हूं, लेकिन मैं इसका उपयोग अंदर नहीं कर सकता [ ]। जब मैं के trim=0 0 0 0साथ प्रतिस्थापित करता हूं तो अगला उदाहरण एक अपवाद फेंकता है 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}

इसके अलावा, मेरे उद्देश्य के रूप में मैं पूरे वाक्य की जगह ले सकता एक आदेश में इस तरह परिभाषित करने के लिए है width=\linewidth,trim=0 0 0 0,clipके अंदर [ ]इसके साथ।

जवाब

6 UlrichDiez Aug 17 2020 at 17:02

अगस्त 20, 2020 को संपादित करें

एक बार और मैंने (उलरिक डायज़) खुद को शर्मनाक स्थिति में डाल दिया:

नीचे दी गई बातें लिखते समय, मैंने (उलरिक डायज़) इस तथ्य के बारे में नहीं सोचा था कि वर्ग-कोष्ठक [और ]समान रूप से घुंघराले ब्रेसिज़ - श्रेणी 1 और 2 के नहीं हैं, लेकिन श्रेणी कोड 12 के सामान्य वर्ण हैं और इसलिए वर्ग-कोष्ठक मैक्रो-तर्कों के भीतर हो सकता है। नीचे दिए गए कोड की तुलना में कम जटिल और बहुत कम:

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

क्रम

\expandafter\exchange\expandafter{\trim}{%
   \includegraphics[width=\linewidth,trim=%
},clip]{/path/to/graphics/file.jpg}%%%%%

निम्नलिखित को ट्रिगर करता है:

\expandafterका विस्तार करने के लिए -chain सुराग \trim:

\exchange{0 0 0 0}{%
   \includegraphics[width=\linewidth,trim=%
},clip]{/path/to/graphics/file.jpg}%%%%%

\exchangeपैदावार का विस्तार :

\includegraphics[width=\linewidth,trim=%
0 0 0 0,clip]{/path/to/graphics/file.jpg}%%%%%

अगस्त 20, 2020 को समाप्त होने का समय



यदि \trim-कमांड की परिभाषा आकृति से आकृति में बदल सकती है, तो आप कर सकते हैं, उदाहरण के लिए, \romannumeral0-एक्सपोज़िशन- और तर्क-विनिमय-तकनीक का उपयोग करें -प्रस्तावना का सार \romannumeral0है:

  • TeX टोकन का विस्तार करते हुए विस्तार योग्य टोकन का विस्तार करता है जो eralsnumberands -quantity से संबंधित है जिसे रोमन अंकों में दर्शाया जाना है।
  • यदि पहला टोकन जो findsnumberqu -quantity को इकट्ठा करते समय TeX पाता है, उदाहरण के लिए, उदाहरण के लिए 0, तो टोकन एकत्र करने की प्रक्रिया जो ⟩number⟩ -quantity से संबंधित होती है, अधिक संख्या या कुछ इकट्ठा करने की प्रक्रिया में बदल जाती है, जो नहीं है एक अंक और इसलिए सभा की प्रक्रिया को समाप्त करता है। अंकों को इकट्ठा करते समय विस्तार योग्य टोकन का विस्तार होता है। एक अंकीय-अनुक्रम को समाप्त करने वाला एक स्पेस-टोकन अधिक अंकों को इकट्ठा करने की प्रक्रिया को समाप्त कर देता है और चुपचाप त्याग दिया जाता है।
  • यदि एकत्रित किया गया अंक सकारात्मक नहीं है, तो TeX चुपचाप बदले में कोई भी टोकन दिए बिना gatherednumber⟩ -quantity बनाने वाले टोकन को निगल जाएगा ।

इसका तात्पर्य यह है कि \romannumeralTeX को बहुत अधिक विस्तार करने के लिए इस्तेमाल किया जा सकता है- और जब तक यह सुनिश्चित किया जाता है कि तर्क-विनिमय-कार्य तब तक सुनिश्चित हो जाता है जब अंत में एक गैर-सकारात्मक संख्या पाई जाती है।

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

क्रम

\expandafter\includegraphics\expandafter[%
  \romannumeral0%
  \expandafter\exchange
  \expandafter{\trim}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%

निम्नलिखित को ट्रिगर करता है:

\expandafterट्रिगर्स (शीर्ष-स्तरीय-) विस्तार प्राप्त करने की प्रक्रिया अगले के शीर्ष-स्तरीय-विस्तार को वितरित करने की प्रक्रिया को ट्रिगर करती है लेकिन एक टोकन और समाप्त हो जाती है जब अगले लेकिन शीर्ष-टोकन प्राप्त करने की प्रक्रिया समाप्त होती है । इस प्रकार:

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

अगले लेकिन पहले से बाहर जाने वाला एक टोकन \expandafterभी \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 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}%%%%%

दूसरे से अगले लेकिन एक टोकन निवर्तमान \expandafterहै \romannumeralइस प्रकार,:

% 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 अंक पाता है 0, इस प्रकार \romannumeralएक ⟩numberqu -quantity के टोकन इकट्ठा करने की उप-प्रक्रिया अधिक अंकों या कुछ ऐसा इकट्ठा करने की प्रक्रिया में बदल जाती है जो अंक-अनुक्रम को समाप्त करती है:

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

Thenumberqu -quantity से संबंधित अधिक टोकन / अंकों की खोज करते समय , TeX का तीसरा सामना होता है \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}%%%%%

तीसरे से दूसरे लेकिन एक टोकन निवर्तमान \expandafterहै \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 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}%%%%%

चौथे से बाहर जाने वाला अगला लेकिन एक टोकन \expandafterहै \trim, इस प्रकार चौथे के शीर्ष-स्तरीय-विस्तार \expandafterको प्राप्त करने की प्रक्रिया तब होती है जब शीर्ष-स्तरीय-विस्तार को प्राप्त करने की प्रक्रिया \trimसमाप्त हो जाती है:

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

जैसे ही चौथे \expandafterके शीर्ष-स्तरीय-विस्तार को प्राप्त करने की प्रक्रिया \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
  %     terminated.
  \exchange
  {0 0 0 0}{ width=\linewidth,trim=},clip%
]{/path/to/graphics/file.jpg}%%%%%

जैसे ही तीसरे के शीर्ष-स्तरीय-विस्तार को प्राप्त करने की प्रक्रिया \expandafterसमाप्त हो जाती है, \romannumeral-प्राप्ति का विस्तार जारी रहता है, जिसका विस्तार होता है \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 एक स्पेस-टोकन ढूंढता है। वह स्पेस-टोकन एक ⟩number to -quantity के अधिक अंकों को इकट्ठा करने की उप-प्रक्रिया को समाप्त कर देता है और चुप हो जाता है।

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

जैसा कि TeX में एक ⟩number⟩ -quantity पाया गया जिसका मान है 0, जबकि 0एक सकारात्मक मान नहीं है, तो TX\romannumeral बनाने के बिना चुपचाप निगलने वाले टोकन को समाप्त करके शीर्ष-स्तरीय-विस्तार प्राप्त करने की प्रक्रिया TeX के बिना कोई टोकन वितरित करती है। वापसी।

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

जैसा कि शीर्ष-स्तरीय-विस्तार \romannumeralको प्राप्त करने की प्रक्रिया को \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
% terminated.
[%
  width=\linewidth,trim=0 0 0 0,clip%
]{/path/to/graphics/file.jpg}%%%%%

जैसा कि दूसरे \expandafterके शीर्ष-स्तरीय-विस्तार को प्राप्त करने की प्रक्रिया \expandafterसमाप्त हो गई है, प्यास समाप्त होने के शीर्ष-स्तर-विस्तार को प्राप्त करने की प्रक्रिया भी:

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