我正在尝试设置我的首字母缩略词列表,并尝试将其用作C#
首字母缩略词,但
\acro{C#}{Eine Programmiersprache von Microsoft}
不起作用,因为#
是保留字符,所以会出现错误
\reserved@a 定义中的参数数量非法。\acro{C#}
所以我尝试将其转义为\#
。但这也不起作用:
\acro{C\#}{Eine Programmiersprache von Microsoft}
缺少插入的 \endcsname。 \acro{C\#}{Microsoft 的程序员语言}
我也在 Google 上搜索过,Missing \endcsname
这似乎是由此处的非法字符引起的\
。
我也看到了一些关于的答案,catcode
但如果有其他解决方案,建议不要使用它。
还有其他解决方案吗?
或者我应该C Sharp
在首字母缩略词列表中使用它?如果是这样,我该如何C#
在文本中使用它?
答案1
(免责声明:我绝对确定有重复的,但我找不到它。)
来自acronym
文档:
在
acronym
环境中,缩写词使用以下命令定义:
\acro{<acronym>}[<short name>]{<full name>}
。第一个参数 <缩写> 是首字母缩略词字符串本身,用于上一节的命令(例如
\ac
或 )\acl
,用于打印首字母缩略词的不同形式。因为内部命令采用 <缩写> 为了存储首字母缩略词的不同形式,首字母缩略词的 TEX 代码受 限制\csname
。如果首字母缩略词需要有问题或复杂的 TEX 内容(字体命令,...),则可以在可选参数 < 中给出此代码简称>. 第一个参数 <缩写> 是一个更简单的字符串,用于识别首字母缩略词。例如,water 的首字母缩略词可能如下所示:
\acro{H2O}[$\mathrm{H_2O}$]{water}
然后
\acs{H2O}
获取 H 2 O 并\acl{H2O}
打印“水”。
的第一个参数\acro
就像一个标签,因此应该只包含 中允许的字符\csname...\endcsname
。“复杂”格式(例如,在本例中为升号)可以作为可选参数传递。
\acro{Csharp}[C\#]{Eine Programmiersprache von Microsoft}
或者
\acro{Csharp}[C$\sharp$]{Eine Programmiersprache von Microsoft}
有关输入升号的可能方法,请参阅如何在 C Sharp(C#)中创建正确的井号。