1. 字体

这里我只准备了最常用的方正书宋(宋体)和小标宋(标题用),安装替换即可。可能需要稍微调整行距。
方正书宋:https://soft.imxb.de/Others/%E6%96%B9%E6%AD%A3%E4%B9%A6%E5%AE%8B%E7%AE%80%E4%BD%93.zip
方正小标宋:https://soft.imxb.de/Others/%E6%96%B9%E6%AD%A3%E5%B0%8F%E6%A0%87%E5%AE%8B%E7%AE%80.zip
商用请注意版权,书宋是免费商用的,但是小标宋我记得不是。

2. 标点

方正书版默认使用开明式标点。

开明式标点:凡表示一句结束的符号(如句号、问号、叹号、冒号等)用全角外,其它标点符号全部用对开(注:就是只占半格)

word不支持开明式标点,截至发文,只能是通过修改每个标点的样式来做到。网上有很多不同的解决方案,个人试下来还是挤压标点的方式最管用,最近似。网上还有对标点设置缩放50%的方法,会导致标点变扁,不推荐使用。我这边文章是五号字,手动调整了一下发现挤压2.6pt的表现最好。

调试参数的方式:选中标点右键,Font->Advanced->Spacing,选择Condensed,然后在旁边设置距离。

img

然后让ai写了个简单的宏来批量替换,就是每次编辑之后还得跑一次,新更新的内容并不能自动应用半格的标点样式。
根据文档的字体大小,需要手动调整压缩量,下面这一段VBA适用于五号大小的方正书宋。在word窗口按下alt+f11 粘贴后按F5运行即可批量应用样式。

Sub OpenStylePunctuationCondensed()
    ' 按开明制压缩以下标点(仅压缩标点本身,不变形)
    ' 压缩量:2.6 pt(与你调试的逗号一致)
    
    Dim targetChars As Variant
    ' 需要压缩的标点(中文开明制标准)
    targetChars = Array(",", "、")
    
    Dim condenseAmount As Single
    condenseAmount = 2.6   ' 单位:磅
    
    Dim rng As Range
    Dim i As Integer
    Dim countPunct As Long
    countPunct = 0
    
    Application.ScreenUpdating = False
    
    For i = LBound(targetChars) To UBound(targetChars)
        Set rng = ActiveDocument.Content
        With rng.Find
            .Text = targetChars(i)
            .MatchWholeWord = False
            .Wrap = wdFindStop
            Do While .Execute
                ' 对标点本身应用紧缩
                rng.Font.Spacing = -condenseAmount
                countPunct = countPunct + 1
                rng.Collapse Direction:=wdCollapseEnd
            Loop
        End With
    Next i
    
    Application.ScreenUpdating = True
    
    MsgBox "处理完成!" & vbCrLf & _
           "共处理 " & countPunct & " 个标点。" & vbCrLf & _
           "压缩量: " & condenseAmount & " pt" & vbCrLf & _
           "处理的标点: , 、"
End Sub

其他的不是很了解,没有做模仿,待补充。