我正在尝试自己的命令和环境,现在我正面临着这些问题:
\foo{parameter}[optional]或环境\begin{bar}{parameter}[optional]?\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{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) 我有一个使用\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)
但这不起作用,因为我无法在环境结束时使用这些参数.我怎么解决这个问题?
我尝试在一个只接受可选参数的类中设置一个新环境,或者没有.
这将使用这样:
\begin{myEnv} --> "Label:"
Run Code Online (Sandbox Code Playgroud)
要么
\begin{myEnv}[myLabel] --> "Label: myLabel"
Run Code Online (Sandbox Code Playgroud)
我尝试用基本宏定义这个环境.我宁愿不使用xparse包.
我找到了几个带有可选参数和强制参数的\newenvironment示例.但我不需要强制性的论点!
有没有办法用\newenvironment或\ def宏来做到这一点?