在我的 tabularray 表中,缩写词(使用缩写包)没有像预期的那样展开。只有缩写词的缩写形式才会打印,即使缩写词在文档中第一次出现也是如此。解决方法是使用长版本 \acl{阿克罗} 然后是 (\acs{阿克罗}) 从我的角度来看,我在 MWE 第 3 行中使用的不是一个解决方案。
\documentclass[12pt]{article}
\usepackage{tabularray}
\usepackage[printonlyused]{acronym}
\usepackage{hyperref}
\begin{document}
I lost my \ac{USB} stick.
\begin{tblr}[long]{
colspec = {c Q[0.6\textwidth] c},
vlines, hlines}
No. & Interface & Year\\
1 & \ac{HDMI} is a proprietary audio/video interface for transmitting \ldots & 2002\\
2 & \ac{DVI} is a video display interface developed by the \ac{DDWG}. & 1999\\
3 & \acl{SATA} (\ac{SATA}) is a computer bus interface \ldots & 2000
\end{tblr}
I found my \ac{USB} stick!
\section{Abbreviations}
\begin{acronym}[TDMA]
\acro{USB}{Universal Serial Bus}
\acro{DVI}{Digital Visual Interface}
\acro{DDWG}{Digital Display Working Group}
\acro{SATA}{Serial AT Attachment}
\acro{HDMI}{High Definition Multimedia Interface}
\end{acronym}
\end{document}
答案1
我们遇到这个明显的错误是因为tabularray
必须渲染每个单元格两次:第一次只是测量单元格的大小,第二次是实际排版表格时。感谢一个要求从acro
包作者那里,tabularray
现在有一个布尔变量,我们可以检查它来发现是否tabularray
正在测量单元格的大小或实际打印最终产品。
以下是我们如何利用该tabularray
钩子来处理该acronym
包。此解决方案至少需要 tabularray 版本 2023A 2023-03-01。
- 我们创建了在环境中使用的新命令
tblr
(从技术上讲,我们可以在任何地方使用它们),用于测试 的布尔值\lTblrMeasuringBool
。如果为真,则tabularray
表示正在测量单元格大小,并且我们不希望它将首字母缩略词标记为已使用,因此我们让它改用带星号的首字母缩略词命令。如果为假,则我们按原样继续进行。 - 我们将对环境
acronym
中的包宏的调用更改tblr
为我们刚刚创建的宏的名称。
\documentclass[12pt]{article}
\usepackage{tabularray}
\usepackage[printonlyused]{acronym}
\usepackage{hyperref}
\newcommand\tblrac[1]{%
\IfBooleanT{\lTblrMeasuringBool}{\ac*{#1}}%
\IfBooleanF{\lTblrMeasuringBool}{\ac{#1}}}
\newcommand\tblracp[1]{%
\IfBooleanT{\lTblrMeasuringBool}{\acp*{#1}}%
\IfBooleanF{\lTblrMeasuringBool}{\acp{#1}}}
\begin{document}
I lost my \ac{USB} stick.
\begin{tblr}[expand=\expanded,long]{
colspec = {c Q[0.6\textwidth] c},
vlines, hlines}
No. & Interface & Year\\
1 & \tblrac{HDMI} is a proprietary audio/video interface for transmitting \ldots & 2002\\
2 & \tblrac{DVI} is a video display interface developed by the \tblracp{DDWG}. & 1999\\
3 & \tblrac{SATA} is a computer bus interface \ldots & 2000
\end{tblr}
I found my \ac{USB} stick!
\section{Abbreviations}
\begin{acronym}[TDMA]
\acro{USB}{Universal Serial Bus}
\acro{DVI}{Digital Visual Interface}
\acro{DDWG}{Digital Display Working Group}
\acro{SATA}{Serial AT Attachment}
\acro{HDMI}{High Definition Multimedia Interface}
\end{acronym}
\end{document}
您可能注意到我已将您的“DDGW”首字母缩略词改为复数。虽然这在上下文中没有意义,但它演示了如何将这个问题的答案扩展到其他acronym
包命令,其中有 21 个: