¿Cómo se pega el código resaltado de sintaxis en Keynote '13?

15

Doy muchas presentaciones pesadas de código con Keynote. El resaltado de sintaxis hace que estos sean legibles.

En el pasado, he usado herramientas de resaltado de sintaxis basadas en la web y luego pegué el código más fácil de leer en mi presentación.

Cuando actualicé a iWork '13, que incluye Keynote 6.1, pegar el contenido elimina el estilo y el color de la fuente.

Por ejemplo, si tomo este código colorido de GitHub y pegue en Keynote elimina todo el formato como se muestra aquí:

¿Hay alguna manera de incluir código resaltado de sintaxis en estas presentaciones?

    
pregunta mimming 13.03.2014 - 01:09

5 respuestas

12

La respuesta 'corta'

... es que diferentes aplicaciones copian texto formateado en el portapapeles de diferentes maneras, y diferentes aplicaciones admiten el pegado de diferentes formatos. Por lo general, obtendrá algún tipo de formato de "texto simple", así como quizás texto en formato HTML o RTF en el portapapeles, y depende de la aplicación de pegado para elegir cuál le gusta más.

Keynote 6.1 definitivamente admite algunos tipos de pegado de texto formateado, ya que puedo hacer que esto funcione con Safari. Pero parece que no funciona con Firefox o Chrome (en el momento de escribir esto). Desde un poco de pruebas, parece que las aplicaciones de Apple se combinan muy bien (no es de extrañar), y algunas otras copiarán / pegarán desde / hacia las aplicaciones de Apple (incluidos los productos de Microsoft Office). Desafortunadamente, cuando copia desde Chrome, solo obtiene texto sin formato y amp; Texto con formato HTML copiado en el portapapeles, por lo que parece que las aplicaciones iWork de Apple no admiten el pegado de texto con formato HTML.

Entonces, si copiar / pegar no incluye el formato, puedes:

  • Pruebe con un navegador diferente para copiar desde, como Safari; o
  • Encuentre una aplicación intermedia para pegarla (que 'habla' de formato HTML y puede volver a copiarla en un formato que Keynote / etc comprenda), como el TextEdit.app de Apple

Sorprendentemente, el propio TextEdit.app de Apple felizmente pegará texto con formato de Chrome, y se puede volver a copiar en el portapapeles y pegar con formato en Keynote / Pages / etc.

Dependiendo de su punto de vista, esto puede parecer una limitación (o falla) en Chrome / Firefox o en Pages / Keynote / etc, pero al final simplemente no hablan los mismos lenguajes de formato (en la actualidad).

Alentaría a cualquier persona que experimente esto a enviar comentarios a los desarrolladores de ambos lados con la esperanza de que esto se solucione, ya que Chrome / Firefox admite la copia RTF / RTFD (o lo que sea más estándar / apropiado más allá de HTML) , o por las aplicaciones iWork de Apple que admiten el pegado de contenido HTML.

Más de lo que desea saber sobre la copia al portapapeles

Cuando copia texto en el portapapeles, dependiendo de la aplicación, puede copiarse en algunos formatos. Puede verlos usando la aplicación Clipboard de Apple (se debe construir en Xcode).

Por ejemplo, al copiar de Google Chrome, el portapapeles se rellena con cuatro copias separadas de la información que copié: dos de texto sin formato ( public.utf8-plain-text , NSStringPboardType ) y dos con formato HTML ( public.html , Apple HTML pasteboard type ).

Copiar desde otras aplicaciones proporciona varias combinaciones de tipos de formato, con algunas otras comunes como '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 , y así sucesivamente ...

Como puede ver, hay una variedad de formatos de texto plano (con varias codificaciones como UTF8 / UTF16), tipos de RTF, PDF y tipos de Adobe, tipos de imágenes. También hay un montón de tipos de metadatos que describen la aplicación que copió los datos (por ejemplo, com.apple.iWork.TSPNativeMetadata ), o las características del texto copiado (por ejemplo, com.apple.iWork.TSPDescription ), y lo que parece ser texto separado y datos de estilo ( ustl y TEXT como CorePasteboardFlavorType s, y sus com.adobe.indesign-import- equivalentes).

No conozco ninguna forma de ver qué tipos de formato son compatibles con qué aplicaciones para pegar, pero con el Visor del Portapapeles puede ver rápidamente qué tipos de formato se generan al copiar.

    
respondido por el drfrogsplat 13.03.2014 - 03:30
7

Este es probablemente el resaltador en línea que está utilizando.

Utilizo enlace y funciona bien con Keynote 6.1: detecta automáticamente varios idiomas y tiene una serie de "temas".

Si no es el resaltador, puede ser tu plantilla o navegador. Pude tomar su código y pegarlo de markup.su en Safari en Keynote perfectamente.

    
respondido por el Tony Williams 13.03.2014 - 01:35
4

Estoy usando Vim. He encontrado este plugin super útil: enlace

De esta manera puedo mantener mis códigos con el mismo aspecto cuando los escribí y presenté.

    
respondido por el qhwa 04.06.2015 - 09:03
3

Si no te gusta la idea de pegar tu código en línea, considera instalar el Pygments y generar tu sintaxis resaltada en la línea de comandos :

pygmentize sms_me_last_line.sh

Copiar desde la Terminal y pegar en Keynote funcionó para mí. Pero me tomó un tiempo encontrar el control de formato para eliminar el color del texto de fondo. (Haga clic en Formato en la barra de herramientas para mostrar las opciones de formato, haga clic en Texto, haga clic en Estilo, luego haga clic en el engranaje para mostrar las opciones de formato avanzadas. En esa ventana emergente encontrará "Color de relleno de caracteres".)

    
respondido por el ithos67 13.03.2014 - 05:14
1

Es un error en Keynote '13:

Pegar texto enriquecido de Xcode a Keynote funciona cuando pegas en un cuadro de texto existente.

No no cuando pegas en un nuevo cuadro de texto.

    
respondido por el mz2 14.05.2014 - 15:21

Lea otras preguntas en las etiquetas