我想将标题中的部分文本改为小写,而不是整个标题文本。将我想要的部分改为小写无效。我该如何实现?
其中一位评论者要求我发布一个最低限度的工作示例,我已在下面完成。示例中使用的 sig-alternate 样式可以下载这里。
\documentclass{sig-alternate}
\begin{document}
\begin{figure}[t]
\centering
\includegraphics[width=.15\linewidth]{Figures/myfig.eps}
\caption{Sample caption with \textsc{small caps} for some portion.}
\label{fig:myfig}
\end{figure}
\end{document}
答案1
正如我在评论中提到的那样,在无法使用的情况下\scshape
,可以伪造它(参见描述标签中使用小型大写字母吗?)同样的,让假货看起来合理的关键是在垂直和水平方向上使用不同的比例。
然而,在环境中使用时\caption
,必须对其进行\protect
编辑。
水平 lc、垂直 lc 和水平 uc 拉伸参数的值,
\def\Hscale{.80}\def\Vscale{.72}\def\Cscale{1.0}
应根据您使用的特定字体进行定制。
\documentclass{article}
\usepackage[demo]{graphicx}
\newcommand\fauxsc[1]{\fauxschelper#1 \relax\relax}
\def\fauxschelper#1 #2\relax{%
\fauxschelphelp#1\relax\relax%
\if\relax#2\relax\else\ \fauxschelper#2\relax\fi%
}
\def\Hscale{.80}\def\Vscale{.72}\def\Cscale{1.0}
\def\fauxschelphelp#1#2\relax{%
\ifnum`#1>``\ifnum`#1<`\{\scalebox{\Hscale}[\Vscale]{\uppercase{#1}}\else%
\scalebox{\Cscale}[1]{#1}\fi\else\scalebox{\Cscale}[1]{#1}\fi%
\ifx\relax#2\relax\else\fauxschelphelp#2\relax\fi}
\begin{document}
\begin{figure}[t]
\centering
\includegraphics[width=.15\linewidth]{Figures/myfig.eps}
\caption{Sample caption with \protect\fauxsc{fake Small Caps}
and \textsc{real Small Caps} for some portion.}
\label{fig:myfig}
\end{figure}
\end{document}
或者,人们也可以\protect
在定义本身中提出论点:
\newcommand\fauxsc[1]{\protect\fauxschelper#1 \relax\relax}
在这种情况下,参数\protect
中不再需要\caption
。