Preparing a LaTeX Document for spell checking with Microsoft Word

When working with LaTeX there are two problems when it comes to spell checking: (1) the limited capabilities of spell checkers that can be used in most LaTeX IDEs and (2) markups clutter the text and make spell checking cumbersome and ineffective in checking the final document. Regarding (1) I have found that the capabilities of Microsoft Word are very good in comparison to the competition (that is only limited personal experience).

I wanted to spell check the resulting document, but obviously, PDF is not made for that. So here is how I prepare a LaTeX PDF that can be used for spell check with Microsoft Word. In my view, the following issues need to be tackled:

  • Ligatures: Word is not able to handle ligatures correctly. We’ll simply prevent LaTeX from using them (in most of the text).
  • Hyphenations: Word does not recognize broken words as one. We’ll prevent hyphenation.
  • Floats: LaTeX places floats between paragraphs only if that is determined to look good by LaTeX algorithms. If they are positioned at the top or bottom of a page they can break a sentence. Word cannot check that sentence anymore.  We’ll therefore place all floats at the end of the document, so that they do not interrupt the text.
  • Footnotes: Effect similar to floats. Can be transformed into endnotes.
  • Headlines: Effect similar to floats. We’ll empty them.

Here is the code that takes care of the above and which I add to my LaTeX documents if I want to spell check them:


\usepackage{microtype}
\DisableLigatures{encoding = *, family = * }

\usepackage[none]{hyphenat}

\usepackage[nomarkers,nolists]{endfloat}%Make sure none floats are included in other environments.
\usepackage{efxmpl} %Needed, if you use sidewaysfigure or sidewaystable. See manual of
endfloat package

\ofoot[]{}
\cfoot[]{}
\ifoot[]{}
\chead[]{}
\ihead[]{}
\ohead[]{}


\usepackage{endnotes}
\renewcommand{\theendnote}{}
\let\footnote=\endnote

The resulting PDF can be converted into plain text using the pdftotext command under Linux. After opening the document in Word, I make the following replacements in the text:

  • Replace: “^m([0123456789])” with “^p^p\1″ (use place holders!). To make extra space above headings.
  • Replace: “^p^p^m” by ” ” (do not use placeholders). To get rid of the page breaks.

The main text of the document does not contain clutter from LaTeX commands and can be spell checked nicely.

ActiveTags paper

A paper on the ActiveTags prototype has been presented at the 20th Australasian Database Conference held in Wellington, New Zealand, in January 2009. The full paper is contained in Volume 92 of the Conferences in Research and Practice in Information Technology. A previous version of the paper is available for download here.

ActiveTags Paper (pre-print version)

How ActiveTags works

This is currently my best shot at explaining visually what the ActiveTags extension does while you are browsing the Web. I am again using the same page as an example as in the 30 seconds introduction to ActiveTags, which you might want to check out, too. Click on the image to get a larger version!

If you are not familiar with the terminology, you might want to check out my explanation of the basic terms (also available in German).

Video Mashup

There is now a mashup similar to the German news mashup for videos. This mashup is activated whenever you watch a video on any of the following video portals (break.com, dailymotion.com, viddler.com, video.yahoo.com, or youtube.com) that has tags attached. The mashup will show the most recent videos from these video portals that use the same tags.

Since there are often a lot of tags attached, you probably want to limit the number of tags tag are actually used by deselecting some of the checkboxes.

Einige Grundbegriffe

Dieser Artikel erläutert die zum Verständnis der ActiveTags-Erweiterung relevanten Begriffe. (This article is also available in English)

  • Tags
    Dieser erste Begriff ist von so großer Bedeutung für dieses Projekt, dass er ihm seinen Namen gab: ActiveTags. Tags sind einfache Schlagworte, die frei gewählt und nicht hierarchisch sind. Sie beschreiben ein Objekt und können die Suche von Objekten bzw. das Durchsuchen von Katalogen erleichtern. Systeme, die Tags verwenden, unterscheiden sich darin, wer Tags anlegen kann: das können z.B. Herausgeber, Bibliothekare, Ersteller oder die Nutzer sein.

    tarawa, kiribati, gilbert islands, sea, pacific, bikeman, submerged, gone, lost, island, micronesia, mum, tebuneuea, tungaru, atlantis, climate change, sea level, book:isbn=0385606435, geo:lat=1.39, geo:lon=173.00

    Diese Liste von Tags ist einem Foto bei Flickr zugeordnet (das gleiche Bild wird auch in der englischen 30 Sekunden Einführung in ActiveTags verwendet). Für einen Menschen, der Englisch spricht, ist es leicht, durch diese Tags herauszufinden, was wahrscheinlich auf diesem Foto abgebildet ist. Für einen Computer ist dies nicht so einfach, weil die Tags für ihn erstmal nur Zeichenketten sind.
    Soziale Tagging-Systeme werden immer populärer. In diesen Systemen werden die individuell vergebenen und verwendeten Schlagworte zu einer Folksonomie, indem alle Schlagworte eines solchen Systems zu einem Schlagwortraum vereinigt werden.
    Mehr über Tags auf Wikipedia.

  • Mashups
    In seiner weiteren Bedeutung ist ein Mashup die Kombination mehrerer Quellen zur Formung eines neuen Objekts: so kann man Musik, Videos oder Texte, aber auch Software als Mashup erstellen. Eine Mashup-Anwendung kombiniert die Funkionalitäten oder Daten verschiedener Quellen und präsentiert sie als Gesamtheit. Im Fall von ActiveTags wird der Begriff für Web-Anwendungen verwendet, die solche Mashup-Kombinationen vornehmen.
    Auf der rechten Seite sieht man ein gutes Beispiel für ein Mashup: eine Karte der Seite weatherbonk.com. Diese Seite kombiniert Daten aus verschiedenen Quellen (Kartendaten, Wetterdaten, Webcams und andere Quellen) und zeigt dem Nutzer in einer reichhaltigen Ansicht eine große Bandbreite an Informationen rund um das aktuelle Wetter an.
  • ActiveTags
    ActiveTags erlaubt es seinen Nutzen, Mashups zu verwenden und zu erstellen, die relevante Informationen während des Surfens zu Webseiten hinzufügen. Auf einer Seite sind geografische Koordinaten hinterlegt? Eine Karte des Ortes wird gezeigt. Es werden relevante Bücher referenziert? Übersichtsinformationen zu diesen Büchern werden angezeigt. Die Information darüber, was für eine Seite relevant ist, wird aus der jeweils aktuellen Webseite extrahiert, auf passende Muster geprüft und falls möglich in Mashups angezeigt.
    Im folgenden werden die wichtigsten Begriffe der ActiveTags-Erweiterung erläutert:

    • TagExtractor
      Es gibt zwar immer mehr Tags auf den verschiedensten Webseiten, doch bevor diese von ActiveTags genutzt werden können, müssen sie von ActiveTags erkannt und extrahiert werden. Genau das tun Tag Extraktoren: sie wissen, wie Tags auf einer Seite gespeichert und damit auch, wie sie zu finden sind, falls es überhaupt welche gibt. Sie extrahieren alle Tags und speichern sie in einer Liste, die von den Mashups weiterverwendet wird. Die Mashups verwenden die Tags als Parameter. Falls sie auf einer Seite Tags finden, diese aber noch nicht von ActiveTags erkannt werden, können Sie einen Tag Extraktor mit Hilfe der ActiveTags Erweiterung erstellen.
    • Mashup
      Ein ActiveTags Mashup entspricht der oben gegebenen Defintion eines Mashups. Es kommen jedoch einige spezielle Eigenschaften hinzu: Es sind immer die Tags auf einer Webseite, die bestimmen, ob der richtige Kontext für ein Mashup gegeben ist. Wenn die Tags anzeigen, dass die nötigen Informationen zur Anzeige eines Mashups vorhanden sind, wird es angezeigt, sonst nicht. ActiveTags Mashups sind insofern unmittelbar, als dass sie zu Webseiten hinzugefügt werden, sobald sie passen, ohne dass der Nutzer dafür etwas tun müsste. Sollten Sie Ideen für ein Mashup haben: Sie können Mashups über die ActiveTags Erweiterung erstellen.
    • MergeSpace
      Wenn Mashups auf einer Webseite anwendbar sind, werden sie innerhalb der ursprünglichen Webseite eingefügt. Da es so viele verschiedene Layouts von Webseiten gibt, ist ein guter Platz für Mashups von Seite zu Seite unterschiedlich. MergeSpaces definieren, wo auf einer Seite ein Mashup angezeigt werden sollte. Wenn Sie als Nutzer meinen, ein Mashup sei auf einer Seite an einer schlechten Stelle platziert, können Sie über die ActiveTags Erweiterung einen neuen MergeSpace definieren.

Weitere Begriffserläuterungen gewünscht? Hinterlassen Sie mir einen Kommentar!

Some basic terminology

This article covers and explains some of the basic terminology relevant to the ActiveTags plugin. (Diesen Artikel gibt es auch auf Deutsch)

  • Tags
    This first term is so important to this project that it gave it its name: ActiveTags. Tags are just keywords, which are freely chosen and not hierarchical. Tags can be used to describe items and they support searching for items and browsing through a catalog of items. The ability to add tags depends on the system in which the tags are used: it can basically be editors, librarians, creators or users who attach tags to items.

    tarawa, kiribati, gilbert islands, sea, pacific, bikeman, submerged, gone, lost, island, micronesia, mum, tebuneuea, tungaru, atlantis, climate change, sea level, book:isbn=0385606435, geo:lat=1.39, geo:lon=173.00

    This is the list of tags that is attached to a photo on Flickr (which is also used in the 30 seconds intro to ActiveTags). A human fluent in English by reading these tags can easily comprehend what is likely to be on the photo. This is not the case for computers, since to it the tags are merely character strings.
    Social tagging systems are becoming more and more popular on the Web. In these, the tags of individuals are merged to form a folksonomy, the result of all tags combined over such a system.
    Read more on tags on Wikipedia.

  • Mashups
    In its wide sense a mashup is the combination of several sources to form one new item: this can be a piece of music, a video, a text, but also an application. A mashup application combines the data or functionalities of several sources and presents them as one. Here, the term mashup is used for Web applications that perform such combinations.
    On the right you can see a good example of a mashup: the site weatherbonk.com. It combines the data from mapping services, weather data, Web cams, and other sources to present the user with a wide variety of weather information.
  • ActiveTags
    ActiveTags allows its users to use and create mashups that are relevant to what they are viewing while browsing the Web. You are on a page, where there is geographic information? You get a map showing the location. There are relevant books mentioned? You get an overview of these books. The information on what is relevant is extracted from the tags on a Web page, checked for relevant patterns, and mashed up if possible.
    The following explains terms that are frequently used within the ActiveTags extension.

    • TagExtractor
      Tags are increasingly available on social network sites, blogs, portals, and other pages throughout the Web. Before the can be used by the ActiveTags extension, they need to be extracted from the Web page. TagExtractors do just that: they know how to find tags in a Web page if there are any present. They extract all they can find and store them in a list of tags. These tags become the parameters for the ActiveTags mashups. If you find a page, where tags are not detected you can create a tag extractor for that page using the ActiveTags extension.
    • Mashup
      An ActiveTags mashup fully conforms with the definition of mashup given above. There are several aspects that make ActiveTags mashups more specific: They always use the tags from a Web page to determine, whether they are in the right context to be shown. If the tags indicate that there is sufficient information for the mashup to shown, it is, otherwise it will not be shown. ActiveTags mashups are also very instantaneous since they are simply append to the Web pages that a users comes by without him having to do anything for it. Should you have ideas for mashups that you would like to see: you can define new mashups using the ActiveTags extension.
    • MergeSpace
      If mashups are applicable they are shown within the original Web page. Since there are so many different layouts, good output places for the mashups change from page to page. MergeSpaces define where on a page mashups should be shown. If you as a user find that mashups are inappropriately placed on a page you can define a new MergeSpace using the ActiveTags extension.

Should I explain other relevant terms? Please leave a comment!

Mashup: Acrobat documents

Acrobat.com is a Web site by Adobe that lets users collaboratively work on documents, and store, view and share PDFs. Documents are shared by creating a link which accesses the document directly through its document id through an URL like this.

This mashup shows a shared document on Acrobat.com whenever it finds a tag of the form

  • acrobat:docid=doc-id

If you have ActiveTags installed, the Acrobat.com user guide will open below this post.

Examples from the Wild

Do you have any? Share in the comments!

ActiveTags “what’s new” feeds

The mashups category on this blog gives an overview of the mashups available in ActiveTags. However, since information and examples need to be compiled and published, this may not always be immediately after a new mashup has been created.

If you want to stay informed about additions to the ActiveTags architecture you can subscribe to the following feeds, which provide access to the ActiveTags repository.

The information in the last two feeds is pretty technical. Still, you might find them interesting if you know regular expressions and XPath – otherwise they won’t make much sense :)

ActiveTags questionnaire

I have created the Firefox extension ActiveTags as part of my dissertation at the University of Münster, Germany. I would be delighted if you have used it (if not, why not install it and check out some examples) and it would be of great help for finalizing my work if you would spare a few minutes to answer a few questions about your tagging behavior and use of ActiveTags.

Thank you very much for your help!
Stephan Hagemann

30 seconds intro to ActiveTags

The very essence of the ActiveTags Firefox extension in a short slideshow:

This slideshow in fullscreen.