新环境-查找输入的长度

新环境-查找输入的长度

我正在尝试定义一个新环境,其中输入文本放置在一个迷你页面内,其宽度等于输入文本的长度(类似于可变宽度框)。我希望在框上方添加一条水平线,其长度大于输入文本(例如 1.5*input-text-width),如下所示:

在此处输入图片描述

虽然有很多方法可以创建可变宽度的框,但我没有看到一种方法可以在框上画一条线,其长度与输入文本相关。我相信确定输入文本的长度是正确的方法。在新命令,长度很容易确定,因为输入文本可以称为#1。我的问题是如何确定新环境的输入文本长度。更确切地说,正文在新环境中定义?

最小工作示例是:

\documentclass{article}

\newenvironment{varlength}{
\begin{center}
\rule{0.9\textwidth}{0.8pt}

\begin{minipage}{0.6\textwidth}}{
\end{minipage}
\end{center}}


\begin{document}
\begin{varlength}
This is a text inside fixed length minipage with over-line

I want the same to be repeated for variable width box
\end{varlength}
\end{document}

答案1

“输入的长度”没有多大意义,因为 TeX 使用参数的当前值\hsize(通常等于\textwidthLaTeX 中的值)以固定大小排版段落。

您可以使用以下方法制作适应其内部材料大小的迷你页面varwidth

\documentclass{article}
\usepackage{varwidth}

\newsavebox{\varlengthbox}
\newenvironment{varlength}
 {\begin{lrbox}{\varlengthbox}\begin{varwidth}{\textwidth}}
 {\end{varwidth}\end{lrbox}
  \begin{center}
  \rule{1.5\wd\varlengthbox}{0.4pt}\\
  \usebox{\varlengthbox}
  \end{center}}

\begin{document}

\begin{varlength}
This is a text inside fixed length\\
minipage with over-line

I want the same to be repeated for\\
variable width box
\end{varlength}

\end{document}

在此处输入图片描述

相关内容