คุณจะวางรหัสที่เน้นไวยากรณ์ไว้ใน Keynote '13 ได้อย่างไร


16

ฉันให้งานนำเสนอโค้ดจำนวนมากด้วย Keynote การเน้นไวยากรณ์ทำให้สิ่งเหล่านี้อ่านได้

ในอดีตที่ผ่านมาฉันใช้เครื่องมือเน้นไวยากรณ์ทางเว็บและวางโค้ดที่อ่านง่ายขึ้นลงในงานนำเสนอของฉัน

เมื่อฉันอัพเกรดเป็น iWork '13 ซึ่งรวมถึง Keynote 6.1 การวางเนื้อหาจะทำให้รูปแบบตัวอักษรและสีต่างออกไป

ตัวอย่างเช่นถ้าฉันใช้โค้ดที่มีสีสันนี้จาก GitHubและวางลงใน Keynote มันจะลบการจัดรูปแบบทั้งหมดตามที่แสดงที่นี่:

ป้อนคำอธิบายรูปภาพที่นี่

มีวิธีการรับรหัสเน้นไวยากรณ์ในงานนำเสนอเหล่านี้หรือไม่


เจนนี่ช่วยบอกเราว่าคุณใช้ปากกาไฮไลท์เพื่อดูและคัดลอกรหัสอะไร
— Tony Williams

เพิ่มแหล่งตัวอย่าง (GitHub) และ screencap ของผลลัพธ์
— mimming

สิ่งที่เบราว์เซอร์ที่คุณใช้?
— Alan Shutko

@Alan ฉันใช้ Chrome 34 เมื่อฉันสังเกตเห็นพฤติกรรมนี้
— mimming

คำตอบ:


13

คำตอบ 'สั้น'

... คือแอพต่าง ๆ คัดลอกข้อความที่จัดรูปแบบไปยังคลิปบอร์ดในรูปแบบที่ต่างกันและแอพต่าง ๆ สนับสนุนการวางจากรูปแบบที่แตกต่างกัน โดยทั่วไปแล้วคุณจะได้รับรูปแบบ 'ข้อความธรรมดา' รวมถึงรูปแบบ HTML หรือ RTF ในคลิปบอร์ดและมันก็ขึ้นอยู่กับแอปที่วางเพื่อเลือกสิ่งที่ถูกใจที่สุด

Keynote 6.1 รองรับการวางข้อความที่จัดรูปแบบบางชนิดอย่างแน่นอนเนื่องจากฉันสามารถใช้กับ Safari ได้ แต่ดูเหมือนจะไม่ทำงานกับ Firefox หรือ Chrome (ในขณะที่เขียน) จากการทดสอบเล็กน้อยดูเหมือนว่าแอปของ Apple เล่นด้วยกันอย่างดี (ไม่แปลกใจเลย) และอีกสองสามคนจะคัดลอก / วางไปยัง / จากแอพ Apple ด้วย (รวมถึงผลิตภัณฑ์ Microsoft Office) น่าเสียดายที่เมื่อคุณคัดลอกจาก Chrome คุณจะได้รับข้อความล้วนและข้อความที่จัดรูปแบบ HTML ที่คัดลอกไปยังคลิปบอร์ดดังนั้นจะปรากฏว่าแอป iWork ของ Apple ไม่สนับสนุนการวางข้อความในรูปแบบ HTML

ดังนั้นหากการคัดลอก / วางไม่มีการจัดรูปแบบคุณสามารถ:

  • ลองใช้เบราว์เซอร์อื่นเพื่อคัดลอกเช่น Safari หรือ
  • ค้นหาแอประดับกลางที่จะวางลงใน (ซึ่งพูดทั้งการจัดรูปแบบ HTML และสามารถคัดลอกลงในรูปแบบ Keynote / etc เข้าใจได้) เช่น TextEdit.app ของ Apple เอง

น่าแปลกที่ TextEdit.app ของ Apple จะวางข้อความที่จัดรูปแบบจาก Chrome อย่างมีความสุขและสามารถคัดลอกไปยังคลิปบอร์ดอีกครั้งและวางด้วยการจัดรูปแบบลงใน Keynote / Pages / etc

นี่อาจดูเหมือนว่ามีข้อ จำกัด (หรือข้อผิดพลาด) ใน Chrome / Firefox หรือใน Pages / Keynote / ฯลฯ แต่ท้ายที่สุดพวกเขาก็ไม่พูดภาษาการจัดรูปแบบเดียวกัน (ในปัจจุบัน)

ฉันขอแนะนำให้ทุกคนที่ประสบปัญหานี้ส่งคำติชมไปยังนักพัฒนาทั้งสองด้านโดยหวังว่าจะได้รับการแก้ไขไม่ว่าจะด้วย Chrome / Firefox ที่สนับสนุนการคัดลอก RTF / RTFD (หรืออะไรก็ตามที่เป็นมาตรฐาน / เหมาะสมที่สุดนอกเหนือจาก HTML) หรือ แอพ iWork ของ Apple รองรับการวางเนื้อหา HTML


มากกว่าที่คุณต้องการรู้เกี่ยวกับการคัดลอกไปยังคลิปบอร์ด

เมื่อคุณคัดลอกข้อความไปยังคลิปบอร์ดขึ้นอยู่กับแอปพลิเคชั่นข้อความนั้นอาจถูกคัดลอกในบางรูปแบบ คุณสามารถดูสิ่งเหล่านี้ได้โดยใช้แอปพลิเคชันClipboard Viewer (ต้องมีการสร้างใน Xcode)

ตัวอย่างเช่นการคัดลอกจาก Google Chrome คลิปบอร์ดจะได้รับการเติมด้วยสี่ชุดของข้อมูลที่ฉันคัดลอกแยกต่างหาก - สองข้อความธรรมดา ( public.utf8-plain-text, NSStringPboardType) และสองรูปแบบ HTML ( public.html, Apple HTML pasteboard type)

คัดลอกจากปพลิเคชันอื่น ๆ จะช่วยให้ชุดต่างๆของประเภทรูปแบบกับบางคนทั่วไปอีกคน'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, และอื่น ๆ ...

อย่างที่คุณเห็นมีรูปแบบข้อความหลากหลายรูปแบบ (ด้วยการเข้ารหัสที่หลากหลายเช่น UTF8 / UTF16) ประเภท RTF ประเภท PDF และ Adobe ประเภทภาพ นอกจากนี้ยังมีประเภทข้อมูลเมตาที่อธิบายแอปพลิเคชันที่คัดลอกข้อมูล (เช่นcom.apple.iWork.TSPNativeMetadata) หรือคุณสมบัติของข้อความที่คัดลอก (เช่นcom.apple.iWork.TSPDescription) และสิ่งที่ดูเหมือนจะแยกข้อมูลข้อความและสไตล์ ( ustlและTEXTเป็นCorePasteboardFlavorTypes และสิ่งที่com.adobe.indesign-import-เทียบเท่า)

ฉันไม่รู้วิธีการดูว่ารูปแบบใดที่สนับสนุนโดยแอปพลิเคชันสำหรับการวาง แต่การใช้ Clipboard Viewer คุณสามารถดูได้อย่างรวดเร็วว่าประเภทรูปแบบใดที่สร้างขึ้นในการคัดลอก


นี่มัน ในกรณีของฉันมันเป็นจุดตัดของ Keynote 6.1 และ Chrome การทดสอบเพิ่มเติมพบว่าเนื้อหาที่คัดลอกมาจาก Safari 7 ใช้งานได้ แต่ Chrome 34 และ Firefox 27 ไม่ได้ :(
— ลดลง

ฉันขอแนะนำให้คุณส่งรายงานข้อผิดพลาดไปยังทั้ง Chrome และ Firefox (หรือโหวตให้กับข้อบกพร่อง / คำขอคุณลักษณะที่มีอยู่) คุณจะได้รับผู้สนับสนุนเพิ่มขึ้นอีกเล็กน้อยหากคุณเชื่อมโยงไปยังข้อบกพร่องที่เกี่ยวข้องที่นี่ฉันก็มั่นใจเช่นกัน
— drfrogsplat

ฉันได้ลองกับแหล่งข้อมูลอื่น ๆ หลายสิบรายการเพื่อคัดลอกจากผู้ขายจำนวนมากและดูเหมือนว่าจะคัดลอกจากซอฟต์แวร์ Apple เท่านั้น เนื้อหาที่คัดลอกมาจากซอฟต์แวร์ที่ไม่ใช่ของ Apple ดูเหมือนว่าจะทำงานเมื่อวางกันและกัน กล่าวอีกนัยหนึ่งดูเหมือนว่าบั๊กของ Apple แต่ฉันจะไม่ใช้เวลาในการตรวจสอบเพิ่มเติม (หรือไฟล์บั๊ก) อีกต่อไป
— mimming

การตรวจสอบอีกเล็กน้อยมันไม่ง่ายเหมือน "เฉพาะ Apple to Apple" เนื่องจาก MS Word และ TextEdit ของ Apple ทำงานได้ดีกับทุกสิ่ง ... แต่ยังสงสัยว่านี่อาจเรียกว่า bug ของ Apple เนื่องจากพวกเขาไม่สนับสนุนการวางจาก ข้อความ HTML ในแอพ iWork
— drfrogsplat

ขอบคุณสำหรับสิ่งนี้. ฉันพยายามคัดลอกรหัสจาก Xcode ลงในหน้า มันน่าผิดหวังเล็กน้อยที่ต้องใช้ TextEdit เป็นตัวกลาง แต่อย่างน้อยตอนนี้ฉันสามารถทำได้! ช่วยฉันพบกับตัวอย่างที่น่าทึ่ง ;-)
— mbm29414

7

นี่อาจเป็นปากกาเน้นข้อความออนไลน์ที่คุณใช้

ฉันใช้http://markup.suและใช้งานได้ดีกับ Keynote 6.1 - จะตรวจจับหลายภาษาโดยอัตโนมัติและมี "ธีม" จำนวนหนึ่ง

หากไม่ใช่เครื่องมือเน้นข้อความอาจเป็นเทมเพลตหรือเบราว์เซอร์ของคุณ ฉันสามารถใช้รหัสของคุณและวางจาก markup.su ใน Safari ลงใน Keynote ได้อย่างสมบูรณ์แบบ

ป้อนคำอธิบายรูปภาพที่นี่


markup.su เน้นสิ่งที่ยอดเยี่ยม แต่การวางลงในฟิลด์ข้อความหรือคุณสมบัติข้อความของรูปร่างใน Keynote 6.1 ยังคงตัดสีและสไตล์ : \
— ลดลง

1
มันแปลกที่มันทดสอบได้ดีสำหรับฉันเมื่อหนึ่งหรือสองชั่วโมงก่อน เพียงแค่คัดลอกจาก Safari แล้ววางลงใน Keynote ที่ทำงานกับ Python และ Perl
— โทนี่วิลเลียมส์

มันทำงานบน Keynote 6.5.3 ด้วยเช่นกัน! (Y)
— Randika Vishman

1
ใช้งานได้กับ Keynote 6.6.1 แต่คุณต้องคัดลอกจาก Safari
— luzny

ใช่จะต้องมีการคัดลอกจาก Safari Chrome ไม่ทำงาน
— Jason Gao

3

หากคุณไม่ชอบแนวคิดในการวางโค้ดของคุณทางออนไลน์ให้พิจารณาติดตั้งแพ็คเกจ Pygments python และสร้างไวยากรณ์ที่เน้นสีของคุณที่บรรทัดคำสั่ง:

pygmentize sms_me_last_line.sh

การคัดลอกจาก Terminal และการวางลงใน Keynote นั้นเหมาะสำหรับฉัน แต่ฉันใช้เวลาสักครู่เพื่อค้นหาการควบคุมการจัดรูปแบบสำหรับการลบสีข้อความพื้นหลัง (คลิกรูปแบบในแถบเครื่องมือเพื่อแสดงตัวเลือกการจัดรูปแบบคลิกข้อความคลิกสไตล์จากนั้นคลิกที่เฟืองเพื่อแสดงตัวเลือกการจัดรูปแบบขั้นสูงในป๊อปอัปนั้นคุณจะพบ "ตัวอักษรเติมสี")


3

ฉันใช้ Vim ฉันพบว่าปลั๊กอินนี้มีประโยชน์มาก: https://github.com/zerowidth/vim-copy-as-rtf

ด้วยวิธีนี้ฉันสามารถรักษารหัสของฉันให้เหมือนเดิมเมื่อฉันกำลังเขียนและนำเสนอพวกเขา


1

มันเป็นข้อบกพร่องใน Keynote '13:

การวาง rich text จาก Xcode ไปยัง Keynote จะทำงานเมื่อคุณวางในกล่องข้อความที่มีอยู่

มันไม่ได้เมื่อคุณวางลงในกล่องข้อความใหม่


มีวิธีแก้ไขเฉพาะหน้าสำหรับสิ่งนี้ยกเว้นการพิมพ์ข้อความก่อนหรือไม่?
— Rob

สิ่งที่สะดวกที่สุดที่ฉันพบคือเพียงแค่สร้างกล่องข้อความเลือกมันและวางลงในกล่อง
— mz2
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.