`screenwriter` -- A LaTeX class for writing screenplays ======================================================= - **Author:** J. A. Corbal (jacorbal [at] gmail [dot] com) - **Last update:** Sun May 10 13:21:05 UTC 2026 - **Version:** 1.0.2 License ------- This work may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this license or (at your option) any later version. The latest version of the license is available at: The project is maintained by the author (for now). Overview -------- The `screenwriter` class provides a LaTeX document class for writing film and television screenplays. It is based on John Pate's `screenplay.cls`, but updated for current LaTeX distributions and extended with a modular language system and better integration with `babel`. The class focuses on: - A standard screenplay layout (12pt typewriter, one column, US Letter or A4 paper). - Convenient macros for sluglines, dialogue, transitions, and cover pages. - Language‑dependent strings (such as “FADE IN”, “THE END”, “INT.”, “EXT.”) implemented via separate language definition files. Files ----- The distribution typically contains: - The main class file: - `screenwriter.cls` - Language definition files providing localized versions of all internal strings used by the class (e.g., “FADE IN”, “THE END”, “TITLE OVER”, “(O.S.)”, &c.): - `screenwriter-lang-english.ldf` - `screenwriter-lang-catalan.ldf` - `screenwriter-lang-esperanto.ldf` - `screenwriter-lang-french.ldf` - `screenwriter-lang-galician.ldf` - `screenwriter-lang-german.ldf` - `screenwriter-lang-italian.ldf` - `screenwriter-lang-portuguese.ldf` - `screenwriter-lang-spanish.ldf` - User documentation and examples: - `screenwriter-doc-a4.tex` - `screenwriter-doc-a4.pdf` - `screenwriter-doc-letter.tex` - `screenwriter-doc-letter.pdf` - `sample.tex` - `sample.pdf` - License file (LPPL 1.3c): - `LICENSE` - This file: - `README` Installation ------------ For a local installation in a personal TEXMF tree, copy the files as follows: - Place `screenwriter.cls` and all `screenwriter-lang-*.ldf` files into a directory such as: TEXMFHOME/tex/latex/screenwriter/ where `TEXMFHOME` is your local TEXMF root (for example `~/texmf` on a typical TeX Live installation). - Run `mktexlsr` or the equivalent command for your TeX distribution to update the file name database, if required. Once installed, LaTeX should find the class and language files automatically. Usage ----- A minimal document using the default (English) settings: \documentclass{screenwriter} \title{My First Screenplay} \author{Screenwriter Name} \begin{document} \coverpage \fadein \intslug[DAY]{Office} \begin{dialogue}{WRITER} This is a line of dialogue. \end{dialogue} \theend \end{document} Page Layout and Options ----------------------- The class loads the standard `article` class internally and sets up a screenplay-friendly layout: - 12pt typewriter font - One column, one-sided - US Letter (default) or A4 paper - Ragged-right text, custom margins and dialogue widths Paper options: - `a4paper` -- use A4 paper and adjust the width of dialogue and address blocks accordingly. - `letterpaper` -- use US Letter paper (default). Example: \documentclass[a4paper]{screenwriter} Screenplay style options: - `literary` -- sluglines without scene numbers (default). - `technical` -- sluglines with automatically numbered scenes in the margins. Example: \documentclass[technical]{screenwriter} Language support ---------------- The class provides a simple language mechanism for its own internal strings (such as “FADE IN”, “THE END”, “INT.”, “EXT.”, etc.). This is separate from, but designed to cooperate with, `babel`. There are two ways to select a language: 1. **Via class options (explicit language)** You can explicitly choose the language used for the internal strings by passing one of the available language options to the class: - `english` (default) - `catalan` - `esperanto` - `french` - `galician` - `german` - `italian` - `portuguese` - `spanish` Example: \documentclass[spanish]{screenwriter} This will load `screenwriter-lang-spanish.ldf` and use Spanish versions for all internal labels, regardless of whether `babel` is loaded. 2. **Via babel (implicit language)** If no explicit language option is given to the class, but `babel` is loaded with a language option, the class will attempt to detect the current language through `\languagename` at `\begin{document}` and load the corresponding `screenwriter-lang-.ldf` file, if available. Example: \documentclass{screenwriter} \usepackage[french]{babel} In this case, the class will try to use `screenwriter-lang-french.ldf`. If no matching language file is found, it falls back to English. Note that the class does not load `babel` on its own; users are expected to load `babel` (or `polyglossia`) in the usual way if they require language-specific hyphenation and typography. Main commands ------------- The class defines several commands and environments tailored to screenplays: - Cover and title - `\coverpage` Produce a standard cover page with title, author, and contact information. - `\nicholl` Alternative simple title page variant. - `\title{...}`, `\author{...}` Standard LaTeX macros reused by the class. - `\realauthor{...}` Set the real author name for the cover in case that `\author` is a pseudonym, or a shorter version of the name. - `\address{...}`, `\agent{...}` Provide address and agent information for the cover page. - Sluglines - `\intslug[QUALIFIER]{LOCATION}` Interior slugline (INT.). - `\extslug[QUALIFIER]{LOCATION}` Exterior slugline (EXT.). - `\intextslug[QUALIFIER]{LOCATION}` Combined interior/exterior slugline (INT./EXT.). - `\extintslug[QUALIFIER]{LOCATION}` Combined exterior/interior slugline (EXT./INT.). The exact abbreviations and punctuation are language-dependent and defined in the corresponding `.ldf` files. - Dialogue - Environment `dialogue[paren]{CHARACTER}` Typesets character name and dialogue in the standard screenplay layout. An optional parenthetical can be provided in the optional argument. - `\dialbreak[paren]{CHARACTER}` Ends the current dialogue block with a “(MORE)” marker, starts a new page, and continues the same character's dialogue marked as “(CONT'D)”. - Transitions and labels - `\fadein`, `\fadeout` Insert “FADE IN:” and “FADE OUT:” (or their localized versions). - `\intercut`, `\flashback` Insert transition labels such as “INTERCUT WITH:” and “FLASHBACK TO:”. - `\titleover` environment For “TITLE OVER:” blocks (such as on-screen text). - `\theend` Typesets the final “THE END” (or localized equivalent) centered. For detailed examples and spacing behaviour, see the accompanying `screenwriter-doc.pdf`. Development and contributions ----------------------------- The class is intended as an up-to-date, language-aware replacement for the original `screenplay.cls`, while preserving the general user interface familiar to screenwriters using LaTeX. Bug reports, suggestions, and contributions (especially new language definition files) are welcome. Please contact the maintainer at: (jacorbal [at] gmail [dot] com).