编译后,每个列表环境中的“-”符号都消失了。我发现“listings”包一定与“breqn”包有某种冲突。下面是一个最小的工作示例。尝试注释/取消注释\usepackage{breqn}
,然后编译。
\documentclass[12pt,a4paper,openany]{report}
\usepackage{listings}
\usepackage{color}
\usepackage{breqn}
\begin{document}
\begin{lstlisting}
arm-none-eabi-as -mcpu=arm926ej-s -c -Wall -ostartup.o startup.s
\end{lstlisting}
\end{document}
我真的很想同时使用这两种方法,但前提是有人能告诉我,为什么会出现这个错误以及如何修复它。
答案1
如果没有更好的方法,您可以在列表中进行本地重置:
\documentclass[12pt,a4paper,openany]{report}
\usepackage{listings}
\usepackage{color}
%fix for \begin{lstlisting}
\edef\savedmiuscode{\mathcode`\noexpand\-\the\mathcode`\-\relax}
\let\oldlstlisting\lstlisting
%\show\savedmiuscode
\def\lstlisting{\savedmiuscode\oldlstlisting}
%fix for \lstinputlisting{}
\edef\savedmiuscode{\mathcode`\noexpand\-\the\mathcode`\-\relax}
\let\oldlstinputlisting\lstinputlisting
%\show\savedmiuscode
\def\lstinputlisting{\savedmiuscode\oldlstinputlisting}
\usepackage{breqn}
\begin{document}
\begin{lstlisting}
arm-none-eabi-as -mcpu=arm926ej-s -c -Wall -ostartup.o startup.s
\end{lstlisting}
\end{document}