默认的磅符号较大且位于基线以下。
我觉得它太丑了,我想把它缩小一点。其他人建议使用\texttt
,但我在文档中经常使用等宽字体,如果我将 (#) 设置为等宽字体,它看起来应该被突出显示为代码,但事实并非如此。我也不喜欢那样的输出。
我怎样才能将它缩小到与普通大写字母一样高?
这些是我正在使用的所有影响字体输出的软件包:
\documentclass[oneside,11pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{inconsolata} % preferred monospaced font
\begin{document}
X \# \texttt{\#} X % "X" to denote size of capital letters
\end{document}
答案1
\mypound
由于 Latin Modern 似乎是您首选的字体系列,因此下面示例中使用的定义可能就是您正在寻找的。
\documentclass[oneside,11pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx} % for \scalebox and \raisebox macros
\newcommand\mypound{\scalebox{0.8}{\raisebox{0.4ex}{\#}}}
\begin{document}
X\#X, X\mypound X
\end{document}
附录解决 OP 的后续评论。宏\scalebox
和\raisebox
是“脆弱的”(在 LaTeX 意义上),这个事实导致了您遇到的错误消息。宏的“健壮的”(再次使用 LaTeX 术语)版本\mypound
将是
\newcommand\mypound{\protect\scalebox{0.8}{\protect\raisebox{0.4ex}{\#}}}
最后,如果您希望能够继续使用\#
生成(现在已调整大小的)符号的指令#
,则可以使用以下定义:
\renewcommand\#{\protect\scalebox{0.8}{\protect\raisebox{0.4ex}{\char"0023}}}
如果您采用这种方法并发现还需要排版“原始”井号/哈希符号,则需要将其输入为\char"0023
。
答案2
以下是对 的位置和大小的细微调整\#
:
\usepackage{adjustbox}
\let\oldhash\#%
\DeclareRobustCommand{\#}{\adjustbox{valign=B,totalheight=.57\baselineskip}{\oldhash}}%
adjustbox
确保valign=B
框的底部位于基线上,而totalheight=.57\baselineskip
确保它的大小与当前字体中的大写字母差不多。当然,人们可以进行完美的调整,但这实际上并没有太大的区别。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern,adjustbox}
\begin{document}
\noindent
\begin{minipage}[t]{.5\textwidth}
\tiny abc \# ABC
\footnotesize abc \# ABC
\small abc \# ABC
\normalsize abc \# ABC
\large abc \# ABC
\Large abc \# ABC
\LARGE abc \# ABC
\huge abc \# ABC
\Huge abc \# ABC
\end{minipage}%
\begin{minipage}[t]{.5\textwidth}
\let\oldhash\#%
\DeclareRobustCommand{\#}{\adjustbox{valign=B,totalheight=.57\baselineskip}{\oldhash}}%
\tiny abc \# ABC
\footnotesize abc \# ABC
\small abc \# ABC
\normalsize abc \# ABC
\large abc \# ABC
\Large abc \# ABC
\LARGE abc \# ABC
\huge abc \# ABC
\Huge abc \# ABC
\end{minipage}%
\end{document}
该命令非常强大,可以避免在某些情况下过早扩展(例如章节标题,包括写入文件)。