\hrulefill 突然消失

\hrulefill 突然消失

我正在使用该csquote包编写一个引文,其 Tex 代码是:

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage{lipsum}

\begin{document}

\lipsum[1]

\blockquote{\noindent\hrulefill \\
Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi auctor lorem non justo. Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut massa. Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis. Pellentesque cursus luctus mauris.\\
\noindent\hrulefill}

\lipsum[3]

\end{document}

一开始它运行正常,线条与文本宽度匹配。当我在处理文档的其他部分时重新运行排版命令后,底部的线条消失了。

我尝试在 blockquote 之后和之外插入该行,但它再次出现(甚至出现多行)。它为什么消失了?我没有更改代码中的任何内容。

示例文本是实际文本,而不是\lipsum[2]因为我需要实际文本来重现问题(如果我编写它并在其后面放置规则命令,则规则会再次出现)。

答案1

blockquote不缩进其参数文本,因此不需要\noindent。但是,要提供整行填充,请在行首设置一些内容(无内容):

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage{csquotes,lipsum}

\begin{document}

\lipsum[1]

\blockquote{\mbox{}\hrulefill \par
Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. 
Morbi auctor lorem non justo. Nam lacus libero, pretium at, lobortis 
vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan 
bibendum, erat ligula aliquet magna, vitae ornare odio metus a mi. 
Morbi ac orci et nisl hendrerit mollis. Suspendisse ut massa. Cras 
nec ante. Pellentesque a nulla. Cum sociis natoque penatibus et 
magnis dis parturient montes, nascetur ridiculus mus. Aliquam 
tincidunt urna. Nulla ullamcorper vestibulum turpis. Pellentesque 
cursus luctus mauris. 
\\\mbox{}\hrulefill}

\lipsum[3]

\end{document}

如果您希望更频繁地使用这种装饰,则可以将其合并到固定命令中,而不是手动添加水平线。它提供一致性下面是一个使用正则tabular设置引号的例子(当然,放弃分页):

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage{lipsum}

\newcommand{\blockquote}[1]{\par\bigskip{%
  \centering\begin{tabular}{p{.85\linewidth}}
    \hline \\[\dimexpr-\normalbaselineskip+5pt] #1 \\[5pt] \hline
  \end{tabular}\par}\bigskip}
\begin{document}

\lipsum[1]

\blockquote{%
Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. 
Morbi auctor lorem non justo. Nam lacus libero, pretium at, lobortis 
vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan 
bibendum, erat ligula aliquet magna, vitae ornare odio metus a mi. 
Morbi ac orci et nisl hendrerit mollis. Suspendisse ut massa. Cras 
nec ante. Pellentesque a nulla. Cum sociis natoque penatibus et 
magnis dis parturient montes, nascetur ridiculus mus. Aliquam 
tincidunt urna. Nulla ullamcorper vestibulum turpis. Pellentesque 
cursus luctus mauris.}

\lipsum[3]

\end{document}

为了允许分页显示此类引文,还可以考虑mdframed

答案2

如果你希望所有 s 都采用这种风格\blockquote,那么你可以使用

\renewcommand{\mkblockquote}[4]{\hrulefill\par#1#2#4#3\par\hrulefill}

这重新定义了各种blockquote命令的显示方式(当它超过给定的阈值并排版为显示的引文时)。有关不同参数含义的详细信息,请参阅手册第 8.7 节。

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage{lipsum}
\renewcommand{\mkblockquote}[4]{\hrulefill\par#1#2#4#3\par\hrulefill}

\begin{document}

\lipsum[1]

\blockquote{Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi auctor lorem non justo. Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut massa. Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis. Pellentesque cursus luctus mauris.}

\lipsum[3]

\end{document}

相关内容