缩短 LaTeX 中的长度

缩短 LaTeX 中的长度

我正在尝试创建一个二分对象,该对象\textwidth最多具有一个,并且不会从右侧溢出,但具有作为参数给出的分隔符​​的宽度。

我尝试通过使用第一个可选参数缩放左侧,然后从右侧减去相同数量来实现此目的。问题是,这无法编译。错误消息含糊地提到需要\relax一个数字,但我不明白为什么它不起作用。

\newcommand{\bipart}[3][0.06]
{
  \noindent
  \begin{minipage}[h]{#1\textwidth} %fine
    #2
  \end{minipage}
  \vrule \hspace{0.15in}
  \begin{minipage}[h]{(0.85-#1)\textwidth} %fails
    #3
  \end{minipage}
  \vspace{0.15in}
  \normalsize
}

一个解决方法是添加另一个可选参数并始终自己进行计算,但是我不喜欢这样做,除其他外,因为我需要重新编号参数。

答案1

“裸露的” LaTeX 无法理解(0.85-#1)\textwidth,你必须帮助它。

\documentclass[draft]{article}
\usepackage{xfp}

\usepackage{lipsum}% for context

\ExplSyntaxOn
\cs_new_eq:NN \dimeval \dim_eval:n
\ExplSyntaxOff

\newcommand{\bipart}[3][0.06]{%
  \par
  \addvspace{\topsep}
  \noindent
  \begin{minipage}{#1\textwidth} %fine
    #2
  \end{minipage}%
  \hspace{0.15in}%
  \vrule
  \hspace{0.15in}%
  \begin{minipage}{\dimeval{\fpeval{1-#1}\textwidth-0.3in-0.4pt}}
    #3
  \end{minipage}
  \par
  \addvspace{\topsep}
}

\begin{document}

\lipsum[1][1-3]
\bipart{a}{\lipsum[2][1-3]}
\lipsum[3]

\end{document}

我改变了算法:垂直线两边各有 0.15 英寸(左边有一个标准的单词间空间,右边有 0.15 英寸)。

另一个的宽度minipage计算为“乘以#10.3in \textwidth(填充)减去 0.4pt(规则)的补数”。

我还在顶部和底部添加了垂直空间,而不仅仅是底部。

在此处输入图片描述

相关内容