在逐字环境中保留前导空格

在逐字环境中保留前导空格

以下代码(作为一个小例子):

\begin{verbatim}                                                                
         #####                                                              
       #########                                                            
     #############                                                       
\end{verbatim}

渲染结果如下:

    #####
  #########
#############

发生的事情是,逐字块被扫描,并且前导空白块被删除,或者以某种方式被规范化。我该如何阻止这种情况发生?

答案1

您可以fancyvrb默认使用尊重 TAB 字符的功能,并允许在运行时设置它们所代表的空格数。

\documentclass{article}
\usepackage{showframe} % just for the example
\usepackage{fancyvrb}

\begin{document}

First attempt
\begin{verbatim}
        #####
      #########
    #############
\end{verbatim}

Second attempt:
\begin{Verbatim}
        #####
      #########
    #############
\end{Verbatim}

Third attempt:
\begin{Verbatim}[tabsize=4]
        #####
      #########
    #############
\end{Verbatim}

\end{document}

注意:在我的测试文件中,三个逐字环境中的每一行都以 TAB 开头(网站将 TAB 标准化为四个空格)。

在此处输入图片描述

答案2

恐怕您关于在环境中“删除或以某种方式规范化”井号左侧空白的断言verbatim是不正确的,如以下示例所示。(屏幕截图中的框架线用于表示文本块的边缘。)

在此处输入图片描述

\documentclass{article}
\usepackage{showframe}
\begin{document}
\noindent
\begin{verbatim}                                                                
         #####                                                              
       #########                                                            
     #############                                                       
#######################
\end{verbatim}
\end{document}

答案3

事实证明更多动词这个包就是针对这种情况的:

\usepackage{moreverb}
...

\begin{verbatimtab}
...
\end{verbatimtab}

来自文档:

\begin{verbatimtab}[⟨tab width⟩] reproduces its body verbatim, 
with the tabs expanded to the given width (the default value is 8).

相关内容