2

ファイルからラテックスコードを抽出しようとしていますが、コメントは必要ありません。(コメントは で始まります%)。コメントは行末までずっとありますが、リテラルを削除したくありません%(先頭に\as in を付け\%ます)。どうすればそれについて行くでしょうか?理想的には、次のようになります。

   Lamport and has become the dominant method for using \TeX; few
   people write in plain \TeX{} anymore. The current version is
   \LaTeXe. % this is a comment

   % This is a comment; it will not be shown in the final output.
   % The following shows a little of the typesetting power of LaTeX:
   \begin{align}
    E &= mc^2                              \\
    m &= \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}}
   \end{align}
   this is a \% literal symbol.

私は得るでしょう:

   Lamport and has become the dominant method for using \TeX; few
   people write in plain \TeX{} anymore. The current version is
   \LaTeXe.


   \begin{align}
    E &= mc^2                              \\
    m &= \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}}
   \end{align}
   this is a \% literal symbol.

Pythonでそれを行う方法はありますか?

皆さんのおかげで、解決策を実行した後に編集してください。

   r'(.*)(?<!\\\)%.*'
4

2 に答える 2

4

の正規表現置換を実行できますが(?<!\\)%.*、これは脆弱です。たとえば、\verb!%!おそらくコメントではありません。

于 2013-05-29T08:35:07.953 に答える
2

tex.stackechange.comのこの回答からインスピレーションを得ることができます。アイデアは次のとおりです。

  1. とと%の間の別の衝突しない記号に置き換えます\begin{verbatim}\end{verbatim}\verb|...|
  2. 正規表現を使用し(?<!\\)%.*てコメントを削除するには
  3. 以前の保護された%シンボルを元に戻します。

ラテックスでは、次のことに注意してください

abc%comment
def

と解釈する必要があります

abcdef
于 2013-05-29T08:44:09.300 に答える