我正在使用 IEEEtranTIE 模板(由IEEE工业电子学报)。
他们稍微修改了 IEEEtran 模板,其中一项修改是改变了标题字体。
为了获取有关字体的信息,我使用了以下宏:
\makeatletter
\newcommand{\showfont}{
Encoding: \f@encoding{},
Family: \f@family{},
Series: \f@series{},
Shape: \f@shape{},
Size: \f@size{}.
}
\makeatother
使用\caption{\showfont}
我得到Encoding: T1, Family: phv, Series: m, Shape: n, Size: 8.
当我使用 subcaption 包添加子图时,如 IEEEtran 所示
\makeatletter
\let\MYcaption\@makecaption
\makeatother
\usepackage[labelformat=simple,font=footnotesize]{subcaption}
\makeatletter
\let\@makecaption\MYcaption
\renewcommand{\thesubfigure}{(\roman{subfigure})}
\makeatother
我在子图中写了一个标题,结果得到了不同的字体系列。
\subcaption{\showfont}
结果为Encoding: T1, Family: ptm, Series: m, Shape: n, Size: 8.
。为了获得一致的外观和感觉,我想设置相同的字体系列(phv
),但略小一些(7)。如何实现这一点?
另外一个问题是,是否可以获取某个环境的字体并将其分配给另一个环境?
类似于(伪代码):
\edef\subcaptionfont\captionfont
或者(说实话我仍然很难理解何时使用\the
):
\edef\subcaptionfont{\the\captionfont}
可能还可以改变某些字段,例如大小或字体系列。
MWE(可以从上面的链接下载 IEEEtranTIE 类):
\documentclass[journal]{IEEEtranTIE}
\usepackage[pdftex,demo]{graphicx}
\usepackage{lipsum}
\makeatletter
\let\MYcaption\@makecaption
\makeatother
\usepackage[labelformat=simple,font=footnotesize]{subcaption}
\makeatletter
\let\@makecaption\MYcaption
\renewcommand{\thesubfigure}{(\roman{subfigure})}
\makeatother
\makeatletter
\newcommand{\showfont}{
Encoding: \f@encoding{},
Family: \f@family{},
Series: \f@series{},
Shape: \f@shape{},
Size: \f@size{}.
}
\makeatother
\title{Title}
\author{Author}
\begin{document}
\maketitle
\begin{abstract}
\lipsum[1-2]
\end{abstract}
\section{title}
\lipsum[1-3]
\begin{figure}[h]
\begin{subfigure}{\columnwidth}
\includegraphics[width=\textwidth]{dummy}
\subcaption{\showfont}
\label{fig1}
\end{subfigure}
\caption{\showfont}
\label{fig0}
\end{figure}
\end{document}
- 编辑 - 随着@TeXnician 的帮助我得到了想要的结果。结果是通过改变加载子标题的部分获得的,即
\usepackage[labelformat=simple,font=footnotesize]{subcaption}
和
\usepackage[labelformat=simple]{subcaption}
\DeclareCaptionFont{myfont}{\fontfamily{phv}\scriptsize\selectfont}
\captionsetup[sub]{font=myfont}
问题的最后一部分仍然有效,可以重新表述如下。
是否可以使用类似的方法将子标题字体设置为继承标题的字体(但不是一个有效的示例,因为\thecaptionfont
不是一个有效的命令):
\usepackage[labelformat=simple]{subcaption}
\DeclareCaptionFont{myfont}{\thecaptionfont\scriptsize\selectfont}
\captionsetup[sub]{font=myfont}
?
答案1
在我看来,你不应该将该类与caption
或subcaption
一起使用。
无论如何,由于字幕使用的字体是\footnotesize\sffamily
,你可以不用
\documentclass[journal]{IEEEtranTIE}
\usepackage[demo]{graphicx}
\usepackage{lipsum}
\makeatletter
\let\MYcaption\@makecaption
\makeatother
\usepackage[labelformat=simple,font={footnotesize,sf}]{subcaption}
\makeatletter
\let\@makecaption\MYcaption
\renewcommand{\thesubfigure}{(\roman{subfigure})}
\makeatother
\makeatletter
\newcommand{\showfont}{
Encoding: \f@encoding{},
Family: \f@family{},
Series: \f@series{},
Shape: \f@shape{},
Size: \f@size{}.
}
\makeatother
\title{Title}
\author{Author}
\begin{document}
\maketitle
\begin{abstract}
\lipsum[1-2]
\end{abstract}
\section{title}
\lipsum[1-3]
\begin{figure}[h]
\begin{subfigure}{\columnwidth}
\includegraphics[width=\textwidth]{dummy}
\subcaption{\showfont}
\label{fig1}
\end{subfigure}
\caption{\showfont}
\label{fig0}
\end{figure}
\end{document}
subfig
这是与该类兼容的设置。
\documentclass[journal]{IEEEtranTIE}
\usepackage[demo]{graphicx}
\usepackage{lipsum}
\usepackage[caption=false]{subfig}
\captionsetup[subfloat]{font={footnotesize,sf}}
\makeatletter
\newcommand{\showfont}{
Encoding: \f@encoding{},
Family: \f@family{},
Series: \f@series{},
Shape: \f@shape{},
Size: \f@size{}.
}
\makeatother
\title{Title}
\author{Author}
\begin{document}
\maketitle
\begin{abstract}
\lipsum[1-2]
\end{abstract}
\section{title}
\lipsum[1-3]
\begin{figure}[htp]
\subfloat[\showfont\label{fig1}]{%
\includegraphics[width=\columnwidth]{dummy}%
}
\caption{\showfont}
\label{fig0}
\end{figure}
\end{document}
输出是一样的。
答案2
这是将两个标题的字体设置为的有效版本ptm
。您可以随意将其更改为其他字体(如果您愿意,您也必须更改标题字体):
\documentclass[journal]{IEEEtran}
\usepackage[demo]{graphicx}
\usepackage{lipsum}
\makeatletter
\let\MYcaption\@makecaption
\makeatother
\usepackage[compatibility=false]{caption}
\DeclareCaptionFont{quackfont}{\fontfamily{ptm}\fontsize{7pt}{9pt}\selectfont}
\usepackage[labelformat=simple,font=quackfont]{subcaption}
\makeatletter
\let\@makecaption\MYcaption
\renewcommand{\thesubfigure}{(\roman{subfigure})}
\makeatother
\makeatletter
\newcommand{\showfont}{
Encoding: \f@encoding{},
Family: \f@family{},
Series: \f@series{},
Shape: \f@shape{},
Size: \f@size{}.
}
\makeatother
\title{Title}
\author{Author}
\begin{document}
\maketitle
\begin{abstract}
\lipsum[1-2]
\end{abstract}
\section{title}
\lipsum[1-3]
\begin{figure}[h]
\begin{subfigure}{\columnwidth}
\includegraphics[width=\textwidth]{dummy}
\subcaption{\showfont}
\label{fig1}
\end{subfigure}
\caption{\showfont}
\label{fig0}
\end{figure}
\end{document}