我想让它C#
在我的书中看起来不错,但需要以下内容:
C\#
它看起来像这样:
实际看起来应该更像这样:
对于第二个,我使用了逐字逐句,但我不想这样,并且我也在各处使用了如下的宏,因此应该很容易替换:
\def\Csharp{C\#}
关于如何使其看起来正确,有什么建议吗?
编辑
我正在写一本编程书,在 C# 语言规范中,它看起来像这样:
答案1
由于 Computer Modern Roman 没有合适的井号,我们需要另寻他处。我尝试了几种流行的字体,发现 Liberation Serif 的井号并不突出,笔刷宽度大致相同,而且不太宽。
不幸的是,由于 Liberation Serif 是一种 TrueType 字体,因此无法与 pdfTeX 一起使用。以下是将其与 XeTeX/LuaTeX 一起使用的代码。
\documentclass{article}
\usepackage{fontspec}
\newfontface\lserif{Liberation Serif}
\newcommand{\Csh}{C{\lserif\#}}
\begin{document}
Some text \Csh{} some text.
\end{document}
pdfTeX 的解决方法
使用 XeTeX/LuaTeX 处理此文件并将结果保存为hash-symbol.pdf
:
\documentclass[border=0pt]{standalone}
\usepackage{fontspec}
\begin{document}% I get extra space without this comment
\fontspec{Liberation Serif}\#
\end{document}
然后使用此代码将符号包含在 pdfTeX 中:
\documentclass{article}
\usepackage{graphicx}
\newcommand{\Csh}{C\includegraphics{hash-symbol}}
\begin{document}
Some text \Csh{} some text.
\end{document}
符号的定位可能略有偏差,请使用\kern
和\raisebox
进行微调。另请注意,这仅适用于一种字体大小;要解决这个问题,\scalebox
可能有用(手动的)。
答案2
就像 egreg 早些时候在他的评论中所说的那样,使用\newcommand{\textsharp}{$\sharp$}
由于 ASCII 不包含升号符号,因此出于必要而使用了井号符号,但正如语言名称所示,它旨在用作升号音符。
附录:您可以始终使用$^\sharp$
它来上标。
答案3
你可以这样做
\documentclass{article}
\usepackage{graphicx}
\newcommand{\Csharp}{%
{\settoheight{\dimen0}{C}C\kern-.05em \resizebox{!}{\dimen0}{\raisebox{\depth}{\#}}}}
\begin{document}
\Huge\Csharp
\end{document}
结果如下;第二行有\fontseries{b}\selectfont\#
,但是笔画似乎太重了:
如果你喜欢使用音乐升号符号,那么
\newcommand{\Csharp}{%
{\settoheight{\dimen0}{C}C\kern-.05em \resizebox{!}{\dimen0}{\raisebox{\depth}{$\sharp$}}}}
答案4
如果你使用特克斯并且你的字体支持它,你可以将 Unicode 字符直接放入源文件中,或者使用\symbol{"266F}
。对于以下字体Linux 浪子,这看起来比好看得多\sharp
,后者似乎使用原始 TeX,而不是寻找合适的尖锐字符: