我有一个eskdi.sty
样式文件,其中定义了两个命令:
\newcommand{\gostorganizatia}[2]{%
\ifnum #1 = 1% 1 - text; 2 - logo
\gdef\gostorganizatiaopt{text}%%
\def\gostorganizatiatext#2{\gdef\@gostorganizatiatext{#2}\relax}%
\else%
\gdef\gostorganizatiaopt{logo}%
\def\gostorganizatialogo#2{\gdef\@gostorganizatialogo{#2}\relax}%
\fi%
}
在另一个ESKD_frames.sty
样式文件中:
\ifx \gostorganizatiaopt text%
\spformedboxmm{135}{20}{185}{4.0}{s}{\@gostorganizatiatext}%
\else%
\spformedboxmm{150}{16}{170}{4.0}{s}{\includegraphics*[keepaspectratio=true, height=10mm]{\@gostorganizatialogo}}%
\fi%
宏使用参数在 x1-x2 和 y1,y2 之间spformedboxmm
绘制参数。#6
s
使用方式title.tex
:
\gostorganizatia{1}{some text}% for drawing text
或绘制浮动图形
\gostorganizatia{2}{./path_to_logo.jpg}
定义全局变量以便在不同的文件中使用它的最佳方法是什么*.sty
?
更新:
其中main.log
存在一些错误:
!未定义的控制序列。...age LaTeX 错误:\@gostorganizatialogo ' not found.** and **! LaTeX Error: File
未找到文件“。
在我看来,这\gostorganizatiaopt
不起作用。
答案1
你思考那
\ifx \gostorganizatiaopt text%
测试是否\gostorganizatiaopt
与 进行比较text
。但是,它实际上是与 进行比较t
,并且对于你的情况来说永远不会成立。如果你想进行文本比较,请使用 e-TeX,如果=\pdfstrcmp{<strA>}{<strB>}
则返回 0 :<strA>
<strB>
\ifnum\pdfstrcmp{\gostorganizatiaopt}{text}=0
% TRUE <text>
\else
% FALSE <logo>
\fi
答案2
A柜台对我来说是最好的方法。
在eskdi.sty
文件中声明宏
\newcounter{gostorgcounter}% 0=text; 1=logo
\newcommand{\gostorganizatia}[2]{%
%
\setcounter{gostorgcounter}{#1}%
%
\ifnum\thegostorgcounter=0% 0 - text; 1 - logo
\newcommand{\gostorganizatiatext}[1]{#2}
\fi%
%
\ifnum\thegostorgcounter=1%
\newcommand{\gostorganizatialogo}[1]{#2}
\fi%
}%
在绘图文件中,结构如下:
\ifnum\thegostorgcounter=0% text mode
\spboxmm{125}{10}{170}{4.0}{lc}{\parbox{70mm}{\centering \gostorganizatiatext{}}}
\fi%
%
\ifnum\thegostorgcounter=1% logo mode
\spformedboxmm{150}{10}{170}{4.0}{c}{\includegraphics[keepaspectratio=true]{\gostorganizatialogo{}}}%
\fi%
用于\gostorganizatia{0}{some text}
文本模式或\gostorganizatia{1}{./path_to_logo.jpg}
图像。