LaTeX에 숨겨진 데이터를 넣는 것이 어떻게 가능합니까?

LaTeX에 숨겨진 데이터를 넣는 것이 어떻게 가능합니까?

내 LaTeX 문서에 마커나 태그와 같은 숨겨진 데이터를 넣고 싶습니다. 그 뒤에 있는 아이디어는 명시적인 오류 메시지를 반환할 수 있다는 것입니다. 예를 들어 이 라텍스 파일에서 별표가 있는 주석 줄에 태그나 마커를 넣고 싶습니다.

\documentclass[12pt]{article}

\usepackage[parfill]{parskip}
\usepackage[none]{hyphenat}
\sloppy
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{array,ragged2e, calc}
\usepackage{enumitem}
\usepackage{lipsum}
\usepackage{needspace}

\definecolor{shadecolor}{RGB}{217,217,217}  % Color used for highlighting
\definecolor{light-blue}{RGB}{0,175,236}    % Color for the footer

% ------------------------------------------------------------------------------------
% Header and footer management.
% ------------------------------------------------------------------------------------
\usepackage{fancyhdr}
\pagestyle{fancy}

% clear any old style settings
\fancyhf{}
\fancyheadoffset{0in}
\headheight = 53pt
\renewcommand{\headrulewidth}{0pt}

% ------------------------------------------------------------------------------------
% Defining the section style
\newcommand{\mysectionstyle}[1]{\colorbox{shadecolor}{\begin{tabular}{>{}p{\rectanglelength}}{\fontsize{13}{6}\selectfont\textbf{#1}}\end{tabular}}\vspace{6pt}}
% ------------------------------------------------------------------------------------
\addtolength{\footskip}{0.6cm}
\renewcommand{\footrulewidth}{1pt}
\renewcommand{\footrule}{{\color{light-blue}%
\vskip-\footruleskip\vskip-\footrulewidth
\hrule width\headwidth height\footrulewidth\vskip\footruleskip}}
% ------------------------------------------------------------------------------------

\usepackage[left=0.75in,top=1.5in,right=0.75in,bottom=1in]{geometry} % Document margins
\usepackage{titlesec}

\newlength{\rectanglelength}
\setlength{\rectanglelength}{\textwidth}
\addtolength{\rectanglelength}{-6pt}

\newlength{\foo}

\begin{document}
\lipsum[1]

\settototalheight{\foo}{\parbox[t]{\linewidth}{\begin{minipage}[t]{\linewidth} \begin{tabular}{@{}>{\RaggedRight}p{11cm}>{\RaggedLeft}p{6.35cm}@{}}\fontsize{13}{6}\selectfont{LaTeX}&\textbf{2011 to 2012}\end{tabular}\\\begin{tabular}{@{}>{\RaggedRight}p{11cm}>{\RaggedLeft}p{6.35cm}@{}}\textbf{Lead Programmer}&\textbf{}\end{tabular}%
\vspace{3pt}\begin{itemize}[parsep=0pt, topsep=0pt, itemsep=0pt, leftmargin=2ex]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\end{itemize}%
\vspace{7pt}\textbf{End Title}\\\lipsum[1]

\vspace{10pt}\end{minipage}}
}
\needspace{\foo}{\setlength{\parskip}{4pt}

% ******* I WANT TO INSERT A TAG OR MARKER HERE.*******
\mysectionstyle{Experiences}

\begin{tabular}{@{}>{\RaggedRight}p{11cm}>{\RaggedLeft}p{6.35cm}@{}}\fontsize{13}{6}\selectfont{LaTeX}&\textbf{2011 to 2012}\end{tabular}\\\begin{tabular}{@{}>{\RaggedRight}p{11cm}>{\RaggedLeft}p{6.35cm}@{}}\textbf{Lead Programmer}&\textbf{}\end{tabular}%
\vspace{3pt}\begin{itemize}[parsep=0pt, topsep=0pt, itemsep=0pt, leftmargin=2ex]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\item \lipsum[1]\end{itemize}%
\vspace{7pt}\textbf{End Title}\\\lipsum[1]

\vspace{10pt}}
\end{document}

오류가 발생했을 때 마커를 검색한 다음 사용자에게 친숙한 메시지를 반환할 수 있도록 LaTeX 파일에 태그나 마커를 삽입하고 싶습니다. X섹션에 오류가 있는 것 같습니다.

LaTeX에서는 가능합니까? 그렇다면 어떻게 할 수 있습니까?

답변1

마지막 단락에 설명된 사용 사례를 벗어나겠습니다.

오류가 발생했을 때 마커를 검색한 다음 사용자에게 친숙한 메시지를 반환할 수 있도록 LaTeX 파일에 태그나 마커를 삽입하고 싶습니다. X섹션에 오류가 있는 것 같습니다.

\show명령은 조판을 중단하고 다음 토큰에 대한 설명을 터미널에 인쇄합니다. 마찬가지로 \showthe카운터 값을 중지하고 인쇄합니다.

조판이 중단되면 i명령을 사용하여 처리할 토큰을 삽입할 수 있습니다.

이를 종합하면 섹션 번호를 표시하고 오류 시 이를 호출하는 매크로를 작성할 수 있습니다.

\documentclass{article}
\usepackage{lipsum}

\makeatletter
\newcommand{\showsection}{%
   \showthe\c@section 
}
\makeatother

\begin{document}

\section{First}

\lipsum

\section{Second}

\lipsum

\foo% undefined cs

\section{Third}

\lipsum

\end{document}

다음은 샘플 콘솔 세션입니다.

! Undefined control sequence.
l.20 \foo
         % undefined cs
? i \showsection
> 2.
\showsection ->\showthe \c@section 

l.20 \foo
         % undefined cs
? s
OK, entering \scrollmode...

i \showsection터미널 입력줄에 입력했더니 인쇄가 되었습니다 2. . 원하는대로 출력을 예쁘게 하시면 됩니다.

문서에 "태그"를 지정하는 방법에 대해서는 이미 있는 것을 사용하고 해당 매크로에 연결합니다. 예를 들어, 새로운 것을 만드는 대신 섹션 번호에 기존 카운터를 사용했다는 사실을 발견했습니다. 해당 섹션을 인쇄하고 싶다면이름대신 \section섹션 제목을 매크로에 저장하는 명령을 매크로에 추가할 수 있습니다 . \show(소스를 읽어보면 이것이 \section단순한 매크로가 아니라는 것을 알 수 있기 때문에 이 작업을 수행하지 않았습니다.)

답변2

다음과 같은 정의를 내릴 수 있습니다.

\def\thissection{section X}

그런 다음 제어하는 ​​오류 메시지에서 해당 명령을 사용할 수 있습니다

\PackageError{mypackage}{You made a mistake in \thissection: try harder}{}

그러면 현재 정의가 무엇이든 선택됩니다.

그러나 TeX 자체의 오류 처리기를 사용자 정의할 수는 없습니다. 예를 들어 사용자가 명령을 잘못 입력하면 \fooobarTeX은 정의되지 않은 명령 오류를 발생시키고 사용하는 오류 메시지를 사용자 정의할 수 없습니다.

관련 정보