e27a89b3239f97f35afb1d2335ee0f7b.zip
我的疑惑主要集中在这里,求大神指教啊!
20积分是我的全部家当了,恳请各位dalao救救萌新!
\newcommand{\foo}[1]{this is #1.\newcommand{\fooo}[1]{that is ##1.}}
在使用\foo
的同时创建一个\fooo
命令,由于是内层参数,使用##1.
以此类推
\if@twocolumn <true >else<false >\fi
这是一个判断语句,依名称应该是判断是否为双栏,如果条件满足,执行true
, 否则 false
.第一个问题上面有人回答过了, \long\def
是定义一个可分段的命令, 如
\documentclass{article}
\def\abc#1{{\bfseries #1}}
\long\def\aabbcc#1{{\itshape #1}}
\begin{document}
\abc{bfseries}
% 不加 \long 的 \def 内不允许分段
% \abc{bfseries
% bfseries}
\aabbcc{itshape
itshape}
\end{document}
在 LaTeX 中的 \newcommand
默认是允许换段的, 而 \newcommand*
则是定义不允许换段的命令
然后关于下一个判断, 你可以用 \newif\ifabc
来定义一个名为 \ifabc
的判断, 同时生成两个命令: \abctrue
和 \abcfalse
, 它的初始值是 \abcfalse
当你想让 \ifabc
的值变为 True 的时候, 可以使用 \abctrue
, 它的定义是 \let\ifabc\iftrue
.
并且当你使用 \ifabc <true> \else <false> \fi
的时候, 会使用当前 \ifabc
的真假性来进行判断, 比如:
\documentclass{article}
\newif\ifabc
\def\testabc{\ifabc true \else false \fi}
\begin{document}
\testabc
\abctrue
\testabc
\end{document}
返回为
false true
在使用
\foo
的同时创建一个\fooo
命令,由于是内层参数,使用##1
.以此类推
\if@twocolumn <true>else<false >\fi
这是一个判断语句,依名称应该是判断是否为双栏,如果条件满足,执行true
, 否则false
.谢谢,但我还有两个对应的疑问。1.##表示是内层的参数我理解,但是图中的@makefntext##1我没有找到它的上一层在哪里,我很疑惑;2.if@twocolumn是等价于if @twocolum = True嘛?
@u58488
@makefntext##1
前面有一个\long\def
再外层有\def
,\def
类似与\newcommand
都是构建命令的.texbook
吧