在环境中设置新字体

在环境中设置新字体

\centering我正在定义一个新环境来以天城文显示一些文本,但是尽管在环境中进行了定义,但文本似乎并未居中:

\documentclass{article}
\usepackage{fontspec}

\newfontfamily\myfont[Script=Devanagari,Scale=1.5]{Sanskrit 2003}

\newenvironment{myverse}
 {\myfont
 {\parskip=0pt\par\nopagebreak\centering}
 {\par\noindent\ignorespacesafterend}
 }


\begin{document}
\begin{myverse}
कर्मण्येवाधिकारस्ते मा फलेषु कदाचन  । \\
मा कर्मफलहेतुर्भूः मा ते सङ्गोऽस्त्वकर्मणि ॥
\end{myverse}

Some text with translation.

\end{document}

输出:未定心

如果我使用\setmainfont,中心将按预期出现:

\documentclass{article}
\usepackage{fontspec}

\newfontfamily\myfont[Script=Devanagari,Scale=1.5]{Sanskrit 2003}

\newenvironment{myverse}
 {\parskip=0pt\par\nopagebreak\centering}
 {\par\noindent\ignorespacesafterend}



\begin{document}
\setmainfont[Script=Devanagari,Scale=1.25]{Sanskrit 2003}

\begin{myverse}
कर्मण्येवाधिकारस्ते मा फलेषु कदाचन  । \\
मा कर्मफलहेतुर्भूः मा ते सङ्गोऽस्त्वकर्मणि ॥
\end{myverse}

Some text with translation.

\end{document}

输出:居中输出

我该如何使用\newenvironment才能使定心工作?

答案1

你的环境定义有误,应按如下方式使用:

\newenvironment{myverse}
 {\parskip=0pt\par\nopagebreak\centering\myfont}
 {\par\noindent\ignorespacesafterend}

PS 正确的语法是:

\newenvironment{name}[num]{before}{after}

其中name是新环境的名称,num是选项的数量,和before分别after放在环境中的文本之前和之后。

相关内容