如何以与 SE 网站上相同的方式使用“`”?

如何以与 SE 网站上相同的方式使用“`”?

在任何 SE 帖子中,都可以使用反引号(“`”)来将某些文本标记为一段代码或计算机输出。例如:void main()

有没有办法在 LaTeX 文档中以相同的方式使用“`”?

答案1

除了 Werner 的答案之外,该listings包也可以实现同样的功能。要取消定义简写,请使用\lstDeleteShortInline`

请注意,使用 ` 作为内联代码的转义字符很可能会与语言功能包(如)发生冲突babel

\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\ttfamily}
\begin{document}
\lstMakeShortInline`

Here is some inline code `\int f(x) \, \mathrm{d}x`

\end{document}

在此处输入图片描述

答案2

您可以使用以下方式定义自己的逐字速记fancyvrb\DefineShortVerb

在此处输入图片描述

\documentclass{article}

\usepackage{fancyvrb}
\DefineShortVerb{\`}

\begin{document}

On any SE post one can use the quote in order to highlight a text.
For example, `this text is highlighted`.

\end{document}

要删除此功能,请使用\UndefineShortVerb{\`},因为它可能会干扰`代码中的其他用途。

答案3

为了这个目的,使用"|而不是更自然,因为在 LaTeX 中被翻译为“foo”。```foo''

有多个包可以为此定义简短的逐字命令。最基本的是shortvrb,它是 LaTeX 基础包的一部分doc

\documentclass{article}

\usepackage{shortvrb}
\MakeShortVerb|
% \DeleteShortVerb|

\begin{document}

Short verbatim: |foo#bar|

\end{document}

正如 Werner 和 Henri Menke 所说,您还可以使用fancyvrbgmverbnewverbs来实现此功能,或者使用listings语法高亮支持。

但有时你不想使用逐字文本,只需要特殊字体或颜色。那么你可以使用一些技巧自己定义一个单字符命令:

\documentclass{article}

\newcommand\MakeShortHighlight[2][\texttt]{%
  \begingroup\lccode`\~=`#2\lowercase{\endgroup
    \def~##1~{#1{##1}}}%
  \catcode`#2=\active}
\newcommand\DeleteShortHightlight[1]{%
  \catcode`#1=12 }

\usepackage{xcolor}

\begin{document}

\MakeShortHighlight\"
Short highlighted: "typewriter text"


\MakeShortHighlight[\textcolor{red}]\|
Short highlighted: |red color|

\end{document}

在此处输入图片描述

答案4

这并不能完美地回答您的问题,但我更喜欢使用命令来执行您想要的操作。也许其他人会发现这很有用。

\documentclass{article}

\newcommand{\code}[1]{\texttt{\detokenize{#1}}}

\begin{document}

This command allows you to type \code{void main()} inline in your paragraphs.

\end{document}

示例输出

免责声明:此命令无法正确处理磅号 (#)。如果您知道如何扩展此命令以处理磅号,请随时发表评论(如果没有任何依赖项,则可获得加分!)。

相关内容