it-swarm-ja.com

Word方程式内のseqフィールドのフォーマットを制御する

だから私はこのようなものに見えるいくつかの付録があります:
付録A:方程式
付録B:計算例
等。

手紙はそのように管理されています:

Appendix [{seq AppL \*ALPHABETIC}]: Example

角かっこは、その値を参照するブックマークを表します。これは、前、後、何でも、より多くの付録を置くことができることを意味し、レタリングが更新されます。

各付録には、次のように、付録の文字と方程式番号を参照するさまざまな方程式も含まれています。

y = mx + b #({REF AppEq \*MERGEFORMAT}.{seq AppEq})

問題は、すべて(ctrl + A、f9)を更新するたびに、方程式の番号付けの文字が太字に戻ることです。 * MERGEFORMATスイッチはこれを防ぐはずですが、方程式の内部では機能しないようです(ヘッダーで機能し、本体で機能するようにテストしました)。

これを修正する方法、それにアプローチする別の方法、または少なくともこれが引き起こす煩わしさを軽減する方法はありますか?

1
Aze

この問題の解決策を見つけることができませんでした。これはWordのバグだと思います。ただし、手動ではなくマクロを使用してフィールドを更新することで、実行可能な回避策を見つけました。このマクロは、フィールドコードを表示し、「^ d seq AppL」で始まるものは太字ではなく、ドキュメント内のすべてのフィールドを更新してから、正しいフィールドを太字にし、フィールドコードを非表示にします。堅牢で効率的であるとは言えませんが、将来的に誰かを助けるかもしれません。

Sub UpdateRefs()
'Setup / checks
If Documents.Count = 0 Then Exit Sub
Application.ScreenUpdating = False

'Show field codes
ActiveDocument.ActiveWindow.View.ShowFieldCodes = True

'Unbold Appendix labels so they don't propagate.
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "^d seq AppL"
    .Replacement.Text = ""
    .Replacement.Font.Bold = False
    .Forward = True
    .Wrap = wdFindContinue
    .MatchWholeWord = True
End With
Selection.Find.Execute Replace:=wdReplaceAll

'Update all fields in document.
Dim oStory As Object
Dim oToc As Object
For Each oStory In ActiveDocument.StoryRanges
    oStory.Fields.Update
Next oStory
For Each oToc In ActiveDocument.TablesOfContents
    oToc.Update
Next oToc

'Rebold for looks.
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "^d seq AppL"
    .Replacement.Text = ""
    .Replacement.Font.Bold = True
    .Forward = True
    .Wrap = wdFindContinue
    .MatchWholeWord = True
End With
Selection.Find.Execute Replace:=wdReplaceAll

'Hide field codes.
ActiveDocument.ActiveWindow.View.ShowFieldCodes = False

Application.ScreenUpdating = True
End Sub
1
Aze

手動でブックマークするSEQフィールドを使用する代わりに、メインの付録番号にアウトライン番号のスタイルを作成することができます。

その後、次のいずれかを使用できます。

  • lISTNUMフィールド(付録内で自動的に順番に番号が付けられます)。
  • sTYLEREFフィールド(付録番号用-現在の付録に基づいて自動的に取得されます)と既存のSEQフィールド(式番号用)の組み合わせ。または
  • 相互参照(付録番号用)と既存のSEQフィールド(式番号用)。

STYLEREFまたは相互参照フィールドを使用する場合は、「\ t」スイッチを追加して、アウトラインを設定するときのように、付録文字(つまり、「付録A」ではなく「A」)のみを表示するようにします。番号付けは、フィールドを追加する前に、[番号の書式を入力してください]テキストボックスに付録を入力します。

(フィールドの組み合わせではなく)LISTNUMフィールドを使用します。このオプションでは、「レベル1のレベル番号を含める」オプションを使用して、付録文字が自動的に表示されるように設定されています。

enter image description here

1
Tanya