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,然后在旁边设置距离。

然后让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其他的不是很了解,没有做模仿,待补充。
