簡報軟體 sozi 製作技巧
inkscape + sozi = prezi + 開放自由
Sozi 是向量繪圖軟體 inkscape (illustrator 替代品) 的外掛。 有了它, 就可以製作出像 prezi 一般的旋轉/縮放簡報。 請見 我用 sozi 製作的幾個簡報範例。 因為 inkscape + sozi 採用開放的向量圖檔 svg + javascript 格式存檔, 而且檔案格式非常輕巧簡潔, 所以有很多優點:
- 你可以只管貼圖、 專注於簡報內容就好; 不需要花費心思處理換場特效
- 中文可以正常顯示; 甚至可以與任何語言混搭。 (這一點用 prezi 的人就比較吃虧了)
- firefox 或 chrome 等等任何支援國際標準的瀏覽器都可以看; 不需要特殊播放軟體。
- 可以放雲端、 也可以在本機播放。
- 除了 inkscape 之外, 其他支援 svg 的軟體工具應該也可以對成果圖檔做簡單的編輯。
- 甚至連文字編輯器也可以做簡單的編輯 -- 也因此, 搭配 regexp 就可讓 「批次修改簡報內容」 變得極為容易。 (我喜歡用 html 遠勝過 odt 其中最重要的原因與此相同)
- 稍微加工之後, 不同的簡報可以共享圖片, 很節省空間。 (不含圖片單就 svg 檔本身而言, 我所做的簡報檔都只有幾十 K 而已)
安裝
- 如果你用的是 debian 系列 (例如我用 antix 13.1): [2018/3/14] sozi 13 (需要先安裝 python-glade2 套件)、 sozi 18+
- 如果你用的是 fedora 17 底下:
yum install inkscape-sozi
- 如果你用的是 Windows: 中文教學、 英文教學
[2018/12/30] 我到現在還是偏好用較舊的版本 (sozi 13)。
如果遇到 「舊版 sozi 拒絕開新版檔案」 的問題,
而且如果版本沒有差太多的話, 可以參考
這篇文章; 但實際上需要查看的檔案可能不一樣。
先進到 /usr/share/inkscape/extensions/sozi ,
然後 grep SOZI_VERSION *.py
或 grep -i 'higher version' *.py
查出你的 (舊) 軟體版本, 把它貼到 (新) sozi svg 檔裡面的兩處
ns1:version
後面去。
基本操作
假設你粗略會使用 inkscape 畫圖。 那麼想把它變成簡報, 大致上就是以下幾個簡單步驟:
- "畫" 好你的簡報。 每個物件都可以是一個頁框 (frame)。 如果想要在一個頁框裡面同時放入好幾個物件, 就要把它們 group 起來成為一個物件, 或是畫一個矩形把它們框起來, 然後以這矩形為頁框也可以。 不必擔心矩形的邊框, 因為等一下可以選擇隱藏矩形。
- 放大縮小物件時, 建議按著 control 鍵, 以確保長寬比例維持不變。
- 點選 其中一個物件或一個 group 或一個矩形。
- 從 inkscape 的 「擴充功能」 選單當中叫出 sozi。 這時 sozi 的對話框出現; 而 inkscape 暫時不能使用。
- 在 sozi 對話框的左下角找到綠色的加號, 按下去之後, 先前點選的那個物件/group/矩形 就被加進你的簡報成為一個頁框了。
- 調整各項屬性。
- 按下確定, sozi 對話框消失, 控制權交還給 inkscape。
- 存檔; 先不要關掉 inkscape; 用 firefox 開啟你的 svg 檔, 檢查是否正確。 用方向鍵、 f、 t、 空格等等鍵 播放/操作 你的 svg 簡報。
- 回到第二步繼續加入下一頁框。
sozi 對話框很簡單 (也可以說很陽春): 總之就是要在左側的頁框清單裡面選取一個頁框, 然後就可以用下面的按鈕刪除/複製/調整順序, 或是用對話框右側的欄位調整各種屬性。 但 「新增頁框」 功能永遠都只適用於 [進入 sozi 之前所選的那個物件]。
Sozi 檔案格式
內含 sozi 的
svg 檔案格式也很簡單。 sozi 並沒有去動原始的 svg
內容 (從 <g ...>
到 </g>
的部分), 只是在最後面加上了一段 <script
id="sozi-script" ...> ... </script>
。
每個頁框的各欄位資訊也很清楚簡單:
ns1:refid
: 本頁框對應到圖檔裡面的哪一個元素?ns1:title
: 在頁框總覽(按 t 鍵)裡面所呈現的標題ns1:sequence
: 本頁框在整份簡報裡面出現的頁次ns1:hide
: 這個物件/元素本身要不要隱藏起來?ns1:clip
: 要不要把本頁框以外的部分(旁邊的圖)切掉?ns1:timeout-enable
: 要不要定時自動跳離本頁框?ns1:timeout-ms
: 多久以後自動跳離本頁框(跳到下一頁)?ns1:transition-duration-ms
: 花多少時間秀換場動作?ns1:transition-zoom-percent
: 換場縮放ns1:transition-profile
: 採用哪種換場特效?
sozi 簡報上雲端
如果希望你的 sozi 簡報可以上網 (而不是只能用 firefox 的 「檔案」 => 「開啟檔案」 瀏覽) 那麼有兩個方案:
- 在 inkscape 裡面用 「檔案」 => 「匯入」 圖檔時, 記得選取 「內嵌」 而不是 「連結」。 這樣 svg 檔會變很大, 但就不怕移動路徑會造成圖片消失。
- 相反地, 如果當初匯入圖檔時選取 「連結」,
那麼 svg 檔就還是很小, 但必須用文字編輯器進入
svg 檔, 手動將
<image ... />
裡面的xlink:href
後面的路徑改掉。 請檢視我的範例的原始碼。
注意: 每次用 inkscape 編修過後, 這個 svg 檔裡面的所有 image 的 xlink:href 路徑又會被 inkscape 改回檔案系統的路徑。 所以我都會再用一句 perl script 後置處理:
perl -pe 's#xlink:href="被inkscape修改過的路徑#xlink:href="你希望的網址路徑#' 簡報檔.svg > 新簡報檔.svg
另一個注意: 第一次一定要手動更改; 上面的 script 只適用於第二次以後的更改。 當你成功試過很多次之後, 可以考慮把上面的指令改成:
perl -pe -i.bak '...' 簡報檔.svg
這個 "-i.bak" 意思是直接修改 「簡報檔.svg」 (in-place) 並把舊的檔案備份在 「簡報檔.svg.bak」。 如果你 (像貴哥一樣) 很猛, 不怕不小心毀掉資料, 還可以把 ".bak" 省略掉, 就連清除備份檔的麻煩都省下來了。
以我自己為例, sozi 簡報檔都放在 /home/ckhung/public_html/mm/ 或 /home/ckhung/public_html/e/ 這兩個目錄底下, 而圖片檔都放在 /home/ckhung/public_html/m/ 這個目錄底下。 此外, 我習慣選用:
- 「淡入時減速 (decelerate)」 的換場特效。
- 不要 「隱藏 (hide) 本物件」、
- 不要 「把本頁框以外的其他東西 (旁邊的圖) 全部切掉 (clip)」、
所以我每次修改完一個 sozi 簡報 (例如 xyz.svg) 之後,
都會用一支小小的 perl 程式修正一下: cp xyz.svg /tmp ;
./fix.pl xyz.svg
Sozi 編輯小技巧
- 我都先把所有素材胡亂丟到畫布上, 然後再一併整理。 全部整理完以後, 才一口氣把所有頁框加入 sozi。
- 如果你像我一樣懶惰, 就會先丟著頁框屬性不管, 等全部排完後再用 vim (或其他文字編輯器) 進 svg 檔全面代換。
- 當你用群組 (group) 功能來組頁框時, 請先把相關物件組成一個群組, 然後才旋轉。 如果你先旋轉個別物件再組頁框, sozi 就不會懂得如何正確旋轉這個頁框。
sozi 簡報製作建議
這一節是我個人的簡報製作心得, 不一定適用於每個人。 以後將陸續增加。
- 按照概念的相關性 -- 而不是按照簡報頁框的順序 -- 來安排畫布。
- 有時候一個頁框在簡報前後不同時段出現也很有強調效果。
- 不要過度使用旋轉。 我通常只在表達 「轉換觀點」 或 「眾星拱月」 的情況下才加入旋轉。
附錄: 提供打包檔以及列印
邀請演講的單位通常會希望講者提供簡報檔。 不過當初這個單位立下規定時, 不太可能知道有越來越多人改用 html/svg 做簡報、 不太可能知道此時網址其實就是最好的簡報檔。 為了不要為難行政人員, 還是提供一下檔案吧。 以下假設要處理 abundance.svg 這個簡報檔。
如果當初所有圖案都是內嵌, 就可以直接交這個 svg 檔。
如果內含 「連結」 圖檔, 那麼除了 abundance.svg
之外, 還必須把所有圖檔的路徑及檔名全部印出來,
並建立一個清單 pic-list.txt : perl -ne 'print "$1\n"
if /xlink:href="(.*?)"/' abundance.svg > pic-list.txt
然後可以這樣產生壓縮檔: zip abundance.zip
abundance.svg $(cat pic-list.txt)
當然,
如果你的路徑像我一樣有 「向上」 ("../")
的相對連結, 就還要再進一步處理。 ... (待補)
如果要把整頁印成一張 jpg 圖,
可以先在瀏覽器裡面按 f 再列印成 abundance.pdf
(會變得很大), 然後: pdftoppm -r 300 abundance.pdf |
convert -crop 80%x45%+300+60 - abundance.jpg
(假設你有安裝 poppler-utils 及 imagemagick)。
至於逐頁列印成 pdf ... 請見 應論串, 我還沒試出來 :-(。
關於 sozi, 您有心得想要分享嗎? 請到 這一帖部落格 留言。
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/svg/sozi.php; 您所看到的版本: December 30 2018 14:22:59.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。