我是 LaTeX 新手,刚刚开始创建自己的小模板。我到处都加上注释,这样更容易记住哪个命令做什么。
但我希望有一个不包含这些注释的单独文件。有什么简单的方法可以从 .tex 文件中删除所有注释吗?
谢谢
答案1
我希望您不会介意这个建议,但在我看来,当您编译 LaTeX 文档时,您将看到没有注释的所有内容。如果这足以满足您的需要,那么为什么不只使用编译后的 .pdf 文档加上源 .tex 文件呢。
当您编辑 .tex 文档时,注释是否会以不同的颜色显示?许多(大多数?)编辑器会将您的注释置于不同的颜色中,以便更容易看到 .tex 文件中哪些部分是注释,哪些部分不是。我发现,如果您的注释与正文颜色相同,那将非常令人困惑。
[我鼓励你保留这些评论(即使你只是让它们更小/更短),因为我发现评论可以帮助我跟踪 LaTeX 正在做的事情...... - 对我来说,没有评论会更加令人困惑.....对不起,我想这可能不是你想要的答案]
答案2
1/ 你想做什么
你想告诉你的集成开发环境(即您用来写入文件的程序.tex
)至:
- 查找文本中的所有评论,
- 删除它们 — 即用空字符串替换它们。
2/ 向你的 IDE 解释注释是什么
那么问题是“我如何告诉我的 IDE 注释是什么?”。首先,让我们定义注释是什么。注释:
- 是未知数量的连续字符
- 以。。开始
%
- 但不以 开头
\
(否则,你将删除使用百分比符号的句子%
— — 例如,在“我肯定应该加薪 13%!”在您的代码中写如下I should definitively get a 13\% raise!
:)。 - 在行末结束。
要将此信息告知你的 IDE,你可以使用正则表达式(regex)。解释正则表达式超出了这里的主题,但您正在寻找的“正则表达式代码”是:
(?<!\\)%.*
正则表达式的解释:
.*
:您正在寻找任意字符的未知数字(这里暗示:以行末结束)。%
:应该在一个%
字符之后到达。(?<!\\)
: 但该字符 ( ) 前面%
不应该有反斜杠 ( )。!
(?< )
\\
3/ 继续删除
然后您“只”需要搜索前一个正则表达式并将每个匹配的字符串替换为空字符串。
“只是”,因为这并不容易。事实上,前面的表达使用了负面后视,这是一项高级正则表达式功能,并非每个编辑器都实现此功能。然后我们将讨论一种解决方法。
(如果您的 IDE 启用了正则表达式环视,您可能不需要我告诉您如何进行搜索和替换。)
在可能损坏您的代码之前,您可以测试它是否适用于此文本示例:
% this is a full line comment
This line starts with normal text,% and ends with a comment.
This line is 100\% text, without any comment.
4/ 如果您使用 TeXworks、TeXstudio、Atom 或任何其他不支持正则表达式查找的 IDE,请采用解决方法。
这是一个不使用正则表达式查找的解决方案。其思路是:
- “保护”
\%
文本中的出现, - 删除评论
- 恢復
\%
正常。
预备,开始:
4.1/ 保护\%
这里的想法是暂时\%
用以下内容替换:1/ 不会被下一个正则表达式删除,2/ 之后可以轻松地重新转换\%
为不会导致任何误报错误。您需要做的是:
- 搜索:
\%
(不要使用“正则表达式搜索”) - 替换为:(
[this is a protected percentage symbol and will be soon be reverted back to normal]
除非你已经有确切地这句话显然出现在您的文档中)。
4.2/ 删除评论
现在我们确定%
文档中的所有字符都是注释的开始,我们可以直接将它们全部删除:
- 搜索:(
%.*
此处使用“正则表达式搜索”) - 替换为:(无任何内容,即保留文本输入空白)
4.3/ 将百分比符号恢复正常
现在我们可以撤消步骤 4.1。为此:
- 搜索:(
[this is a protected percentage symbol and will be soon be reverted back to normal]
或您在步骤 4.1 中使用的任何字符串。不要使用“正则表达式搜索”。) - 用。。。来代替:
\%
瞧!
5/ 如何在我的 IDE 中进行(正则表达式)搜索和替换?
这取决于您的 IDE。您需要确保您的“搜索和替换”功能接受正则表达式(并且不会盲目地(?<!\\)%.*
在文本中查找)。