我正在编写我的 LaTex 文档,我想用acknowledgement
两种语言创建一个部分:首先用我的母语(意大利语)编写,然后用英语编写文档的其余部分。
我正在使用创建如下图所示的致谢部分的文档类sapthesis
,但我无法做到我想做的事。
我为此使用的代码如下:
\begin{acknowledgments}
acknowledgments in my mothertongue...and after in english
\end{acknowledgments}
我的想法是创建一个自己的环境(例如命名myAcknowledgement
),其中顶部有一个用意大利语写的 Ringraziamenti 部分,而下面(在同一页面中)有一个Acknowledgements
用英语写的类似部分。
(两种acknowledgements
语言)都进入一页。我希望这一页之后是一页空白页。
答案1
对于一次性应用,只需使用一个肮脏的技巧:
\documentclass[PhD]{sapthesis}
\usepackage[italian,english]{babel}
\usepackage{lipsum}
\begin{document}
\begin{otherlanguage*}{italian}
\begin{acknowledgments}[Ringraziamenti]
\lipsum*[2]
\end{acknowledgments}
\end{otherlanguage*}
\vspace{3\bigskipamount}
\begin{otherlanguage*}{english}% just a trick for localizing \cleardoublepage
\let\cleardoublepage\relax
\begin{acknowledgments}
\lipsum*[3]
\end{acknowledgments}
\end{otherlanguage*}
\end{document}
答案2
改进的版本,带有键值接口,可\cleardoublepage
根据需要进行设置。(注意:blindtext
会抱怨,italian
但这不是真正的问题!)
\documentclass[PhD]{sapthesis}
\usepackage[english,italian]{babel}
\usepackage{xkeyval}
\usepackage{xparse}
\makeatletter
\define@boolkey{sap}{clearpageafter}[true]{%
}
\define@boolkey{sap}{clearpagebefore}[true]{%
}
\newcommand{\SAP@AcknowledgmentsLabelenglish}{Acknowledgments}
\newcommand{\SAP@AcknowledgmentsLabelitalian}{Ringraziamenti}
\presetkeys{sap}{clearpagebefore=true,clearpageafter=true}{}
\RenewDocumentEnvironment{acknowledgments}{O{english}D<>{}}{%
\setkeys{sap}{#2}%
\ifKV@sap@clearpagebefore
\cleardoublepage%
\thispagestyle{empty}
\fi%
\begin{otherlanguage}{#1}%
\noindent{\Large\bfseries\csname SAP@AcknowledgmentsLabel#1\endcsname}\par\vspace{0.5cm}\itshape\noindent\ignorespaces
}{%
\end{otherlanguage}%
\ifKV@sap@clearpageafter
\cleardoublepage%
\fi%
\null\ignorespacesafterend
}
\makeatother
\usepackage{blindtext}
\begin{document}
\blindtext
\begin{acknowledgments}[italian]<clearpageafter=false>
\blindtext
\end{acknowledgments}
\begin{acknowledgments}<clearpagebefore=false>
\blindtext
\end{acknowledgments}
\blindtext[5]
\end{document}