多语制和德语口语

多语制和德语口语

我正在使用polyglossia并尝试使德语输入guillemets更容易一些。但是我的以下定义TeX-file不起作用:第一种情况给出»Text«第二种情况我得到">Text"<

% !TEX TS-program = LuaLaTeX
\documentclass[parskip = full]{scrartcl}
%% ----------------------------------------------------------------
\usepackage[babelshorthands=true]{polyglossia}
\setmainlanguage{german}
\usepackage[german=guillemets]{csquotes} % \enquote{}
\newcommand{\myquote}[1]{">#1"<}
%% ----------------------------------------------------------------
\begin{document}
\verb!">Text"<! gives ">Text"< . % ok

\verb!\myquote{Text}! gives \myquote{Text}. % wrong

\verb!\enquote{Text}! gives \enquote{Text}. % ok 

\end{document}

我可以像上面一样使用csquote-package\usepackage[german=guillemets]{csquotes}\enquote{Text}。但为什么要混合使用呢?

答案1

您需要将其设置"为活动状态以使定义起作用。

\documentclass[parskip = full]{scrartcl}
%% ----------------------------------------------------------------
\usepackage[babelshorthands=true]{polyglossia}
\setmainlanguage{german}
\usepackage[german=guillemets]{csquotes} % \enquote{}

\catcode`"=\active
\newcommand{\myquote}[1]{">#1"<}
\catcode`"=12
%% ----------------------------------------------------------------
\begin{document}
\verb!">Text"<! gives ">Text"<. % ok

\verb!\myquote{Text}! gives \myquote{Text}. % wrong

\verb!\enquote{Text}! gives \enquote{Text}. % ok

\end{document}

在此处输入图片描述

或者,无需明确设置 catcode,

\begingroup\lccode`~=`" \lowercase{\endgroup
  \newcommand{\myquote}[1]{~>#1~<}%
}

但是当然,

\newcommand{\myquote}[1]{»#1«}

更容易。

相关内容