Title: WPMathPub
Author: Ron Fredericks
Published: <strong>28 มีนาคม 2008</strong>
Last modified: 9 พฤษภาคม 2026

---

Search plugins

![](https://ps.w.org/wpmathpub/assets/banner-772x250.jpg?rev=3527053)

![](https://ps.w.org/wpmathpub/assets/icon-256x256.jpg?rev=3506399)

# WPMathPub

 By [Ron Fredericks](https://profiles.wordpress.org/ronf/)

[Download](https://downloads.wordpress.org/plugin/wpmathpub.3.0.5.zip)

 * [Details](https://th.wordpress.org/plugins/wpmathpub/#description)
 * [Reviews](https://th.wordpress.org/plugins/wpmathpub/#reviews)
 *  [Installation](https://th.wordpress.org/plugins/wpmathpub/#installation)
 * [Development](https://th.wordpress.org/plugins/wpmathpub/#developers)

 [Support](https://wordpress.org/support/plugin/wpmathpub/)

## Description

WPMathPub renders mathematical equations in WordPress using the **Mathpublisher 
rendering engine**, supporting both **native pmath syntax** and **LaTeX-style input**.
It generates fast, high-quality PNG images with halo-free transparent backgrounds
for reliable display across posts, pages, comments, and RSS feeds.

The plugin also includes **Math-Pub Rosetta**, a standalone app built on the same
Mathpublisher engine. Rosetta mirrors WPMathPub’s behavior outside WordPress, allowing
users to publish math anywhere – as a WPMathPub pmath tag learning tool, as a gateway
to any LaTeX-enabled document (including **Microsoft Office** and **Overleaf**),
or directly in WordPress comments. ([Launch the Rosetta app](https://math-pub.org/mathpub-rosetta/rosetta.php))

Unlike MathJax-based plugins, WPMathPub performs **server-side rendering**, producing
static equation images that display consistently across browsers and devices without
requiring client-side JavaScript.

This approach provides reliable rendering for:

 * WordPress posts, pages, and comments
 * Cached pages
 * Environments where JavaScript rendering is not desirable
 * RSS feeds and feed aggregators [RSS example](https://www.biophysicslab.com/2026/04/11/wpmathpub-latex-math-in-social-networks/)

WPMathPub extends the classic mathpublisher engine with modern WordPress integration
including shortcode support, LaTeX translation, image caching, and configurable 
rendering options.

### Mathematical Equation Rendering

Mathematical expressions can be embedded directly into WordPress content using the
pmath shortcode.

Basic native usage:

    ```
    [pmath]x^2 + y^2 = z^2[/pmath]
    ```

Custom size and color:

    ```
    [pmath size=18 color="blue"]E = mc^2[/pmath]
    ```

LaTeX input with inline text:

    ```
    This is a fraction: [pmath latex=1]\frac{a}{b}[/pmath]
    ```

Normal, upright text with the same inherited color and size:

LaTeX example – `[pmath size=24 color="#006687" latex=1]\text{This is a fraction:}\,\
frac{a}{b}[/pmath]`
 Native example – `[pmath size=24 color="#006687"]text{NPV(CF,
R) := } text{IV} + delim{[}{ sum{k=1}{N}{ {text{CF}_k}/{(1+text{R}/100)^k}}}{]}[/
pmath]`

Expressions are rendered as PNG images using the GD and FreeType libraries and cached
for efficient reuse. Rosetta extends this with visual error checks and copy to clipboard
buttons that move your equations into WPMathPub content, external presentation tools,
or anywhere PNG images are accepted. The result lives up to Rosetta’s tagline: **
Your math. Any platform**.

### Features

 * pmath shortcode tag math expression rendering
 * Inline text with math images using pmath shortcode tag
 * Control of math image size and color
 * LaTeX command translation ([Check out the complete syntax list](https://www.biophysicslab.com/wordpress-math-publisher-plugin/wpmathpub-syntax/))
 * Server-side PNG equation generation
 * Gutenberg WPMathPub math block with PMath and LaTeX mode switching
 * Halo-free color rendering with alpha transparency
 * Transparent background support for dark themes
 * Minimal WordPress database footprint
 * Efficient PNG image caching
 * Math-Pub Rosetta application
    - Enter math syntax manually, starting with examples, or using the Math Insert
      Menu
    - Paste pmath tags from WPMathPub enabled content into the Math Test Area
    - Allow external users to post math content into comments after visual inspection
    - Math Insert Menu includes search, category, and show all for easier syntax
      use
    - Copy resulting math to clipboard
    - Copy out and past in allows for roundtrip math syntax development with WPMathPub
    - Target audience includes WPMathPub users, new LaTeX learners, and image reuse
 * WordPress admin tools panel
    - Configurable default equation size
    - Configurable default equation color with color picker
    - Installation status display
    - PNG image cache status and control
    - Policy control for cleanup on plugin delete

## Screenshots

 * [[
 * Example rendered equation in page
 * [[
 * Example rendered equation in comment
 * [[
 * Example Gutenberg block
 * [[
 * Example from syntax page
 * [[
 * WordPress admin configuration panel top
 * [[
 * WordPress admin configuration panel bottom
 * [[
 * Dashboard message requests administrator clear math image cache on new version
   install
 * [[
 * Math-Pub Rosetta is a standalone version of WPMathPub: learn, create, and publish
   anywhere
 * [[
 * Launch the bundled copy of Math-Pub Rosetta from the link on the plugin page

## Blocks

This plugin provides 1 block.

 *   Math (WPMathPub)

## Installation

 1. Upload the plugin folder to the `/wp-content/plugins/` directory.
 2. Activate the plugin through the WordPress Plugins menu.
 3. Optional: change defaults under **Tools  WPMathPub**.
 4. Optional: share the Math-Pub Rosetta link in your content to support math enabled
    comments.

## FAQ

### How do I get started with WPMathPub?

Here are four references:

 * Check out the [WPMathPub math publisher page](https://www.biophysicslab.com/wordpress-math-publisher-plugin/)
   for the user guide.
 * Check out the [WPMathPub syntax page](https://www.biophysicslab.com/wordpress-math-publisher-plugin/wpmathpub-syntax/)
   for a complete cross-reference of all pmath native and LaTeX supported commands.
 * Check out the [WPMathPub support page](https://www.biophysicslab.com/wordpress-math-publisher-plugin/wpmathpub-support/)
   for video tutorials and a donation link in support of this project.
 * Test drive WPMathPub features without installing the plugin using Math-Pub Rosetta(
   [Launch the Rosetta app](https://math-pub.org/mathpub-rosetta/rosetta.php))

### Does this plugin require MathJax?

No. WPMathPub renders equations server-side as PNG images using the mathpublisher
rendering engine.

### Does it support LaTeX?

Yes. WPMathPub includes a server-side LaTeX translator that converts standard LaTeX
math commands into native pmath syntax before rendering. The result is identical
PNG output — so a LaTeX expression and its pmath equivalent share the same cached
image file, with no duplication. See the full command reference on the [WPMathPub syntax page.](https://www.biophysicslab.com/wordpress-math-publisher-plugin/wpmathpub-syntax/)

### Where are rendered images stored?

Rendered equation images are cached in:

    ```
    /wp-content/uploads/wpmathpub/math-img/
    ```

The bundled Math-Pub Rosetta demo has its own cache directory:

    ```
    /wp-content/plugins/wpmathpub/demo/img
    ```

Both cache directories can be monitored and cleared from the dashboard:

    ```
    Tools >  WPMathPub
    ```

### Why does the plugin generate PNG images instead of SVG?

The plugin preserves compatibility with the mathpublisher rendering engine, which
produces raster images. PNG output ensures consistent rendering across browsers.

### Why do I see a “clear image cache” message after installing a new version of WPMathPub?

WPMathPub uses a high‑speed image cache to serve PNG math equations across your 
posts, pages, comments, and RSS feeds. Each equation is stored using a unique hash(
similar to an MD5 fingerprint), so it only gets regenerated if the image doesn’t
already exist in the cache.
 When you install a new version of WPMathPub, the rendering
engine may have improved. However, cached images won’t automatically update because
their hash hasn’t changed. Clearing the cache ensures all equations are regenerated
using the latest version. As your site loads, WPMathPub will automatically rebuild
the image directory with fresh, updated PNGs.

### Where do I find the Math-Pub Rosetta standalone application?

A demo version of Rosetta is bundled with the WPMathPub plugin. You can launch it
from **Dashboard > Installed Plugins**, where a link appears next to the WPMathPub
entry. The screenshot in this section shows exactly where to click.

The latest full version of Math‑Pub Rosetta is available at **Math‑Pub.org**. The
bundled version and the website version work the same way, but new Rosetta features
are released independently from WPMathPub plugin updates — so the online version
may include enhancements that haven’t yet been packaged with the plugin.

## Reviews

![](https://secure.gravatar.com/avatar/b188f9243124fb886e9fd19a6b9b50aa820c346b4278cddde528bb44f47ae969?
s=60&d=retro&r=g)

### 󠀁[Not compatible with wordpress 4.9.8](https://wordpress.org/support/topic/not-compatible-with-wordpress-4-9-8/)󠁿

 [anchorn9852](https://profiles.wordpress.org/anchorn9852/) 23 พฤศจิกายน 2018

it gives me error: Fatal error: Uncaught Error: Call to undefined function ereg()
in ….web/wp-content/plugins/wpmathpub/phpmathpublisher/mathpublisher.php:1604 Stack
trace: #0 /nfsmnt/hosting1_1/4/c/4cdba5d2-b725-4d56-95e7-7244c2ed5f96/dveadvesustyri.
sk/web/wp-content/plugins/wpmathpub/phpmathpublisher/mathpublisher.php(1625): detectimg(‘
629fdc23df6a73c…’) #1 /nfsmnt/hosting1_1/4/c/4cdba5d2-b725-4d56-95e7-7244c2ed5f96/
dveadvesustyri.sk/web/wp-content/plugins/wpmathpub/phpmathpublisher/mathpublisher.
php(1661): mathimage(‘S(f)(t)=a_{0}+s…’, ’12’, ‘http://dveadves…’) #2 /nfsmnt/hosting1_1/
4/c/4cdba5d2-b725-4d56-95e7-7244c2ed5f96/dveadvesustyri.sk/web/wp-content/plugins/
wpmathpub/wpmathpub.php(110): mathfilter(‘<m>S(f)(t)=a_{0…’, ’12’, ‘http://dveadves…’)#
3 [internal function]: wpmathfilter(Array) #4 /nfsmnt/hosting1_1/4/c/4cdba5d2-b725-
4d56-95e7-7244c2ed5f96/dveadvesustyri.sk/web/wp-content/plugins/wpmathpub/wpmathpub.
php(124): preg_replace_callback(‘#\\[pma in /nfsmnt/hosting1_1/4/c/4cdba5d2-b725-
4d56-95e7-7244c2ed5f96/dveadvesustyri.sk/web/wp-content/plugins/wpmathpub/phpmathpublisher/
mathpublisher.php on line 1604

![](https://secure.gravatar.com/avatar/f58ac795471e4b516970127e7bedf6b39fe32c16b3c2047a253fe716aed8037a?
s=60&d=retro&r=g)

### 󠀁[Very useful](https://wordpress.org/support/topic/very-useful-969/)󠁿

 [thy92](https://profiles.wordpress.org/thy92/) 3 กันยายน 2016

Very useful to use. Thank you for this plugin.

![](https://secure.gravatar.com/avatar/196c74fe32cbc0c421bb1215c422da531166e0d739f60069d18e285a5dbfe7d8?
s=60&d=retro&r=g)

### 󠀁[got rid of the backslash problem](https://wordpress.org/support/topic/got-rid-of-the-backslash-problem/)󠁿

 [hadzzz](https://profiles.wordpress.org/hadzzz/) 3 กันยายน 2016

The advantage of this plugin to other ones is that it doesn’t use “\” (backslash)
which other latex-based plugins do. Backslashes are sometimes stripped in WP leading
to formulas not showing properly.

 [ Read all 5 reviews ](https://wordpress.org/support/plugin/wpmathpub/reviews/)

## Contributors & Developers

“WPMathPub” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ Ron Fredericks ](https://profiles.wordpress.org/ronf/)

[Translate “WPMathPub” into your language.](https://translate.wordpress.org/projects/wp-plugins/wpmathpub)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wpmathpub/), check 
out the [SVN repository](https://plugins.svn.wordpress.org/wpmathpub/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/wpmathpub/) by [RSS](https://plugins.trac.wordpress.org/log/wpmathpub/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.0.5

 * New: Math-Pub Rosetta — bundled standalone math expression tester (demo/rosetta.
   php). Visit your local copy via the new “Open Rosetta” link on the Plugins page,
   or use the full version at math-pub.org. Same syntax engine as the plugin; works
   portably outside WordPress.
 * New: \text{}, \mathrm{}, \mbox{} for upright free-form text — uses bundled Latin
   Modern Roman font. Useful for “x_{\text{init}} + 5” style annotations and equation
   labels. \mathit{} for italic free-form text continues to work as before. Previously
   all four were aliased to italic, which was wrong for \text{}.
 * New: \pmb{…} pseudo-bold renderer for any single symbol (image-overprint technique).
   Renders bolder weight than standard. Example: \vec{\nabla} \cdot E = \frac{\rho}{\
   varepsilon_0} with \pmb{\rho} bolds the rho.
 * New: dot-family symbols — \cdot (centered dot), \bullet (filled bullet), \times(
   cross multiplication), \because (∵), \therefore (∴).
 * Improved: cleaner glyph rendering at small font sizes (12–15) for trig functions,
   math operators, and Greek capitals. Uses bundled Latin Modern Roman in place 
   of cmr10. Resolves the blob-like appearance where letters merged together (e.
   g., “tan” rendering with t looking bolder than an).
 * Improved: integral symbol height and vertical alignment — smaller, raised slightly
   to reduce gap above the integrand.
 * Improved: post-update admin notice with one-click “Refresh image cache” button.
   Cached PNGs regenerate on first page view; URLs stay stable so existing posts
   and RSS feeds keep working. Per-user, per-version dismissal.
 * Fixed: white-screen-of-death protection. If mathpub_latex.php or mathpublisher.
   php goes missing (during update, FTP transfer, or security quarantine), the plugin
   now shows a clear admin notice and keeps the rest of WordPress running. Previously
   WordPress would fatal with E_ERROR.
 * Fixed: matrix-with-delimiter wrappers were silently dropped. \left[ \begin{matrix}…\
   end{matrix} \right] now correctly renders matrix with bracket wrapper. Same fix
   applies to determinant form (\left| … \right|) and piecewise form (\left{ … ).
 * Fixed: half-open interval form \left[x\right[ was leaving literal “x\right[” 
   in output. Now correctly produces delim{[}{x}{[}.
 * Fixed: \lim_{x \to a} f(x) was producing wrong pmath shape with body dropped.
   Now produces the correct lim{x right a}{f(x)}. \rightarrow recognized as synonym
   for \to.
 * Fixed: \iiint, \iint, \int, \oint with leading position were greedily swallowing
   trailing operators into their body. “\iint_{a}^{b}x \prod_{a}^{b}x” now tokenizes
   as two separate operators rather than one giant double-integral.
 * Fixed: descender clipping in upright text — bottom row of g, j, p, q, y and lowercase
   Greek β γ η μ ρ φ ψ χ ξ ζ was clipped by an off-by-one in canvas height. Fix 
   is universal — also resolves a Greek descender clipping that had existed for 
   years but was hidden because trig/operator names have no descenders.
 * Fixed: thin space \, was rendering as a regular space. Now correctly maps to 
   ~ (pmath thin space). Also fixed \; : ! variants.
 * Fixed: function keywords \sin \cos \ln \log \exp \det \ker \dim \max \min were
   passing through with leading backslash. Engine still rendered them, but cache
   fingerprints differed from bare-keyword pmath, causing duplicate cached images.
   Now mapped explicitly.
 * Fixed: warning messages for empty or malformed pmath tags.
 * Internal: extracted inline LaTeX translator into reusable mathpub_latex.php module(
   zero behavior change for existing shortcodes). Engine bumped to v1.4.1.

#### 3.0.4

 * Added \hbar symbol (reduced Planck constant ℏ, Unicode U+210F)
 * Fixed LaTeX \frac rendering for multi-token numerators and denominators
 * Fixed image rendering failure at certain font sizes caused by decimal value in
   cached filename
 * Fixed small vertical alignment error between inline text and math images
 * Removed version salt for stable RSS feed and URL links
 * Changed Gutenberg block default math syntax mode from pmath native to LaTeX
 * Security: added direct file access protection (ABSPATH check) to wpmathpub.php,
   mathpublisher.php, and fonts/index.php
 * Security: replaced unlink() with wp_delete_file() in wpmathpub.php and uninstall.
   php
 * Security: replaced rmdir() with WP_Filesystem in uninstall.php
 * Security: escaped admin page output with wp_kses_post()
 * Fixed readme.txt Requires at least version 5.0 mismatch

#### 3.0.3

 * Improved error handling
 * Improved rendering of PNG images

#### 3.0.2

 * Added color= shortcode attribute with hex and named color support
 * Added LaTeX input mode via latex=1 shortcode attribute with full PHPMathPublisher
   syntax coverage
 * Added Gutenberg WPMathPub math block with PMath/LaTeX mode switching and real-
   time preview
 * Added admin panel default equation color setting with WordPress color picker
 * Added admin panel default equation size setting
 * Added uninstall.php to remove plugin database options on delete
 * Fixed Greek Omega symbol rendering (three stacked bugs resolved)
 * Fixed matrix and tabular LaTeX conversion
 * Fixed tabular border string parsing to respect LaTeX | and \hline markers
 * Improved PNG image cache handling and cache key discipline
 * Improved rendering stability across PHP 7.2 through 8.3

## Meta

 *  Version **3.0.5**
 *  Last updated **3 สัปดาห์ ago**
 *  Active installations **300+**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/wpmathpub/)
 * Tags
 * [equations](https://th.wordpress.org/plugins/tags/equations/)[formula](https://th.wordpress.org/plugins/tags/formula/)
   [latex](https://th.wordpress.org/plugins/tags/latex/)[math](https://th.wordpress.org/plugins/tags/math/)
   [mathematics](https://th.wordpress.org/plugins/tags/mathematics/)
 *  [Advanced View](https://th.wordpress.org/plugins/wpmathpub/advanced/)

## Ratings

 4.2 out of 5 stars.

 *  [  4 5-star reviews     ](https://wordpress.org/support/plugin/wpmathpub/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/wpmathpub/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/wpmathpub/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/wpmathpub/reviews/?filter=2)
 *  [  1 1-star review     ](https://wordpress.org/support/plugin/wpmathpub/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/wpmathpub/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wpmathpub/reviews/)

## Contributors

 *   [ Ron Fredericks ](https://profiles.wordpress.org/ronf/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wpmathpub/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://www.biophysicslab.com/wordpress-math-publisher-plugin/wpmathpub-support/)