quarto::quarto_render("diamond-sizes.qmd", output_format = "docx")
29 Επιλογές μορφοποίησης στο Quarto
29.1 Εισαγωγή
Μέχρι τώρα, έχετε δει το Quarto να χρησιμοποιείται για την παραγωγή HTML αρχείων. Αυτό το κεφάλαιο παρέχει μία σύντομη περίληψη ορισμένων από τους πολλούς τύπους εγγράφων εξόδου που μπορείτε να παράγετε με το Quarto.
Υπάρχουν δύο τρόποι για να καθορίσετε τον τύπο του αρχείου εξόδου:
-
Μόνιμα, τροποποιώντας την YAML επικεφαλίδα:
title: "Diamond sizes" format: html
-
Παροδικά, καλώντας την εντολή
quarto::quarto_render()
:Αυτή η επιλογή είναι χρήσιμη εάν θέλετε να παράγετε προγραμματιστικά το ίδιο αποτέλεσμα σε πολλαπλούς τύπους εγγράφων, μιας και το όρισμα
output_format
μπορεί να πάρει μία λίστα από τιμές.quarto::quarto_render("diamond-sizes.qmd", output_format = c("docx", "pdf"))
29.2 Επιλογές αρχείων εξόδου
Το Quarto προσφέρει ένα ευρύ φάσμα μορφών εξόδου. Μπορείτε να βρείτε την πλήρη λίστα στη διεύθυνση https://quarto.org/docs/output-formats/all-formats.html. Πολλές μορφές μοιράζονται ορισμένες επιλογές εξόδου (για παράδειγμα, toc: true
για τη συμπερίληψη πίνακα περιεχομένων), ενώ άλλες έχουν επιλογές που είναι συγκεκριμένες για τη μορφή αυτή (για παράδειγμα το code-fold: true
συμπτύσσει κομμάτια κώδικα σε μία <details>
ετικέτα για HTML αρχεία εξόδου, ώστε ο χρήστης να μπορεί να την εμφανίσει κατ’ επιλογή, που δεν είναι διαθέσιμο για έγγραφα PDF ή Word).
Για να παρακάμψετε τις προεπιλεγμένες ρυθμίσεις, πρέπει να χρησιμοποιήσετε ένα επεκτεινόμενο πεδίο format
. Για παράδειγμα, εάν θέλατε να δημιουργήσετε ένα html
αρχείο με έναν αιωρούμενο (floating) πίνακα περιεχομένων, θα χρησιμοποιούσατε:
format:
html:
toc: true
toc_float: true
Μπορείτε ακόμη να δημιουργήσετε πολλαπλά αρχεία εξόδου, παρέχοντας μία λίστα επιλογών μορφοποίησης:
format:
html:
toc: true
toc_float: true
pdf: default
docx: default
Παρατηρήστε το ιδιαίτερο συντακτικό (pdf: default
) που θα πρέπει να χρησιμοποιήσετε εάν δεν θέλετε να παρακάμψετε τις προκαθορισμένες επιλογές.
Για να αποδώσετε (render) όλες τις επιλογές μορφοποίησης που καθορίζονται στην κεφαλίδα YAML ενός εγγράφου, μπορείτε να χρησιμοποιήσετε την επιλογή output_format = "all"
.
quarto::quarto_render("diamond-sizes.qmd", output_format = "all")
29.3 Έγγραφα
Το προηγούμενο κεφάλαιο εστίασε στην προκαθορισμένη επιλογή των html
αρχείων εξόδου. Υπάρχουν διάφορες βασικές παραλλαγές αυτού του θέματος, οι οποίες παράγουν διαφορετικούς τύπους εγγράφων. Για παράδειγμα:
Το
pdf
δημιουργεί ένα PDF χρησιμοποιώντας LaTeX (ένα σύστημα ανοιχτού κώδικα για τη διάταξη εγγράφων), το οποίο θα πρέπει να εγκαταστήσετε. Το RStudio θα σας ζητήσει αν δεν το έχετε ήδη.Το
docx
για έγγραφα του Microsoft Word (.docx
).Το
odt
για έγγραφα OpenDocument Text (.odt
).Το
rtf
για έγγραφα με μορφή εμπλουτισμένου κειμένου (.rtf
).Το
gfm
για ένα έγγραφο GitHub Flavored Markdown (.md
).Το
ipynb
για Jupyter Notebooks (.ipynb
).
Θυμηθείτε, όταν δημιουργείτε ένα έγγραφο που σκοπεύετε να μοιραστείτε με τους υπεύθυνους λήψης αποφάσεων, μπορείτε να απενεργοποιήσετε την προεπιλεγμένη εμφάνιση του κώδικα ορίζοντας τις αντίστοιχες καθολικές επιλογές στην κεφαλίδα YAML του εγγράφου:
execute:
echo: false
Μία εναλλακτική επιλογή για html
έγγραφα είναι η τα κομμάτια του κώδικα να παραμένουν κρυμμένα από προεπιλογή, αλλά να γίνονται ορατά με ένα κλικ:
format:
html:
code: true
29.4 Παρουσιάσεις
Μπορείτε επίσης να χρησιμοποιήσετε το Quarto για τη δημιουργία παρουσιάσεων. Έχετε λιγότερο οπτικό έλεγχο από ό,τι με ένα εργαλείο όπως το Keynote ή το PowerPoint, αλλά η αυτόματη εισαγωγή των αποτελεσμάτων του κώδικα σας σε R σε μία παρουσίαση μπορεί να εξοικονομήσει σημαντικό χρόνο. Οι παρουσιάσεις λειτουργούν διαιρώντας το περιεχόμενό σας σε διαφάνειες, με μία νέα διαφάνεια να ξεκινά σε κάθε κεφαλίδα δεύτερου επιπέδου (##
). Επιπλέον, οι κεφαλίδες πρώτου επιπέδου (#
) υποδεικνύουν την αρχή μιας νέας ενότητας με μία διαφάνεια τίτλου ενότητας που είναι, από προεπιλογή, κεντραρισμένη στη μέση.
Το Quarto υποστηρίζει μία ποικιλία μορφών παρουσίασης, που περιλαμβάνουν:
revealjs
- HTML παρουσιάσεις με τη χρήση revealjspptx
- PowerPoint παρουσιάσειςbeamer
- PDF παρουσιάσεις με τη χρήση LaTeX Beamer.
Μπορείτε να διαβάσετε περισσότερα για τη δημιουργία παρουσιάσεων με το Quarto στο https://quarto.org/docs/presentations.
29.5 Διαδραστικότητα
Όπως και με κάθε άλλο HTML έγγραφο, τα HTML έγγραφα που δημιουργούνται με το Quarto μπορούν να περιέχουν και διαδραστικά στοιχεία. Εδώ εισάγουμε δύο επιλογές για να συμπεριλάβουμε διαδραστικότητα στα Quarto έγγραφα μας: τα htmlwidgets και το Shiny.
29.5.1 htmlwidgets
Το HTML είναι μία διαδραστική μορφή και μπορείτε να επωφεληθείτε από αυτή τη διαδραστικότητα με τη χρήση htmlwidgets, συναρτήσεων της R που παράγουν διαδραστικές HTML απεικονίσεις. Για παράδειγμα, πάρτε τον leaflet χάρτη στην παρακάτω εικόνα. Εάν προβάλλετε αυτήν τη σελίδα στο διαδίκτυο, μπορείτε να σύρετε τον χάρτη, να τον μεγεθύνετε και μικρύνετε κλπ. Προφανώς δεν μπορείτε να το κάνετε αυτό σε ένα βιβλίο, οπότε το Quarto εισάγει αυτόματα ένα στατικό στιγμιότυπο για εσάς.
library(leaflet)
leaflet() |>
setView(174.764, -36.877, zoom = 16) |>
addTiles() |>
addMarkers(174.764, -36.877, popup = "Maungawhau")
Το υπέροχο με τα htmlwidget είναι ότι δεν χρειάζεται να γνωρίζετε τίποτα για HTML ή JavaScript για να τη χρησιμοποιήσετε. Όλες οι λεπτομέρειες περιέχονται στο πακέτο, οπότε δεν χρειάζεται να ανησυχείτε για αυτό.
Υπάρχουν πολλά πακέτα που παρέχουν htmlwidgets, συμπεριλαμβανομένων των:
dygraphs για διαδραστικές απεικονίσεις χρονοσειρών.
DT για διαδραστικούς πίνακες.
threejs για διαδραστικά τρισδιάστατα διαγράμματα.
DiagrammeR για διαγράμματα (όπως διαγράμματα ροής και απλά διαγράμματα κόμβων-συνδέσμων).
Για να μάθετε περισσότερα σχετικά με τα htmlwidgets και για μία πλήρη λίστα των πακέτων που τα παρέχουν, επισκεφθείτε τη διεύθυνση https://www.htmlwidgets.org.
29.5.2 Shiny
Τα htmlwidgets παρέχουν διαδραστικότητα από την πλευρά του χρήστη (client-side) — όλη η αλληλεπίδραση συμβαίνει στο πρόγραμμα περιήγησης, ανεξάρτητα από την R. Από τη μία, αυτό είναι υπέροχο γιατί μπορείτε να διανείμετε το HTML αρχείο σας χωρίς καμία σύνδεση με την R. Ωστόσο, αυτό περιορίζει θεμελιωδώς το τι μπορείτε να κάνετε σε στοιχεία που έχουν δημιουργηθεί με HTML και JavaScript. Μία εναλλακτική προσέγγιση είναι να χρησιμοποιήσετε το shiny, ένα πακέτο που σας επιτρέπει να δημιουργήσετε διαδραστικότητα χρησιμοποιώντας τον κώδικα R, κι όχι τη JavaScript.
Για να εκτελέσετε τον κώδικα σας σε Shiny από ένα έγγραφο Quarto, προσθέστε την επιλογή server: shiny
στην κεφαλίδα YAML:
title: "Shiny Web App"
format: html
server: shiny
Τώρα μπορείτε να χρησιμοποιήσετε τις συναρτήσεις εισαγωγής (“input”) για να προσθέσετε διαδραστικά στοιχεία σε ένα έγγραφο:
Χρειάζεστε επίσης ένα κομμάτι κώδικα με την επιλογή context: server
που περιέχει τον κώδικα που πρέπει να εκτελεστεί σε έναν Shiny διακομιστή.
Στη συνέχεια, μπορείτε να ανατρέξετε στις τιμές με χρησιμοποιώντας τα input$name
και input$age
και ο κώδικας που τις χρησιμοποιεί θα εκτελείται ξανά αυτόματα κάθε φορά που αυτά αλλάζουν.
Δεν μπορούμε να σας δείξουμε μία ζωντανή shiny εφαρμογή εδώ επειδή οι shiny αλληλεπιδράσεις πραγματοποιούνται από την πλευρά του διακομιστή (server-side). Αυτό σημαίνει ότι μπορείτε να γράψετε διαδραστικές εφαρμογές χωρίς να γνωρίζετε JavaScript, αλλά χρειάζεστε έναν διακομιστή για να τις εκτελέσετε. Αυτό εισάγει ένα τεχνικό ζήτημα: Οι εφαρμογές Shiny χρειάζονται έναν διακομιστή Shiny για να εκτελούνται στο διαδίκτυο. Όταν εκτελείτε τις εφαρμογές Shiny στον δικό σας υπολογιστή, το Shiny ρυθμίζει αυτόματα έναν διακομιστή Shiny για εσάς, αλλά χρειάζεστε έναν δημοσίως ορατό διακομιστή Shiny, εάν θέλετε να δημοσιεύσετε αυτού του είδους τη διαδραστικότητα στο διαδίκτυο. Αυτός είναι ο θεμελιώδης συμβιβασμός του shiny: σε ένα shiny έγγραφο μπορείτε να κάνετε ότι θα κάνατε και στην R, αλλά απαιτείται κάποιος να τρέχει την R.
Για να μάθετε περισσότερα σχετικά με το Shiny, συνιστούμε να διαβάσετε το Mastering Shiny από τον Hadley Wickham, https://mastering-shiny.org.
29.6 Ιστοσελίδες και βιβλία
Με λίγες επιπλέον υποδομές, μπορείτε να χρησιμοποιήσετε το Quarto για να δημιουργήσετε μία πλήρη ιστοσελίδα ή ένα βιβλίο:
Εισάγετε τα αρχεία σας με κατάληξη
.qmd
σε ένα κοινό μονοπάτι εργασίας. Τοindex.qmd
θα γίνει η αρχική σελίδα σας.-
Προσθέστε ένα YAML αρχείο που ονομάζετε ως
_quarto.yml
και το οποίο παρέχει την πλοήγηση στον ιστότοπο. Σε αυτό το αρχείο, ορίστε τοproject
είτε ωςbook
είτε ωςwebsite
, για παράδειγμα:project: type: book
Για παράδειγμα, το ακόλουθο _quarto.yml
αρχείο δημιουργεί μία ιστοσελίδα από τρία αρχεία πηγαίου κώδικα: το index.qmd
(αρχική σελίδα), το viridis-colors.qmd
, και το terrain-colors.qmd
.
project:
type: website
website:
title: "A website on color scales"
navbar:
left:
- href: index.qmd
text: Home
- href: viridis-colors.qmd
text: Viridis colors
- href: terrain-colors.qmd
text: Terrain colors
Το αρχείο _quarto.yml
που χρειάζεστε για ένα βιβλίο ακολουθεί παρόμοια δομή. Το παρακάτω παράδειγμα δείχνει πως μπορείτε να δημιουργήσετε ένα βιβλίο με τέσσερα κεφάλαια, το οποίο παράγει τρία διαφορετικού τύπου αρχεία εξόδου (html
, pdf
, και epub
). Και πάλι, τα αρχεία του πηγαίου κώδικα είναι αρχεία με κατάληξη .qmd
.
project:
type: book
book:
title: "A book on color scales"
author: "Jane Coloriste"
chapters:
- index.qmd
- intro.qmd
- viridis-colors.qmd
- terrain-colors.qmd
format:
html:
theme: cosmo
pdf: default
epub: default
Σας συνιστούμε να χρησιμοποιήσετε ένα RStudio project για τους ιστοτόπους και τα βιβλία σας. Με βάση το αρχείο _quarto.yml
, το RStudio θα αναγνωρίσει τον τύπο του project στο οποίο εργάζεστε και θα προσθέσει μία καρτέλα Build στο IDE, την οποία μπορείτε να χρησιμοποιήσετε για την απόδοση και προεπισκόπηση των ιστοτόπων και των βιβλίων σας. Τόσο οι ιστότοποι όσο και τα βιβλία μπορούν επίσης να αποδοθούν χρησιμοποιώντας την εντολή quarto::quarto_render()
.
Διαβάστε περισσότερα σχετικά με ιστοσελίδες Quarto στο https://quarto.org/docs/websites και στο https://quarto.org/docs/books για βιβλία.
29.7 Άλλες επιλογές μορφοποίησης
Το Quarto προσφέρει ακόμη περισσότερες επιλογές αρχείων εξόδου:
Μπορείτε να γράψετε άρθρα σε περιοδικά χρησιμοποιώντας τα Quarto Journal Templates: https://quarto.org/docs/journals/templates.html.
Μπορείτε να εξάγετε έγγραφα Quarto σε Jupyter Notebooks με την επιλογή
format: ipynb
: https://quarto.org/docs/reference/formats/ipynb.html.
Δείτε στο https://quarto.org/docs/output-formats/all-formats.html για μία λίστα με ακόμη περισσότερες επιλογές μορφοποίησης.
29.8 Σύνοψη
Σε αυτό το κεφάλαιο σας παρουσιάσαμε μία ποικιλία επιλογών για την επικοινωνία των αποτελεσμάτων σας με το Quarto, από στατικά και διαδραστικά έγγραφα έως παρουσιάσεις, ιστοτόπους και βιβλία.
Για να μάθετε περισσότερα σχετικά με την αποτελεσματική επικοινωνία σε αυτές τις διαφορετικές μορφές, συνιστούμε τις ακόλουθες πηγές:
Για να βελτιώσετε τις δεξιότητες παρουσίασης σας, δοκιμάστε το Presentation Patterns των Neal Ford, Matthew McCollough, και Nathaniel Schutta. Παρέχει ένα σύνολο αποτελεσματικών μοτίβων (χαμηλού και υψηλού επιπέδου) που μπορείτε να εφαρμόσετε για να βελτιώσετε τις παρουσιάσεις σας.
Εάν δίνετε ακαδημαϊκές ομιλίες μπορεί να σας αρέσει το Leek group guide to giving talks.
Αν και δεν το έχουμε οι ίδιο, έχουμε ακούσει καλά λόγια για το διαδικτυακό μάθημα του Matt McGarrity για τη δημόσια ομιλία σε κοινό: https://www.coursera.org/learn/public-speaking.
Εάν δημιουργείτε πολλά dashboards, φροντίστε να διαβάσετε το Information Dashboard Design: The Effective Visual Communication of Data του Stephen Few. Θα σας βοηθήσει να δημιουργείτε dashboards που είναι πραγματικά χρήσιμα, κι όχι απλά όμορφα στην όψη.
Η αποτελεσματική επικοινωνία των ιδεών σας συχνά επωφελείται από κάποιες γνώσεις γραφιστικής. Το The Non-Designer’s Design Book της Robin Williams είναι ένα καλό σημείο για να ξεκινήσετε.