【问题标题】:How to write programming code containing the ' character in latex?如何在乳胶中编写包含'字符的编程代码?
【发布时间】:2009-11-02 15:42:07
【问题描述】:

我正在尝试使用逐字环境在乳胶中编写编程代码,但是当我编写时

  \begin{verbatim}
     char ch = 'x';
  \end{verbatim}

然后 x 周围的 ' 字符显示不正确(它们看起来“卷曲”)。我该如何解决这个问题?

【问题讨论】:

    标签: latex


    【解决方案1】:

    加载upquote 包以逐字模式修复此问题。

    如果您想在等宽文本模式(例如,\texttt{...})或任何其他字体中使用直引号,那么您可以使用在textcomp 包中定义的\textquotesingle 命令:

    \documentclass{文章} \usepackage{upquote,textcomp} \开始{文档} \newcommand\upquote[1]{\textquotesingle#1\textquotesingle} \动词|'c'| \texttt{\upquote{h}} \textsf{\upquote{h}} \upquote{h} \结束{文档}

    这适用于任何编码而不是依赖于特定字形槽的字体(例如默认OT1 编码中的\char13)。

    【讨论】:

    • 我试过这个,但是\begin{verbatim} \textquotesingle \end{verbatim}的结果是\textquotesingle完整打印出来的。
    • “加载 upquote 包以逐字模式修复此问题。”
    • 这是最好的答案,可惜它已经落后了。
    【解决方案2】:

    在我的序言中添加\usepackage{upquote} 就足够了。

    也许旧版本的 LaTeX 或 upquote 需要更多的工作。

    【讨论】:

    • 这也适用于minted 环境吗?
    • @usernumber 不知道,抱歉。你必须自己测试它:)
    • 这个!我希望这个答案得到更多的支持。非常适合我!
    • 我希望我能投票两次...我回到这里并知道这是解决方案,因为我看到了我多年前的原始投票...
    【解决方案3】:

    我有

    怎么了?

    如果你想得到这样的东西

    \makeatletter
    \let \@sverbatim \@verbatim
    \def \@verbatim {\@sverbatim \verbatimplus}
    {\catcode`'=13 \gdef \verbatimplus{\catcode`'=13 \chardef '=13 }} 
    \makeatother
    

    【讨论】:

    • 引号是“卷曲”,如果我复制一个卷曲引号并将其粘贴到源代码中,则会出现语法错误。
    • 这仅适用于默认的CMTT字体;如果您切换字体,它将无法正常工作。例如,\usepackage[T1]{fontenc}.
    • @Will:没错。我知道。但我想帮忙。我希望我成功了。
    【解决方案4】:

    为了显示源代码,您可以考虑使用listings 包;它非常强大,并提供了显示“直”引号的选项。

    【讨论】:

      【解决方案5】:

      如果您在逐字环境中看到右单引号,那么您的打字机字体中的单右单引号 是卷曲的,这就是您正在做的正确使用的单引号(我假设正在显示一些 C 代码)。

      【讨论】:

      • 好吧,这不是正确的使用方法,因为如果有人从我的 pdf 文档中复制并粘贴代码,那么他或她会收到语法错误,因为编译器需要直接的单引号...
      • 我认为 uckelman 的意思是它是一个直单引号,它只是在使用的字体中看起来是卷曲的...您是否尝试复制和粘贴以查看字符本身是否被修改?
      • 是的,我将它粘贴到 emacs 中,它看起来不像是直接引用。
      • 引号通常是卷曲的,但键盘上的引号键(即在 ascii 中) 是直的。因此,如果您试图表示“要键入的内容”,那么使用大引号是错误的。
      【解决方案6】:

      \textsf{``} 和 \textsf{''} 非常接近直引号。不需要使用任何特殊的包。

      【讨论】:

      • 谢谢,这是我奇怪的 \setmathfont[range... 和 CMU Serif 组合中唯一有效的方法。
      【解决方案7】:

      这是我从另一个来源获得的,并且有效。

      使用 `` 开始双引号(这个符号在我们键盘上的 ~ 符号下面)

      使用 '' 关闭双引号(这个符号在我们键盘上的 " 符号下方)

      所以,``双引号,双引号''

      单引号也是如此,`quote single, unquote single'

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        相关资源
        最近更新 更多