タイトルがすべて大文字の文書があります。たとえば、次のようになります。
NAME
env - run a program in a modified environment
挿入したい
\item[
タイトルの前に
] \hfill \\
ヘッダーの後の結果は次のとおりです。
\item[NAME] \hfill \\
env - run a program in a modified environment
私はドキュメントの多くにLaTeX形式を追加するためにsedスクリプトを書いていますが、スクリプトの次の行は機能しません。
s/\([A-Z]\)*/\\item\[&\] \\hfill \\\\/g
目的の出力(上記の例)を生成する代わりに、次のようにします。
...\item[NAME] \hfill \\
\item[] \hfill \\ \item[] \hfill \\ \item[] \hfill \\ \item[] \hfill \\ \item[] \hfill \\ \i$
\item[] \hfill \\
...
ご覧のように、タイトルの周りに書式を正しく挿入するだけでなく、ドキュメントの他のすべての内容も置き換えます。この問題をどのように解決できますか?
答え1
回答については上記のコメントスレッドをご覧ください。 TL:DRの答えは次のとおりです。
s/^\([A-Z]\)\+$/\\item\[&\] \\hfill \\\\/
答え2
編集したい行が常に最初の行である場合(あなたの質問とコメントからわかる)、AWKを使用して簡単に作成できます。
{
if (NR == 1)
{ print "\\item[" $0 "] \\hfill\\\\" }
else
{ print ($0)}
}
で実行してくださいawk -f myScript.awk myManPage > myLaTeXmanPage
。
答え3
いくつかのマニュアルページをTeXifyしたいようです。見たことがありますか?読書? LaTeXやman形式などを理解する「万能ドキュメントコンバータ」です。
実際、最終目標がPDFマニュアルページを生成することであれば、PDFマニュアルページをman
自動的に生成できます。たとえば、bash(1)
ページのPDFバージョンを取得するには:
man -T ps bash|ps2pdf - bash.pdf
ps2pdf
パッケージの一部ですghostscript
。