5

I wan't to typeset a radio script, which will look like this example.

Basically, a column with the name of the role and another column with the text.

Because I'm using this script for non-native speakers also, I'd like to implement a third column where annotations for vocabulary can be made. The third column should be roughly 20%-25% of the total width of the page.

This is how I would imagine it to look like: Example of radio script text

What is the most efficient way to do this?

It would be great if you could provide a MWE of your solution.

2

If you don't actually want the glosses to appear in the margin, but rather within the bounds of the textblock, you can fake it in the following way. (If you do want them in the margins, it is even easier to do it.)

\documentclass{article}
\usepackage[
  showframe,% just for visualization purposes
]{geometry}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xparse}
\usepackage{changepage}% for: {adjustwidth}
\usepackage{ragged2e}%   for: better line-breaking in narrow text blocks
\usepackage{enumitem}
\setlist[description]{
  font={\sffamily\bfseries},
  labelsep=0pt,
  labelwidth=\transcriptlen,
  leftmargin=\transcriptlen,
}

% Lengths:
\newlength{\transcriptlen}
\newlength{\glosswidth}

% How much space for the glosses?
\setlength{\glosswidth}{3cm}

\newenvironment{radio}%
{\begin{adjustwidth}{}{\glosswidth}
 \begin{description}}%
{\end{description}
 \end{adjustwidth}}


\NewDocumentCommand {\setspeaker} { mo } {%
  \IfNoValueTF{#2}
  {\expandafter\newcommand\csname#1\endcsname{\item[#1:]}}%
  {\expandafter\newcommand\csname#1\endcsname{\item[#2:]}}%
  \IfNoValueTF{#2}
  {\settowidth{\transcriptlen}{#1}}%
  {\settowidth{\transcriptlen}{#2}}%
}


% Easiest to put the longest name last...
\setspeaker{mike}[MIKE]
\setspeaker{thresa}[THRESA]
\setspeaker{andrew}[ANDREW]

% How much of a gap between speakers and text?
\addtolength{\transcriptlen}{1em}%


% glossing command
\newcommand{\gloss}[2]{%
  \glmaintext{#1}%
  \glmark
  \marginpar{\hspace*{-\glosswidth}%
    \RaggedRight\glmargintext{#2}}}
\newcommand*{\glmark}{}
\newcommand*{\glmaintext}[1]{\emph{#1}}
\newcommand*{\glmargintext}{\footnotesize\sffamily\itshape}

\begin{document}
\noindent
I wan't to typeset a radio script, which will look like this example.

Basically, a column with the name of the role and another column with
the text.

Because I'm using this script for non-native speakers also, I'd like
to implement a third column where annotations for vocabulary can be
made. The third column should be roughly 20\%--25\% of the total width
of the page.

This is how I would imagine it to look like:

\begin{radio}

  \mike Hello, how are you \gloss{doing}{to do: etwas Machen}, I'm
  wondering whether any of the issues with other answers will still
  \gloss{apply}{to apply: anwenden}.

  \andrew This is just one line.

  \thresa This is a multiple line text without annotations on the
  right side.

  \andrew This is just one line.

  \thresa This is a multiple line text without annotations on the
  right side.


  \thresa This is a multiple line text without annotations on the
  right side.

  \andrew This is just one line.
\end{radio}
%
Because I'm using this script for non-native speakers also, I'd like
to implement a third column where annotations for vocabulary can be
made. The third column should be roughly 20\%--25\% of the total width
of the page.

\end{document}

Since your question does not have an MWE, I have had to make a number of assumptions (such as \documentclass)....

radio.png

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.