我在制作列表程序时遇到问题,我想这样做:
以我为例:
\documentclass{article}
\usepackage{listing}
\usepackage{amsmath}
\begin{document}
$\underbrace{Example1}_{Example2}$\\
\\
$\overbrace{EXample}^{Example}$
\end{document}
但是,我想用以下方法替换Example1
和Example2
:
\lstinline+\documentclass[a4paper, 12pt]+
\lstinline+Pilihan+
并将示例 3 和示例 4 替换为:
\lstinline+\documentclass{article}+
\lstinline+Pilihan Kelas+
我怎样才能做到?
答案1
如果你必须要做到这一点,可以使用tikzmark
。但请注意,您要选择一个合适的转义字符,该字符永远不会在列表本身中使用。
不过我不推荐这样做。它需要手动编辑您的列表源,这可能可行也可能不可行,具体取决于列表的长度。还有比这更好、更清晰的方法来解释源代码。
\documentclass{article}
\usepackage{listings,tikz}
\usetikzlibrary{decorations.pathreplacing,tikzmark}
\usetikzmarklibrary{listings}
\lstset{basicstyle=\ttfamily}
\begin{document}
\begin{lstlisting}[language={[LaTeX]TeX},escapechar=|]
|\tikzmark{mark1begin}|\documentclass[<options>]|\tikzmark{mark1end}|{|\tikzmark{mark2begin}|<class name>|\tikzmark{mark2end}|}
\end{lstlisting}
\begin{tikzpicture}[overlay,remember picture]
\draw[overlay,decorate,decoration={brace},yshift=2ex]
(pic cs:mark1begin) -- (pic cs:mark1end) node[midway,above] {[illegible]};
\draw[overlay,decorate,decoration={brace,mirror},yshift=-0.3em]
(pic cs:mark2begin) -- (pic cs:mark2end) node[midway,below] {[illegible]};
\end{tikzpicture}
\end{document}
答案2
这是一个尝试,但我不确定 OP 真正需要什么。
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{listings}
\begin{document}
\begin{tcblisting}{listing only,arc=0mm,auto outer arc}
\documentclass[<options>]{<documentclassname>}
\begin{document}
\tableofcontents
\chapter{section}
\end{document}
\end{tcblisting}
\end{document}
答案3
$\texttt{\textbackslash}\overbrace{\texttt{documentclass[<options>]}}^{\textrm{above text}}\underbrace{\texttt{\{<options<\}}}_{\textrm{below text}}$
下次请发布质量更好的图像。
编辑:在您编辑之后,我认为您不能混合数学模式和列表环境......我的是一个解决方法。