# paracolrule `paracolrule` adds decorative separator rules to the LaTeX [`paracol`](https://ctan.org/pkg/paracol) package. - **Version**: 0.1.0 - **Date**: 2026-08-22 - **Author**: Kosei Kawaguchi (a.k.a. KKTeX) - **License**: LaTeX Project Public License 1.3c or later - **Repository**: [https://github.com/KKTeX/paracolrule](https://github.com/KKTeX/paracolrule) - **Support**: p.c.aces1056@gmail.com It changes only the rule segments generated by `paracol`. Page breaking, spanning text, arbitrary column counts and widths, background painting, and per-gap colors remain under `paracol`'s control. ## Usage ```latex \usepackage{xcolor} \usepackage{paracolrule} \setlength{\columnseprule}{1pt} \colseprulecolor{blue!70!black} \ParacolRuleSetup{ style=dashed, dash-length=5pt, gap-length=3pt } \begin{paracol}{2} Main text \switchcolumn Commentary \end{paracol} ``` Built-in styles are `solid`, `dashed`, `dotted`, and `double`. A custom renderer can be installed with `\ParacolRuleSetRenderer{\YourMacro}`; the renderer receives the adjusted rule-segment height as its only argument. Dashed and dotted styles place a mark at both ends of every segment and calculate one common interval for all intervening marks. They therefore reach the exact bottom without a visibly shortened or uneven final gap. Rule extents follow `multicolrule`: `extend-top` and `extend-bot` use positive values to extend and negative values to shorten. `expand` sets both values; `shift` moves the rule without changing its length. With zero extensions, the decorated rule keeps the exact segment boundaries generated by `paracol`. Those boundaries belong to the column box, not to the visible ink of its first and last glyphs; no font-dependent correction is guessed. TikZ custom rules follow the `multicolrule` convention: ```latex \usepackage[tikz]{paracolrule} \ParacolRuleSetup{ custom-line={ \draw[line width=1pt] (TOP) to[bend left=8] (BOT); } } ``` The code runs inside a `tikzpicture`; `(TOP)` and `(BOT)` are the exact endpoints of each separator segment. TikZ support is also detected when `tikz` was loaded before `paracolrule`. A custom TikZ rule uses the normal `\colseprulecolor`; per-gap color overrides apply only to the built-in renderers because `paracol` reuses one separator box for every gap. ## Compatibility Version 0.1.0 is tested with `paracol` 1.37. Because `paracol` does not expose a public separator-rendering hook, this package verifies its two internal patch points at load time and fails loudly if they have changed. ## Building ```sh make test make doc make sample make zip ``` The package source is maintained directly in `paracolrule.sty`. The manual is `paracolrule-doc.tex`, and the multi-page visual example is `paracolrule-sample.tex`. ## License LaTeX Project Public License 1.3c or later.