删除tex文件中的换行符

删除tex文件中的换行符

评论:我正在使用.tex(TeX) 文件。

在 TeX 代码中,换行不会影响输出。要生成新段落,我们必须使用该\par命令。

一些 TeX 编辑器将空行解释为\par.所以下面的代码

line one here
continues here and so on

New paragraph here

产生输出

第一行在这里继续,依此类推

新段落在这里

由于某些编辑器可以自动换行,我喜欢用尽可能少的 RETURN 来编写代码。当我们想要处理行号时,这会更好。

请参阅屏幕截图:

在此输入图像描述

我想删除行尾但保留空白行即使它们只包含空格。完成该过程后,我希望我的代码如下:

在此输入图像描述

请注意,新代码仅包含 3 行。

我尝试使用tr但没有成功。

编辑:在测试了 @lcd047 建议的代码后,我注意到当该行n包含%(%用于在 TeX 中进行注释,并且该行中后面的所有内容都将被忽略) 时,会出现一些问题。

所以,我想我应该添加要求:如果行n包含%不要n与粘合n-1,也不n+1与粘合n

答案1

也许是这样的:

awk '!NF || /%/ {printf "%s", (NR > 1 ? "\n" : "") $0; sep = "\n"; next}
     {printf "%s", sep $0; sep = " "}
     END {if (NR) print ""}' < file.in > file.out

答案2

尝试这个:

perl -lpe 'BEGIN{ $/= $\ = "\n\n" } s/^[^%]+?\K\n/ /gmo' <file_old.tex >file_new.tex

也可以保留以命令开头的行:

perl -lpe 'BEGIN{ $/= $\ = "\n\n" } s/^\s*[^\s\\%][^%]*?\K\n/ /gmo' <file_old.tex >file_new.tex

但请注意,一些审阅您论文的人会因为对这一举动的热情而讨厌您。

相关内容