Einbetten von Codefragmenten in iBooks Author


10

Ich habe den ganzen Morgen mit iBooks Author gespielt und hatte kein Glück, Codefragmente einzubetten. Hat jemand andere Ideen?

Ein paar Dinge, die ich versucht habe:

  • Ein benutzerdefiniertes Widget. Dies funktioniert nicht, da Widgets nur eine Bildvorschau haben und zum Lesen getippt werden müssen. Ich werde diese für ausführbare Codebeispiele verwenden (zumindest für CoffeeScript / JavaScript / ClojureScript), aber nicht für die Formatierung von Code innerhalb des Textflusses
  • Textfelder - Bisher war es schmerzhaft, diese im Hoch- und Querformat ähnlich anzuzeigen.
  • Ein Absatzstil. Es sieht so aus, als würde ich hier als nächstes anfangen. Mit dem Inspektor scheint "Text -> Mehr" zu verbergen, was ich in Bezug auf Hintergrundschattierung und Deaktivierung der Silbentrennung möchte.

Ich kopiere Syntax-hervorgehobenen Code von textmate und verwende die Kopie als RTF-Bundle , aber iBooks Author respektiert die Farben nicht. Irgendwelche Ideen zur Syntaxhervorhebung?


1
Könnten Sie einen kurzen Ausschnitt bereitstellen, der zeigt, welche Farben nicht beachtet werden? Gelingt dies nicht, vielleicht zwei kleine Bilder, die die Absicht und das Ergebnis zeigen?
bmike

Antworten:


8

Es gibt einen Weg , einfacher Weg , dies zu tun ... Ich bin mit iBooks Author 2.0 hat es eine „Einfügen und Styles beibehalten“ Option , die funktioniert wie ein Zauber.

Ich bearbeite die Codefragmente in Xcode und wähle dann den gewünschten Abschnitt aus und kopiere ihn: Geben Sie hier die Bildbeschreibung ein

Klicken Sie dann bei gedrückter Ctrl-Taste, wo ich es in mein Buch einfügen möchte: Geben Sie hier die Bildbeschreibung ein

Erledigt! Das Snippet ist in der Syntaxhervorhebung enthalten: Geben Sie hier die Bildbeschreibung ein

Pro-Tipp 1: Nehmen Sie sich Zeit, um Xcode so einzurichten, dass die gewünschte Schriftart verwendet wird, damit Sie nicht damit herumspielen müssen, sobald der Code in iBooks Author eingefügt wurde. Autor: Geben Sie hier die Bildbeschreibung ein

Pro-Tipp 2: Hier sind einige weitere nützliche Einstellungen für Ihre Code-Snippet-Absätze. Halten Sie die Zeilen zusammen und deaktivieren Sie die automatische Silbentrennung.

Geben Sie hier die Bildbeschreibung ein


4

Ich habe gerade den Trick ausprobiert, mit dem ich syntaktisch hervorgehobenen Code in Keynote einbinde, und ich denke, er funktioniert, obwohl ich kein iPad zur Hand habe, um das Buch zu exportieren und auszuprobieren.

  1. Bearbeiten Sie den Code in MacVim
  2. Stellen Sie sicher, dass die Syntaxhervorhebung aktiviert ist:
    1. Hit Flucht
    2. Geben Sie ": syn on" ein und drücken Sie die Eingabetaste (geben Sie die Anführungszeichen nicht ein)
    3. Wenn Sie keine Syntaxhervorhebung sehen, ist vim möglicherweise falsch installiert oder Sie verwenden eine Sprache, in der standardmäßig keine Hervorhebungsdatei installiert ist. Suche Github und du wirst wahrscheinlich etwas finden
  3. Exportieren Sie den Puffer als HTML
    1. Hit Flucht
    2. Geben Sie ": TOhtml" ein und drücken Sie die Eingabetaste (geben Sie die Anführungszeichen nicht ein)
    3. Dadurch wird ein zweiter Puffer mit dem HTML-Code Ihres Textes geöffnet. Speichern Sie es über ": w" und drücken Sie die Eingabetaste
  4. Öffnen Sie die Datei in Ihrem Browser
  5. Kopieren Sie den Inhalt
  6. Einfügen in iBooks Author

Als ich das tat, bekam ich ein Textfeld mit dem hervorgehobenen Code.


Übrigens habe ich dies ausführlich in einem Buch getan, das ich in iBooks Author geschrieben habe, und es hat großartig funktioniert. Link zum iBooks Store: itunes.apple.com/us/book/kick-bash-habit-ruby-methadone/…
davetron5000

@ davetron5000 Ich habe versucht, Ihren Link zu öffnen und wurde benachrichtigt, dass der Artikel in Indien nicht verfügbar ist. Ich frage mich, ob das nicht beabsichtigt war und ob das Buch noch verfügbar ist.
Lorefnon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.