我需要一个列表,其中每个条目都有一个编号;下划线的长度刚好足以容纳一个人的姓名首字母;并且这些后面都跟着文字。
当然,文本需要有不同的长度,因为每行都有不同的文本;但首字母下划线的长度必须相同。但是,似乎不可能强制首字母线保持相同的大小。我希望它们位于文本之前,但我将它们放在文本之后,因为目前似乎唯一有效的解决方法是执行右跳以限制右侧边距;但是,这(以及所有其他接近有效的解决方案)需要逐行手动调整 \hspace,以便在这里将其移远一点,在那里将其移近一点。首字母线永远不会完全具有相同的大小,并且手动调整显然太费力了。
我在 stackexchange 上找到的所有 \linewidth 或 \textwidth 或类似解决方案都无法解决这个问题;当我尝试实现它们时,它们都返回错误消息。感谢您提供的任何帮助。
我没有使用编号列表功能(如果这很重要的话)。到目前为止,我的代码是:
%[cls file, etc.]
\usepackage{fancyhdr}
\usepackage{longtable}
\usepackage{colortbl}
\usepackage{enumitem}
\usepackage{mathabx}
\usepackage{tabularx}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
[...]
\vspace{.15cm}
\rightskip=3cm
\hspace{.25in} 1. Text of a certain length \hspace{.15in} \hrulefill \\
\vspace{.15cm}
\rightskip=3cm
\hspace{.25in} 2. Shorter text \hspace{1.25in} \hrulefill \\
\vspace{.15cm}
\rightskip=3cm
\hspace{.25in} 3. Long long long long long long long text \hspace{.8in} \hrulefill \\
\end{document}
答案1
以下是将首字母缩写规则置于文本之前的解决方案。(水平线只是为了说明文本块的宽度。)该解决方案\parbox
对首字母缩写规则和相关文本都使用了 es。
\documentclass{article}
% simplified preamble:
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{lipsum}
\newlength\initialsboxwidth
\setlength\initialsboxwidth{1cm} % set to suit your needs
\newlength\textboxwidth
\setlength\textboxwidth{3.5in}
\newcommand\initialsbox{%
\parbox{\initialsboxwidth}{\null\hrulefill}}
\newcommand\mynum[2]{
\par\vspace*{.15in}
\noindent\hspace{0.25in}%
#1.\quad\initialsbox\quad%
\parbox[t]{\textboxwidth}{\raggedright #2}\par}
\begin{document}
\hrule % just to indicate width of textblock
\mynum{1}{Text of a certain length}
\mynum{3}{Shorter text}
\mynum{9}{Long long long long long long long long long long long long long long long text}
\end{document}