我想从一系列导入的文件中删除多余的项。我正在使用一个特定的句子编号系统,它也显示出来。第一张照片显示了下面代码的输出,而第二张照片显示了我想要的(当导入文件中包含冗余项时,它会被删除,单个导入文件中永远不会有冗余项)。
存在冗余项:
您可以在此处看到它们已被删除:
主文件代码:
\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}
输出应为:
- A
- 乙
- C
- 德
- 埃
- F