17 votes

Comment coller le code en surbrillance syntaxique dans Keynote '13 ?

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

Dans le passé, j'ai utilisé des outils de coloration syntaxique basés sur le Web, puis j'ai collé le code plus facile à lire dans ma présentation.

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

Par exemple, si je prends ce code coloré provenant de GitHub et le coller dans Keynote, il supprime tout le formatage comme indiqué ici :

enter image description here

Existe-t-il un moyen d'intégrer du code avec coloration syntaxique dans ces présentations ?

0 votes

Jenny, pouvez-vous nous dire quel surligneur vous utilisez pour visualiser et copier le code ?

0 votes

Ajout d'un exemple de source (GitHub) et d'une capture d'écran du résultat.

0 votes

Quel navigateur utilisez-vous ?

13voto

Shuft Points 420

La réponse courte

... est que les différentes applications copient le texte formaté dans le presse-papiers de différentes manières, et que les différentes applications prennent en charge le collage à partir de différents formats. En général, vous obtenez une sorte de format "texte brut", ainsi que du texte formaté en HTML ou RTF dans le presse-papiers, et c'est à l'application de collage de choisir celui qu'elle préfère.

Keynote 6.1 prend certainement en charge une ou plusieurs formes 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 quelques tests, il semble que les applications Apple fonctionnent toutes bien ensemble (ce qui n'est pas surprenant), et quelques autres applications peuvent également copier/coller vers/depuis les applications Apple (y compris les produits Microsoft Office). Malheureusement, lorsque vous copiez à partir de Chrome, vous n'obtenez que du texte brut et du texte au format HTML copié 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 le formatage, vous pouvez soit :

  • Essayez un autre navigateur pour copier à partir de, tel que Safari ; ou
  • Trouver une application intermédiaire pour y coller (qui "parle" le formatage HTML et peut recopier dans un format que Keynote/etc comprend), comme TextEdit.app d'Apple.

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

Selon votre point de vue, cela peut sembler être une limitation (ou un défaut) de Chrome/Firefox ou de Pages/Keynote/etc, mais en fin de compte, ils ne parlent tout simplement pas les mêmes langages de formatage (pour le moment).

J'encourage tous ceux qui sont confrontés à ce problème à envoyer des commentaires aux développeurs des deux "camps" dans l'espoir d'y remédier, soit en faisant en sorte que Chrome/Firefox prenne en charge la copie RTF/RTFD (ou ce qui est le plus standard/approprié au-delà du HTML), soit en faisant en sorte que les applications iWork d'Apple prennent en charge le collage du contenu HTML.


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

Lorsque vous copiez un texte dans le presse-papiers, selon l'application, il peut être copié dans plusieurs formats. Vous pouvez les voir en utilisant la fonction Visionneuse de presse-papiers (à construire dans Xcode).

Par exemple, lors d'une copie à partir de Google Chrome, le presse-papiers se remplit de quatre copies distinctes de l'information que j'ai copiée - deux textes en clair ( public.utf8-plain-text , NSStringPboardType ), et deux formatés en HTML ( public.html , Apple HTML pasteboard type ).

La copie à partir d'autres applications donne lieu à diverses combinaisons de types de formats, dont les plus courants sont les suivants '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 divers encodages comme UTF8/UTF16), de types RTF, de types PDF et Adobe, de types d'images. Il y a également plusieurs types de métadonnées qui décrivent l'application qui a copié les données (par ex. com.apple.iWork.TSPNativeMetadata ), ou les caractéristiques du texte copié (par ex. com.apple.iWork.TSPDescription ), et ce qui semble être du texte séparé et des données de style ( ustl y TEXT comme CorePasteboardFlavorType 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 pour le collage, mais en utilisant le visualisateur de presse-papiers, vous pouvez rapidement voir quels types de format sont générés lors de la copie.

0 votes

C'était ça. Dans mon cas, il s'agissait de l'intersection de Keynote 6.1 et de Chrome. Des tests supplémentaires révèlent que le contenu copié depuis Safari 7 fonctionne, mais que Chrome 34 et Firefox 27 ne fonctionnent pas :(

0 votes

Je vous suggère de soumettre un rapport de bogue pour Chrome et Firefox (ou de voter pour les bogues et les demandes de fonctionnalités existants). Vous obtiendrez quelques soutiens supplémentaires si vous créez un lien vers les bogues concernés ici, j'en suis sûr.

0 votes

J'ai essayé avec une douzaine d'autres sources pour la copie, provenant d'autant de vendeurs, et il semble que seule la copie à partir du logiciel Apple fonctionne. Le contenu copié à partir de logiciels autres que ceux d'Apple semble également fonctionner lorsqu'il est collé l'un à l'autre. En d'autres termes, il semble que ce soit un bug Apple, mais je ne vais pas prendre le temps d'enquêter plus avant (ou de classer les bugs).

7voto

Tony Williams Points 11219

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

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

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

enter image description here

0 votes

Markup.su met bien en valeur les choses, mais le collage dans un champ de texte ou dans la propriété texte d'une forme dans Keynote 6.1 continue de supprimer la couleur et le style :\N

1 votes

C'est étrange, car le test s'est déroulé correctement il y a une heure ou deux. Un simple copier de Safari et un coller dans Keynote ont fonctionné pour Python et Perl.

0 votes

Il fonctionne aussi sur Keynote 6.5.3 ! (Y)

3voto

ithos67 Points 881

Si vous n'aimez pas l'idée de coller votre code en ligne, envisagez d'installer l'application Pygments Python et générer votre syntaxe mise en évidence à la ligne de commande :

pygmentize sms_me_last_line.sh

Copier depuis le Terminal et coller dans Keynote a fonctionné pour moi. (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 pop-up, vous trouverez "Couleur de remplissage des caractères").

3voto

qhwa Points 131

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

De cette façon, je peux conserver à mes codes le même aspect que lorsque je les écrivais et les présentais.

2voto

mz2 Points 111

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.

Es n'a pas lorsque vous collez dans une nouvelle zone de texte.

0 votes

Existe-t-il un moyen de contourner ce problème, si ce n'est en tapant d'abord le texte ?

0 votes

La méthode la plus pratique que j'ai trouvée consiste à créer une zone de texte, à la sélectionner et à la coller.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X