自定义环境中的数字代表什么含义?

自定义环境中的数字代表什么含义?

我是 Latex Stack Exchange 的新手,我只想知道自定义环境中每个数字的含义。例如,在此代码中,程序员定义了tcolorbox如下自定义:

% new tcolorbox environment
% #1: tcolorbox options
% #2: color
% #3: box title
\newtcolorbox{mybox}[3][]
{
  colframe = #2!25,
  colback  = #2!10,
  coltitle = #2!20!black,  
  title    = {#3},
  #1,
}

来源:如何定义以颜色作为参数的自定义 tcolorbox 环境?

这里有一些#<number>似乎不知从何而来的标签,以及一些[]看似不必要的方括号。

我在网上搜索了所有地方,但还是不明白这到底是怎么回事。有人能给我解释一下这些以及如何创建我自己的环境吗?

答案1

代码根据的手册定义了一种新类型的颜色框,作为环境使用tcolorbox

环境有三个参数(来自部分[3]),其中第一个是可选的,具有空默认值(来自部分[])。

在代码中,提供的参数按顺序表示为#1#2#3。因此,如果您调用

\begin{mybox}[width=5cm]{red}{A title}
some words
\end{mybox}

你得到的相当于

\begin{tcolorbox}{
  colframe = red!25,
  colback  = red!10,
  coltitle = red!20!black,  
  title    = {A title},
  width    = 5cm,
}
some text
\end{tcolorbox}

答案2

在 LaTeX 中,定义不带任何参数的新命令的语法如下。

\newcommand{<command>}{<code>}

其中<command>代表要定义的命令的名称,<code>代表新命令应该执行的操作。例如,如果你写

\newcommand{\mycommand}{Hello}

你定义一个新命令\mycommand,它只是写入“Hello”。

要添加强制参数,语法是

\newcommand{<command>}[<number>]{<code>}

然后命令将接受<number>强制参数。例如,如果您1在 的位置输入<number>,则新命令将需要一个参数,该参数在 中调用<code>#1所以

\newcommand{\mycommand}[1]{Hello #1}

定义\mycommand接受一个参数并将其输出到“Hello”旁边。例如,\mycommand{world}将输出“Hello world”。

最后,如果添加另一对方括号,则可以为命令的第一个参数定义一个默认值;因此,您可以使其成为可选的。继续使用相同的示例,

\newcommand{\mycommand}[1][world]{Hello #1}

定义\mycommand为取一个选修的如果需要,可以使用方括号指定参数,其默认值为world。因此\mycommand输出“Hello world”,但\mycommand[everybody]输出“Hello everyone”。

(我本来要编辑我的答案以添加一个针对这种环境的示例mybox,但它可能只是 egreg 答案的一个较差版本。)

答案3

当你输入

\begin{mybox}{red}{A red box}

你说

--给我一个颜色为红色、透明度为 25% 的框架

--给我一个背景颜色为红色、透明度为 10% 的框架

--给我一个带有标题的框架一个红色的框,字体有 20% 的红色和黑色混合

希望这有意义

答案4

这些是宏中的输入参数。与\newcommand

相关内容