在表格中,将空行的高度设为 0,使其几乎消失

在表格中,将空行的高度设为 0,使其几乎消失

我正在使用 Stata 的一个插件来生成 Latex 表,以显示某些模型的估计结果和重要性水平。

其中一个程序创建了以下形式的表格,然后我使用该expl3包将其输入到另一个文档中。我提供了此文件的改编版 MWE,我将其称为 mwe2.tex:

\begin{tabular}{ccc}\hline
line 1  &   a  &  b  \\ \hline
main    &      &     \\ \hline
x       &   y  &  z  \\ \hline
\end{tabular}

由于某种原因,其中有一行仅包含术语“main”,而其他行则为空。此项需要删除。 现在我要编辑并使用(而上面的代码已给出)。我通过以下方式输入上述代码:

\documentclass[12pt]{scrartcl}

\usepackage{l3regex}
\usepackage{xparse}
\ExplSyntaxOn
\ior_new:N \l_marie_input_stream 
\NewDocumentCommand{\SearchAndReplace}{mmm}{%
  \ior_open:Nn \l_marie_input_stream {#1}% Open the file
  \ior_map_inline:Nn \l_marie_input_stream {% Read line by line
    \tl_set:Nn \l_tmpa_tl {##1}% Store the line 
    \regex_replace_all:nnN {#2} {#3} \l_tmpa_tl % Replace #2 by #3
    \tl_use:N \l_tmpa_tl % Display the (modified) line content
  }
  \ior_close:N \l_marie_input_stream % close the file
}
\ExplSyntaxOff

\begin{document}
abc\\

\SearchAndReplace{mwe2}{main}{maaaain}

def
\end{document}

![问题

按照以下解决方案这个问题,我输入文件时将术语替换main为其他内容,但没有替换为%main,因为这样编译会出错。

我尝试用空格替换整行,即

\SearchAndReplace{mwe2}{main&  &   \\}{ }

但这样做没有用——什么都没有改变。我精确地将上面整行的内容复制到另一个文档的“替换框”中,但无济于事。

main我的第二个想法是简单地用替换工作,这样做可以正常工作,但在文档中留下了一行空行:

\SearchAndReplace{mwe2}{main}{ }

在此处输入图片描述

我的计划是更换main一些其他代码,使我将表格中的行高设置为 0。这样,我就可以找到一种解决方法,通过删除内容并将其高度设置为零,实际上删除了不必要的行。但是,我做了一些研究,却找不到乳胶中可用于定义单个高度的命令,具体的行为零。

答案1

由于不熟悉expl3,我建议在这种情况下使用 shell 转义。您必须根据操作系统进行调整,但在类 Unix 上非常简单;让此文件成为main.tex

\documentclass[12pt]{scrartcl}
\begin{document}
abc

\input{|"grep -v ^main mwe2.tex"}

def
\end{document}

...然后运行它pdflatex --shell-escape main-tex

命令

grep -v ^main file

输出所有行file输出其中不要( -v) 以单词“main”开头 ( ^),结果输入到 LaTeX 中,它永远不会看到以“main”开头的行。

结果:

shell 转义结果

注意:以下旧答案是针对该问题的第一个版本,完全不同......

嗯...放一个%在这里,在“main”之前添加一个(注释)是可行的。(对于“work”来说,它没有什么价值 --- 你应该真的编辑您的代码片段,使其可编译,并且包含您加载的所有可能产生差异的包和选项)。

\documentclass{article}
\begin{document}

{
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\begin{tabular}{l*{6}{c}}
\hline\hline
            &\multicolumn{1}{c}{(1)}&\multicolumn{1}{c}{(2)}&\multicolumn{1}{c}{(3)}&\multicolumn{1}{c}{(4)}&\multicolumn{1}{c}{(5)}&\multicolumn{1}{c}{(6)}\\
            &\multicolumn{1}{c}{collage}&\multicolumn{1}{c}{big}&\multicolumn{1}{c}{small}&\multicolumn{1}{c}{together}&\multicolumn{1}{c}{separated}&\multicolumn{1}{c}{nophoto}\\
\hline
%main        &                     &                     &                     &                     &                     &                     \\
\(N\)       &         798         &         791         &         803         &         803         &         798         &         435         \\
\hline\hline
\end{tabular}
}

结果

相关内容