Perlを使用したLaTeXドキュメントの修正

Perlを使用したLaTeXドキュメントの修正

文書をperl修正するためにコマンドを使用しようとしています。LaTeX実際に引用形式を次のように変更しようとしています。

. \cite{poelma20113d}

到着

\cite{poelma20113d}.

つまり、前にピリオドとスペースを含む引用符を見つけてスペースに置き換えてから、引用符とピリオドを後ろに配置したいのです。誰もがperl1つのライナーでこれを行う方法を助けることができますか?そうしたいのは、私が準備している原稿の形式をJournal of Physics of FluidsからJournal of Physical Review Eに変えたいからです。

ベストアンサー1

LaTeXはLaTeXを介してのみ正しく解析できると確信しています。1PerlでLaTeXを実装するのは本当に難しいことです。したがって、単純なPerlソリューションは特定のエッジ条件で失敗します。次の例を使用してください

これは cite{foo} です。 \cite{foo} これは cite[foo]{bar} です。 \cite[foo]{bar} これは citet{foo, bar} です。 \citet{foo, バー}

これには、単一のオプション引数、複数の参照、\cite次に始まる代替項目、および間\citeの可変数のスペースが含まれます。次の表現は必要なことをするようです.\citeperl

perl -pe 's/(.\s*)(\\cite)([^{]*)(\[[^\]]*\])?{([^}]*)}/\2\3\4\{\5\}./g' afile

これは cite{foo}\cite{foo} です。 cite[foo]{bar}\cite[foo]{bar}。 citet{foo, bar}\citet{foo, bar}。

おすすめ記事