从一系列导入的文件中删除多余的文本行

从一系列导入的文件中删除多余的文本行

我想从一系列导入的文件中删除多余的项。我正在使用一个特定的句子编号系统,它也显示出来。第一张照片显示了下面代码的输出,而第二张照片显示了我想要的(当导入文件中包含冗余项时,它会被删除,单个导入文件中永远不会有冗余项)。

存在冗余项:

在此处输入图片描述

您可以在此处看到它们已被删除:

在此处输入图片描述

主文件代码:

\documentclass{article}
\usepackage{catchfilebetweentags}

\newcounter{depth}
\setcounter{depth}{1}
\newcounter{pi}
\newcounter{pii} [pi]  \renewcommand\thepii{\thepi.\arabic{pii}}

\def\psetdepth#1#2\relax{%
\ifx+#1\relax\addtocounter{depth}{#2}%
\else\ifx-#1\relax\addtocounter{depth}{-#2}%
\else\setcounter{depth}{#1#2}\fi\fi}

\newcommand\sentence[2][+0]{%
    \par
    \psetdepth#1\relax\relax
    \vspace{\csname pspace\roman{depth}\endcsname}%
    \hspace{\csname phspace\roman{depth}\endcsname}%
    \hangindent=\csname pindent\roman{depth}\endcsname
    \hangafter=1
    \indent\refstepcounter{p\roman{depth}}\llap{\csname thep\roman{depth}\endcsname\ }%
    \indent
    {\csname pstyle\roman{depth}\endcsname#2\par}}

\newcommand\phspacei{2ex}
\newcommand\phspaceii{9ex}

\newcommand\pindenti{4.9ex}
\newcommand\pindentii{19.5ex}

\newcommand\pspacei{7pt}
\newcommand\pspaceii{7pt}

\begin{document}
\sentence[1]{This isn't imported.}
\sentence[+1]{This isn't imported.}
\ExecuteMetaData[Example2.tex]{tag}
\ExecuteMetaData[Example3.tex]{tag}
\end{document}

还有两个导入的文件:

\begin{document}
%<*tag>
\sentence{A}
\sentence{B}
\sentence{C}
\sentence{D}
%</tag> 
\end{document}

\begin{document}
%<*tag>
\sentence{C}
\sentence{D}
\sentence{E}
\sentence{F}
%</tag> 
\end{document}

答案1

如果你知道的话针织品,可以将外部文件的句子读取为向量,然后使用函数对其进行过滤unique(),并将结果打印为枚举列表(或某些替代的 LaTeX 装饰)的项目。例如:

\documentclass{article}
\begin{document}
\begin{enumerate}
\item
<<results="asis", echo=FALSE>>=
data <-unique(c("A","B","A","C","D","C","E","F"))
cat(data, sep="\n\\item ")
@
\end{enumerate}
\end{document}

输出应为:

  1. A
  2. C
  3. F

相关内容