Jak wkleić podświetlony kod składni do Keynote '13?

16

Daję dużo ciężkich prezentacji kodu za pomocą Keynote. Podświetlanie składni czyni je czytelnymi.

W przeszłości korzystałem z internetowych narzędzi do podświetlania składni, a następnie wklejałem łatwiejszy do odczytania kod do mojej prezentacji.

Po uaktualnieniu do wersji iWork '13, która zawiera Keynote 6.1, wklejanie zawartości usuwa styl i kolor czcionki.

Na przykład, jeśli wezmę ten kolorowy kod z GitHub i wkleję go do Keynote, usunie całe formatowanie, jak pokazano tutaj:

wprowadź opis zdjęcia tutaj

Czy istnieje sposób na umieszczenie kodu wyróżnionego składnią w tych prezentacjach?

mimowanie
źródło
Jenny, czy możesz nam powiedzieć, jakiego zakreślacza używasz do przeglądania i kopiowania kodu?
Tony Williams
Dodano przykładowe źródło (GitHub) i zrzut ekranu wyniku.
mimming
Z jakiej przeglądarki korzystasz?
Alan Shutko
@Alan Korzystałem z Chrome 34, gdy zaobserwowałem to zachowanie
naśladując

Odpowiedzi:

13

„Krótka” odpowiedź

... oznacza, że ​​różne aplikacje kopiują sformatowany tekst do schowka na różne sposoby, a różne aplikacje obsługują wklejanie z różnych formatów. Zazwyczaj w schowku znajduje się jakiś format „zwykłego tekstu”, a także może tekst sformatowany w formacie HTML lub RTF, a aplikacja do wklejania decyduje o tym, który najbardziej mu się podoba.

Keynote 6.1 zdecydowanie obsługuje niektóre rodzaje wklejania sformatowanego tekstu, ponieważ mogę go uruchomić w przeglądarce Safari. Ale wydaje się, że nie działa z Firefoksem lub Chrome (w momencie pisania). Po drobnych testach wydaje się, że wszystkie aplikacje Apple ładnie się ze sobą grają (nic dziwnego), a kilka innych skopiuje / wklei również do / z aplikacji Apple (w tym produkty Microsoft Office). Niestety podczas kopiowania z Chrome, do schowka jest kopiowany tylko zwykły tekst i tekst w formacie HTML, więc wygląda na to, że aplikacje Apple iWork nie obsługują wklejania tekstu w formacie HTML.

Więc jeśli kopiowanie / wklejanie nie obejmuje formatowania, możesz:

  • Wypróbuj inną przeglądarkę, z której chcesz kopiować, na przykład Safari; lub
  • Znajdź aplikację pośrednią, do której chcesz wkleić (która „mówi” zarówno formatowanie HTML, jak i może skopiować ponownie do formatu zrozumiałego przez Keynote / etc), takiego jak TextEdit.app firmy Apple

Zaskakujące jest to, że własna aplikacja TextEdit.app firmy Apple z radością wklei sformatowany tekst z Chrome i może być ponownie skopiowana do schowka i wklejona z formatowaniem do Keynote / Pages / etc.

W zależności od twojego punktu widzenia może to wydawać się ograniczeniem (lub usterką) w Chrome / Firefox lub Pages / Keynote / itp., Ale ostatecznie po prostu nie mówią tymi samymi językami formatowania (obecnie).

Zachęcam wszystkich, którzy tego doświadczają, do przesyłania opinii programistom po obu „stronach” w nadziei, że problem zostanie naprawiony - albo z Chrome / Firefox obsługującym kopiowanie RTF / RTFD (lub cokolwiek, co jest najbardziej standardowe / odpowiednie poza HTML), lub przez Aplikacje Apple iWork obsługujące wklejanie treści HTML.


Więcej niż chcesz wiedzieć o kopiowaniu do schowka

Po skopiowaniu tekstu do schowka, w zależności od aplikacji, może on zostać skopiowany w kilku formatach. Możesz je zobaczyć za pomocą aplikacji Apple Clipboard Viewer (wymaga wbudowania w Xcode).

Na przykład podczas kopiowania z Google Chrome schowek jest zapełniany czterema osobnymi kopiami skopiowanych informacji - dwoma zwykłymi tekstami ( public.utf8-plain-text, NSStringPboardType) i dwoma sformatowanymi HTML ( public.html, Apple HTML pasteboard type).

Kopiowanie z innych aplikacji daje różne kombinacje typów formatów, a niektóre z nich są inne wspólne '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, i tak dalej ...

Jak widać, istnieje wiele formatów zwykłego tekstu (z różnymi kodowaniami, takimi jak UTF8 / UTF16), typy RTF, typy PDF i Adobe, typy obrazów. Istnieje również kilka typów metadanych, które opisują aplikację, która skopiowała dane (np. com.apple.iWork.TSPNativeMetadata), Lub cechy skopiowanego tekstu (np. com.apple.iWork.TSPDescription), A także to, co wydaje się być oddzielnym tekstem i danymi stylu ( ustli TEXTjako CorePasteboardFlavorTypes, i ich com.adobe.indesign-import-odpowiednikami).

Nie znam żadnego sposobu na sprawdzenie, które typy formatów są obsługiwane przez aplikacje do wklejania, ale za pomocą Przeglądarki Schowków możesz szybko sprawdzić, które typy formatów są generowane podczas kopiowania.

drfrogsplat
źródło
To było to. W moim przypadku było to skrzyżowanie Keynote 6.1 i Chrome. Dalsze testy ujawniają, że treść skopiowana z Safari 7 działa, ale Chrome 34 i Firefox 27 nie :(
naśladują
Sugeruję przesłanie raportu o błędzie do przeglądarki Chrome i Firefox (lub głosowanie na istniejące błędy / prośby o funkcje). Dostaniesz jeszcze kilku zwolenników, jeśli podłączysz linki do odpowiednich błędów tutaj, jestem pewien.
drfrogsplat
Próbowałem z tuzinem innych źródeł dla kopii od tylu dostawców i wydaje się, że działa tylko kopiowanie z oprogramowania Apple. Wydaje się, że treść skopiowana z oprogramowania firmy innej niż Apple działa podczas wklejania. Innymi słowy, wygląda na błąd Apple, ale nie zamierzam poświęcać czasu na dalsze dochodzenie (lub błędy plików).
mimming
Trochę więcej zbadano, nie jest to tak proste, jak „tylko Apple do Apple”, ponieważ zarówno MS Word, jak i Apple TextEdit działają z prawie wszystkim ... ale podejrzewają, że można to nazwać błędem Apple, ponieważ nie obsługują wklejania z Tekst HTML w aplikacjach iWork.
drfrogsplat
Dzięki za to. Próbowałem skopiować kod z Xcode na Pages. Używanie TextEdit jako pośrednika jest trochę frustrujące, ale przynajmniej teraz mogę to zrobić! Uratował mi kilka przykładów uderzenia głową w ścianę! ;-)
mbm29414,
7

Jest to prawdopodobnie internetowy zakreślacz, którego używasz.

Używam http://markup.su i działa dobrze z Keynote 6.1 - wykrywa wiele języków i ma wiele „motywów”.

Jeśli nie jest to zakreślacz, może to być szablon lub przeglądarka. Udało mi się idealnie pobrać kod i wkleić go z markup.su w Safari do Keynote.

wprowadź opis zdjęcia tutaj

Tony Williams
źródło
markup.su świetnie wyróżnia rzeczy, ale wklejenie do pola tekstowego lub właściwości tekstowej kształtu w Keynote 6.1 nadal usuwa kolor i styl. : \
mimming
1
To dziwne, ponieważ sprawdził się dla mnie godzinę lub dwie temu. Tylko kopia z Safari, a następnie wklejanie do Keynote działało dla Pythona i Perla.
Tony Williams
Działa również na Keynote 6.5.3! (Y)
Randika Vishman
1
Działa na Keynote 6.6.1, ale musisz skopiować go z Safari.
luzny
Tak, należy go skopiować z Safari. Chrome nie działa.
Jason Gao,
3

Jeśli nie podoba ci się pomysł wklejenia kodu online, rozważ zainstalowanie pakietu python Pygments i wygenerowanie wyróżnionej składni w wierszu poleceń:

pygmentize sms_me_last_line.sh

Kopiowanie z Terminala i wklejanie do Keynote działało dla mnie. Ale zajęło mi trochę czasu znalezienie kontrolki formatowania do usuwania koloru tekstu tła. (Kliknij Formatuj na pasku narzędzi, aby wyświetlić opcje formatowania, kliknij Tekst, kliknij Styl, a następnie kliknij koło zębate, aby wyświetlić zaawansowane opcje formatowania. W tym oknie podręcznym znajdziesz „Kolor wypełnienia znaków”.)

ithos67
źródło
1

To jest błąd w Keynote '13:

Wklejanie tekstu sformatowanego z Xcode do Keynote działa po wklejeniu w istniejącym polu tekstowym.

Nie dzieje się to po wklejeniu do nowego pola tekstowego.

mz2
źródło
Czy istnieje obejście tego problemu oprócz wpisywania w nim tekstu?
Rob
Najbardziej dogodne, jakie znalazłem, to po prostu utworzyć pole tekstowe, zaznaczyć je i wkleić.
mz2