【问题标题】:How to write "C++" in LaTeX如何在 LaTeX 中编写“C++”
【发布时间】:2011-02-13 01:31:24
【问题描述】:

如何在 LaTeX 中编写“C++”以使输出看起来不错。例如C$++$ 不好看:加号太大,空间太大。

【问题讨论】:

标签: latex


【解决方案1】:

texlogos中有一个\cpluspluslogo命令“'+'符号正确定位”。

关于 TeX - LaTeX Stack Exchange 的其他讨论Prettiest way to typeset “C++” (cplusplus)?.

【讨论】:

    【解决方案2】:

    我发现下面的结果很好:

    \def\Cplusplus{C\raisebox{0.5ex}{\tiny\textbf{++}}}
    

    【讨论】:

    • 我喜欢这个结果,而且不需要添加一大堆额外的东西。
    【解决方案3】:

    这个answer,对于 tex 网站上的同一个问题,给出了我认为很好看的方法。

    %C++
    \newcommand\Cpp{C\nolinebreak[4]\hspace{-.05em}\raisebox{.4ex}{\relsize{-3}{\textbf{++}}}}
    %C#
    \newcommand\Csh{C\nolinebreak[4]\hspace{-.05em}\raisebox{.4ex}{\relsize{-3}{\textbf{\#}}}
    

    【讨论】:

    • 无法编辑,因为编辑队列已满,但 C# 行缺少关闭 }。
    【解决方案4】:

    我一直在使用下面的代码在我的硕士论文中键入一个漂亮的 C++。代码已从german forum 逐字复制。您应该能够将所有代码复制粘贴到一个新的 .tex 文档中,然后为您挑选相关的东西......

    \documentclass{article}
    \usepackage{relsize}
    \usepackage{lipsum}
    
    %c from texinfo.tex
    \def\ifmonospace{\ifdim\fontdimen3\font=0pt }
    
    %c C plus plus
    \def\C++{%
    \ifmonospace%
        C++%
    \else%
        C\kern-.1667em\raise.30ex\hbox{\smaller{++}}%
    \fi%
    \spacefactor1000 }
    
    %c C sharp
    \def\Csharp{%
    \ifmonospace%
        C\#%
    \else%
        C\kern-.1667em\raise.30ex\hbox{\smaller{\#}}%
    \fi%
    \spacefactor1000 }
    
    \begin{document}
    \begin{center}
    {\Huge C++ $\rightarrow$ \C++ \& \Huge C\# $\rightarrow$ \Csharp}\\
    \bigskip
    \ttfamily
    {\Huge C++ $\rightarrow$ \C++ \& \Huge C\# $\rightarrow$ \Csharp}\\
    \bigskip
    \sffamily
    {\Huge C++ $\rightarrow$ \C++ \& \Huge C\# $\rightarrow$ \Csharp}
    \end{center}
    \section{\C++}
    \lipsum[1]
    \subsection{\Csharp}
    \lipsum[1]
    \end{document}
    

    【讨论】:

    • 谢谢!!结果很好......我在代码中不理解的一个问题......你怎么能在没有数学环境或 \Huge 之后的 \verb 的情况下放置 C++?
    • 对不起,我不明白你的问题。 \Huge 只是在代码中,以使其更加明显。如果您使用文件开头的定义,您应该能够在任何环境中的任何位置编写 \C++...
    • 好的,谢谢,我对加号的使用有点困惑。我坚持认为数学环境是必不可少的,但现在我意识到并非如此。 xD
    • 不错;对我来说看起来更好一点: \def\ifmonospace{\ifdim\fontdimen3\font=0pt } \def\Cpp{% \ifmonospace{C++}\else{C\kern-.13em\raise.65ex\hbox{ \textbf{\tiny{++}}}}\fi \spacefactor1000 }
    • 很好的答案,虽然我更喜欢 \textsf{C\kern-.05em\raise.43ex\hbox{\smaller[5]{\textbf{+\kern-.04em+}}} }
    【解决方案5】:

    这是我很久以前用过的:

    \newcommand*{\Cpp}{C\ensuremath{++}\xspace}
    

    \Cpp 一样使用(需要xspace 包)。但正如你所说,它并不是真的很漂亮。

    【讨论】:

      【解决方案6】:

      此类情况的标准解决方案是逐字逐句:

      \verb!C++!
      

      【讨论】:

      • 我喜欢这个解决方案,但 C 看起来很糟糕......不像其他文本,所以我想将加号附加到普通 C 我尝试这样做但不起作用:C \thinspace\动词!++!
      • 我明白了 C{}\verb!++!...这看起来是我想要的。
      • 但是我该如何定义,不会吞下下面的空格;这样做:\def\cpp{C{}\texttt{++}}
      • @user643722 你可以在定义中包含一个不间断的空格(~),但通常你在命令之后转义空格,所以 LaTeX 知道它是一个实际的空格:“\cpp\ 很有趣”。否则,它认为空间只是将对 \cpp 的调用与测试的其余部分分开
      • @user643722 空间被解析器吞噬,因此您无法在定义中修复它。我自己看到和使用的方法是将宏括在大括号中,例如“{\cpp} is fun”,这使解析器无需依赖以下空格来注意到宏名称已结束。
      【解决方案7】:

      您可以尝试使用打字机字体。

      \texttt{C++}
      

      【讨论】:

        猜你喜欢
        • 2012-10-23
        • 2011-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-08
        • 1970-01-01
        • 2021-02-12
        • 1970-01-01
        相关资源
        最近更新 更多