Latex 纽科曼挂起乳胶编译

Latex 纽科曼挂起乳胶编译,latex,renewcommand,Latex,Renewcommand,我在LaTeX中为lstlisting定义新命令时遇到问题。结果是编译挂起,没有错误消息,只是一个* 这将挂起LaTeX编译: \documentclass[10pt,a4paper,ssfamily]{exam} \usepackage{listings} \新命令{\cs}{\begin{lstlisting} \新命令{\ce}{\end{lstlisting} \开始{document} \cs 程序测试 ! 这是一篇评论 结束程序测试 \行政长官 \结束{document} 但这一条

我在LaTeX中为
lstlisting
定义新命令时遇到问题。结果是编译挂起,没有错误消息,只是一个
*

这将挂起LaTeX编译:

\documentclass[10pt,a4paper,ssfamily]{exam}
\usepackage{listings}
\新命令{\cs}{\begin{lstlisting}
\新命令{\ce}{\end{lstlisting}
\开始{document}
\cs
程序测试
! 这是一篇评论
结束程序测试
\行政长官
\结束{document}
但这一条没有:

\documentclass[10pt,a4paper,ssfamily]{exam}
\usepackage{listings}
\开始{document}
\开始{lstlisting}
程序测试
! 这是一篇评论
结束程序测试
\结束{lstlisting}
\结束{document}

唯一的区别是endmargin和
lstlisting
的开头和结尾首先在新命令中定义。例如,
lstlisting
会出现问题,但
\begin{center}
不会出现问题

嗯,我发现了一个类似的问题,这里有报道:

似乎不可能完成我想要的操作,因为编译\begin{lstlisting}需要搜索相应的\end{lstlisting},而newcommands会破坏这一点

但是,通过定义新的lst环境,可以获得相同的结果,例如:

\lstnewenvironment{code}{\lstset{language=[90]Fortran,
  xleftmargin=1.5cm
}}{}
\lstnewenvironment{code}{\lstset{language=[90]Fortran,
  basicstyle=\ttfamily,
  keywordstyle=\color{blue},
  commentstyle=\color{gray},
  xleftmargin=1.5cm,
  morecomment=[l]{!\ }% Comment only with space after !
}}{}

比如说。然后,可以定义代码段的许多属性,语法也更简单(\begin{code}、\end{code})

就我而言,完整的环境是:

\lstnewenvironment{code}{\lstset{language=[90]Fortran,
  xleftmargin=1.5cm
}}{}
\lstnewenvironment{code}{\lstset{language=[90]Fortran,
  basicstyle=\ttfamily,
  keywordstyle=\color{blue},
  commentstyle=\color{gray},
  xleftmargin=1.5cm,
  morecomment=[l]{!\ }% Comment only with space after !
}}{}

我发现了一个类似的问题,报告如下:

似乎不可能完成我想要的操作,因为编译\begin{lstlisting}需要搜索相应的\end{lstlisting},而newcommands会破坏这一点

但是,通过定义新的lst环境,可以获得相同的结果,例如:

\lstnewenvironment{code}{\lstset{language=[90]Fortran,
  xleftmargin=1.5cm
}}{}
\lstnewenvironment{code}{\lstset{language=[90]Fortran,
  basicstyle=\ttfamily,
  keywordstyle=\color{blue},
  commentstyle=\color{gray},
  xleftmargin=1.5cm,
  morecomment=[l]{!\ }% Comment only with space after !
}}{}

比如说。然后,可以定义代码段的许多属性,语法也更简单(\begin{code}、\end{code})

就我而言,完整的环境是:

\lstnewenvironment{code}{\lstset{language=[90]Fortran,
  xleftmargin=1.5cm
}}{}
\lstnewenvironment{code}{\lstset{language=[90]Fortran,
  basicstyle=\ttfamily,
  keywordstyle=\color{blue},
  commentstyle=\color{gray},
  xleftmargin=1.5cm,
  morecomment=[l]{!\ }% Comment only with space after !
}}{}