Como você cola o código destacado da sintaxe no Keynote '13?

16

Dou muitas apresentações com código pesado com o Keynote. O realce da sintaxe os torna legíveis.

No passado, usei ferramentas de destaque de sintaxe baseadas na Web e colei o código mais fácil de ler em minha apresentação.

Quando atualizei para o iWork '13, que inclui o Keynote 6.1, colar conteúdo retira o estilo e a cor da fonte.

Por exemplo, se eu pegar esse código colorido do GitHub e colá-lo no Keynote, ele removerá toda a formatação, como mostrado aqui:

insira a descrição da imagem aqui

Existe uma maneira de obter o código destacado da sintaxe nessas apresentações?

mimetizando
fonte
Jenny, você poderia nos dizer qual marcador está usando para visualizar e copiar o código?
Tony Williams
Adicionada uma fonte de exemplo (GitHub) e uma captura de tela do resultado.
imitando 13/03/14
Qual navegador você está usando?
Alan Shutko
@ Alan Eu estava usando o Chrome 34 quando observei esse comportamento
imitando

Respostas:

13

A resposta "curta"

... é que aplicativos diferentes copiam o texto formatado para a área de transferência de diferentes maneiras, e diferentes aplicativos oferecem suporte para colar em diferentes formatos. Normalmente, você obtém algum tipo de formato de 'texto sem formatação', além de talvez texto formatado em HTML ou RTF na área de transferência, e cabe ao aplicativo de colar escolher o que mais gosta.

O Keynote 6.1 definitivamente suporta alguns tipos de colagem de texto formatado, pois eu posso fazer isso funcionar com o Safari. Mas isso não parece funcionar com o Firefox ou Chrome (no momento da redação). A partir de alguns testes, parece que os aplicativos da Apple funcionam bem juntos (sem surpresa), e alguns outros copiam / colam de / para os aplicativos da Apple também (incluindo produtos do Microsoft Office). Infelizmente, quando você copia do Chrome, você apenas copia o texto sem formatação e o texto formatado em HTML para a área de transferência; portanto, os aplicativos iWork da Apple não suportam colar texto formatado em HTML.

Portanto, se copiar / colar não inclui formatação, você pode:

  • Tente um navegador diferente para copiar, como o Safari; ou
  • Encontre um aplicativo intermediário para colar (que 'fale' a formatação HTML e possa copiá-lo novamente para um formato que o Keynote / etc entende), como o TextEdit.app da Apple

Surpreendentemente, o próprio TextEdit.app da Apple colará alegremente o texto formatado do Chrome e poderá ser copiado para a área de transferência e colado com formatação no Keynote / Pages / etc.

Dependendo do seu ponto de vista, isso pode parecer uma limitação (ou falha) no Chrome / Firefox ou no Pages / Keynote / etc, mas no final eles simplesmente não falam os mesmos idiomas de formatação (atualmente).

Eu encorajo qualquer pessoa que experimente isso a enviar feedback para os desenvolvedores de ambos os lados, na esperança de consertar isso - seja com o Chrome / Firefox suportando cópias RTF / RTFD (ou o que for mais padrão / apropriado além do HTML), ou Aplicativos iWork da Apple que suportam a colagem de conteúdo HTML.


Mais do que você deseja saber sobre como copiar para a área de transferência

Quando você copia algum texto para a área de transferência, dependendo do aplicativo, ele pode ser copiado em alguns formatos. Você pode vê-las usando o aplicativo Clipboard Viewer da Apple (requer construção no Xcode).

Por exemplo, ao copiar do Google Chrome, a área de transferência é preenchida com quatro cópias separadas das informações que eu copiei: duas em texto simples ( public.utf8-plain-text, NSStringPboardType) e duas em HTML ( public.html, Apple HTML pasteboard type).

Copiar de outros aplicativos dá várias combinações de tipos de formato, com algumas outras mais comuns sendo 'TEXT' (CorePastboardFlavorType), com.apple.traditional-mac-plain-text, Apple PDF pasteboard type, Apple PICT pasteboard type, public.rtf, NeXT Rich Text Format v1.0 pasteboard type, NeXT RTFD pasteboard type, com.apple.flat-rtfd, com.apple.iWork.TSPNativeData, com.adobe.pdf, com.adobe.indesign-import-ustl, e assim por diante ...

Como você pode ver, há uma variedade de formatos de texto sem formatação (com várias codificações como UTF8 / UTF16), tipos RTF, tipos PDF e Adobe, tipos de imagem. Há também vários tipos de metadados que descrevem o aplicativo que copiou os dados (por exemplo com.apple.iWork.TSPNativeMetadata), ou os recursos do texto copiado (por exemplo com.apple.iWork.TSPDescription), e o que parecem ser dados de texto e estilo separados ( ustle TEXTcomo CorePasteboardFlavorTypes e seus com.adobe.indesign-import-equivalentes).

Não conheço nenhuma maneira de ver quais tipos de formato são suportados por quais aplicativos para colar, mas, usando o Clipboard Viewer, você pode ver rapidamente quais tipos de formato são gerados na cópia.

drfrogsplat
fonte
Era isso. No meu caso, foi a interseção do Keynote 6.1 e do Chrome. Testes adicionais revelam que o conteúdo copiado do Safari 7 funciona, mas o Chrome 34 e o Firefox 27 não :(
mimetizando 13/03/14
Sugiro que você envie um relatório de bug ao Chrome e Firefox (ou vote em solicitações de recursos / bugs existentes). Você receberá mais alguns apoiadores se vincular aos erros relevantes aqui, também tenho certeza.
drfrogsplat
Eu tentei com uma dúzia de outras fontes para a cópia de tantos fornecedores, e parece que apenas copiar do software da Apple funciona. O conteúdo copiado de software que não é da Apple também parece funcionar ao colar um ao outro. Em outras palavras, parece um bug da Apple, mas não vou demorar para investigar mais (ou bugs de arquivo).
imitando 17/03/14
Investigado um pouco mais, não é tão simples quanto "apenas Apple para Apple", já que o MS Word e o TextEdit da Apple trabalham praticamente com quase tudo ... mas também suspeitam que isso possa ser chamado de bug da Apple, pois não suportam colar de Texto HTML em aplicativos do iWork.
drfrogsplat
Obrigado por isso. Eu estava tentando copiar o código do Xcode para o Pages. É um pouco frustrante ter que usar o TextEdit como intermediário, mas pelo menos agora eu consigo! Me salvou um monte de instâncias de bater a cabeça contra a parede! ;-)
mbm29414
7

Este é provavelmente o marcador on-line que você está usando.

Eu uso o http://markup.su e funciona bem com o Keynote 6.1 - ele detecta automaticamente vários idiomas e possui vários "temas".

Se não for o marcador, pode ser o seu modelo ou navegador. Consegui pegar seu código e colá-lo de markup.su no Safari no Keynote perfeitamente.

insira a descrição da imagem aqui

Tony Williams
fonte
O markup.su destaca coisas excelentes, mas colar em um campo de texto ou na propriedade de texto de uma forma no Keynote 6.1 continua a reduzir a cor e o estilo. : \
imitando
11
Isso é estranho, já que me testou uma ou duas horas atrás. Apenas uma cópia do Safari e, em seguida, uma pasta no Keynote funcionou para Python e Perl.
Tony Williams
Também funciona no Keynote 6.5.3! (Y)
Randika Vishman
11
Ele funciona no Keynote 6.6.1, mas você precisa copiá-lo do Safari.
Luzny
Sim, tem que ser copiado do Safari. O Chrome não funciona.
Jason Gao
3

Se você não gosta da idéia de colar seu código on-line, considere instalar o pacote pygments python e gerar sua sintaxe destacada na linha de comando:

pygmentize sms_me_last_line.sh

Copiar do Terminal e colar no Keynote funcionou para mim. Mas demorei um pouco para encontrar o controle de formatação para remover a cor do texto em segundo plano. (Clique em Formatar na barra de ferramentas para mostrar as opções de formatação, clique em Texto, clique em Estilo e, em seguida, clique na engrenagem para mostrar opções avançadas de formatação. Nesse pop-up, você encontrará "Cor de preenchimento de caractere".)

ithos67
fonte
3

Estou usando o Vim. Achei este plugin super útil: https://github.com/zerowidth/vim-copy-as-rtf

Dessa maneira, posso manter meus códigos com a mesma aparência quando os escrevia e apresentava.

qhwa
fonte
1

É um bug no Keynote '13:

Colar texto rico do Xcode no Keynote funciona quando você cola em uma caixa de texto existente.

Ele não faz quando você colar em uma nova caixa de texto.

mz2
fonte
Existe uma solução alternativa para isso, exceto digitando o texto primeiro?
Rob
O mais conveniente que eu achei é apenas criar uma caixa de texto, selecioná-la e colar nela.
mz2 14/05