17 votos

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

Hago muchas presentaciones con mucho código con Keynote. El resaltado de sintaxis las hace más legibles.

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

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

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

enter image description here

¿Existe una forma de introducir el código con sintaxis resaltada en estas presentaciones?

0 votos

Jenny, ¿podrías decirnos qué resaltador estás utilizando para ver y copiar el código?

0 votos

Añadido un ejemplo de fuente (GitHub) y una captura de pantalla del resultado.

0 votos

¿Qué navegador utilizas?

13voto

Shuft Puntos 420

La respuesta "corta

... es que las diferentes aplicaciones copian el texto formateado en el portapapeles de diferentes maneras, y las diferentes aplicaciones soportan el pegado de diferentes formatos. Normalmente obtendrás algún tipo de formato de "texto plano", así como tal vez texto con formato HTML o RTF en el portapapeles, y depende de la aplicación de pegado elegir el que más le guste.

Keynote 6.1 definitivamente soporta algún tipo de pegado de texto con formato, ya que puedo conseguir que esto funcione con Safari. Pero no parece funcionar con Firefox o Chrome (en el momento de escribir esto). Después de algunas pruebas, parece que todas las aplicaciones de Apple funcionan bien juntas (no es ninguna sorpresa), y algunas otras copiarán/pegarán a/desde las aplicaciones de Apple también (incluyendo los productos de Microsoft Office). Desafortunadamente, cuando copias desde Chrome, sólo obtienes texto plano y texto con formato HTML copiado en el portapapeles, así que parece que las aplicaciones iWork de Apple no soportan el pegado de texto con formato HTML.

Así que si el copiar/pegar no incluye el formato, también puedes hacerlo:

  • Pruebe con otro navegador para copiar, como Safari; o
  • Encontrar una aplicación intermedia para pegar (que "habla" tanto el formato HTML y puede volver a copiar en un formato que Keynote/etc entienda), como el propio TextEdit.app de Apple

Sorprendentemente, la propia aplicación TextEdit.app de Apple pegará sin problemas el texto formateado de Chrome, y se puede volver a copiar en el portapapeles y pegar con formato en Keynote/Pages/etc.

Dependiendo de tu punto de vista, esto puede parecer una limitación (o un fallo) en Chrome/Firefox o en Pages/Keynote/etc, pero al final simplemente no hablan los mismos idiomas de formato (de momento).

Animo a cualquiera que experimente esto a que envíe sus comentarios a los desarrolladores de ambos "bandos" con la esperanza de que esto se arregle, ya sea con Chrome/Firefox soportando la copia de RTF/RTFD (o lo que sea más estándar/apropiado más allá de HTML), o con las aplicaciones de iWork de Apple soportando el pegado de contenido HTML.


Más de lo que quieres saber sobre cómo copiar en el portapapeles

Cuando se copia un texto en el portapapeles, dependiendo de la aplicación, puede copiarse en varios formatos. Puede verlos utilizando el programa de Apple Visor de portapapeles aplicación (requiere la construcción en Xcode).

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

Al copiar desde otras aplicaciones se obtienen varias combinaciones de tipos de formato, siendo algunos de los más comunes '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 puedes ver, hay una gran variedad de formatos de texto plano (con varias codificaciones como UTF8/UTF16), tipos RTF, tipos PDF y Adobe, tipos de imagen. También hay un montón de tipos de metadatos que describen la aplicación que ha copiado los datos (por ejemplo com.apple.iWork.TSPNativeMetadata ), o las características del texto copiado (por ejemplo com.apple.iWork.TSPDescription ), y lo que parecen ser datos de texto y estilo separados ( ustl y TEXT como CorePasteboardFlavorType s, y su com.adobe.indesign-import- equivalentes).

No conozco ninguna forma de ver qué tipos de formato soporta cada aplicación para pegar, pero usando el Visor de Portapapeles puedes ver rápidamente qué tipos de formato se generan al copiar.

0 votos

Así fue. En mi caso fue la intersección de Keynote 6.1 y Chrome. Las pruebas posteriores revelan que el contenido copiado de Safari 7 funciona, pero Chrome 34 y Firefox 27 no :(

0 votos

Te sugiero que envíes un informe de errores tanto a Chrome como a Firefox (o que votes por los errores/peticiones de características existentes). Estoy seguro de que conseguirás más apoyos si pones un enlace a los errores relevantes aquí.

0 votos

He probado con una docena de otras fuentes para la copia de otros tantos proveedores, y parece que sólo funciona la copia desde el software de Apple. El contenido copiado desde software que no es de Apple también parece funcionar cuando se pega entre sí. En otras palabras, parece un error de Apple, pero no voy a dedicar tiempo a investigar más (o a archivar errores).

7voto

Tony Williams Puntos 4903

Probablemente sea el resaltador en línea que está utilizando.

Yo uso http://markup.su y funciona bien con Keynote 6.1 - autodetecta varios idiomas y tiene varios "temas".

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

enter image description here

0 votos

Markup.su resalta las cosas muy bien, pero al pegarlas en un campo de texto o en la propiedad de texto de una forma en Keynote 6.1 se sigue quitando el color y el estilo. :\_

1 votos

Es extraño, ya que hace una o dos horas lo he comprobado sin problemas. Simplemente copiando desde Safari y pegando en Keynote ha funcionado para Python y Perl.

0 votos

También funciona en Keynote 6.5.3. (Y)

3voto

Kari Puntos 13

Si no le gusta la idea de pegar su código en línea, considere la posibilidad de instalar el programa Pygments paquete Python y generando su sintaxis resaltada en la línea de comandos:

pygmentize sms_me_last_line.sh

Copiar desde Terminal y pegar en Keynote me ha funcionado. Pero me costó un poco encontrar el control de formato para eliminar el color de fondo del texto. (Haz clic en Formato en la barra de herramientas para mostrar las opciones de formato, haz clic en Texto, haz clic en Estilo, y luego haz clic en el engranaje para mostrar las opciones de formato avanzadas. En esa ventana emergente encontrarás "Color de relleno de caracteres").

3voto

qhwa Puntos 11

Estoy usando Vim. He encontrado este plugin super útil: https://github.com/zerowidth/vim-copy-as-rtf

De esta manera puedo mantener mis códigos con el mismo aspecto que cuando los escribía y presentaba.

1voto

Chris Puntos 1

Es un error de Keynote '13:

El pegado de texto enriquecido desde Xcode a Keynote funciona cuando se pega en un cuadro de texto existente.

Es no lo hace al pegar en un nuevo cuadro de texto.

0 votos

¿Existe alguna solución para esto que no sea escribir el texto primero?

0 votos

Lo más cómodo que he encontrado es crear un cuadro de texto, seleccionarlo y pegarlo en él.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X