如何打破 \rule 的界限?

如何打破 \rule 的界限?

有没有一种简单的方法可以打破多行规则?例如,让它像文本一样继续流动,而不是直接穿过页面边框?

具体来说,我正在尝试排版测试问题。

以下是 MWE:

\documentclass[11pt]{article}
\usepackage{enumitem}
\usepackage[left=2cm,right=2cm,bottom=2cm,top=2cm]{geometry}
\usepackage[onehalfspacing]{setspace}

\begin{document}

\begin{enumerate}[label=(\arabic*)]
\item Ap sala kemae njeuqsket jquakmdk a kameiuwma ke eiqkamk jekamska keialk
oela \rule{6cm}{0.15mm}.
\end{enumerate}

\end{document}

我得到的是:

在此处输入图片描述

我想要得到的是在此处输入图片描述

但行的第一部分会延伸到文本宽度的末尾,然后中断并继续下一行。(“所需”输出是通过对命令进行两次调用来排版规则\rule,并在两次调用之间进行手动换行来完成\\的。)

答案1

我引入了\breakablerule与 相同的参数\rule。它使用长度 的段来构建规则\drule,这里初始化为 2pt。最后一段的长度可能小于\drule,以满足总体长度目标。

\documentclass[11pt]{article}
\usepackage{enumitem}
\usepackage[left=2cm,right=2cm,bottom=2cm,top=2cm]{geometry}
\usepackage[onehalfspacing]{setspace}
\newlength\rulegoal
\newlength\drule
\setlength{\drule}{2pt}
\newcommand\breakablerule[3][0pt]{\setlength{\rulegoal}{#2}\breakableruleaux{#1}{#3}}
\newcommand\breakableruleaux[2]{%
  \ifdim\rulegoal>\drule\relax%
    \rule[#1]{\drule}{#2}\allowbreak%
    \def\next{\breakableruleaux{#1}{#2}}%
  \else
    \rule[#1]{\rulegoal}{#2}%
    \def\next{}%
  \fi 
  \addtolength{\rulegoal}{-\drule}%
  \next%
}
\begin{document}
\begin{enumerate}[label=(\arabic*)]
\item Ap sala kemae njeuqsket jquakmdk a kameiuwma ke eiqkamk jekamska 
  keialk oela \breakablerule[-3pt]{6cm}{0.15mm}.
\item Ap sala kemae njeuqsket jquakmdk a kameiuwma ke eiqkamk jekamska  
  \breakablerule{6cm}{0.15mm}.
\item Ap sala kemae njeuqsket jquakmdk a kameiuwma ke eiqkamk 
  \breakablerule{6cm}{0.15mm}.
\end{enumerate}
\end{document}

在此处输入图片描述

可能有一种方法可以直接与领导者一起做到这一点。

答案2

对于一次性使用,你可以使用\hrulefill \\和另一个\rule固定宽度的组合来手动断线:

在此处输入图片描述

\documentclass{article}

\usepackage{enumitem}
\usepackage[margin = 2cm, showframe]{geometry}
\usepackage[onehalfspacing]{setspace}

\begin{document}

\begin{enumerate}[label=(\arabic*)]
  \item Ap sala kemae njeuqsket jquakmdk a kameiuwma ke eiqkamk jekamska keialk
  oela \rule{6cm}{0.15mm}.

  \item Ap sala kemae njeuqsket jquakmdk a kameiuwma ke eiqkamk jekamska keialk
  oela \hrulefill \\
  \rule{5cm}{.4pt}.% \hrulefill has .4pt thickness
\end{enumerate}

\end{document}

相关内容