คุณจะวางรหัสที่เน้นไวยากรณ์ไว้ใน 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.