تالار گفتگوی پارسیلاتک
لاتک LATEX => حروفچینی مستندات => نويسنده: فرشاد ترابی در اكتبر 20, 2014, 09:34:25 am
-
سلام دوستان گرامی
آیا میتوان فهرست مطالب، شکلها یا هر فهرست دیگری که به صورت خودکار تولید میشود را به صورت فایل tex ذخیره کرد؟
-
فهرست مطالب در فایلی با پسوند .toc نوشته میشود، فهرست جداول در فایلی با پسوند .lot و فهرست اشکالی در فایلی با پسوند .lof.
-
ممنونم. از این موضوع مطلع هستم اما در این فایلها اطلاعات اضافه هم وجود داره که مثلا میشه به چنین خطی اشاره کرد
\contentsline {chapter}{\numberline {1}مفاهیم کلی}{1}{chapter.1}
اما هنگام حروفچینی، خود لیتک از این اطلاعات استفاده میکنه و یک فهرست تمیز و بدون اطلاعات اضافی مینویسه. خواستم ببینم آیا میشه چنین فهرست تمیزی تولید کرد؟
-
ممنونم. از این موضوع مطلع هستم اما در این فایلها اطلاعات اضافه هم وجود داره که مثلا میشه به چنین خطی اشاره کرد
\contentsline {chapter}{\numberline {1}مفاهیم کلی}{1}{chapter.1}
اما هنگام حروفچینی، خود لیتک از این اطلاعات استفاده میکنه و یک فهرست تمیز و بدون اطلاعات اضافی مینویسه. خواستم ببینم آیا میشه چنین فهرست تمیزی تولید کرد؟
این اطلاعات اضافه نیستند. دقیقاً همین خط باعث ایجاد خط زیر در فهرست مطالب میشود:
فصل ۱. مفاهیم کلی ۱
مگر اینکه شما بخواهید همین خط بالا را داشته باشید که دردی از شما دوا نخواهد کرد.
-
سلام دوستان گرامی
آیا میتوان فهرست مطالب، شکلها یا هر فهرست دیگری که به صورت خودکار تولید میشود را به صورت فایل tex ذخیره کرد؟
شما میخواید یه فایل tex داشته باشید که وقتی اجراش کنید، فهرست مطالب یه فایل دیگه رو براتون چاپ کنه. درسته؟
-
بله. حالتهای دیگر را هم میتوانید درنظر بگیرد. مثلا دانشجویان ما مجبورند برای کتابخانه فهرست مطالب خود را در فایل ورد بنویسند. اما تز خود را
با لیتک زدهاند. بنابراین مجبورند که فهرست مطالب را دوباره تایپ کنند یا اینکه از فایل toc بردارند اما لازم است مطالب غیر ضروری آن پاک شود و اطلاعاتی که در بالا
گفتم را دستی حذف کنند.
-
بله. حالتهای دیگر را هم میتوانید درنظر بگیرد. مثلا دانشجویان ما مجبورند برای کتابخانه فهرست مطالب خود را در فایل ورد بنویسند. اما تز خود را
با لیتک زدهاند. بنابراین مجبورند که فهرست مطالب را دوباره تایپ کنند یا اینکه از فایل toc بردارند اما لازم است مطالب غیر ضروری آن پاک شود و اطلاعاتی که در بالا
گفتم را دستی حذف کنند.
برای این کار به راحتی میشه از بسته filecontents استفاده کرد. کد زیر رو داخل یه پوشه بریزید و اسمش رو بذارید مثلاً root_file.tex. با اجرای این فایل، به دلیل استفاده از بسته filecontents، یه فایل تِک به اسم toc_file.tex ایجاد میشه. حالا اگر این فایل toc_file.tex رو اجرا کنید، عیناً فهرست مطالب فایل root_file.tex رو توی خروچی چاپ میکنه.
همچنین اگه کاربر فراموش کنه دستور \tableofcontents رو توی فایل اصلی قرار بده، توی خروجی فایل toc_file.tex یه یادآوری براش نمایش داده میشه.
\documentclass{book}
\usepackage{ptext}
\usepackage{filecontents}
\usepackage{xepersian}
\settextfont{XB Niloofar}
\begin{filecontents}{toc_file.tex}
\documentclass{book}
\usepackage{xepersian}
\settextfont{XB Niloofar}
\begin{document}
\IfFileExists{root_file.toc}{
\chapter*{فهرست مطالب}
\input{root_file.toc}}{فراموش کردهاید دستور \lr{tableofcontents} را در فایل اصلی قرار بدهید!}
\end{document}
\end{filecontents}
\begin{document}
\tableofcontents
\chapter{پیشگفتار}
\section{مقدمه}
\ptext[1-7]
\subsection{مقداری متن}
\ptext[8-12]
\chapter{پیشگفتار}
\section{مقدمه}
\ptext[8-12]
\subsection{یک عنوان آزمایشی}
\end{document}
دلیل ویرایش: اضافه کردن امکان نمایش یادآوری.
-
کد زیر به همراه بسته txttoc باعث میشود تا متن فهرست مطالب (شماره قسمت، عنوان و شماره صفحه) در فایل filename-toc.txt که همانطور که از پسوندش پیداست یک فایل متنی است، نوشته شود:
\documentclass{book}
\usepackage{ptext}
\usepackage{txttoc}
\usepackage{xepersian}
\settextfont{XB Niloofar}
\begin{document}
\tableofcontents
\chapter{پیشگفتار}
\section{مقدمه}
\ptext[1-7]
\subsection{مقداری متن}
\ptext[8-12]
\chapter{پیشگفتار}
\section{مقدمه}
\ptext[8-12]
\subsection{یک عنوان آزمایشی}
\end{document}
بعد از اجرا محتویات فایل txt این خواهد بود:
1 پیشگفتار 3
1.1 مقدمه 3
1.1.1 مقداری متن 4
2 پیشگفتار 5
2.1 مقدمه 5
2.1.1 یک عنوان آزمایشی 6