清单:隐藏一些代码(第一行编码)

清单:隐藏一些代码(第一行编码)

在这段代码中,我想自动隐藏第一行(在我的完整示例中,代码是从外部文件插入的)。

一个解决方案是使用 firstline=2,但是即使此行不是编码行,它也会隐藏第一行。

解决方案可能是使用morecomment=[is]{}{}命令,但我不明白如何做到这一点。

\documentclass[a4paper,11pt]{article}

%compilation XeLaTeX
%\usepackage[tuenc]{fontspec}
%
%compilation LaTeX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[french]{babel}
\usepackage{listings}

\lstset{language=Python,morecomment=[is]{\#  -*-}{-*-}}
\begin{document}

\begin{lstlisting}
# -*- coding: utf-8 -*-   <- this line should no appear
Python code
\end{lstlisting}

\end{document}

答案1

这是一个与您的版本类似的版本,但带有分隔符# -*-^^M。后者对应于行尾字符。幸运的是,行尾被输入处理器完全吃掉,因此输出中不会留下虚假的空行。

\documentclass[a4paper,11pt]{article}

\usepackage{listings}
\lstset{
    language=Python,
    frame=single,
    numbers=left,
    morecomment=[is]{\#\ -*-}{\^^M}
}
\begin{document}
\begin{lstlisting}
# -*- coding: utf-8 -*-   <- this line should no appear
Python code
\end{lstlisting}

\begin{lstlisting}
# coding: utf-8    <- this line *should* appear
Python code
\end{lstlisting}
\end{document}

在此处输入图片描述

相关内容