如何使列表包仅在控制序列之后破坏 TeX 代码?

如何使列表包仅在控制序列之后破坏 TeX 代码?

软件包listings总是喜欢破坏 TeX 代码反斜杠。如何让它总是中断反斜杠?

\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[basicstyle=\ttfamily,breaklines,language=TeX]
\def\beamer@toc@subsubsectionstyle#1{\beamer@toc@ssprocess\beamer@toc@csss\beamer@toc@osss\beamer@toc@oosss\beamer@toc@ooosss#1////}
\end{lstlisting}
\end{document}

编辑:这个问题应该更明确一点——如何让listings软件包只破坏 TeX 代码控制序列?

在此处输入图片描述

答案1

\您可以通过 将其设为字母来避免后面的断行alsoletter={\\}。但是,前面的任意断行\都是危险的,并且从 tex TeX 的角度来看可能会产生错误的语法。

\def\a{\b}

不同于

\def\a{
\b}

相当于

\def\a{ \b}

另一方面

\def\a{\b\c}
\def\a{\b \c}
\def\a{\b
\c}

是等效的。我建议您在适当的位置添加空格,例如可以输入:

示例输出

\documentclass{article}

\usepackage{listings}

\begin{document}

\begin{lstlisting}[basicstyle=\ttfamily,breaklines,language=TeX,alsoletter={\\}]
  \def\beamer@toc@subsubsectionstyle#1{%
  \beamer@toc@ssprocess \beamer@toc@csss \beamer@toc@osss \beamer@toc@oosss \beamer@toc@ooosss#1////}
\end{lstlisting}

\end{document}

相关内容