LaTeX

Længde af "title"

15. november 2011 af denner5 - Niveau: Universitet/Videregående

Hej derude

Mit (luksus)problem er som følger:

Jeg er ved at lave et udkast til en forside til mine dokumenter og vil her gerne have en streg (rule) over og under titlen. Dette er ikke noget problem, men jeg vil gerne have lavet det sådan at disse streger ændrer længde efter titlens længde (noget i retning af \rule{1.5\titlelenght}{1pt} ). 

Jeg har fundet en metode til at få længden af et bestemt ord, men her kræves at ordet skrives manuelt ind hver gang. 

Er det muligt enten at definere en kommando, som skriver titlen, så jeg kan indsætte denne i kommandoen, som bestemmer "ordlængden"?

Eller at definere en kommando, som "bare" giver længden af titlen?

Det virker som et luksusproblem, men samtidig (med LaTeX's muligheder i baghovedet) tror jeg sagtens det lade sig gøre, jeg kan bare ikke gennemskue det. 

Mit dokument:

 

\documentclass[oneside,a4paper,11pt]{memoir}

 

%Længde af titel:

\newlength{\titlelenght}

\newcommand{\gettitlelenght}[1]{

\settowidth{\titlelenght}{#1}

}

%Som det ses her skal jeg manuelt skrive "Titel" og skriftstørrelsen og fonten:

\gettitlelenght{\HUGE\bfseries Titel}

 

%Ny kommando til forsiden:

\newcommand{\supervisors}[1]{%

\gdef\supB{#1}}

\newcommand{\supB}{}

\renewcommand{\maketitlehookc}{%

\vspace{2\baselineskip}\noindent \supB}

 

\supervisors{

\begin{center}\emph{Supervisors}\end{center}\vspace{\baselineskip}}

 

%Forsiden:

\pretitle{\begin{center}\HUGE\bfseries\rule{1.5\titlelenght}{1pt}}

\title{\\Titel\\}

\posttitle{\vspace*{-0.55em}\rule{1.5\titlelenght}{1pt}\par\end{center}\vskip 0.5em}

\preauthor{\begin{center}

\Large \lineskip 0.5em%

\begin{tabular}[t]{c}}

\author{Forfatter\thanks{Tak/sidebemærkning}}

\postauthor{\end{tabular}\par\end{center}}

\predate{\vfill\begin{center}\Large}

\date{\today}

\postdate{\par\end{center}}

 

 

\begin{document}

 

\begin{titlingpage}

\maketitle

\end{titlingpage}

 

\end{document}


Brugbart svar (3)

Svar #1
15. november 2011 af daleif (Slettet)

(1) Tilføj varwidth pakken til dit dokument

(2) anvend følgende

\pretitle{%
  \begin{lrbox}{\dlf}% gem i box, saa vi kender bredden
    \begin{varwidth}{0.8\textwidth}% vi skal bruge en box, men saa skal
                                % vi kende bredden, dumt. Her er en
                                % box som vi sætter en max bredde paa,
                                % justerer selv ned
      \HUGE\bfseries\centering% justering indeni boxen
    }
    \posttitle{%
      \par% vigtig for at faa linieafstand som passer med fonten
    \end{varwidth}% slut indre kasse
  \end{lrbox}% slut med at gemme kassen
  % nu kan vi bruge kassen
  \begin{center}
    \rule{1.3\wd\dlf}{1pt}\par
    \vskip0.5em
    \usebox{\dlf}\par
    \vskip0.5em
    \rule{1.3\wd\dlf}{1pt}
  \end{center}
  \vskip 0.5em}

(husk der må ikke være blanke linier, det kom der da jeg kopierede din kode)

Jeg synes måske at 1.5 titelbredde er lidt rigeligt


Svar #2
15. november 2011 af denner5

0. Mange tak for svaret.

1. Gjort.

2. Er der korrekt forstået at jeg skal udskifte \pretitle og \posttitle med dine definitioner og definere en \title{Titel}? (Dette giver nemlig et par fejl, men vil lige være sikker på jeg gør det rigtigt før jeg poster disse)

3. De blanke linjer du hentyder til, er det i .tex filen du mener? 


Brugbart svar (3)

Svar #3
15. november 2011 af daleif (Slettet)

(2) ja, hvis det giver fejl så post det. Du skal naturligvis ikke anvende den titel du anvendte, for man starter eller slutter jo ikke en titel med //

(3) ja


Brugbart svar (2)

Svar #4
15. november 2011 af daleif (Slettet)

(2) mente naturligvis \\ ikke //


Svar #5
15. november 2011 af denner5

Koden er som før, bortset fra dette:

 

%Forsiden:

\pretitle{%

\begin{lrbox}{\dlf}% gem i box, saa vi kender bredden

\begin{varwidth}{0.8\textwidth}% vi skal bruge en box, men saa skal

% vi kende bredden, dumt. Her er en

% box som vi sætter en max bredde paa,

% justerer selv ned

\HUGE\bfseries\centering% justering indeni boxen

}

\title{Titel}% NY TITEL

\posttitle{%

\par% vigtig for at faa linieafstand som passer med fonten

\end{varwidth}% slut indre kasse

\end{lrbox}% slut med at gemme kassen

% nu kan vi bruge kassen

\begin{center}

\rule{1.3\wd\dlf}{1pt}\par

\vskip0.5em

\usebox{\dlf}\par

\vskip0.5em

\rule{1.3\wd\dlf}{1pt}

\end{center}

\vskip 0.5em}

\preauthor{\begin{center}

\Large \lineskip 0.5em%

\begin{tabular}[t]{c}}

\author{Forfatter\thanks{Tak/sidebemærkning}}

\postauthor{\end{tabular}\par\end{center}}

\predate{\vfill\begin{center}\Large}

\date{\today}

\postdate{\par\end{center}}

 

Jeg får fejl:

Undefined control sequence.<argument> \dlf \maketitle

Missing number, treated as zero.<to be read again> \hbox \maketitle

Undefined control sequence.<argument> 1.3\wd \maketitle


Brugbart svar (3)

Svar #6
15. november 2011 af daleif (Slettet)

Ups, glemte

(1a) \newsavebox\dlf


Svar #7
15. november 2011 af denner5

Jeg indsætter denne:

...

\newsavebox\dlf
\begin{lrbox}{\dlf}

Og det virker uden fejl. 

 Endnu engang, tak for hjælpen.


Brugbart svar (3)

Svar #8
15. november 2011 af daleif (Slettet)

Den skal IKKE inden i makroerne, den skal udenfor


Svar #9
15. november 2011 af denner5

Det er hermed gjort, tak. 


Skriv et svar til: Længde af "title"

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.