# MathType for CKEditor 4 [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/wirismath)

Type and handwrite mathematical notation with MathType.

Easily include quality math equations in your documents and digital content.

# Table of Contents

- [Install instructions](#install-instructions)
- [Services](#services)
- [Documentation](#documentation)
- [Displaying on Target Page](#displaying-on-target-page)
- [Privacy policy](#privacy-policy)

## Install instructions

1. Install the npm module:

   ```
   npm install @wiris/mathtype-ckeditor4
   ```

2. Add the plugin as an external plugin:

   ```js
   CKEDITOR.plugins.addExternal("ckeditor_wiris", "../node_modules/@wiris/mathtype-ckeditor4/", "plugin.js");
   ```

3. Update the CKEditor configuration by adding the new plugin, allowing MathML content and adding the MathType and ChemType buttons to the toolbar:

   ```js
   CKEDITOR.replace("editor", {
     //eslint-disable-line
     extraPlugins: "ckeditor_wiris",
     // Allow MathML content.
     allowedContent: true,
     toolbar: [
       { name: "wirisplugins", items: ["ckeditor_wiris_formulaEditor", "ckeditor_wiris_formulaEditorChemistry"] },
       // To avoid errors and have mathtype fully functional
       { name: "others" },
     ],
     // language: 'de',
     // mathTypeParameters: {
     //   editorParameters: { language: 'es' }, // MathType config, including language
     // },
   });
   ```

   Notice the example assumes this directory structure:

   ```
   └───index.html
   └───node_modules
       └───@wiris/mathtype-ckeditor4
   ```

## Services

This npm module uses remotely hosted services to render MathML data. However, we strongly recommend you install these services on the backend. This will allow you, among other things, to configure the service and to locally store the images generated by MathType.

The services are available for Java, PHP, .NET and Ruby on Rails. If you use any of these technologies, please download the plugin for your backend technology from [our website](https://store.wiris.com/en/products/downloads/mathtype/integrations#froala?utm_source=npmjs&utm_medium=referral).

In order to install the plugin along with the correspondent services, please follow the [CKEditor4 install instructions](https://docs.wiris.com/mathtype/en/mathtype-integrations/mathtype-for-html-editors/mathtype-for-ckeditor.html?utm_source=npmjs&utm_medium=referral).

## Displaying on Target Page

In order to display mathematical formulas on the target page, i.e. the page where content produced by the HTML editor will be visible, the target page needs to include the [MathType script](https://docs.wiris.com/en/mathtype/mathtype_web/integrations/mathml-mode#add_a_script_to_head). For example for the default setting this would be:

```html
<script src="https://www.wiris.net/demo/plugins/app/WIRISplugins.js?viewer=image"></script>
```

## Documentation

To find out more information about MathType, please go to the following documentation:

- [Install instructions](https://docs.wiris.com/mathtype/en/mathtype-integrations/mathtype-for-html-editors/mathtype-for-ckeditor.html?utm_source=npmjs&utm_medium=referral)
- [MathType documentation](https://docs.wiris.com/en/mathtype/mathtype_web/start?utm_source=npmjs&utm_medium=referral)
- [Introductory tutorials](https://docs.wiris.com/en/mathtype/mathtype_web/intro_tutorials?utm_source=npmjs&utm_medium=referral)
- [Service customization](https://docs.wiris.com/en/mathtype/mathtype_web/integrations/config-table?utm_source=npmjs&utm_medium=referral)
- [Testing](https://docs.wiris.com/en/mathtype/mathtype_web/integrations/html/plugins-test?utm_source=npmjs&utm_medium=referral)

## Privacy policy

The [MathType Privacy Policy](https://www.wiris.com/en/mathtype-privacy-policy/?utm_source=npmjs&utm_medium=referral) covers the data processing operations for the MathType users. It is an addendum of the company’s general Privacy Policy and the [general Privacy Policy](https://www.wiris.com/en/privacy-policy?utm_source=npmjs&utm_medium=referral) still applies to MathType users.
