Qual é a melhor maneira de inserir exemplos de código-fonte em um documento do Microsoft Word?

131

Eu tenho que escrever alguns documentos que incluirão exemplos de código fonte. Alguns dos exemplos serão escritos a partir do IDE e outros serão escritos no local. Meus exemplos são principalmente em Java.

Como alguém que está acostumado ao LaTeX, fazer isso no Word é extremamente doloroso. No entanto, estou vinculado ao Word para isso. As únicas opções que eu vi são:

  1. Escreva ou copie no documento, use uma fonte de tipo fixo, organize a formatação e espere que o Word não tenha maiúsculas para você. Escusado será dizer que isso parece uma porcaria.
  2. Copie e cole capturas de tela do código-fonte do IDE. Pelo menos eu mantenho cores. No entanto, se eu alterar o tamanho da minha fonte, estou ferrado. Eu também estou ferrado nos limites da página. E vamos admitir, o Word não é bom em gerenciar várias imagens em um documento.
  3. Escreva HTML (não é realmente uma opção aqui)

Existe alguma maneira melhor (e idealmente portátil) de fazer isso? Existe pelo menos algum tipo de estilo literal semelhante ao ambiente LaTeX? Existe pelo menos alguma impressora bonita que eu poderia copiar e colar como RTF?

Uri
fonte
Russel: Não sei se entendi.
Uri
2
Eu acho que isso é provavelmente mais apropriado para superusuário. Só porque o que você está inserindo no documento é código não faz disso uma questão de programação.
21810 danben
2
@danben: eu acho. Eu apenas imaginei que exemplos de código em documentos do Word são algo que a maioria dos programadores acaba fazendo no seu dia-a-dia.
Uri
1
Você está vinculado ao formato Word-the-program ou Word-the-file?
Ken

Respostas:

186

Eu absolutamente odeio e desprezo trabalhar de graça para a Microsoft, dado que, depois de todos esses bilhões de dólares, AINDA não têm guias adequados sobre coisas como essa com capturas de tela em seu maldito site.

De qualquer forma, aqui está um guia rápido no Word 2010, usando o Notepad ++ para colorir sintaxe e um TextBox que pode ser legendado:

  1. Escolha Inserir / Caixa de texto / Caixa de texto simples
    01word
  2. Uma caixa de texto padrão é inserida
    02word
  3. Alterne para NPP, escolha o idioma para colorir a sintaxe do seu código, vá para Plugins / NPPExport / Copy RTF to clipboard
    03npp
  4. Volte para o word e cole na caixa de texto - pode ser muito pequeno ...
    04word
  5. ... então você pode ter que mudar seu tamanho
    05word
  6. Após selecionar a caixa de texto, clique com o botão direito do mouse e escolha Inserir legenda ...
    06word
  7. No menu Legenda, se você ainda não tiver um, clique em Novo Rótulo e defina o novo rótulo como "Código", clique em OK ...
    07word
  8. ... na caixa de diálogo Legenda, mude o rótulo para Código e pressione OK
    08word
  9. Por fim, digite sua legenda na caixa de legenda recém-criada
    09word
sdaau
fonte
Quando você cruza uma legenda de referência, ela insere todo o código para resolver esse problema?
precisa saber é o seguinte
1
No Word 2013, o texto é o código é colar como texto simples, não há maneira de manter o formato de Notepad ++
Jose Nobile
2
@JoseNobile, você precisa usar o plug-in NppExport no Notepad ++
NeilenMarais
1
Também funciona com o Android Studio, Visual Studio e Eclipse.
Teocci 28/03
Inicialmente, usei a mesma técnica, mas mudei para uma tabela de 1x1 porque descobri que as caixas de texto são difíceis de posicionar. Eu tentei "de cima para baixo" para que o texto fosse apenas antes e depois, e o Word movesse magicamente a caixa para cima ou para baixo, às vezes a legenda não seria visível, ah, que dor. Começou a usar tabelas hoje com base em outro SO QA, até agora funcionando bem. Eu crio um novo tipo de rótulo de legenda "Listagem".
Oliver
26

Recentemente, me deparei com este post e encontrei algumas dicas úteis. No entanto, acabei usando uma abordagem totalmente diferente que atendia às minhas necessidades. Estou compartilhando a abordagem e meu raciocínio sobre o motivo de ter escolhido essa abordagem. A postagem é mais longa do que eu gostaria, mas acredito que as capturas de tela são sempre úteis. Felizmente, a resposta seria útil para alguém.

Meus requisitos eram os seguintes:

  1. Adicione trechos de código a um documento do Word, com destaque para a sintaxe para facilitar a visibilidade e a diferenciação de código e outro texto.
  2. O trecho de código deve estar alinhado com outro texto.
  3. O snippet de código deve ser dividido nas páginas sem problemas, sem nenhum esforço extra.
  4. O trecho de código deve ter uma boa borda.
  5. O snippet de código deve ter a verificação ortográfica desativada.

Minha abordagem é como listado abaixo:

  1. Use a ferramenta externa para obter o requisito 1 de destaque da sintaxe acima. Pode-se usar o bloco de notas plus plus como descrito acima. No entanto, eu uso a ferramenta presente aqui - http://www.planetb.ca/syntax-highlight-word . Isso me dá a opção de usar o número da linha, bem como um destaque muito bom da sintaxe (use o Google Chrome para esta etapa, porque o destaque da sintaxe não é copiado ao usar o Mozilla Firefox, como também apontado por alguns comentários dos usuários). As etapas para obter o destaque da sintaxe estão listadas abaixo:
  2. Para atingir os requisitos 2, 3 e 4 acima, use a tabela no Microsoft word para inserir o snippet de código. Os passos estão listados abaixo:

    • Inserir uma tabela com coluna única.
    • Cole o texto copiado da etapa 1. na coluna da tabela. Eu mantive os números das linhas para mostrar como isso funciona com o Microsoft Word.
    • Aplique a borda como desejar. Eu usei o tamanho 1pt. O snippet de palavras resultante da Microsoft aparecerá como mostrado na captura de tela abaixo. Observe o quão bem ele se espalha pela página - NENHUM esforço extra é necessário para gerenciar isso, o que você enfrentaria se inserisse o objeto "Texto OpenDocument" ou se estivesse usando "Simple TextBox". Snippet de código destacado pela sintaxe colado na tabela do Microsoft Word
  3. Para atingir o requisito 5, siga as etapas abaixo:

    • Selecione a tabela inteira ou o texto.
    • Vá para a guia Revisão. Em Idioma, escolha "Idioma de Revisão". Um novo pop-up será apresentado.
    • Selecione "Não verificar ortografia ou gramática". Depois, clique em OK. Desativar verificação ortográfica
    • O texto resultante tem a verificação ortográfica desativada. O resultado final é mostrado na imagem abaixo e atende a todos os requisitos. Resultado final - atende a todos os 5 requisitos.

Forneça se você tiver algum comentário ou aprimoramento ou se deparar com algum problema com a abordagem.

abhishek
fonte
2
Obrigado! Parece ótimo ... Eu tive que usar o Google Chrome porque o Mozilla Firefox não estava copiando o destaque da sintaxe.
usar o seguinte código
Eu acho que essa é a melhor solução. Mais uma dica: se você não deseja a verificação ortográfica, mas não está escrevendo em inglês, insira o código como um objeto de texto de documento aberto. Vá para INSERIR - OBJETO - e escolha Texto do OpenDocument. Insira o código no documento aberto e salve e feche. O código é exibido como acima, mas a ortografia é totalmente ignorada. A única desvantagem pode ser que o número não funcione corretamente, se você quiser incluí-lo na legenda da listagem. Havent verificou isso.
user3629892
@ user3629892 Pensei que, com o Open Document, você não pode quebrar muito bem páginas diferentes.
Maracuja-juice #
Existe alguma possibilidade de obter essa bela borda também para números de linha enquanto copia para o word.
Paramesh Korrakuti
1
@ Capt.Krusty - No ponto 1, ponto 1 e 5, eu já havia mencionado o Chrome. Mas irei adicionar o "Google Chrome", como você e o loveMeansNothing sugeriram.
precisa
23

Você precisa definir um estilo no seu documento do Word e usá-lo para o código-fonte. Normalmente, tenho um estilo chamado "Código", que possui uma fonte monoespaçada em um tamanho pequeno de ponto, guias de tamanho fixo, espaçamento simples, sem espaçamento antes / depois do parágrafo, etc. Você só precisa definir esse estilo uma vez e depois reutilizá-lo. Você cola no seu código-fonte e aplica o estilo "Código" a ele.

Observe que alguns editores (por exemplo, Xcode no Mac) adicionam RTF e texto à área de transferência ao copiar / colar entre aplicativos - o Word reconhece o RTF e retém a formatação, a cor da sintaxe, etc.

Código fonte no Xcode:

insira a descrição da imagem aqui

Copiado e colado no Word:

insira a descrição da imagem aqui

(Observação: é uma boa idéia desabilitar a verificação ortográfica no seu estilo "Código" no Word.)

Paul R
fonte
Este, porém, não adiciona automaticamente o estilo de palavras-chave, números, cordas etc.
Bart
@ Bart: em geral, não, mas para quem usa o Xcode (para desenvolvimento no Mac OS X, iOS, etc), a área de transferência contém RTF com todas as cores de sintaxe, etc., e o Word aceita isso. É possível que existam outros editores que também tenham esse recurso útil, mas não os conheço.
Paul R
O RTF funciona, sim, eu usei isso no passado também usando o Notepad ++ no Word. No entanto, seria muito bom se houvesse uma maneira de adicionar um estilo de código real , ou seja, um que realce automaticamente a sintaxe. É uma pena que nada disso exista. É verdade que existem alguns complementos que você pode instalar que podem se destacar sob demanda, mas ainda não encontrei um que possa renomear facilmente todos os seus blocos de código com um estilo diferente, se você quiser.
Bart
Eu não acho que isso suporta legendas, não é?
Oliver
@ Schollii: Eu acho que as legendas só podem ser aplicadas a "objetos" no Word. Eu acho que você poderia colocar o código em uma tabela 1x1, o que tornaria um objeto?
Paul R
11

Depende do IDE. O Visual Studio e o Eclipse , por exemplo, permitem copiar como RTF e colar no Word, mantendo toda a sua formatação.

O Notepad ++ possui um plug-in chamado "NppExport" (vem pré-instalado) que permite copiar para o RTF, embora eu não me importe muito com o realce da sintaxe do Notepad ++ (seria definitivamente aceitável). O que ele faz é oferecer suporte a dezenas de idiomas, enquanto os IDEs mencionados acima estão limitados a um punhado cada (sem outros plug-ins).

Cᴏʀʏ
fonte
1
Eu tive sorte com o VS e o Eclipse fazendo exatamente isso - usando o editor do IDE para fazer a coloração da sintaxe (e qualquer formatação que eu queira), e depois recortar e colar diretamente no word. Eu normalmente segui-lo com a criação do tipo de letra em todo o trecho de uma fonte de largura fixa (que nem sempre se deparar para mim)
heckj
3

Isso está relacionado a esta resposta: https://stackoverflow.com/a/2653406/931265 A criação de um objeto resolveu todos os meus problemas.

Inserir> Objeto> Texto de anexo de documento

Isso abrirá uma janela do documento, cole o texto, formate-o como desejar e feche-o.

O resultado é uma figura. Clique com o botão direito do mouse no objeto e selecione 'adicionar uma legenda'.

Agora você pode fazer referências cruzadas, criar uma tabela de figuras.

rickfoosusa
fonte
Quando você cruza uma legenda de referência, ele insere o código inteiro e também como resolver esse problema?
precisa saber é o seguinte
1

Se você ainda estiver procurando uma maneira simples de adicionar trechos de código.

você pode facilmente acessar [Inserir]> [Objeto]> [Texto do anexo]> colar seu código> Salvar e fechar.

Você também pode colocar isso em uma macro e adicioná-lo à sua barra de acesso fácil.

notas:

  • Isso levará apenas uma página de código.
  • Seu código não será corrigido automaticamente .
  • Você só pode interagir com ele clicando duas vezes nele.
Meatyflesh
fonte
1

No Word, é possível colar o código que usa cores para diferenciar comentários do código usando "Colar Manter Formatação de Origem". No entanto, se você usar o código colado para criar um novo estilo, o Word removerá automaticamente o texto codificado por cores e os alterará para preto (ou seja qual for a cor padrão automática). Como aplicar um estilo é a melhor maneira de garantir a conformidade com os requisitos de formato de documento, o Word não é muito útil para documentar programas de software. Infelizmente, não me lembro do Open Office ser melhor. A melhor solução é usar a caixa de texto simples padrão.

user10128757
fonte
1

Eu tentei todos os seus métodos, mas eles não funcionaram para mim, na verdade eu criei um método mais fácil usando o MS Word Tables .

Prós:

  1. Mais bonito
  2. Mais fácil de gerenciar e mais consistente
  3. São menos propensos a problemas
  4. Não há necessidade de plug-ins externos ou microcodificação do MS Word.
  5. Mais fácil de manusear por usuários simples ( como eu ).

Contras: Não manterá a coloração do código, embora alguém possa melhorar meu truque.

Passos:

  1. Inserir uma tabela 3x3; no meu caso, eu sempre faço a largura total da tabela igual à largura da página livre (no mínimo 3 linhas para testar o estilo das tabelas ).

  2. Use bordas invisíveis (opção " Sem bordas " ) e ative a opção " Exibir linhas de grade ". deve ter esse aspecto. Lembre-se de que essas linhas são para você ver a grade da tabela e a não será impressa.

insira a descrição da imagem aqui

  1. Faça os ajustes no espaçamento das células e na largura das colunas para obter o aspecto desejado. ( Você precisará entrar em " Propriedades da tabela " para ajustar ). insira a descrição da imagem aqui

  2. Crie um " Estilo de parágrafo " com o nome de " Código " apenas para seus trechos de código ( consulte https://stackoverflow.com/a/25092977/8533804 para ter uma idéia, você não precisa seguir tudo)

  3. Crie outro " Estilo de parágrafo " com o nome de " Code_numberline " que será baseado no estilo criado anteriormente. insira a descrição da imagem aqui

  4. No recém-criado " Code_numberline ", adicione o estilo de numeração desejado (isso automatizará a numeração das linhas). insira a descrição da imagem aqui

  5. Aplique " Code_numberline " na primeira coluna e " Code " na coluna 3. insira a descrição da imagem aqui

  6. Adicione um preenchimento na coluna do meio. insira a descrição da imagem aqui

  7. Salve esse estilo de mesa e divirta-se!

Nader Belal
fonte
Ótimo até, você disse Salvar esse estilo de mesa .
Martin of Hessle
@MartinofHessle, bem, para documentos estendidos em que você o preencherá com trechos de código em muitos lugares, a opção de salvar esse estilo de tabela economiza tempo, além de permitir que você modifique o estilo da tabela em todo o documento sem complicações, como no meu caso onde eu tenho um estilo para o IDE e IDLE ... por outro lado, se você estiver usando apenas uma tabela, então você pode omitir o último passo
Nader Belal
Eu concordo com o porquê. Era o modo de dizer normal.dot para fazê-lo persistir, o que seria uma adição útil. Eu descobri, mas não era óbvio.
Martin of Hessle
@MartinofHessle me perdoe, mas não entendi sua última declaração. Você poderia repeti-lo novamente em termos mais simples?
Nader Belal
1
Desculpe erro de digitação, deveria ter sido como salvá-lo no normal.dot .
Martin of Hessle
1

Use isso - http://hilite.me/

O hilite.me converte seus trechos de código em um formato HTML bem impresso, facilmente incorporado em postagens em blogs, e-mails e sites.

Quão: Apenas copie o código fonte no painel esquerdo, selecione o idioma e o esquema de cores e clique em "Destaque!". O HTML no painel direito agora pode ser colado no seu blog ou email, nenhum arquivo CSS ou Javascript externo é necessário.

Para documento do Microsoft Word: copie o conteúdo da seção Visualizar e cole no seu documento do Microsoft Word.

3 seções: Código Fonte, HTML e Visualização

Saghir Hussain
fonte
0

Existe uma maneira fácil, se você deseja formatação simples de código.

  1. Abra a palavra> guia Inserir> clique em "Obter suplementos"
  2. procure "Misturador de conteúdo" 3. clique em "Adicionar"

Em seguida, o adicionador do misturador de conteúdo será aberto automaticamente e você pode copiar e colar seu código lá e clicar em "Inserir" para inseri-lo no word doc.

Hitesh Bisht
fonte
0

Essas respostas parecem desatualizadas e bastante tediosas em comparação com a solução de complemento da Web; que está disponível para produtos desde o Office 2013.

Estou usando o Easy Code Formatter , que permite codificar o texto no local. Também oferece opções de numeração de linhas, realce, estilos diferentes e os estilos são de código aberto aqui: https://github.com/armhil/easy-code-formatter-styles, para que você possa estender o estilo. Para instalar - abra o Microsoft Word, vá para Insert Tab / clique em "Get Add-ins" e procure por "Easy Code Formatter"

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

Mavi Domates
fonte