2026年2月3日 星期二

將 MathType OLE 物件轉換成 Office 內建的方程式(OOXML)

 我手邊只有買斷的 MathType 6 終身授權, MathType 7 之後就沒有終身授權,只剩下訂閱制了。所以我想把 Office 裡免面的所有 MathType OLE 物件都轉換成 Office 內建的方程式(OOXML),我轉換的方式如下。

  1. 先用  MathType 的內建功能 (Toggle TeX) 把方程式轉換為 LaTeX,也就是把要轉換的以滑鼠選取後,再按 Alt + \ (或是 Office 裡面的 MathType 表單中的 Toggle TeX )。
  2. 搜尋 \[ 與 \] 都替換成 $ 符號。\open \begin \end \close \frac 的部分可能會遇到換行符號,刪除換行符號。
  3. 向量符號先特別處理:搜尋 \overset{}{\mathop{AB}} 都改成 \hvec{AB} ,當中的 AB 可能是其他符號,也要記得代換調。
  4. 以下是 Gemini Pro 寫的一個 VBA 巨集(Macro),它會搜尋整份文件中被兩個 $ 符號包圍的文字(例如 $x^2+2x+1$),並將其轉換為 Word 的內建方程式物件。
Sub ConvertLaTeXToEquation()
    Dim doc As Document
    Dim rng As Range
    Dim mathRng As Range
    
    Set doc = ActiveDocument
    Set rng = doc.Content
    
    ' 設定搜尋選項:使用萬用字元 (Wildcards)
    ' 搜尋模式:\$([!$]@)\$ 
    ' 解釋:找尋被 $ 包圍,且中間不包含 $ 的任意字串
    
    With rng.Find
        .ClearFormatting
        .MatchWildcards = True
        .Text = "\$([!$]@)\$"
        .Forward = True
        .Wrap = wdFindStop
        
        Do While .Execute
            ' 當找到 $...$ 時
            
            ' 1. 去除前後的 $ 符號
            ' rng.Text 目前包含前後的 $,我們把它設為中間的內容
            rng.Text = Mid(rng.Text, 2, Len(rng.Text) - 2)
            
            ' 2. 將該範圍轉換為方程式物件 (OMath)
            Set mathRng = rng.OMaths.Add(rng)
            
            ' 3. 將方程式轉換為專業格式 (Professional Format)
            ' 注意:Word 2019/365 支援直接轉換 LaTeX 語法
            
            ' 選取該方程式(某些 WordBasic 指令需要選取狀態)
            mathRng.Select
            
            ' 嘗試使用 LaTeX 轉換指令 (適用於支援 LaTeX 的新版 Word)
            On Error Resume Next
            WordBasic.EquationTransLatex
            
            ' 如果上面的指令失敗 (舊版 Word),則嘗試標準的 BuildUp (適用於簡單數學式)
            If Err.Number <> 0 Then
                mathRng.OMaths(1).BuildUp
                Err.Clear
            End If
            On Error GoTo 0
            
            ' 4. 將搜尋範圍縮小至當前位置之後,繼續往下找
            rng.Collapse Direction:=wdCollapseEnd
        Loop
    End With
    
    MsgBox "轉換完成!", vbInformation, "LaTeX 轉換器"
End Sub


以下是 Gemini Pro 給的使用方式與注意事項:

1. 如何使用此巨集
開啟 VBA 編輯器:
在 Word 中按下 Alt + F11。

插入模組:
在左側的專案視窗中,對著 Normal 或你目前的文件按右鍵。
選擇 Insert (插入) > Module (模組)。

貼上程式碼:
將上面的程式碼完整複製並貼入右側的空白視窗中。

執行巨集:
回到 Word 文件。

按下 Alt + F8 開啟巨集清單。
選擇 ConvertLaTeXToEquation,然後點擊 執行 (Run)。

2. 重要注意事項
(1) Word 版本差異:

Word 2019 或 Office 365:支援度最好。這些版本內建了 LaTeX 轉譯器,上面的程式碼會呼叫 WordBasic.EquationTransLatex,這能處理像 \frac{a}{b} 或 \sum 這種標準 LaTeX 語法。

Word 2016 或更舊版本:這些版本不支援原生 LaTeX 模式,程式碼會退回使用 BuildUp 方法。這對於簡單的表示式(如 x^2+y^2)有效,但對於複雜的 LaTeX 語法(如 \frac)可能會失敗或顯示亂碼(舊版 Word 使用的是 UnicodeMath 語法,例如分數要寫成 a/b 而不是 \frac{a}{b})。

(2) 定界符:

此程式碼預設搜尋 $ ... $(行內公式)。如果你使用的是 $$...$$ 或其他符號(如 \( ... \)),需要自行修改程式碼中的 .Text = "\$([!$]@)\$" 這一行,才能達成你要的效果。

(3) 備份文件:

在大規模執行巨集前,建議先備份你的文件,以免轉換結果不符合預期。

--------------------------------------------------------------

轉換完成後,以後就算用 OnlyOffice 或是 LibreOffice 開啟文件,也能正常編輯數學方程式了,歐耶!!

2025年12月2日 星期二

Ubuntu 可用的免費 Office 軟體

 一直想把日常作業系統換成 Ubuntu ,但最大的阻礙是舊有的文件檔案,都需要透過微軟的 Office 與 MathType 才能處理。以下列舉幾的可能的替代方案,但目前開啟與編輯 Office 文件檔案都還可以,卻仍無法處理其中內含的 MathType 方程式。

一、Google Docs:這是與作業系統無關的選項,如果能成功改用 Google Docs 的話,它會是最好的方案,完全不用安裝軟體,只需要瀏覽器就可以了,擴充功能中的外掛程式有不少可以插入數學方程式的插件,但它的方程式與文字無法完美對齊,而且內建的方程式也缺少 harphoon symbols。

二、LibreOffice:內建 Math 可以編排顯示數學方程式,雖然語法與 LaTeX 不同,軟體需要另行下載安裝,讀取微軟文件的格式偶爾會版面跑掉,對於 MathType 很沒徹。

三、OnlyOffice:讀取微軟文件的格式幾乎不會跑版,對於 MathType 只能當純圖檔處理,無法編輯,內建有跟微軟一樣的新方程式編輯器。



 四、 Softmaker FreeOffice:沒找到插入數學方程式的方式,對於 MathType 的 OLE 物件顯示的沒有很完美。勉強勉強。

2025年11月24日 星期一

Windows 10 與 11 內建的 Wifi 熱點分享( 行動熱點, Wifi Hotspot)功能

 Windows 10/11 有內建行動熱點分享( Wifi Hotspot)的功能,就是可以把桌機或筆電的網路,透過可以正常運作的無線網路卡,分享給手機或其他裝置使用,使得其它裝置可以透過桌機或筆電的網路對外連接。

方法如下:

  1. 先確定桌機或筆電的有線網路及無線網路卡兩者都可以正常運作。
  2. 在 Windows 的【設定】→【網路與網際網路】之中,找到【行動熱點】的項目。
    (註:如果無線網路卡無法正常運作,就不會出現【行動熱點】的項目,這時候就要確認看看無線網路卡的驅動程式是否有安裝成功喔。)
  3. 【行動熱點】由"關閉",切換為"開啟"。
  4. 在(Win10)「網路名稱/網路密碼」(Win11)「網路內容」的區塊可以點選"編輯",設定名稱與密碼、(Win11)網路頻帶。

2025年11月19日 星期三

免費的 VPN

我沒有很常用 VPN,因為在手機上長時間使用蠻耗電的,但偶爾難免會有想要用 VPN 的時候(例如偶爾想要跨區看其它國家的 Netflix 片單),由於次數不多,所以也只會使用免費的方案,以下記錄幾個知道的免費 VPN,方便未來回頭找尋。

1. Proton VPN:這應該是最有名的了,免費方案無流量限制,不過免費方案能連的國家數量有限,無法手動選取連線的國家,只能隨機切換。公司位在瑞士。 https://protonvpn.com/ 。

2. Privado VPN:每 30 天可以免費擷取 10 GB 的使用流量,可以手動選取連線的國家,免費方案可以跨區看 Netflix,不過流量消耗也蠻快的。公司位於瑞士。 https://privadovpn.com 。

3. Hide.me VPN:不限流量,號稱世界最快,無法手動選取連線的國家。公司位於馬來西亞。 https://hide.me 。


2025年11月10日 星期一