Plain text workflow
A doktori disszertációmat Scrivenerrel írtam, bibliográfiakezelőnek a Zoterót használtam, a végső szerkesztést pedig LibreOffice-ban csináltam. Összességében ez volt a munkafolyamatom:
Using Scrivener for Writing Scientific Papers
Macerásan, de működött. Legjobban a LibreOffice-t utáltam benne, ezért (már a leadás után) elkezdtem utánaolvasni, hogy hogy hagyhatnám ki a folyamatból.
Így találtam rá erre a leírásra:
Sustainable Authorship in Plain Text using Pandoc and Markdown
Innen nem volt megállás, eldöntöttem, hogy nemcsak a LibreOffice-t, hanem a Scrivenert és úgy általában a word processorokat is magam mögött hagyom, és plain textre váltok.
A rendszer az alábbi elemekből áll:
- text editor
- bibliográfiakezelő
- konverter
- opcionális, de hasznos: markdown previewer
A kívánt workflow a következő:
- cikk (tanulmány, bármi) megírása markdownban, Zoteróból lábjegyzetbe beillesztett hivatkozásokkal
- markdownból .docx vagy .odt generálása tartalomjegyzékkel és megfelelően formázott hivatkozásokkal-bibliográfiával
- végső simítások elvégzése (ha szükséges), majd pdf mentése
A rendszer elemeinek tehát egymással is együtt kell működniük.
Text editor
Szerkesztőnek a BBEditet választottam. Elvileg fizetős program, de van ingyenes változata is, ebben néhány funkció nem működik, de ezekre nekem nincs is szükségem. Nagy előnye, hogy ősrégi Macintosh-szoftver, így teljes mértékben Mac-like (aki Macet használ, tudja, mire gondolok). Fontos, hogy szkriptelhető, és nagyon hasznos még a syntax highlighting is.
Navigálás a dokumentumban
A Scrivener nekem egy kicsit overkill volt. Amit valóban nagyon hasznosnak tartottam benne, az a Binder, ahol a dokumentum fejezetei és alfejezetei mappákként és fájlokként jelentek meg, így a navigálás nagyon egyszerű volt.
Ezt a funkcionalitást a BBEdit is tudja, valódi mappákkal és fájlokkal, így magában a Finderben hozhatom létre a hosszú dokumentumok alapstruktúráját.
Nyilván nem érdemes az összes al-alfejezetet külön fájlban tartani, ezt a tagolást már a fájlon belül Markdownban is megcsinálhatjuk. A BBedit Functions
-menüje felismeri a Markdown fejezetcímeket, így a segítségével gyorsan lehet navigálni egy fájlon belül is.
Szóba került még:
Bibliográfiakezelő
Ez maradt a Zotero. Sajnos hivatalosan csak Word és LibreOffice-plugin létezik hozzá, de ez nem jelenti azt, hogy kis találékonysággal mással ne lehetne használni. Ehhez az alábbi segédprogramok kellenek.
Better BibTeX
Ez egy Zotero-plugin, ami a Zoteróban tárolt egyes tételekhez BibTeX-kompatibilis Citation Keyeket generál.
Fontos: a legfrissebb, 5-ös Zoteróval egyelőre nem kompatibilis, de az újraírás már a pre-release szakaszban van.
A beállításoknál bekapcsoltam az Automatic export
funkciót, így van a gépemen egy folyamatosan frissen tartott .bib-fájl (ami szintén plain text) a teljes Zotero-könyvtárammal. Mivel nagyon sok tétel van a Zoterómban, bekapcsoltam a When idle
-kapcsolót is.
A Citation keys
fülön pedig a QuickCopy format
-ot állítsuk Pandoc
-ra.
Zotpick-pandoc applescript
Ez a kis segédprogram felhoz egy ugyanolyan választóablakot, mint a hivatalos LibreOffice/Word Zotero-pluginek, így nagyon egyszerű a hivatkozások beillesztése. Ha belemásoljuk a BBEdit Scripts
-mappájába, akkor a BBEdit Scripts
-menüjéből indíthatjuk.
A kiválasztott tételről egy BibTeX cite keyt illeszt a dokumentumunkba. Ha lábjegyzetbe szeretnénk tenni, ezt a karaktert tegyük elé: ^
, és tegyük szögletes zárójelek közé. Pl. ^[@bereczki_reconstruction_2015]
Szóba jöhet még:
Konverter
Természetesen a Pandoc, ami a legkülönfélébb markup-formátumok között tud parancssorból konvertálni. A honlapról lehet letölteni a telepítőt.
YAML header
A Pandocnak szüksége van néhány alapadatra, amit a markdown-file elején az úgynevezett YAML header
-ben kell elhelyezni.
Egy alap YAML-header így néz ki:
---
title: Plain Text Workflow
author: Bereczki Zoltán
date: 27.09.2017
bibliography: /Users/Zoli/Documents/tudomany/My_Library.bib
csl: /Users/Zoli/Documents/tudomany/csl/Z5.csl
---
A bibliography
alatt a Better BibTeX által generált .bib-fájl elérési útját kell megadni, csl
-nek pedig azt a Zotero-stílust, amit használni szeretnénk a hivatkozásaink és a bibliográfiánk formázásához.
Tartalomjegyzék, bibliográfia, formázás
Ha azt szeretnénk, hogy a Pandoc a fájl elejére tartalomjegyzéket, a végére pedig bibliográfiát illesszen, a következők a teendők.
- tartalomjegyzék: konvertálásnál parancssorban használjuk a
—toc
kapcsolót - bibliográfia: a fájl legvégére kell tenni egy első szintű headert (
#
) bármilyen névvel (pl. Irodalomjegyzék vagy Bibliography, utána már ne jöjjön más), majd konvertálásnál használjuk a--filter pandoc-citeproc
kapcsolót - formázás: ha változtatni akarunk azon, ahogy a Pandoc formázza a szöveget, akkor a generált docx-ben állítsuk át a megfelelő stílusokat (tehát ne direkt formázást használjunk), majd adjuk meg a Pandocnak a fájlt referenciának az alábbi kapcsolóval:
--reference-docx=FILE
.
BBedit-script
A Pandoc használata lehetséges parancssor nélkül is. A BBEdithez léteznek Pandoc-szkriptek, én a BBpandoc csomagból a pandoc-docx.sh
-t használom. Telepítés után beépül a BBEdit Scripts
-menüjébe, így grafikus felületen tudok docx-et generálni. Én annyit változtattam rajta, hogy beleírtam a tartalomjegyzék és a bibliográfia generálására szolgáló kapcsolókat is, ez a verzió letölthető innen.
Markdown previewer
Olyan kellett, ami a Pandocot használja megjelenítéshez. Szerencsére a BBEdit beépített previewere ilyen, de kell hozzá a pandoc-preview.sh script, ami szintén a BBpandoc része. Ha ez telepítve van, akkor a BBEdit preview-ablakának a tetején kiválaszthatjuk a pandoc-preview.sh
filtert. Ennek azért van jelentősége, mert így a hivatkozásaink és a bibliográfiánk már formázva jelenik meg a preview-ban is.
A lábjegyzetek az előnézet legaljára fognak kerülni, de ezzel ne törődjünk, azért van, mert a BBEdit nem tördeli oldalakra az előnézetet. A generált docx-ben természetesen a helyükön lesznek a lábjegyzetek.
A BBEditnek az előnézet generálásához saját ccs-t is meg lehet adni. Nekem erre azért volt szükségem, mert egyébként a képeket teljes méretben teszi be, nem oldalszélességben. A Marked 2-höz van sok custom style, ezeket BBEditben is használhatjuk. Hogy a képek oldalszélesek legyenek, írjuk bele a használt css-be ezt (ha nem lenne benne alapból):
img {
max-width: 100%;
}