我正在.tex
文件中定义新命令。这是我的代码:
\newcommand{\subhead}[1]
{
{\itshape \flushright \subheadfont --#1 \par}
}
我将定义一个命令,将一些文本(来自参数)作为书中某篇文章的独立副标题。但是,此命令中的参数文本不是斜体。问题是什么?我该如何修复?
谢谢〜
一些补充:写下我写的整个文档可能会有所帮助:
\documentclass{book}
\usepackage{fontspec} %Use Chinese fonts
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
\setmainfont{Microsoft YaHei}
\newfontfamily\subheadfont{FZLiShu-S01S} %Define '\subheadfont'
\newcommand{\subhead}[1]{{\itshape \flushright \subheadfont --#1 \par}}
\begin{document}
\chapter{My Article}
\subhead{This is 副标题}
Some content in the article. 一些中文内容。
\end{document}
答案1
该软件包xeCJK
提供了AutoFakeSlant
选项。还有AutoFakeBold
。我没有您调用的字体,因此我将使用 Arial Unicode MS 来说明这一点。
请注意,拉丁字母自此以拉丁现代字体排版,\setCJKmainfont
并且\newCJKfontfamily
仅影响表意文字。
\documentclass{book}
\usepackage{xeCJK} %Use Chinese fonts
\setCJKmainfont{Arial Unicode MS}
\newCJKfontfamily\subheadfont[AutoFakeSlant]{Arial Unicode MS} %Define '\subheadfont'
\newcommand{\subhead}[1]{{\itshape \flushright \subheadfont --#1 \par}}
\begin{document}
\chapter{My Article}
\subhead{This is 副标题}
Some content in the article. 一些中文内容。
\end{document}
答案2
嗯……我来陈述一下实验结果。看来问题不是出在新的命令定义上。\subheadfont
比如,当我把 改为其他字体定义时,Times New Roman
把一些英文单词写成 subhead(即\subhead{This is subhead}
),英文字符就可以排成斜体。而且,当我采用中文字体时,中文字符就不能排成斜体了。并且xelatex
给出了一些警告:
LaTeX Font Warning: Some font shapes were not available, defaults substituted
因此,我认为是因为我采用的字体不包含斜体字符。
其实我不知道字体具体是怎么工作的。这只是我的猜测。也许有这方面的专家可以给出更正确的答案:D
一些补充:
我在网上查了很多资料,发现中文其实没有粗体或斜体的概念。之所以要加粗或斜体,是因为中文在很多应用中Microsoft Word
都是假的。另外,在LaTeX中也可以强制将字形变为斜体或粗体,但不建议这样做。为了强调一篇文章中的某些信息,最好使用一些专用字体(例如一些黑色字体)来做到这一点。
欲了解更多信息,请参阅JustFont 博客。