Seite 1 von 1

Kapitälchen in caption / Überschrift

Verfasst: Mi 22. Aug 2012, 13:14
von eduardinho
Hallo,

ich möchte/muss Kapitälchen für ein Wort in einer Bildunterschrift verwenden. Dafür würde ich eigentlich ja den Befehl \textsc{Name} verwenden.
Die Schriftart, die vorgegeben ist, Frontpage besitzt keine Kapitälchen. Ich gehe davon aus, dass das der Grund dafür ist.
Word faked in diesem Fall die Kapitälchen, was immerhin besser als nichts ist.

Hat hier jemand vielleicht eine Lösung wie ich denn nun Kapitälchen in eine Bildunterschrift oder in die Überschrift bekomme? Vielleicht auch mit einem Trick, dass ich für das eine Wort die Schriftart ändere oder ähnliches?

Danke für eure Hilfe.

Verfasst: Do 23. Aug 2012, 00:40
von cgnieder
Falsche Kapitälchen sollte man ja eigentlich meiden. Nun klingt es so, als hättest Du die widersprüchliche Vorgabe, eine Schrift ohne Kapitälchen zu verwenden, und dennoch letztere anzuwenden. In diesem Fall könnte evtl sowas gehen:
\documentclass{article}
\usepackage{relsize}

\newcommand\fakesc[1]{\relsize{-2}{\uppercase{#1}}}

\begin{document}

Ein Text und falsche \fakesc{kapitaelchen}

\end{document}
oder ohne extra Paket (von hier):
\documentclass{article}
\usepackage[T1]{fontenc}

\makeatletter
\newlength\fake@f
\newlength\fake@c
\newcommand\fakesc[1]{%
  \begingroup%
  \xdef\fake@name{\csname\curr@fontshape/\f@size\endcsname}%
  \fontsize{\fontdimen8\fake@name}{\baselineskip}\selectfont%
  \uppercase{#1}%
  \endgroup%
}
\makeatother


\begin{document}

Ein Text und falsche K\fakesc{apitaelchen}

\end{document}
Sieht in beiden Fällen natürlich eher besch…eiden aus :(
Grüße

Verfasst: Do 23. Aug 2012, 13:57
von eduardinho
Hallo cgnieder,

vielen Dank für deine Hilfe. Wie du richtig sagst, ist jetzt nicht gerade eine optimale lösung, aber bringt mich auf jeden Fall weiter.

Interessant ist, dass bei der zweiten Variante ein Fehler angezeigt wird, es aber trotzdem ausgegeben wird.

Fehler: Undefined control sequence ...er Zyklenanzahl N.}

Weißt du wo da der Fehler liegen könnte?

Außerdem habe ich den Eindruck, dass die Buchstaben bei der ersten Variante etwas zu groß und bei der zweiten etwas zu klein waren. Kann man die Buchstabengröße dabei irgendwie variieren?

Verfasst: Do 23. Aug 2012, 14:09
von cgnieder
eduardinho hat geschrieben:Interessant ist, dass bei der zweiten Variante ein Fehler angezeigt wird, es aber trotzdem ausgegeben wird.

Fehler: Undefined control sequence ...er Zyklenanzahl N.}

Weißt du wo da der Fehler liegen könnte?
Bei meinem Code? Oder beim testen des Codes mit einem eigenen Beispiel? Falls letzteres dann poste doch ein Minimalbeispiel, das den Fehler reproduziert. (Hast Du »fontenc« geladen?)
eduardinho hat geschrieben:Außerdem habe ich den Eindruck, dass die Buchstaben bei der ersten Variante etwas zu groß und bei der zweiten etwas zu klein waren. Kann man die Buchstabengröße dabei irgendwie variieren?
Das wird u.a. von der verwendeten Schrift abhängen. Die erste Variante hat nur die Möglichkeit, ganzahlige Werte bei
\relsize{-2}
zu empfangen, ist da also recht unflexibel.

Bei der zweiten Variante kannst Du sowas versuchen:
\makeatletter
\newlength\fake@f
\newlength\fake@c
\newcommand\fakesc[1]{%
  \begingroup%
  \xdef\fake@name{\csname\curr@fontshape/\f@size\endcsname}%
  \fontsize{\dimexpr\fontdimen8\fake@name*1.25\relax}{\baselineskip}\selectfont%
  \uppercase{#1}%
  \endgroup%
}
\makeatother
Das mag aber nicht unbedingt funktionieren. Evtl müsste man noch eine weitere Variante verwenden. Allerdings kenne ich mich mit den Innereien von Fonts auch nicht wirklich aus.

Grüße

Verfasst: Do 23. Aug 2012, 15:01
von eduardinho
und zwar geht es darum, wenn ich das in meinem Beispiel versuche.
Hier der dazugehörige Code
\documentclass[accentcolor=tud1b,12pt,colorbacktitle,index=totoc,bibliography=totoc]{tudreport}

\usepackage[T1]{fontenc}														% Zeichenbelegung der Schrift

\makeatletter
\newlength\fake@f
\newlength\fake@c
\newcommand\fakesc[1]{%
  \begingroup%
  \xdef\fake@name{\csname\curr@fontshape/\f@size\endcsname}%
  \fontsize{\fontdimen9\fake@name}{\baselineskip}\selectfont%
  \uppercase{#1}%
  \endgroup%
}
\makeatother 

\begin{document}										% Beginn Dokument
\begin{figure}[htb]
	\begin{center}
		\includegraphics[width=0.60\textwidth]{Bilder/schulte1}
		\caption{W\fakesc{ohler} Diagramm}

	\end{center}
\end{figure}
\end{document}
Grüße[/code]

Verfasst: Do 23. Aug 2012, 15:21
von cgnieder
Ohne die zugehörige Klasse kann ich das nicht testen…

Verfasst: Do 23. Aug 2012, 15:35
von eduardinho
hier sind alles dateien drin, die zur klasse tudreport gehören

Verfasst: Do 23. Aug 2012, 18:00
von rais
Hallo,
eduardinho hat geschrieben:und zwar geht es darum, wenn ich das in meinem Beispiel versuche.
das Argument zu \caption ist beweglich, \fakesc ist fragil definiert.
Das kannst Du auf verschiedene Weisen angehen:
Durch Verwenden des optionellen Arguments bei \caption, also
\caption[Wohler Diagramm]{W\fakesc{ohler} Diagramm}
dadurch wird nur das optionale Argument zum beweglichen Teil,
durch Voranstellen von \protect:
\caption{W\protect\fakesc{ohler} Diagramm}
oder Du machst diesen \fakesc robust:
\DeclareRobustCommand\fakesc[1]{%
  \begingroup%
  \xdef\fake@name{\csname\curr@fontshape/\f@size\endcsname}%
  \fontsize{\fontdimen9\fake@name}{\baselineskip}\selectfont%
  \uppercase{#1}%
  \endgroup%
}
MfG
Rainer

Verfasst: Do 23. Aug 2012, 18:22
von eduardinho
Perfekt, jetzt funktioniert es.

Vielen Dank euch beiden!

Verfasst: Do 23. Aug 2012, 21:48
von dknof
Hallo,

noch zwei Hinweise von mir:

1) Korrektur zur ersten Lösung:
\documentclass{article}
\usepackage{relsize}
\newcommand\fakesc[1]{\relsize{-2}{\uppercase{#1}}}
\begin{document}
Ein Text und falsche \fakesc{kapitaelchen}
\end{document}
Der Befehl müsste wie folgt lauten:
\newcommand\fakesc[1]{{\relsize{-2}\uppercase{#1}}}
\relsize ändert wie \bfseries die Größe ab der Stelle, der Befehl hat auch nur ein Argument. Damit hinterher wieder die normale Schriftgröße verwendet wird, muss der gesamte Inhalt des Befehls in eine Gruppe.

2) Das Aussehen ist wegen zwei Eigenschaften schlehter als mit \textsc: Die Dicke der Buchstaben passt nicht mehr zueinander. Währen bei \textsc{Test} die Buchstaben gleich dick sind wie bei \textnorma{Test}, sind sie bei \fakesc{Test} dünner. Außerdem fehlt ein Kerning, wenn Du z. B. \textsc{Vater} nachmachen möchtest. Da das V groß ist, musst Du V\fakesc{ater} verwenden, dann ist aber das Kerning zwischen V und a weg.

Gruß
Diether