如何使 tabsize 也影响 lstinputlisting?

如何使 tabsize 也影响 lstinputlisting?

我注意到这tabsize仅影响lstlistinglstinline

输出如下。上面的图使用 显示lstinputlisting,下面的图使用 显示lstlistingtabsize不会影响上面的图。但会影响下面的图。

替代文本

如何使其适用于所有宏?

\documentclass[dvips,dvipsnames,rgb,table]{article}
\usepackage[a4paper,hmargin=20mm,vmargin=20mm]{geometry}
\usepackage{xcolor}

\usepackage{listings}
\lstset%
{%
    literate={ï}{}0
           {»}{}0
           {¿}{}0,
    language={[Sharp]C},
    breaklines=true,
    breakindent=0pt,
    tabsize=2,
    basicstyle=\color{White}\ttfamily\scriptsize,
    keywordstyle=\color{Orange}\sffamily\bfseries,
    commentstyle=\color{Green}\itshape,
    stringstyle=\color{Cyan}\rmfamily,
    showstringspaces=true,
    aboveskip=0pt,
    belowskip=0pt,
    backgroundcolor=\color{Black}%,
    %rangeprefix=\%,
    %rangesuffix=\%,
    %includerangemarker=false,
    %linerange=start-stop%
}


\usepackage{fancyvrb}
\def\MyOwn%
{%        
    \VerbatimEnvironment%
  \begin{VerbatimOut}{\jobname.tmp}%
}
\def\endMyOwn%
{%
    \end{VerbatimOut}% 
    \lstinputlisting{\jobname.tmp}%     
}


\begin{document}
\begin{MyOwn}
using System;
class Foo
{
    void Main()
    {
        Console.WriteLine("using lstinputlisting");
    }
}
\end{MyOwn}

\vspace{1cm}

\begin{lstlisting}
using System;
class Foo
{
    void Main()
    {
        Console.WriteLine("using lstlisting");
    }
}
\end{lstlisting}
\end{document}

这是否\VerbatimEnvironment会导致这个问题?

答案1

还可使用:

\usepackage{fancyvrb}
\fvset{tabsize=2}

相关内容