我编写了整个文档,没有使用任何类似的包nomencl
,acronym
因为在我的情况下这不是必需的,这意味着我只有几个缩写,应该很容易放在一页上。
我想手动完成,也就是说在表格(或者可能是长表?)环境中手动完成。问题是,我无法修复左侧的缩写列,同时增加与右侧列的距离。如果可能的话,我想用 填充距离cdot
。
因此,列表应由两列组成,左列固定,与右列的距离可变/可改变。
这是我的 MWE tabularx
。如果你编译,你会看到问题:如果距离太小(在本例中为 3 厘米),每个单词都会填充 2 行,而不是 1 行。
\documentclass[a4paper, 12pt, headsepline, smallheadings]{scrreprt}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{3cm}{XX}
US & United States \\
EU & European Union \\
Gvmt & Government \\
\end{tabularx}
\end{document}
请告诉我。如果不可能的话,我可能不得不使用上述某个软件包。但我认为这不是我最有效的方法。
编辑:这似乎是一个更好的 MWE,但我仍然不确定在这种情况下哪种环境最好以及哪种列最好。
\documentclass[a4paper, 12pt, headsepline, smallheadings]{scrreprt}
\usepackage{tabularx}
\begin{document}
\begin{tabular}{p{4cm}p{12cm}}
US & United States \\
EU & European Union \\
Gvmt & Government \\
\end{tabular}
\end{document}
我发现了这一点:通过手动输入创建缩写列表但它无法添加cdots
,并且不适用于较长的缩写,因为列之间的距离太小。我想控制距离。
谢谢。
答案1
创建自己的“缩写”环境。例如
\documentclass{article}
\newcommand{\abbrlabel}[1]{\makebox[3cm][l]{\textbf{#1}\ \dotfill}}
\newenvironment{abbreviations}{\begin{list}{}{\renewcommand{\makelabel}{\abbrlabel}}}{\end{list}}
\begin{document}
\begin{abbreviations}
\item[US] United States
\item[EU] European Union
\item[Gvmt] Government
\end{abbreviations}
\end{document}
调整大小makebox
以适合您的条目。如果您不喜欢这些点,请删除该\dotfill
命令。
如果你想让它看起来更像目录,那么我们必须制作另一个稍微复杂的命令来执行点而不是普通的 TeX \dotfill
。
\makeatletter
\newcommand{\tocfill}{\cleaders\hbox{$\m@th \mkern\@dotsep mu . \mkern\@dotsep mu$}\hfill}
\makeatother
\newcommand{\abbrlabel}[1]{\makebox[3cm][l]{\textbf{#1}\ \tocfill}}
这使用 LaTeX 参数\@dotsep
来控制目录中点的间距。通过\abbrlabel
定义\tocfill
我们得到了这个。
为了控制垂直的间距,我们需要调整\itemsep
添加到每个项目之间的跳过的标准列表维度。作为环境定义的一部分,我们可以将其设置为我们想要的任何值。有了这些额外的功能,示例如下所示:
\documentclass{article}
\makeatletter
\newcommand{\tocfill}{\cleaders\hbox{$\m@th \mkern\@dotsep mu . \mkern\@dotsep mu$}\hfill}
\makeatother
\newcommand{\abbrlabel}[1]{\makebox[3cm][l]{\textbf{#1}\ \tocfill}}
\newenvironment{abbreviations}{\begin{list}{}{\renewcommand{\makelabel}{\abbrlabel}%
\setlength{\itemsep}{0pt}}}{\end{list}}
\begin{document}
\begin{abbreviations}
\item[US] United States
\item[EU] European Union
\item[Gvmt] Government
\end{abbreviations}
\end{document}
并生成了这个稍微更严格的列表。
剩下的唯一问题是确保新环境与周围环境完美契合,并处理异常长的缩写解释。这需要对列表环境的边距进行一些额外的调整,就像这样。
\documentclass{article}
\usepackage{calc}
\usepackage{lipsum}
\makeatletter
\newcommand{\tocfill}{\cleaders\hbox{$\m@th \mkern\@dotsep mu . \mkern\@dotsep mu$}\hfill}
\makeatother
\newcommand{\abbrlabel}[1]{\makebox[3cm][l]{\textbf{#1}\ \tocfill}}
\newenvironment{abbreviations}{\begin{list}{}{\renewcommand{\makelabel}{\abbrlabel}%
\setlength{\labelwidth}{3cm}\setlength{\leftmargin}{\labelwidth+\labelsep}%
\setlength{\itemsep}{0pt}}}{\end{list}}
\begin{document}
\noindent\lipsum[1]
\begin{abbreviations}
\item[US] United States
\item[EU] European Union
\item[Gvmt] Government. \lipsum[2]
\end{abbreviations}
\lipsum[3]
\end{document}
这里我们添加了lipsum
填充文本的包,并calc
允许我们使用+
符号来设置\leftmargin
长度。
对于此类定制,乳胶伴侣是不可或缺的参考资料。
答案2
另一个解决方案是使用水平点对齐列。
它基于enumitem
和etoolbox
包:
\documentclass[12pt, a4paper, oneside, fleqn]{report}
\usepackage[utf8]{inputenc}
\usepackage{enumitem}
\usepackage[showframe, top=2.5cm, left=3.5cm, bottom=2.5cm, right=2.5cm, includehead]{geometry}
\usepackage{etoolbox}
\newlist{mydescription}{description}{1}
\setlist[mydescription, 1]{style = standard, labelwidth=2.5cm, leftmargin = 2.5cm, labelsep = 0pt, itemsep = 1pt}%
\AtBeginEnvironment{mydescription}{%
\let\olditem\item
\renewcommand\item[1][]{\olditem[#1~\dotfill\,]}
}%
\begin{document}
Text text text
\begin{mydescription}
\item[$l_i$] vzdálenost od manometru kústí vté trubice
\item[$r_1$] poloměr $ i $-té trubice
\item[$ Δ p_i$] úbitek statického tleku mezi manometrem a ústim trubice
\end{mydescription}
\end{document}
答案3
一个极简主义的解决方案。如果您想要更多点,请将更多点放在\dots
里面@{$\dots\dots$}
。
\documentclass[a4paper, 12pt]{scrreprt}
\begin{document}
\begin{tabular}{l@{$\dots\dots$}p{12cm}}
US\dotfill & United States \\
EU\dotfill & European Union \\
Gvmt\dotfill & Government \\
\end{tabular}
\end{document}