\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}