スタイル ファイルを微調整しようとしています。次のような 'def' があります。
\def\logo#1{\gdef\@logo{#1}} \gdef\@logo{}
カスタム「make title」の内部:
\includegraphics[scale=0.1]{\@logo}
私は Tex/Macros の初心者です。スケール パラメータを 'logo' def マクロに追加する方法を知りたいです。つまり、 の呼び出しを完全にパラメータ化したいのです\includegraphics
。
編集: 以下のように、シンプルなスタイルで「maketitle」にロゴを追加しましたが、もっと良い方法があるかどうかはわかりません。
\newcommand{\logo}[2][]{%
\gdef\make@logo{\includegraphics[#1]{#2}}%
}
\let\make@logo\relax
%% title
\def\@maketitle
{
\clearpage
\vskip -3em
\ifx\make@logo\relax
\else
\make@logo
\fi
\newpage
\thispagestyle{empty}
\vspace*{-24pt}
\begin{center}
{\Large \bf \@title \par}\vspace*{24pt}{
\lineskip 1em
\begin{tabular}[t]{c}
\@author \\
\vspace*{1pt}\
\end{tabular}
}
\vskip 1em
\vspace*{12pt}
\end{center}
}
答え1
マクロは\logo
、次のオプションを受け取るオプション パラメータを使用して定義できます\includegraphics
。
\newcommand*{\logo}[2][]{%
\gdef\@logo@params{#1}%
\gdef\@logo{#2}%
}
\newcommand*{\@logo@params}{}
\newcommand*{\@logo}{}
使用法\includegraphics
:
\expandafter\includegraphics\expandafter[\@logo@params]{\@logo}
キー値リストの構文文字であるカンマと等号はマクロ内に隠されてはならないため、最初にオプションを展開する必要があります。
例\logo
:
\logo[scale=0.1]{example-image-a}
または
\logo[width=2cm, angle=90]{example-image-a}
答え2
できるよ
\newcommand{\logo}[2][]{%
\gdef\make@logo{\includegraphics[#1]{#2}}%
}
\let\make@logo\relax
\make@logo
カスタムタイトルを作成するときに使用します。
\ifx\make@logo\relax
% code for no logo, maybe nothing
\else
% code before the logo, maybe \begin{center}
\make@logo
% code after the logo, maybe \end{center}
\fi
したがって、スタイルファイルを使用する文書のプリアンブルに
\logo[scale=0.1]{file}
タイトルがタイプセットされているときに
\includegraphics[scale=0.1]{file}
コマンドがなければ\logo
何も得られません。
この\logo
コマンドは、オプションの引数として、 に有効なオプションをすべて受け入れます\includegraphics
。たとえば、
\logo[width=3cm]{file}
\logo[width=3cm,height=4cm,keepaspectratio]{file}
等々。
答え3
scale
が目的のすべてであり、 のようなインターフェースに慣れている場合は\logo[0.7]{my-pic.png}
、\newcommand
オプションのパラメータを持つ単純な が機能します。
\newcommand{\logo}[2][1]{\includegraphics[scale=#1]{#2}}
オプションの引数を使用していない場合は、デフォルトで になります1
。