I'm typesetting a drama script using the dramatist
package, which defines the drama
environment, which is basically a list
environment, and each speech entry is a list item. Since I need to print the script several times, I want to reduce the space between the speech items.
The drama
environment declares as follows:
\newenvironment{drama}{%
\if@lnpa
\PackageWarning{dramatist}{\lnpwarning{a}}
\fi
\if@lnps
\PackageWarning{dramatist}{\lnpwarning{s}}
\fi
\list{}{%
\labelwidth\speakswidth
\itemindent\speaksindent
\itemsep\speechskip
\parsep\Dparsep
\labelsep\Dlabelsep
\let\makelabel\speakslabel}
} {\endlist}
The dimensions are also declared in the dramatist.sty
as follows:
\newdimen\speakswidth
\speakswidth\z@
\newdimen\speaksindent
\speaksindent=-\leftmargin
\newdimen\speechskip
\speechskip\itemsep
\newdimen\Dparsep
\Dparsep\z@
\newdimen\Dlabelsep
\Dlabelsep\labelsep
It even supports reading a config file:
\InputIfFileExists{dramatist.cfg}{\foundfile}{\inputfilewarning}
I figured out that the spacing between the items is probably set by the \speechskip
-dimension, so I tried to create a config file with the following content:
\speechskip=0em
\speaksindent=0em
The package reads that config file, as stated in the log:
Package dramatist Warning: Using Configuration file dramatist.cfg. .
But neither the indents nor the skip between the items changes. I don't know why the config file isn't read correctly, since I think that the declarations of the dimensions I done are correct.
A MWE could look like:
\documentclass[oneside,12pt]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{scrpage2}
\usepackage[utf8]{inputenc}
\usepackage{dramatist}
\usepackage[x11names]{xcolor}
\usepackage{tcolorbox}
\usepackage[bookmarks]{hyperref}
\begin{document}
\newcommand{\role}[1]{\textcolor{blue}{(\textit{#1})}}
\begin{CharacterGroup}{Andere alte Leute}
\GCharacter{Marta \role{Elisa}}{Marta}{marta}
\end{CharacterGroup}
\newcommand{\martax}[1]{\item\leavevmode\begin{tcolorbox}[title=\marta,colframe=red]#1\end{tcolorbox}}
This is the regular document inset.
\begin{drama}
\martax{I can talk}
This is the list inset.
\martax{I can talk}
\martax{I can talk}
\martax{I can talk}
\end{drama}
\end{document}
This produces the following output for me:
Any ideas on how to tighten the distance between the items are greatly appreciated! Thanks in advance ;)
Edit: Christian Hupfer's answer fixed the spacing between the speech boxes, which I very appreciate ;) What about the spacing to the left? Any ideas are welcome ;)
Edit 2: I also tried changing the source of dramatist.sty
directly in order to fix the bad left indentation, but to no avail: (of course for testing purposes only)
\newenvironment{drama}{%
...
\list{}{%
...
\itemindent0em
...
} {\endlist}
and:
\newenvironment{drama}{%
...
\list{}{%
...
\itemindent=0em
...
} {\endlist}
Edit 3: Using Christian Hupfer's new solution, I was able to reduce the left indentation to a minimum. But there's still a tiny bit of spacing towards the left, and a bit more to right, not much, but it gets visible, when a speechbox is next to some other, unindented content like a colored parbox or some normal text (outside the drama environment). Is there a way to fix this last bit of unwanted spacing?
tcolorbox
, which adds a certain amount above and below each box, unless the optionnobeforeafter
is used.