2

I want to use \verb inside of \IfLanguageName. But I get the error message \verb ended by end of line. ...ame{english}{... \verb| echo Hello | ...}{}. I want to show only one language at the same time.

\documentclass{article}

\usepackage{iflang}
\begin{document}
\setlanguage{english}

\IfLanguageName{swedish}{... \verb| echo Hello | ...}{}
\IfLanguageName{english}{... \verb| echo Hello | ...}{}

\end{document}
ikreb
  • 491

1 Answers1

2

You could define an environment. By defining \Stop to be the same as \fi we get a manageable syntax.

\documentclass{article}
\usepackage[swedish,english]{babel}

\usepackage{iflang}

\makeatletter
\newenvironment{languageswitch}
 {\expandafter\let\csname Start@\languagename\endcsname\@empty}
 {\ignorespacesafterend}
\newcommand{\Start}[1]{%
  \@ifundefined{Start@#1}{\iffalse}{\iftrue\ignorespaces}%
}
\let\Stop\fi
\makeatother

\begin{document}

\section{English}

\begin{languageswitch}
\Start{swedish}
... \verb| echo svenska | ...
\Stop
\Start{english}
... \verb| echo English | ...
\Stop
\end{languageswitch}

\section{Swedish}

\selectlanguage{swedish}

\begin{languageswitch}
\Start{swedish}
... \verb| echo svenska | ...
\Stop
\Start{english}
... \verb| echo English | ...
\Stop
\end{languageswitch}

\end{document}

enter image description here

egreg
  • 1,121,712