\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
放在环境中的文本之前和之后。