我在逐字环境中有一些行
...
\begin{verbatim}
line 1
* line 2
line 3
* line 4
line 5
\end{verbatim}
...
我想在某些行的开头添加上标数字。我现在用星号表示。我该怎么做?
答案1
您可以使用包numbers
中的选项fancyvrb
:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\begin{Verbatim}[numbers=left]
First verbatim line.
Second verbatim line.
\end{Verbatim}
\end{document}
如果数字必须以上标形式出现,则在序言中添加以下内容:
\renewcommand{\theFancyVerbLine}{\textsuperscript{\arabic{FancyVerbLine}}}
现在,原始问题已被编辑,您可以使用commandchars
在逐字代码中引入转义序列的选项:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\begin{Verbatim}[commandchars=\\\{\}]
First verbatim line.
\textsuperscript{1}Second verbatim line.
Third verbatim line.
\textsuperscript{2}Fourth verbatim line.
\end{Verbatim}
\end{document}
答案2
更新: 不知道为什么我之前没有看到你想使用数字而不是星号。这是一个版本,它允许你使用^1
给定数字添加上标以产生结果:
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstdefinestyle{myVerbatimStyle} {
basicstyle=\ttfamily,
moredelim=[is][\color{blue}\ttfamily\kern-0.1ex\textsuperscript]{^}{\ },
}
\begin{document}
\begin{lstlisting}[style=myVerbatimStyle]
line 1
^1 line 2
line 4
^2 line 5
\end{lstlisting}
\end{document}
请注意,这确实要求您留下空格,如^1 line
。如果您不喜欢,另一个选择是^
在两侧使用字符并将行更改moredelim
为:
moredelim=[is][\color{blue}\ttfamily\kern-0.1ex\textsuperscript]{^}{^},
在这种情况下,您可以使用^1^line
,但我认为带有空格的更好。
这是一个修改后的解决方案,使用包裹listings
,它会自动将星号添加上标,并添加颜色使其突出显示:
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstdefinestyle{myVerbatimStyle} {
basicstyle=\ttfamily,
otherkeywords={*},
morekeywords={*},
keywordstyle={\color{red}\ttfamily\kern-0.1ex\textsuperscript},
}
\begin{document}
\begin{lstlisting}[style=myVerbatimStyle]
line 1
*line 2
line 3
*line 4
line 5
\end{lstlisting}
\end{document}
旧解决方案:和包裹listings
您可以使用mathescape=true
,这意味着您可以将任何数学运算括在内,$...$
并且它将被格式化:
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[mathescape=true]
line 1
${}^\ast$ line 2
line 3
${}^\ast$ line 4
line 5
\end{lstlisting}
\end{document}