Instagram 限動上的垂直文字不是 Instagram 提供的字型樣式,而是你在應用程式外將純文字重新排列成直欄,再貼到限動的文字貼圖中。限動編輯器有一個打字機模式,會把每個字元放在獨立的一行,但它不會把多行詞組包成整齊的並排直欄區塊,也不會在跨欄處保留已合併的 emoji,更不會讓你決定第二欄是從視覺左側還是視覺右側往下讀。這就是為什麼實際的工作流程是:在任何文字工具中打好你的說明文字,用一個生成器以指定的高度由上往下填滿直欄,複製產生的版面,再貼成限動的文字圖層。垂直文字生成器會在瀏覽器中利用 grapheme 等級的切分來完成這件事,讓 emoji、膚色修飾符、國旗序列以及組合附加符號黏在一起,而不是在欄位邊界被撕裂。

為什麼 Instagram 內建文字工具無法給你真正的垂直文字
Instagram 的「字型」貼圖有一個點擊對齊控制項,可以讓文字框貼齊左邊緣、右邊緣或中央,還有另一個控制項可以旋轉整個文字框。這兩個控制項都不會改變字元在文字框內的流向——它們永遠在水平基線上由左到右流動,就像平台上其他所有拉丁文字的文字欄位一樣。有些帳號使用的單一字元一行效果,是透過在貼上之前在每個字元之間插入強制換行來產生,這會做出一個又高又窄的字塔,而不是人們提到「垂直文字」時聯想到的多欄區塊。
結果就是,實際的變通方法是先在電腦或其他 App 上做好直欄版面,複製結果,再帶進限動。純文字方案在這裡勝過截圖,因為純文字在限動中仍然可以選取,所以你可以變更顏色、加上背景高亮、疊在照片上,或套用 Instagram 的其中一種文字動畫樣式,而不需要把字母光柵化。它也讓來源保持可編輯,讓你能用不同的措辭重新匯出同一組直欄結構。
使用垂直文字生成器來建立你的限動文字
- 把你的限動說明文字貼上或輸入到輸入框中。一般的文字、短句雙語詞組、詩句片段或一串 hashtag 都可以。允許使用 emoji——生成器會把它們歸入 grapheme 群集,所以單一 emoji 加上膚色修飾符或一對國旗旗幟會保持在同一列,而不是被切開跨欄。
- 設定直欄高度。選擇一個介於 1 到 100 之間的數字,代表每個垂直直欄可以容納多少個 grapheme。簡短的說明文字在高度 5 到 12 之間閱讀起來最佳;單一短字詞通常在 3 或 4 看起來剛好。生成器會同時顯示來源 grapheme 數量和輸出的直欄數,讓你在送出前先看看最後一欄是否會太短。
- 選擇直欄方向。由左到右會把第一個填滿的直欄放在視覺左側,第二個欄位放在右側,這符合大多數人閱讀 Instagram 限動的方式。由右到左會反轉直欄順序,讓來源的第一欄出現在視覺右側邊緣,符合傳統垂直書寫的閱讀方向。每個直欄內部的字元順序永遠保持由上到下。
- 產生版面,然後檢查預覽窗格。預覽是你將下載字串的等寬字型呈現。檢查 emoji 是否落在你預期的位置、兩個一般空格的直欄間距是否平均,以及來源換行所產生的任何空白儲存格是否對齊在你想要的位置。
- 下載 UTF-8 TXT 結果。下載的檔案會與預覽逐字元完全相符,並使用 LF 列分隔符。如果你想在貼上之前確認間距,可以用任何純文字編輯器開啟它,但對大多數限動工作流程來說,你可以跳過這一步直接前往 Instagram。
在限動中貼上與調整版面位置
開啟 Instagram,開始建立新的限動,如果你想要的話先拍攝或上傳背景,然後點 Aa 貼圖來新增文字圖層。在文字欄位中長按,選擇貼上,整個直欄版面就會以限動的預設字型和大小出現。用兩根手指向外撥合可以放大或縮小整個區塊——因為直欄之間剛好由兩個一般空格隔開,所以縮放時的相對間距會保持一致。
接下來就能使用限動編輯器的一般文字工具。你可以切換到任何內建字型,但版面在等寬或接近等寬的字型下看起來最整齊(Instagram 的Modern、Strong 和Classic 選項通常在直欄區塊上表現良好)。點選色盤可以改變前景顏色;長按某個顏色會把它套用為文字後方的背景高亮。文字動畫樣式——Typewriter、Fade、Zoom 等——會依照字元被放置的順序重播,這與生成器使用的由上到下、逐欄順序相同,所以動畫會自然地從第一個字讀到最後一個字。
直欄高度與各種高度適合的用途
| 直欄高度 | 在限動上的典型用途 | 結果呈現的樣子 |
|---|---|---|
| 1 | 除錯——每個字元變成自己的直欄 | 一條由單一字母格組成的細長水平帶狀 |
| 3 – 4 | 單字、使用者名稱、短 hashtag | 兩到三個由堆疊字母組成的窄直欄 |
| 5 – 8 | 簡短說明文字、短詞組、一個句子 | 一個平衡的兩到四欄區塊,可容納於安全範圍內 |
| 9 – 12 | 一段詩句、簡短雙語行 | 較高、較密的區塊,在純色背景上效果較佳 |
| 15 以上 | 裝飾用的高塔、長引文、清單式閱讀 | 狹窄的緞帶式條狀,適合在內容豐富的限動中作為側邊裝飾 |
如果某個高度會產生超過 50 個直欄(通常代表在長說明文字上用了非常小的高度),生成器會要求改用更高的直欄,而不是產生一個極寬的預覽。這個上限是為了把版面限制在合理範圍內,讓預覽保持可讀、下載的檔案保持可用。基於同樣的理由,來源上限為 5,000 個 grapheme 群集,高度上限為 100;這兩個限制都會在產生版面之前強制執行,所以超出範圍的輸入會產生錯誤,而不是不完整的結果。
限制、錯誤以及工具會拒絕的情況
除了主要的限制之外,生成器還有幾個值得了解的特定失敗模式。空輸入、小數高度、超出範圍的高度、無效的方向選擇、超過 5,000 個 grapheme,以及超過 50 個結果直欄,都會產生明確的錯誤而不會產生部分版面,所以你永遠不會看到一個與檔案內容不符的預覽。格式錯誤的 UTF-16 代理對序列會在切分之前被拒絕,以免破壞群集邊界,而且生成器絕不會默默截斷來源——如果它無法容納你的輸入,它會告訴你。
你輸入中的既有換行不會遺失——每一個被辨識出來的 CRLF、獨立的 CR 或獨立的 LF,在直欄流程中都會變成一個全形空白格。這代表來源詩中的空行會在產生的區塊中變成可見的間距,而段落斷行則會產生段落大小的間距。連續的行尾會堆疊成連續的空白格,這就是為什麼來源中帶有內部換行的長段落,在輸出中仍然保持可讀。全形空白只用於這些內部間距;版面視覺右側邊緣缺少的儲存格會直接省略,以免行尾出現無意義的填補空白。
純文字為何勝過 CSS 或設計 App
就 Instagram 限動來說,可攜的純文字直欄版面幾乎永遠是正確的工具。CSS 的 writing-mode: vertical-rl 和 writing-mode: vertical-lr 能產生真正的垂直排版,但 Instagram 限動編輯器會忽略這些宣告,並把所有貼上的文字都視為水平流向。像 Canva 或 Photoshop 這類設計應用程式可以旋轉個別字符、調整字距,並套用完美的邊框,但它會把結果烤進像素裡,讓你失去在 Instagram 自家貼圖中重新上色、重新套用樣式或重新加入動畫的能力。
純文字介於兩者之間:它能承受 Instagram 中每一次貼上,並遵守平台的字型與顏色選擇,而且會以輸入時的順序進行動畫播放。權衡之處在於,直欄對齊取決於目的字型是否把每個字元以及插入的全形空白視為相同寬度。如果你把輸出貼到限動後發現某個直欄看起來稍微不對,切換到不同的內建字型通常就能修正,因為 Instagram 的字型在等寬覆蓋範圍上有所不同。發布前務必在最終的限動中預覽呈現結果;工具中的預覽預設為等寬,但 Instagram 可能會套用需要調整的比例字型。
乾淨直排故事的實用技巧
幾個實用的習慣能讓直排故事更整潔。首先,請先撰寫好原始文字,除非你希望它們在最終版面中以可見的空白儲存格呈現,否則不要加上換行,因為產生器會把每個換行都視為分隔符。其次,在下載之前,先用工具內部的等寬字型預覽來查看版面,因為這串字就是 Instagram 實際收到的內容。第三,在故事那一端,用捏合手勢縮放貼上的區塊,而不是去調整字級滑桿;捏合可以保留兩格空格所對應的欄對欄間距。第四,如果你希望該欄看起來像標籤,可以把故事的背景變暗拿掉,或是在文字後方使用單一純色,讓欄位在忙碌的照片上仍保持清晰可讀。
第五,由右至左的欄位順序是用來模擬閱讀方向的,並不是用於阿拉伯文或希伯來文;雙向塑型已超出本工具的處理範圍,真正的直書文字設計應用程式會更適合處理這種情況。第六,讓你的表情符號保持完整的字素層級分組,遵循 Unicode 文字分段標準 (UAX #29) 中所述的分段規則,並透過瀏覽器中的 Intl.Segmenter 介面來實作,這就是為什麼同一段原始文字在任何現代瀏覽器上都會產生相同的欄位版面。想要多一層樣式的話,你可以把這個版面與 Unicode 粗體轉換搭配使用——請參考 如何讓 Instagram 上的粗體文字保持粗體 取得對應的工作流程——然後把粗體化的結果貼到直書文字產生器的輸入欄中,就能得到一整欄的粗體字元。
最後,請記住整個過程中沒有任何資料會離開你的瀏覽器。分段、預覽以及下載用的 Blob 全都是在本地建立的,Blob URL 在下載觸發時就會立即撤銷,因此相同的輸入可以確定性地重新產生相同的欄位字串,而不需要把你的文案送到任何地方。這使得工作流程對尚未發布的故事草稿、私人帳號的文案,或是排定行銷活動前的彩排版面來說都很安全。
相關閱讀:3 步驟在 Instagram 上製作泡泡文字。