﻿# 在 PowerPoint 2016 中製作技術簡報的幾點注意事項與選項設定

我經常看到同事製作的 PowerPoint 簡報品質不佳，而且每次犯錯的地方都差不多，我這些年都不知道重複講幾次了。其實 PowerPoint 的預設設定對於一般人比較沒問題，但是我們經常要將原始碼貼到簡報展示，或是直接在簡報中輸入 CLI 命令時，有些「智慧」的功能，對我們就非常困擾。本篇文章分享我這幾年的 PowerPoint 簡報製作心得。

### 修正 PowerPoint 選項

用 PowerPoint 製作技術簡報，最討厭的地方就是 Office 內建的「校訂」功能，他會自動幫你訂正寫錯的英文，或是自動將「引號」美化，但這些美化的動作，都會破壞程式碼的樣式與字元，如果直接複製程式碼起來，經常也會造成編譯錯誤，不得不慎。

以下幾條選項設定，請特別注意是否正確調整過：

-   請先開啟 \[檔案\] / \[選項\] / \[校訂\] / \[自動校正選項\]
    
    ![\[檔案\] / \[選項\] / \[校訂\] / \[自動校正選項\]](https://stwillblogassets.blob.core.windows.net/files/images/external/user-images.githubusercontent.com/cafe04557e341e529278-45926059-2f341a00-bf51-11e8-9178-5e439e77f201.png)
    
-   選擇 \[自動校正\] 頁籤
    
    如下圖紅框中標注的四個選項都不要勾選
    
    ![image](https://stwillblogassets.blob.core.windows.net/files/images/external/user-images.githubusercontent.com/dbc264fe2c188259b547-45926104-876b1c00-bf51-11e8-9249-32a7e49958d8.png)
    
-   選擇 \[輸入時自動套用格式\] 頁籤
    
    **將「直引號」轉換為「智慧符號」** 與 **將連字號 (--) 取代為破折號 (—)** 這兩個項目必須取消勾選，因為寫程式跟寫指令太常用到引號與連字號了。
    
    ![image](https://stwillblogassets.blob.core.windows.net/files/images/external/user-images.githubusercontent.com/973d82700cfe9404e80b-45926126-b3869d00-bf51-11e8-9314-5fa3d31a1b85.png)
    

以上這幾個選項，只要調整後，在利用 PowerPoint 製作技術簡報，就不會踩這麼多地雷了。

### 貼上含有語法高亮格式的程式碼

如果你習慣從 Visual Studio 複製程式碼並轉貼到 PowerPoint 中，應該都有非常挫折的經驗。因為每次貼上程式碼雖然有語法高亮，但是所有斷行符號都會消失，所有程式碼會擠在一行裡面，完全沒有格式，必須手動調整與排版。

如果你試過從 Visual Studio Code 複製程式碼並轉貼到 PowerPoint 中，這經驗會好一點，但還是不夠完美。因為預設什麼都不調整的情況下，直接複製貼上程式碼，雖然可以保有完整的字型、樣式、語法高亮，但是所有「縮排」的空白字元全部都會消失，你必須重新一行一行的排版程式碼。但這已經比 Visual Studio 好很多了！

也因為上述問題，我發現許多人都會用「截圖」的方式，將程式碼貼到 PowerPoint 中，但其實這樣做會造成更多問題。一來，你事後無法微調程式碼，如果想調整，就要重新開啟編輯器，並在修正程式碼之後再重新截圖，這樣真的有點麻煩。二來，圖片的解析度很有可能會隨著螢幕的解析度不同而失真，簡報品質會變差。

> 如果你真的想要有美觀的程式碼截圖，建議可以多加利用 [Carbon](https://carbon.now.sh/) 來取得程式碼圖片。

其實，最完美的解決方案，只要照著以下步驟進行操作，就可以完美無瑕的將完整的程式碼格式貼到 PowerPoint 中：

1.  在 Visual Studio 或 Visual Studio Code 中複製程式碼 ( `Ctrl-C` )
    
    -   請注意編輯器的**色彩佈景主題**是否跟 PowerPoint 簡報使用的配色一致！
    -   例如你的簡報是白底黑字，但編輯器卻是黑底白字，這樣待會複製貼上的時候就會很怪。
    -   簡報**非常不適合**「黑底白字」的配色，透過單槍投影機投射簡報的時候，文字會很難被看見。
2.  開啟 Office Word 應用程式，將剪貼簿中的程式碼，貼上到空白文件中 ( `Ctrl-V` )
    
    -   從 Visual Studio 2017 複製到 Word 中，程式碼共同縮排的空白字元，會自動被移除，這點非常值得嘉許！
    -   從 Visual Studio Code 複製到 Word 中，程式碼共同縮排的空白字元，預設會全部保留，請記得先移除多餘空白再複製程式碼！
3.  就在 Office Word 中直接全選 ( `Ctrl-A` )、複製 ( `Ctrl-C` ) 所有內容
    
4.  切換到 Office PowerPoint 應用程式，不要選取任何物件 (直接在兩側空白處點一下)，直接貼上 ( `Ctrl-Alt-V` )
    
5.  選擇「**格式化文字 (RTF)**」貼上
    
    ![image](https://stwillblogassets.blob.core.windows.net/files/images/external/user-images.githubusercontent.com/2078bac4fd7b657e3216-45926567-bfc12900-bf56-11e8-9023-be30aab8d35e.png)
    

透過上述步驟，程式碼就會漂漂亮亮的出現在 PowerPoint 簡報中！

當然，透過 PowerPoint 並不適合顯示大量原始碼，只能顯示重點，否則程式碼文字太小，聽眾也看不清楚，這點要注意。

### 審慎選擇**等寬字型**顯示指令碼

當需要再畫面上顯示**指令碼**(Commands)的時候，適當的挑選字型可以增加簡報的可讀性，因此這部分的設定也是很重要的。

我自己製作的簡報，只要跟「程式碼」或「指令碼」相關的內容，通常都會選擇 **Consolas** 當為預設字型。必要的時候，會特別加上顏色做重點提示。

有時候，我會特別將程式碼複製到 Visual Studio Code 中，執行「變更語言模式」功能後，複製**含有語法高亮的指令**，再貼回 PowerPoint 中，這樣也不錯。

### 適當的提示指令碼的 Shell 環境

由於指令碼都跟執行環境相關，所以有可能是 Linux 下的 Bash，也有可能是 Windows 下的 Command Prompt 或 PowerShell 等等。Linux 下的 Bash，也有可能需要區分權限，有時候要示意必須透過 root 身分執行，有時候用一般使用者身分執行。

這部分常見的表示法如下：

-   Linux Bash 並透過**一般使用者**執行 ( 通常會用 `$` 當前置字元 )
    
    ```
    $ lsb_release  -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 18.04.1 LTS
    Release:        18.04
    Codename:       bionic
    ```
    
-   Linux Bash 並透過**最高權限管理者**執行 ( 通常會用 `#` 當前置字元 )
    
    ```
    # lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 18.04.1 LTS
    Release:        18.04
    Codename:       bionic
    ```
    
-   Windows 命令提示字元 (Command Prompt)
    
    ```
    C:\>ver
    
    Microsoft Windows [版本 10.0.17134.285]
    
    C:\>
    ```
    
-   Windows PowerShell
    
    ```
    PS> Get-Service
    
    Status   Name               DisplayName
    ------   ----               -----------
    Running  AESMService        Intel® SGX AESM
    Stopped  AJRouter           AllJoyn Router Service
    Stopped  ALG                Application Layer Gateway Service
    Running  AppHostSvc         Application Host Helper Service
    ```
    
-   NuGet Package Manager (Windows PowerShell)
    
    ```
    PM> Install-Package X.PagedList.Mvc -Version 7.5.0
    ```
    

### 專有名詞的正確性

在簡報中使用到**專有名詞**時，要非常注意**大小寫**不能寫錯，也不能任意修改專有名詞的縮略字。例如：

-   是 **.NET** 不是 **.Net**，也不是 **.net**
-   是 **Angular** 不是 **ANGULAR**，也不是 **angular**
-   是 **AI** 不是 **ai**，也不是 **Ai**
-   是 **Azure** 不是 **azure**
-   是 **Azure Functions** 就不能寫成 **Azure Function** (缺少一個 s 結尾)

一份專業的簡報或分享，正確的使用「專有名詞」可以呈現出專業，代表你認真面對每個分享的細節，除了技術的深入理解外，細到連名詞都不容許出錯，這就是**尊重專業**的態度。

### 關於中文翻譯

技術分享的目的，在於快速傳達觀念或經驗，要在短時間內讓一個對分享主題不夠熟悉的人，快速理解一個概念，不能只是把知道的講出來而已，而是要帶領聽眾，一步一步的進入狀況，從完全不懂、到有點理解、到深入理解，這個過程必須循序漸進，不能太過跳躍。

對於一些專有名詞的解釋，有些人會選擇「保留原文」，有些人會選擇「直接翻譯」，而我個人比較傾向「原文與翻譯同時保留，並且留下參考連結」供聽眾進一步延伸學習。大部分的時候，直接看原文是很難懂的，直接翻譯之後可能更難懂，所以我們**絕對不能直接照字面翻譯**，最好在翻譯的時候加入自己的理解，用更好懂的方式描述一個抽象概念。

我經常看到有人在簡報上貼上一大段英文描述，要聽眾自己翻譯，但事實上，可能連講者自己都不知道怎樣翻譯，你怎麼能把一大段英文描述的理解丟給聽眾自己腦補？因此，同時提供中英文完整描述，才是比較好的作法，不用照翻，而是用更完整的中文句子描述你認為的原意！

### 版面配置技巧

簡報版面盡量不要留下太多空白，也不適合塞入過多文字（如果只是單純的參考資料就可以），如果真的有太多東西可以講，一頁塞不下才放連結，也應該節錄幾個常用的重點到簡報上。

另外，如果可以在**中文**與**英文**之間加入一個空白字元間隔，也可以讓文字的閱讀上增加不少舒適度。

### 更多技巧？

如果你有更多簡報技巧，歡迎留言分享，謝謝！ :)
