تالار گفتگوی پارسی‌لاتک

لاتک LATEX => حروف‌چینی مستندات => نويسنده: ابوالفضل دیانت در ژوئن 07, 2013, 10:43:19 am

عنوان: مشکل در وارد کردن عنوان فصل و بخش جاری در میان متن
رسال شده توسط: ابوالفضل دیانت در ژوئن 07, 2013, 10:43:19 am
با سلام
من می‌خواهم که در جایی از متن عنوان فصل و بخش جاری را بیاورم. بدین منظور دو دستور زیر را استفاده کرده ام.

\makeatletter
\apptocmd{\@chapter}{\gdef\currentchapter{#2}}{}{}
\def\currentchapter{?}
\apptocmd{\@section}{\gdef\currentsection{#2}}{}{}
\def\currentsection{?}
\makeatother

اما متاسفانه دستور \currentchapter کار می کند اما دستور \currentsection کار نمی کند.
باتشکر
عنوان: پاسخ : مشکل در وارد کردن عنوان فصل و بخش جاری در میان متن
رسال شده توسط: وحید دامن‌افشان در ژوئن 07, 2013, 02:29:20 pm
اگر دلیل خاصی برای استفاده از بسته etoolbox ندارید، می‌تونید از بسته nameref استفاده کنید:
\documentclass{book}
\usepackage{nameref}
\makeatletter
\newcommand*{\currentname}{\@currentlabelname}
\makeatother
\begin{document}
\chapter{Chapter Test}\label{ch1}
\section{Section One}
This is chapter: \nameref{ch1}\\
This is section: \currentname
\section{Section Two}
This is section: \currentname
\end{document}
عنوان: پاسخ : مشکل در وارد کردن عنوان فصل و بخش جاری در میان متن
رسال شده توسط: ابوالفضل دیانت در ژوئن 07, 2013, 03:12:43 pm
با سلام
نه اصراری از استفاده از etoolbox ندارم.
مشکل من در استفاده از بسته nameref این است که:
قرار است که این کار به صورت خودکار انجام پذیرد، لذا ممکن است کاربر برای فصل و یا بخش label تعریف کند. من می خواهم دستوری را تعریف کنم که کاربر هر بار آن را وارد کرد، نام بخش بیاید. یعنی کاربر فقط بزند \currentsection و نام بخش چاپ شود.
در این حالت اگر شما از دستور  \currentname در بعد از subsection استفاده کنید این امر موجب می شود که نام subsection چاپ شود نه نام section
باتشکر