标签: newenvironment

\newcommand/\newenvironment - 可选参数

我正在尝试自己的命令和环境,现在我正面临着这些问题:

  1. 如何创建命令\foo{parameter}[optional]或环境\begin{bar}{parameter}[optional]
  2. 如何创建命令 \foo[optional_1]...[optional_n]{parameter}

我试过了

\newcommand{\foo}[3][][]{#1#2#3}    - failed
\newcommand{\foo}[3][2][][]{#1#2#3} - failed
Run Code Online (Sandbox Code Playgroud)

有谁知道一些提示?非常感谢.

latex newenvironment renewcommand

17
推荐指数
3
解决办法
2万
查看次数

在LaTeX中创建新环境的问题

我试图在LaTeX中实现这个新环境:

\newenvironment{javacode}[2]
{\begin{lstlisting}[language=java, label=#1, caption=#2]}
{\end{lstlisting}}
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

\begin{javacode}{c}{some code}
int x = 5;
\end{javacode}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Overfull \hbox (6.0pt too wide) in paragraph at lines 6--6
[][][][][][][] 
[1] [2]) [3])
*
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助修复这个问题?

[更新]

我尝试过这样做,就像Red-nosed unicorn指示的那样,并且它正常工作.

但现在我尝试添加\begin{singlespace}如下:

\lstnewenvironment{javacode}[2]
{
\begin{singlespace}
\lstset{language=java, label=#1, caption=#2}}
{
\end{singlespace}
}
Run Code Online (Sandbox Code Playgroud)

我得到了同样的错误:

Overfull \hbox (6.0pt too wide) in paragraph at lines 6--6
[][][][][][][] 
[1]) [2] [3])
*
Run Code Online (Sandbox Code Playgroud)

latex newenvironment

7
推荐指数
2
解决办法
6851
查看次数

如何使用LaTeX创建一个带有标题的自定义表环境?

我有一个使用\newenvironment定义的自定义表环境.我在这个环境中有一个标题,但我想最后拥有它.

我的环境看起来(有点简化)像这样:

\newenvironment{mytable}[2]{\begin{table}[hbtp]\caption{#1}\label{#1}\begin{center}\begin{tabular}{#2}}{\end{tabular}\end{center}\end{table}}
Run Code Online (Sandbox Code Playgroud)

我想把标题放在最后,像这样:

\newenvironment{mytable}[2]{\begin{table}[hbtp]\label{#1}\begin{center}\begin{tabular}{#2}}{\caption{#1}\end{tabular}\end{center}\end{table}}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为我无法在环境结束时使用这些参数.我怎么解决这个问题?

latex tex newenvironment latex-environment

5
推荐指数
1
解决办法
1902
查看次数

LaTeX:\newenvironment只有一个可选的arg(没有强制性)


我尝试在一个只接受可选参数的类中设置一个新环境,或者没有.

这将使用这样:

\begin{myEnv}          -->  "Label:"  
Run Code Online (Sandbox Code Playgroud)

要么

\begin{myEnv}[myLabel] -->  "Label: myLabel"
Run Code Online (Sandbox Code Playgroud)

我尝试用基本宏定义这个环境.我宁愿不使用xparse包.

我找到了几个带有可选参数和强制参数的\newenvironment示例.但我不需要强制性的论点!

有没有办法用\newenvironment或\ def宏来做到这一点?

latex class option newenvironment

2
推荐指数
1
解决办法
2668
查看次数