将第三列添加到首字母缩略词

将第三列添加到首字母缩略词

我在报告中使用该acronym包来处理首字母缩略词、符号和常量。我希望常量列表与其他两个列表略有不同。我想使用宏来\acroextra{}添加常量的值并将它们打印在第三列中。

目前我有这样的东西:

\documentclass[10pt]{report}

\usepackage[utf8]{inputenc}
\usepackage[]{acronym}

\begin{document}
\large \textbf{Symbols}
\begin{acronym}[longest]
\acro{lam}[$\lambda$]{wavelength}
\acro{temp}[$T$]{Temperature}
\end{acronym}

\large \textbf{Constants}
\begin{acronym}[longest]
\acro{c}[$c$]{speed of light \acroextra{299 792 458 m/s}}
\acro{sig}[$\sigma$]{Stefan–Boltzmann constant \acroextra{$5.670367 10^{-8}$ W/(m$^2$K$^4$)}}
\end{acronym}

\vspace{1in}

Some text and acro calls
\end{document}

得出:

原来的

我希望结果是这样的:

通缉

我可以使用环境中的第二个宽度 ( \begin{acronym}[longest short][longest long]) 或其他东西来使其工作吗?如果更简单的话,值也可以右对齐。

答案1

您可以使用\makebox[width][position]{text}命令。框包含您的常量名称。框的宽度由可选参数指定width。您可以使用(flushleft)、 (flushright)...position指定框内文本的位置。值可以放在框后面。为了更容易处理,我将框放在一个新命令中,如下所示:lr

\newcommand{\acrosecondcolumn}[1]{
      \acroextra{\makebox[55mm][l]{#1}}
    }

示例条目:

\acro{c}[A]{\acrosecondcolumn{B}C}

1.列:A ---空白--- 2.列:B ---空白--- 3.列:C

解决方案:

在此处输入图片描述

梅威瑟:

\documentclass[10pt]{report}

\usepackage[utf8]{inputenc}
\usepackage[]{acronym}

\newcommand{\acrosecondcolumn}[1]{
  \acroextra{\makebox[55mm][l]{#1}}
}

\begin{document}
\large \textbf{Symbols}
\begin{acronym}[longest]
\acro{lam}[$\lambda$]{wavelength}
\acro{temp}[$T$]{Temperature}
\end{acronym}

\large \textbf{Constants}
\begin{acronym}[longest]
\acro{c}[A]{\acrosecondcolumn{B}C}
\acro{c}[$c$]{\acrosecondcolumn{speed of light}299 792 458 m/s}
\acro{sig}[$\sigma$]{\acrosecondcolumn{Stefan–Boltzmann constant}$5.670367 10^{-8}$ W/(m$^2$K$^4$)}
\end{acronym}
\vspace{1in}
Some text and acro calls
\end{document}

答案2

一个带有包的解决方案,比考虑它的可配置性和功能glossaries更强大一点。acronym

这里symbolvalue定义了一个具有特殊键的新词汇表,它是我的答案的变体。这里回答类似的问题。

确保按此顺序运行(假设文档名为foo.tex

  1. pdflatex foo
  2. 制作词汇表 foo
  3. pdflatex foo

\documentclass{book}
\usepackage{siunitx}
\usepackage[nomain]{glossaries}              % use glossaries-package


\setlength{\glsdescwidth}{15cm}

\newglossary[slg]{symbolslist}{syi}{syg}{Symbolslist} % create add. symbolslist


\glsaddkey{symbolvalue}{\glsentrytext{\glslabel}}{\glsentrysymbolvalue}{\GLsentrysymbolvalue}{\glssymbolvalue}{\Glssymbolvalue}{\GLSsymbolvalue}
\glssetnoexpandfield{symbolvalue}

\makeglossaries                                   % activate glossaries-package


% ==== EXEMPLARY ENTRY FOR SYMBOLS LIST =========================================
\newglossaryentry{symb:Pi}{name=\ensuremath{\pi},
  description={Geometrical symbol},
  symbolvalue={},
  type=symbolslist
}

\newglossaryentry{planck}{
  name=\ensuremath{h},
  description={Planck's constant},
  symbolvalue={\SI{6,6d-34}{\joule\second}},
  type=symbolslist
}

\newglossaryentry{lightspeed}{
  name=\ensuremath{c},
  description={Speed of light},
  symbolvalue={\SI{299792432}{\meter/\second}},
  type=symbolslist
}





\newglossarystyle{symbsymbolvaluelong}{%
\setglossarystyle{long3col}% base this style on the list style
\renewenvironment{theglossary}{% Change the table type --> 3 columns
  \begin{longtable}{lp{0.6\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
  {\end{longtable}}%
\renewcommand*{\glossaryheader}{%  Change the table header
  \bfseries Sign & \bfseries Description & \bfseries Value \\
  \hline
  \endhead}
\renewcommand*{\glossentry}[2]{%  Change the displayed items
  \glstarget{##1}{\glossentryname{##1}} %
  & \glossentrydesc{##1}% Description
  & \glssymbolvalue{##1}  \tabularnewline
}
}


\begin{document}
\glsaddall
\printglossary[type=symbolslist,style=symbsymbolvaluelong]   % list of symbols
\end{document}

在此处输入图片描述

相关内容