编译后可以标记短行吗?

编译后可以标记短行吗?

我正在写一篇学术文章(2 栏),并且篇幅有限(比如说 8 页)。当第 9 页只有一行时,我会进行一个小优化,即重新措辞某些段落,通常是当它们的最后一行只有一两个单词时。虽然从视觉上找到它们相当容易,但这可能很乏味(并且每次编译后可能会有所不同)。还有其他方法可以找到这些短行吗?

我想要一个标记(à-la-todonotes)之类的东西,一个突出显示。命令行中的日志可能也会有帮助,或者文档中每行的字数统计。

编辑,MWE:

\documentclass[twocolumn]{article}
\begin{document}

Dapibus, nisi non porttitor iaculis, ligula odio sollicitudin mauris, non luctus
nunc massa a velit. Fusce ac nisi. Integer volutpat elementum metus. Vivamus
luctus ultricies diam. Curabitur euismod. Vivamus quam. Nunc ante. Nulla mi
nulla, vehicula nec, ultrices a, tincidunt vel, enim.

Suspendisse potenti. Aenean sed velit. Nunc a urna quis turpis imperdiet
sollicitudin. Mauris aliquam mauris ut tortor. Pellentesque tincidunt mattis
nibh. In id lectus eu magna vulputate ultrices. Aliquam interdum varius enim.
Maecenas at mauris. Sed sed nibh. Nam non turpis. Maecenas fermentum nibh in
est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames
ac turpis egestas.

Duis sagittis fermentum nunc. Nullam elementum erat. Quisque dapibus, augue nec
dapibus bibendum, velit enim scelerisque sem, accumsan suscipit lectus odio ac
justo. Fusce in felis a enim rhoncus placerat. Cras nec eros et mi egestas
facilisis. In hendrerit tincidunt neque. Maecenas tellus. Fusce sollicitudin
molestie dui. Sed magna orci, accumsan nec, viverra non, pharetra id, dui.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam placerat mi
vitae felis. In porta, quam sit amet sodales elementum, elit dolor aliquam elit,
a commodo nisi felis nec nibh. Nulla facilisi. Etiam at tortor. Vivamus quis
sapien nec magna scelerisque lobortis.

Curabitur tincidunt viverra justo. Cum sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Sed eros ante, mattis ullamcorper,
posuere quis, tempor vel, metus. Maecenas cursus cursus lacus. Sed risus magna,
aliquam sed, suscipit sit amet, porttitor quis, odio. Suspendisse cursus justo
nec urna. Suspendisse potenti. In hac habitasse platea dictumst. Cras quis
lacus. Vestibulum rhoncus congue lacus. Vivamus euismod, felis quis commodo
viverra, dolor elit dictum ante, et mollis eros augue at est. Class aptent
taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Nulla lectus sem, tristique sed, semper in, hendrerit non, sem. Vivamus
dignissim massa in ipsum. Morbi fringilla ullamcorper ligula. Nunc turpis.
Mauris vitae sapien. Nunc luctus bibendum velit.

Morbi faucibus volutpat sapien. Nam ac mauris at justo adipiscing facilisis.
Nunc et velit. Donec auctor, nulla id laoreet volutpat, pede erat feugiat ante,
auctor facilisis dui augue non turpis. Suspendisse mattis metus et justo.
Aliquam erat volutpat. Suspendisse potenti. Nam hendrerit lorem commodo metus
laoreet ullamcorper. Proin vel nunc a felis sollicitudin pretium. Maecenas in
metus at mi mollis posuere. Quisque ac quam sed massa adipiscing rutrum.
Vestibulum ipsum. Phasellus porta sapien. Maecenas venenatis tellus vel tellus.

Aliquam aliquam dolor at justo. Cum sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Morbi pretium purus a magna. Nullam
dui tellus, blandit eu, facilisis non, pharetra consectetuer, leo. Maecenas sit
amet ante sagittis magna imperdiet pulvinar. Vestibulum a lacus at sapien
suscipit tempus. Proin pulvinar velit sed nulla. Curabitur aliquet leo ac massa.
Praesent posuere lectus vitae odio. Donec imperdiet urna vel ante. In semper
accumsan diam. Vestibulum porta justo. Suspendisse egestas commodo eros.

Suspendisse tincidunt mi vel metus. Vivamus non urna in nisi gravida congue.
Aenean semper orci a eros. Praesent dictum. Maecenas pharetra odio ut dui.
Pellentesque ut orci. Sed lobortis, velit at laoreet suscipit, quam est sagittis
nibh, id varius ipsum quam ac metus. Phasellus est nibh, bibendum non, dictum
sed, vehicula in, sem. Vestibulum ante ipsum primis in faucibus orci luctus et
ultrices posuere cubilia Curae; Mauris sollicitudin. Duis congue tincidunt orci.
Integer blandit neque ut quam. Morbi mollis. Integer lacinia. Praesent blandit
elementum sapien. Praesent enim mauris, suscipit a, auctor et, lacinia vitae,
nunc. Pellentesque habitant morbi tristique senectus et netus et malesuada fames
ac turpis egestas. Praesent lacus diam, auctor quis, venenatis in, hendrerit at,
est. Vivamus eget eros. Phasellus congue, sapien ac iaculis feugiat, lacus lacus
accumsan lorem, quis volutpat justo turpis ac mauris.

\end{document}

具有期望输出的 MWE:

\documentclass[twocolumn]{article}
\usepackage[textsize=footnotesize]{todonotes}
\newcommand{\short}{\todo[inline,caption={},linecolor=red,backgroundcolor=red!25,bordercolor=red]{short ending line}}
\begin{document}

Dapibus, nisi non porttitor iaculis, ligula odio sollicitudin mauris, non luctus
nunc massa a velit. Fusce ac nisi. Integer volutpat elementum metus. Vivamus
luctus ultricies diam. Curabitur euismod. Vivamus quam. Nunc ante. Nulla mi
nulla, vehicula nec, ultrices a, tincidunt vel, enim.

Suspendisse potenti. Aenean sed velit. Nunc a urna quis turpis imperdiet
sollicitudin. Mauris aliquam mauris ut tortor. Pellentesque tincidunt mattis
nibh. In id lectus eu magna vulputate ultrices. Aliquam interdum varius enim.
Maecenas at mauris. Sed sed nibh. Nam non turpis. Maecenas fermentum nibh in
est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames
ac turpis egestasi.
\short

Duis sagittis fermentum nunc. Nullam elementum erat. Quisque dapibus, augue nec
dapibus bibendum, velit enim scelerisque sem, accumsan suscipit lectus odio ac
justo. Fusce in felis a enim rhoncus placerat. Cras nec eros et mi egestas
facilisis. In hendrerit tincidunt neque. Maecenas tellus. Fusce sollicitudin
molestie dui. Sed magna orci, accumsan nec, viverra non, pharetra id, dui.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam placerat mi
vitae felis. In porta, quam sit amet sodales elementum, elit dolor aliquam elit,
a commodo nisi felis nec nibh. Nulla facilisi. Etiam at tortor. Vivamus quis
sapien nec magna scelerisque lobortis scelerisque lobortis.

Curabitur tincidunt viverra justo. Cum sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Sed eros ante, mattis ullamcorper,
posuere quis, tempor vel, metus. Maecenas cursus cursus lacus. Sed risus magna,
aliquam sed, suscipit sit amet, porttitor quis, odio. Suspendisse cursus justo
nec urna. Suspendisse potenti. In hac habitasse platea dictumst. Cras quis
lacus. Vestibulum rhoncus congue lacus. Vivamus euismod, felis quis commodo
viverra, dolor elit dictum ante, et mollis eros augue at est. Class aptent
taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Nulla lectus sem, tristique sed, semper in, hendrerit non, sem. Vivamus
dignissim massa in ipsum. Morbi fringilla ullamcorper ligula. Nunc turpis.
Mauris vitae.
\short

Morbi faucibus volutpat sapien. Nam ac mauris at justo adipiscing facilisis.
Nunc et velit. Donec auctor, nulla id laoreet volutpat, pede erat feugiat ante,
auctor facilisis dui augue non turpis. Suspendisse mattis metus et justo.
Aliquam erat volutpat. Suspendisse potenti. Nam hendrerit lorem commodo metus
laoreet ullamcorper. Proin vel nunc a felis sollicitudin pretium. Maecenas in
metus at mi mollis posuere. Quisque ac quam sed massa adipiscing rutrum.
Vestibulum ipsum. Phasellus porta sapien. Maecenas venenatis tellus vel tellus.

Aliquam aliquam dolor at justo. Cum sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Morbi pretium purus a magna. Nullam
dui tellus, blandit eu, facilisis non, pharetra consectetuer, leo. Maecenas sit
amet ante sagittis magna imperdiet pulvinar. Vestibulum a lacus at sapien
suscipit tempus. Proin pulvinar velit sed nulla. Curabitur aliquet leo ac massa.
Praesent posuere lectus vitae odio. Donec imperdiet urna vel ante. In semper
accumsan diam. Vestibulum porta justo. Suspendisse egestas commodo eros.

Suspendisse tincidunt mi vel metus. Vivamus non urna in nisi gravida congue.
Aenean semper orci a eros. Praesent dictum. Maecenas pharetra odio ut dui.
Pellentesque ut orci. Sed lobortis, velit at laoreet suscipit, quam est sagittis
nibh, id varius ipsum quam ac metus. Phasellus est nibh, bibendum non, dictum
sed, vehicula in, sem. Vestibulum ante ipsum primis in faucibus orci luctus et
ultrices posuere cubilia Curae; Mauris sollicitudin. Duis congue tincidunt orci.
Integer blandit neque ut quam. Morbi mollis. Integer lacinia. Praesent blandit
elementum sapien. Praesent enim mauris, suscipit a, auctor et, lacinia vitae,
nunc. Pellentesque habitant morbi tristique senectus et netus et malesuada fames
ac turpis egestas. Praesent lacus diam, auctor quis, venenatis in, hendrerit at,
est. Vivamus eget eros. Phasellus congue, sapien ac iaculis feugiat, lacus lacus
accumsan lorem, quis volutpat justo turpis ac mauris.

\end{document}

这些\short命令用于产生我想要的视觉输出,我想要一个包来计算线长度并仅突出显示低于阈值(比如 20%)的线。

答案1

仅作为概念证明。\short目前,您确实需要手动将其放在每个段落后面,我同意这并不理想,但我找不到一种方法可以安全地将其挂到每个段落的末尾,而不会影响文档中使用 的其他元素\par

\documentclass[twocolumn]{article}
\usepackage[textsize=footnotesize]{todonotes}

% ----------------------------------
\usepackage{linegoal}

\newlength\myEOLlen
\newcommand{\printshort}{%
    \todo[inline,caption={},linecolor=red,backgroundcolor=red!25,bordercolor=red]{short ending line}%
}
\newcommand{\short}{%
    \setlength\myEOLlen{\linegoal}%
    \dimen0=\dimexpr1pt*\myEOLlen /\columnwidth\relax
    \ifdim\dimen0<.8pt
        \ifdim\dimen0<0pt
            \ifdim-\dimen0<.2pt
                \printshort%
            \fi
        \fi
    \else
        \printshort%
    \fi
}
% ----------------------------------

\begin{document}
    Vivamus eget eros. Phasellus congue, sapien ac iaculis.\short

    Vivamus eget eros. Phasellus congue, sapien ac iaculis feugiat.\short

    Vivamus eget eros. Phasellus congue, sapien ac iaculis feugiat, lacus lacus
    accumsan lorem, quis volutpat justo turpis ac mauris.\short

    \newpage
    Vivamus eget eros. Phasellus congue, sapien ac iaculis feugiat, lacus lacus
    accumsan lorem, quis volutpat justo turpis ac mauris.\short

    Vivamus eget eros. Phasellus congue, sapien ac iaculis feugiat.\short

    Vivamus eget eros. Phasellus congue, sapien ac iaculis.\short
\end{document}

图片

相关内容