Usando sed para inserir comandos de látex em torno dos cabeçalhos de um documento

2

Eu tenho um documen com cabeçalhos em ALL CAPS, por exemplo:

NAME
       env - run a program in a modified environment

e eu quero inserir

\item[

antes do cabeçalho e

] \hfill \

depois de um cabeçalho para que o resultado seja como:

\item[NAME] \hfill \
       env - run a program in a modified environment

Eu escrevi um script sed para adicionar formatação LaTeX para a maior parte do documento, mas essa linha do meu script não está funcionando corretamente:

s/\([A-Z]\)*/\item\[&\] \hfill \\/g

Em vez de produzir a saída desejada (exemplo acima), estou recebendo:

...\item[NAME] \hfill \
\item[] \hfill \ \item[] \hfill \ \item[] \hfill \ \item[] \hfill \ \item[] \hfill \ \i$
\item[] \hfill \
...

Como você pode ver, ele insere corretamente a formatação em torno do HEADER, mas também substitui todo o restante do documento. Como posso consertar isso?

    
por Gilles 11.09.2013 / 07:09

3 respostas

3

Veja o tópico de comentários acima para a resposta. TL: DR a resposta é:

s/^\([A-Z]\)\+$/\item\[&\] \hfill \\/
    
por 11.09.2013 / 08:43
2

Se a linha que você deseja modificar é sempre a primeira (como parece da sua pergunta e comentários), você pode usar o AWK para facilitar.

  {
    if (NR == 1)
   { print "\item[" $0 "] \hfill\\" }
  else
   { print ($0)}
  }

Execute como awk -f myScript.awk myManPage > myLaTeXmanPage .

    
por 11.09.2013 / 09:22
0

Parece que você está tentando TeXify algumas páginas de manual. Você já olhou para Pandoc ? É um "conversor universal de documentos" que compreende os formatos LaTeX e man, entre muitos outros.

Na verdade, se o seu objetivo final é produzir páginas de manual em PDF, man em si pode fazer isso por você. Por exemplo, para obter uma versão em PDF da página bash(1) :

man -T ps bash|ps2pdf - bash.pdf

ps2pdf faz parte do pacote ghostscript .

    
por 12.09.2013 / 00:44