Home | Tips | Library | Other Authors | Other WP Sites | Writer's Links | Contact | Site Map | Donate

Barry MacDonnell's
Toolbox for WordPerfect

Macros, tips, and templates for Corel® WordPerfect® for Windows®
© Copyright 1996-2021 by Barry MacDonnell. All Rights Reserved.

Page updated Jan 19, 2014

BPSTYLES - Block protects paragraph styles (e.g., "Heading 2") and following body text

Download BPSTYLES.ZIP (v1.09.02; 01/18/14; 29,317 bytes; includes a WPD document demonstrating and explaining the macro's operation)

Compatible with WordPerfect 8 and later versions

Downloading, Documentation, Modifications, and Support

[Thanks to Graham Ginsberg for the original idea and suggestions during development.]

Related macro -

LOCKTEXT - Lock text together (i.e., block protect selected words with a mouseclick)

BlockProtectParaStyles.wcm - A macro that automatically adds block protection (same as Format, Keep Text Together, Block Protect) to all user-specified or default paragraph styles (e.g., Heading 1 - Heading 5) found in a document, to keep the style and the next two lines of body text together on the same page.

The resulting Block Protect codes will be placed like this in Reveal Codes (highlighted here in yellow):

Naturally, as in the example above, you must have some paragraph styles in the current document for the macro to block-protect! Normally, to apply paragraph styles to text you simply place your cursor anywhere on a heading, section, or title line and choose a paragraph style from the Style List on the Text Property Bar (or click Format, Styles, choose a style, then click Insert). Most users probably will use the default Heading 1 through Heading 5 styles, but you can use any available paragraph style, such as custom paragraph styles you have previously created and which are available in your document.

The macro can be played any time and multiple times in any document. If you insert new section labels, heading lines, etc., just play the macro again. Do the same if you delete blocks of text to ensure that all styles are properly processed.

See also Conditional End of Page below.

Importnt notes and comments
  • The macro processes only specified paragraph styles that have been used in the document, such as (by default) WordPerfect's own Heading styles shown in the Select Style list on the Text Property Bar. The default paragraph style used by the macro is Heading (i.e., Heading 1, Heading 2 ... etc.).
    • So ... if you have simply keyboarded a "heading" (e.g., typed a phrase, hit the <Enter> key twice, then continued with the body of the paragraph) ... BPStyles won't do a thing for you. You might try Conditional End of Page (see below). But if you use WordPerfect's Heading styles (or any custom paragraph style) for the paragraph or section heading, you may find it helpful.
  • Character Styles or Open (Document) Styles are not processed, just Paragraph Styles. (The type of style is shown in the dialog that displays when you click Format, Styles, and choose a style from the list in the Styles dialog.) A paragraph style has a built-in hard return at the end that delimits the text inside the applied style. See here for more on Styles.
  • Up to five paragraph style name(s) can be specified in the macro's code in the redlined User Modification Area, of which Heading is one. You can specify four other custom paragraph styles if they are present in the document or the default template. Please read the comments at the top of the macro's code if you need to add custom styles. (Open the macro as you would any other WP document, make the changes according to the instructions at the top, then Save & Compile the macro with the button on the Macro toolbar.)
    • If all you use are WP's built-in Heading styles to create paragraph or section headings, you do not need to modify the macro. 
  • If there is only one text line following the heading line, only that line will be included with the heading line. No blank lines following that text line will be included.
  • If there are two adjacent paragraph styles -- for example, a heading followed immediately by a sub-heading, with no text between them -- both styles will be locked together with Block Protect so that they will remain together on the same page. If this is undesirable, simply open Reveal Codes and delete that particular Block Protect code.
  • Starting with version 1.08, Widow/Orphan protection (Format, Keep Text Together, Widow/Orphan) is used by default at the top of the document. Widow/Orphan protection prevents the first and last lines of a paragraph from separating across pages. You can remove this option in the macro's User Modification Area.
  • Srarting with version 1.09, you have the optional ability to have just the last two lines of a paragraph style (such as a legal citation) and the following paragraph block protected, See the included document or the macro's User Modification Area for more information.
What about using Conditional End of Page (CEOP) -- accessed via Format, Keep text Together?

Conditional End of Page has been reported to work inconsistently, especially with counting blank lines following a paragraph heading style, since the number of such "textless" lines could vary in a document.

What if you put the CEOP inside the paragraph style? As Noal Mellot, a WP Universe guru, stated: "CEOP will, in a paragraph style, keep together any text encapsulated in the style itself ... ; but it will not keep this text together in any consistent way with text outside the style."

Also, setting the CEOP's value properly (to keep headings and following text together) requires you to take into account not only the expected number of blank lines following the heading, but also any double-spacing or other-size-spacing (if used), sub-heading lines (and any hard returns that separate them), etc. For example, if you select "CEOP: 2", this will "keep together" two lines of single-spaced text, but only one line of double-spaced text.

Moreover, if you have multi-line paragraph-style headings followed by one or more blank lines, the heading and following body text might not be "kept together" by the current CEOP setting, since the CEOP will count the number of lines in the larger heading and fall short of the needed value at that location.

It seems to this author that BPStyles is a better solution when paragraph styles are applied (rather than using plain text) for headings, sections, or titles.

Page Top