转义方括号

转义方括号

我想使用一些文本作为某些命令的可选参数。文本包含方括号 ([]),但由于可选参数位于方括号内,因此会发生意外情况。

更多信息:我想要一个项目符号为引文的逐项列表,例如 [GMR85]。我使用了这个命令:

\开始{逐项列举}
  \item[[GMR85]] ...
\end{逐项列举}

但它将第一个]作为可选参数的结束。

有办法逃脱吗]

编辑:我特别希望它能在 中发挥作用beamer。我目前的结果是这样的:

请注意]未包含标签。

编辑2

漏洞在最新版本中已经得到解决beamer

答案1

将引用分组...

\documentclass{article}
\begin{document}

\begin{itemize}
  \item[{[GMR85]}] ...
\end{itemize}
\end{document}

Beamer 包让事情变得稍微困难​​一些。

\documentclass{beamer}
\begin{document}

\def\braces#1{[#1]}

\begin{frame}{frame title}
\begin{itemize}
  \item[\braces{GMR95}] ...
\end{itemize}
\end{frame}

\end{document}

这对我来说很好。

答案2

根据 Charles Stewart 的评论和 Matten 的回答,我进行了以下比较。我建议遵循 Stewart 的建议。如果我们坚持使用 itemize 环境而不是 description,项目符号项将扩展到左侧并越过左边距。

替代文本

\documentclass[dvipsnames]{article}
\usepackage{xcolor}
\usepackage[showframe=true,margin=30mm]{geometry}
\usepackage{showexpl}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\SX@codeInput}{xleftmargin=0pt,xrightmargin=0pt}{}
  {\typeout{***Successfully patched \protect\SX@codeInput***}}
  {\typeout{***ERROR! Failed to patch \protect\SX@codeInput***}}
\makeatother
\lstset{%
  literate={ï}{}0
         {»}{}0
         {¿}{}0,
    breaklines=true,
    breakindent=0pt,    
    basicstyle=\ttfamily\scriptsize,
    keywordstyle=\color{blue}\sffamily\bfseries,
    commentstyle=\color{Green}\itshape,                                 
    stringstyle=\rmfamily,                          
    showstringspaces=false,
    backgroundcolor=\color{Yellow!30},
    frame=single,
    framerule=0.4pt,
    rulecolor=\color{red},
    framesep=3pt,
    xleftmargin=3.4pt,
    xrightmargin=3.4pt,
    tabsize=2,%
    explpreset={pos=b}%
}
\begin{document}

\begin{LTXexample}
\begin{description}
  \item{[GMR85]} I am happy.
  \item{[GMR86]} Are you happy?
\end{description}
\end{LTXexample}


\begin{LTXexample}
\begin{itemize}
  \item[{[GMR85]}] I am happy.
  \item[{[GMR86]}] Are you happy?
\end{itemize}
\end{LTXexample}

\end{document}

相关内容