Comment collez-vous du code surligné par syntaxe dans Keynote '13?

16

Je donne beaucoup de présentations lourdes de code avec Keynote. La coloration syntaxique les rend lisibles.

Dans le passé, j'ai utilisé des outils de mise en évidence de la syntaxe basée sur le Web, puis j'ai collé le code plus facile à lire dans ma présentation.

Lorsque j'ai effectué une mise à niveau vers iWork '13, qui inclut Keynote 6.1, le collage de contenu supprime le style et la couleur de la police.

Par exemple, si je prends ce code coloré de GitHub et le colle dans Keynote, il supprime toute la mise en forme comme indiqué ici:

entrez la description de l'image ici

Existe-t-il un moyen d'obtenir du code mis en évidence par la syntaxe dans ces présentations?

mimming
la source
Jenny, pourriez-vous nous dire quel surligneur vous utilisez pour visualiser et copier le code?
Tony Williams
Ajout d'un exemple de source (GitHub) et d'une capture d'écran du résultat.
coupe du
Quel navigateur utilisez-vous?
Alan Shutko
@Alan J'utilisais Chrome 34 lorsque j'ai observé ce comportement
coupe

Réponses:

13

La réponse «courte»

... est que différentes applications copient le texte formaté dans le presse-papiers de différentes manières, et différentes applications prennent en charge le collage à partir de différents formats. En règle générale, vous obtiendrez une sorte de format `` texte brut '', ainsi que du texte au format HTML ou RTF dans le presse-papiers, et c'est à l'application de collage de choisir celle qui lui convient le mieux.

Keynote 6.1 prend définitivement en charge une sorte de collage de texte formaté, car je peux le faire fonctionner avec Safari. Mais cela ne semble pas fonctionner avec Firefox ou Chrome (au moment de la rédaction). D'après un peu de test, il semble que les applications Apple fonctionnent bien ensemble (pas de surprise là-bas), et quelques autres copieront / colleront également vers / depuis les applications Apple (y compris les produits Microsoft Office). Malheureusement, lorsque vous copiez à partir de Chrome, vous obtenez uniquement du texte brut et du texte au format HTML copiés dans le presse-papiers, il semblerait donc que les applications iWork d'Apple ne prennent pas en charge le collage de texte au format HTML.

Donc, si le copier / coller n'inclut pas la mise en forme, vous pouvez soit:

  • Essayez un autre navigateur à partir duquel copier, tel que Safari; ou
  • Trouvez une application intermédiaire dans laquelle coller (qui `` parle '' à la fois le formatage HTML et peut être recopié dans un format que Keynote / etc comprend), comme TextEdit.app d'Apple

Étonnamment, le propre TextEdit.app d'Apple collera avec plaisir le texte formaté à partir de Chrome, et il peut être recopié dans le presse-papiers et collé avec formatage dans Keynote / Pages / etc.

Selon votre point de vue, cela peut sembler une limitation (ou une faute) dans Chrome / Firefox ou dans Pages / Keynote / etc, mais au final, ils ne parlent tout simplement pas les mêmes langues de formatage (actuellement).

J'encourage tous ceux qui en font l'expérience à envoyer des commentaires aux développeurs des deux côtés dans l'espoir de résoudre ce problème, soit avec Chrome / Firefox prenant en charge la copie RTF / RTFD (ou tout ce qui est le plus standard / approprié au-delà de HTML), ou par Applications iWork d'Apple prenant en charge le collage de contenu HTML.


Plus que ce que vous voulez savoir sur la copie dans le presse-papiers

Lorsque vous copiez du texte dans le presse-papiers, selon l'application, il peut être copié dans quelques formats. Vous pouvez les voir en utilisant l' application Clipboard Viewer d' Apple (nécessite la construction dans Xcode).

Par exemple, lors de la copie à partir de Google Chrome, le presse-papiers est rempli de quatre copies distinctes des informations que j'ai copiées: deux en texte brut ( public.utf8-plain-text, NSStringPboardType) et deux au format HTML ( public.html, Apple HTML pasteboard type).

Copie à partir d' autres applications donne diverses combinaisons de types de format, avec quelques autres communes étant '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, et ainsi de suite ...

Comme vous pouvez le voir, il existe une variété de formats de texte brut (avec différents encodages comme UTF8 / UTF16), types RTF, types PDF et Adobe, types d'image. Il existe également un tas de types de métadonnées qui décrivent l'application qui a copié les données (par exemple com.apple.iWork.TSPNativeMetadata), ou les fonctionnalités du texte copié (par exemple com.apple.iWork.TSPDescription), et ce qui semble être des données de texte et de style séparées ( ustlet en TEXTtant que CorePasteboardFlavorTypes, et leurs com.adobe.indesign-import-équivalents).

Je ne connais aucun moyen de voir quels types de format sont pris en charge par quelles applications à coller, mais en utilisant le Presse-papiers, vous pouvez rapidement voir quels types de format sont générés lors de la copie.

drfrogsplat
la source
C'était ça. Dans mon cas, c'était l'intersection de Keynote 6.1 et Chrome. Des tests supplémentaires révèlent que le contenu copié à partir de Safari 7 fonctionne, mais que Chrome 34 et Firefox 27 ne le font pas :(
coupe
Je vous suggère de soumettre un rapport de bogue à Chrome et à Firefox (ou de voter pour les bogues / demandes de fonctionnalités existants). Vous obtiendrez quelques autres supporters si vous établissez un lien vers les bogues pertinents ici, j'en suis sûr aussi.
drfrogsplat
J'ai essayé avec une douzaine d'autres sources pour la copie provenant d'autant de fournisseurs, et il semble que seule la copie à partir du logiciel Apple fonctionne. Le contenu copié à partir d'un logiciel autre qu'Apple semble également fonctionner lorsqu'il est collé. En d'autres termes, cela ressemble à un bogue d'Apple, mais je ne vais pas prendre le temps d'enquêter davantage (ou de bogues de fichiers).
coupe du
Enquêté un peu plus, ce n'est pas aussi simple que «seulement Apple à Apple», car MS Word et Apple TextEdit fonctionnent tous les deux avec presque tout ... mais soupçonnent également que cela pourrait être appelé un bogue Apple car ils ne prennent pas en charge le collage à partir de Texte HTML dans les applications iWork.
drfrogsplat
Merci pour cela. J'essayais de copier le code de Xcode dans Pages. C'est un peu frustrant de devoir utiliser TextEdit comme intermédiaire, mais au moins maintenant je peux le faire! M'a sauvé un tas d'instances tête-bang-contre-le-mur! ;-)
mbm29414
7

Il s'agit probablement du surligneur en ligne que vous utilisez.

J'utilise http://markup.su et cela fonctionne très bien avec Keynote 6.1 - il détecte automatiquement un certain nombre de langues et a un certain nombre de "thèmes".

Si ce n'est pas le surligneur, il peut s'agir de votre modèle ou de votre navigateur. J'ai pu prendre votre code et le coller parfaitement de markup.su dans Safari dans Keynote.

entrez la description de l'image ici

Tony Williams
la source
markup.su met en valeur les éléments, mais le collage dans un champ de texte ou la propriété de texte d'une forme dans Keynote 6.1 continue de supprimer la couleur et le style. : \
coupe
1
C'est étrange car cela a bien fonctionné pour moi il y a une heure ou deux. Juste une copie de Safari, puis un collage dans Keynote a fonctionné pour Python et Perl.
Tony Williams
Cela fonctionne également sur Keynote 6.5.3! (Y)
Randika Vishman
1
Il fonctionne sur Keynote 6.6.1, mais vous devez le copier depuis Safari.
luzny
Oui, il doit être copié depuis Safari. Chrome ne fonctionnera pas.
Jason Gao
3

Si vous n'aimez pas l'idée de coller votre code en ligne, envisagez d'installer le package python Pygments et de générer votre syntaxe en surbrillance sur la ligne de commande:

pygmentize sms_me_last_line.sh

Copier depuis Terminal et coller dans Keynote a fonctionné pour moi. Mais il m'a fallu un certain temps pour trouver le contrôle de mise en forme pour supprimer la couleur du texte d'arrière-plan. (Cliquez sur Format dans la barre d'outils pour afficher les options de formatage, cliquez sur Texte, cliquez sur Style, puis cliquez sur l'engrenage pour afficher les options de formatage avancées. Dans cette fenêtre contextuelle, vous trouverez "Couleur de remplissage des caractères".)

ithos67
la source
3

J'utilise Vim. J'ai trouvé ce plugin super utile: https://github.com/zerowidth/vim-copy-as-rtf

De cette façon, je peux garder mes codes sous le même aspect lorsque j'écrivais et les présentais.

qhwa
la source
1

C'est un bug dans Keynote '13:

Le collage de texte riche de Xcode vers Keynote fonctionne lorsque vous collez dans une zone de texte existante.

Ce n'est pas le cas lorsque vous collez dans une nouvelle zone de texte.

mz2
la source
Existe-t-il une solution de contournement pour cela, à l'exception de la saisie de texte en premier?
Rob
Le plus pratique que j'ai trouvé est de simplement créer une zone de texte, de la sélectionner et de la coller.
mz2