PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verweis auf chapter mit \autoref groß schreiben?



kart672
27-12-2007, 11:14
Hallo.

Ich verweise mit \autoref auf \label-marken. Das Problem ist, dass die Bezeichnungen der Verweise im Text (z.B. "chapter 4 is about...") immer klein geschrieben werden, während die Verweise auf Figures und Tables immer groß geschrieben werden. Wie kann man einstellen, dass LaTex merkt, ob man sich am Satzanfang befindet, oder mitten im Satz, und dementsprechend groß schreibt oder klein?

cookie170
28-12-2007, 13:59
Hallo,

ich verstehe nicht, was Du meinst. Hättest Du ein lauffähiges Beispiel?

kart672
28-12-2007, 14:22
Hi. Da ich header, Hauptdokument und Kapitel in getrennten Dateien habe, müsste ich erstmal was zusammenkopieren.
Deshalb will ichs nochmal erläutern.
So wie es im Moment bei mir ist, bekomme ich einen folgenden Text:

"This work is about a scientific bla bla bla. chapter 1 is the introduction, while in Figure 1.1. it can be seen, that Table 1.1 shows the exact measurements."

Das Problem ist also, dass chapter, section, subsection etc. immer! klein geschrieben werden, auch am satzanfang, während Figure und Table immer! groß geschrieben werden. Im Englischen wird aber nun mal Am Satzanfang groß geschrieben und Hauptwörter auch innerhalb von Sätzen klein.

Wie gesagt, wenn das hier zur fehlerdiagnose noch nicht ausreicht, kopiere ich mal ne kleine beispieldatei zusammen und poste sie hier. :-)
gruß

cookie170
28-12-2007, 15:38
Hallo,

Du verwendest "babel"? Dann kannst Du für Dein Dokument insgesamt die Bezeichnungen "figure" bzw. "table" setzen, die Anpassung ist irgendwo in den tex-faq erklärt (\addto ... ist mir noch in Erinnerung).

Außerdem erlaubt das Paket varioref die Wahl zwischen Groß- und Kleinschreibung bei Bezügen (\ref und \Ref).

Gruß,
Alexander

sommerfee
28-12-2007, 16:01
Man könnte sich auch selber ein \Autoref schreiben, welches den ersten Buchstaben groß schreibt. Mit der Holzhammermethode erschlagen könnte sowas so aussehen:



\documentclass{article}
\usepackage{hyperref}
\newcommand*\Autoref[1]{%
\begingroup
\def\chapterautorefname{Chapter}%
\def\sectionautorefname{Section}%
% ...
\autoref{#1}%
\endgroup}
\begin{document}
\section{A}
\label{sec:A}
\Autoref{sec:A} is \autoref{sec:A}.
\end{document}


Gruß,
Axel

sommerfee
28-12-2007, 16:21
Ich habe mal den Holzhammer gegen eine Klemmzange getauscht :D



\documentclass{article}
\usepackage{hyperref}
\makeatletter
\newcommand*\Autoref[1]{%
\begingroup
\let\ORI@HyRef@testreftype\HyRef@testreftype
\def\HyRef@testreftype##1.##2\\{%
\ORI@HyRef@testreftype##1.##2\\%
\let\ORI@HyRef@currentHtag\HyRef@currentHtag
\def\HyRef@currentHtag{\expandafter\MakeUppercase} %
\expandafter\g@addto@macro\expandafter\HyRef@curre ntHtag\expandafter{\ORI@HyRef@currentHtag}%
}%
\autoref{#1}%
\endgroup}
\makeatother
\begin{document}
\section{A}
\label{sec:A}
\Autoref{sec:A} is \autoref{sec:A}.
\end{document}


(Funktioniert mit der aktuellen hyperref-Version 6.77, keine Ahnung, wie es mit älteren Versionen aussieht.)

Gruß,
Axel

rais
28-12-2007, 17:41
Moin moin,
ich hab das mal zu automatisieren versucht, dabei bin ich naturgemäß von der Holzhammermethode ausgegangen :D


\documentclass{article}
\usepackage{ifthen}
\usepackage{hyperref}
\newcounter{spcfac}
\newcommand*\Autoref[1]{%
\ifvmode\setcounter{spcfac}{\sfcode`.}\else\setcou nter{spcfac}{\the\spacefactor}\fi%
\begingroup
\ifthenelse{\thespcfac>1500}{%
\def\chapterautorefname{Chapter}%
\def\sectionautorefname{Section}%
% ...
}{%
\def\figureautorefname{figure}%
\def\tableautorefname{table}%
% ...
}%
\autoref{#1}%
\endgroup}
\begin{document}
\section{A}\label{sec:A}
\begin{figure}[hbp]
\centering\fbox{a figure}
\caption{test}
\label{fig:test}
\end{figure}
Section:
Within a sentence \Autoref{sec:A}\dots after a sentence. \Autoref{sec:A}\dots

Figure:
Within a sentence \Autoref{fig:test} \dots after a sentence. \Autoref{fig:test}\dots

\Autoref{sec:A} here at the start of a paragraph\dots
\end{document}

-- klappt natürlich nicht mit \frenchspacing oder sonstigen Eingriffen in \spacefactor, aber so als Basis vielleicht ja brauchbar.;-)

MfG und Guten Rutsch,