\documentclass[a4paper,11pt]{article} % -------------------------------------------------- % Engine requirement % -------------------------------------------------- \usepackage{iftex} \ifPDFTeX \errmessage{This manual must be compiled with XeLaTeX or LuaLaTeX} \fi % -------------------------------------------------- % Packages % -------------------------------------------------- \usepackage{fontspec} \usepackage{geometry} \usepackage{hyperref} \usepackage{listings} \usepackage{xcolor} \usepackage{titlesec} % -------------------------------------------------- % Page layout % -------------------------------------------------- \geometry{margin=25mm} % -------------------------------------------------- % Fonts (manual only) % -------------------------------------------------- \setmainfont{TeX Gyre Termes} \setsansfont{TeX Gyre Heros} % -------------------------------------------------- % Hyperref setup % -------------------------------------------------- \hypersetup{ colorlinks=true, linkcolor=black, urlcolor=blue, pdftitle={modernnewspaper Package Manual}, pdfauthor={Laitei} } % -------------------------------------------------- % Listings setup % -------------------------------------------------- \lstset{ basicstyle=\ttfamily\small, frame=single, breaklines=true, keywordstyle=\color{blue} } % -------------------------------------------------- % Title info % -------------------------------------------------- \title{\textbf{modernnewspaper}\\ A Modern, Unicode-First Newspaper Package for LaTeX} \author{Laitei} \date{Version 0.2.1 --- January 2026} \begin{document} \maketitle % ================================================== \section{Introduction} The \textbf{modernnewspaper} package is a modern, Unicode-first LaTeX package for creating newspaper-style documents. It is designed as a clean, stable, and extensible alternative to the legacy \texttt{newspaper} package. The package supports multilingual content, multi-column layouts, right-to-left (RTL) scripts, custom drop caps, column-safe images, and newspaper-style headers, while remaining suitable for professional print output. % ================================================== \section{Requirements} This package \textbf{requires} one of the following engines: \begin{itemize} \item XeLaTeX \item LuaLaTeX \end{itemize} The package does \textbf{not} support pdfLaTeX, as full Unicode support is mandatory. % ================================================== \section{Installation} \subsection{Local Installation} Copy \texttt{modernnewspaper.sty} into the same directory as your \texttt{.tex} file. \subsection{User Installation} Alternatively, install it into your local \texttt{texmf} tree: \begin{verbatim} ~/texmf/tex/latex/modernnewspaper/ \end{verbatim} % ================================================== \section{Basic Usage} Load the package in the document preamble: \begin{lstlisting} \usepackage{modernnewspaper} \end{lstlisting} % ================================================== \section{Metadata Commands} The following commands configure the newspaper metadata: \begin{lstlisting} \SetPaperName{Modern Newspaper} \SetPaperSlogan{Informing the future} \SetPaperLocation{Yangon, Myanmar} \SetPaperWebsite{https://example.com} \SetPaperVolume{1} \SetPaperIssue{5} \SetPaperDate{\today} \end{lstlisting} % ================================================== \section{Masthead} To typeset the main newspaper masthead (front page only), use: \begin{lstlisting} \MakePaperHeader \end{lstlisting} This command prints the paper name, slogan, location, volume, issue, date, and website URL. Inner pages typically use a simplified custom header. % ================================================== \section{Columns} Newspaper content is usually set in multiple columns. \begin{lstlisting} \BeginNewsColumns{3} % content \EndNewsColumns \end{lstlisting} The number of columns may be adjusted as needed. % ================================================== \section{Articles} Articles are created using the \texttt{article} environment together with headline and byline commands. \subsection{Headline} \begin{lstlisting} \headline{Article Title} \end{lstlisting} \subsection{Byline} \begin{lstlisting} \byline{Author Name} \end{lstlisting} The word ``By'' may be localized: \begin{lstlisting} \SetByWord{بقلم} \end{lstlisting} \subsection{Article Environment} \begin{lstlisting} \begin{article} \headline{Sample Article} \byline{Editor} This is the article body text. \end{article} \end{lstlisting} % ================================================== \section{Drop Caps} The package provides a Unicode-safe drop-cap command that works in multi-column layouts and with all scripts. \begin{lstlisting} \DropCap{E}nglish text starts here. \end{lstlisting} This implementation avoids the \texttt{lettrine} package to ensure stability with Unicode engines. % ================================================== \section{Images} Images are inserted using a column-safe command: \begin{lstlisting} \ArticleImage{0.9\columnwidth}{example-image}{Caption text} \end{lstlisting} This approach avoids floating conflicts inside multi-column layouts. % ================================================== \section{RTL Support} Right-to-left scripts such as Arabic and Hebrew are supported: \begin{lstlisting} \EnableRTL \SetByWord{بقلم} \begin{article} \headline{عنوان المقال} \byline{الكاتب} نص عربي تجريبي. \end{article} \DisableRTL \SetByWord{By} \end{lstlisting} % ================================================== \section{Unicode Support} The \textbf{modernnewspaper} package fully supports Unicode text across multiple scripts, provided appropriate fonts are installed. Supported scripts include: \begin{quote} မြန်မာစာ · العربية · हिन्दी · 中文 · English \end{quote} Fonts are selected explicitly per script to avoid missing glyphs. % ================================================== \section{Section Banners} Newspaper-style section banners may be created using horizontal rules with centered text: \begin{lstlisting} \SectionBanner{World News} \end{lstlisting} This produces a compact banner with rules above and below the text. % ================================================== \section{Limitations} Current limitations include: \begin{itemize} \item No automatic font switching (manual selection required) \item No theme presets \item No automatic page headers \end{itemize} These limitations are intentional to preserve layout stability. % ================================================== \section{Roadmap} Planned improvements include: \begin{itemize} \item Automatic font selection per script \item Newspaper class file (\texttt{modernnewspaper.cls}) \item Running headers and page numbers \item Theme presets \item CTAN submission \end{itemize} % ================================================== \section{License} This package is distributed under the \textbf{LaTeX Project Public License (LPPL) v1.3c}. See the \texttt{LICENSE} file or visit: \begin{center} \url{https://www.latex-project.org/lppl.txt} \end{center} % ================================================== \section{Contact} Project repository: \begin{center} \url{https://github.com/Laitei40/modernnewspaper} \end{center} \end{document}