
나는 각주 뒤의 텍스트 영역 하단에 텍스트 줄을 넣어 그 위치가 항상 완전히 고정되도록 하는 문서 클래스를 작성 중입니다. 이에 대한 해결책은 다음과 같습니다.
\documentclass{article}
\usepackage{lipsum,graphicx}
\title{A sample title}
\author{John Doe}
\makeatletter
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
\begin{figure}[!b]
\copyright\ 2022 John Doe \hfill Department of Mathematics
\end{figure}
\par
\vskip 1.5em
}
\makeatother
\begin{document}
\maketitle
Text goes here\footnote{A footnote} and\footnote{Another footnote}
\lipsum[2]
\end{document}
하지만 어떤 이유로 저는 float 환경을 사용하고 싶지 않습니다. 다른 솔루션을 제안해 주실 수 있나요(추가 패키지를 로드하지 않는 것이 좋습니다).
답변1
페이지에서 텍스트의 절대 위치를 지정할 가능성이 있습니다. 예를 들어 tikz는 이를 수행하는 수단을 제공합니다.
shipout-hooks를 사용할 수 있는 최신 LaTeX 릴리스를 사용 중인 경우 후크에 코드를 추가할 수 있습니다 shipout/foreground
.
후크는 shipout/foreground
페이지의 왼쪽 상단에 왼쪽 상단 모서리(0,0)가 있고 단위 길이가 1pt인 그림 환경을 나타냅니다.
(페이지에서 발생하는 일의 경우 좌표의 y-/초 구성 요소가 음수여야 합니다. 최근 LaTeX 릴리스에서는 정규화 및 길이 레지스터를 picture
관리하는 환경이 자동으로 수행되므로 필요하지 않습니다.)\dimexpr
\unitlength
\documentclass[twoside]{article}
\csname @ifundefined\endcsname{pagewidth}{}{\pagewidth=\paperwidth}%
\csname @ifundefined\endcsname{pdfpagewidth}{}{\pdfpagewidth=\paperwidth}%
\csname @ifundefined\endcsname{pageheight}{}{\pageheight=\paperheight}%
\csname @ifundefined\endcsname{pdfpageheight}{}{\pdfpageheight=\paperheight}%
\usepackage{lipsum}
\title{A sample title}
\author{John Doe}
\makeatletter
\newcommand\foo[1]{#1}
\def\@maketitle{%
\newpage
% If you want this on the titlepage only, use \AddToHookNext instead of \AddToHook
\AddToHook{shipout/foreground}{%
\put(\dimexpr 1in+\ifodd\thepage\oddsidemargin\else\evensidemargin\fi\relax,
\foo{\dimexpr-\paperheight+.5\dimexpr\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)+\ht\strutbox\relax\relax})%
{%
\hbox to\textwidth{\copyright\ 2022 John Doe \hfill Department of Mathematics}%
}%
}
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
\par
\vskip 1.5em
}
\makeatother
\begin{document}
\maketitle
Text goes here\footnote{A footnote} and\footnote{Another footnote}
\lipsum[2]
\newpage
Text goes here\footnote{A footnote} and\footnote{Another footnote}
\lipsum[2]
\end{document}
최신이 아닌 LaTeX 릴리스를 사용 중인 경우 패키지 로드를 고려하세요.에소픽:
아래 코드는 명령이 실행되는 예를 제공합니다.\AddToShipOutPicture
패키지의 명령이 다음과 같은 예를 제공합니다.에소픽\put
명령을 사용하여 텍스트 위치를 지정할 수 있는 그림 환경과 결합되었습니다 .
\documentclass[twoside]{article}
\usepackage{lipsum,eso-pic}
\title{A sample title}
\author{John Doe}
\makeatletter
\newcommand\ConvertToUnitlength[1]{%
\strip@pt\dimexpr#1*65536/\number\dimexpr\unitlength\relax\relax
}%
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
% If you want this on every page, use \AddToShipoutPicture.
% If you want this on the title-page only, use \AddToShipoutPicture*.
\AddToShipoutPicture{%
\vbox to \paperheight{%
\hsize=\paperwidth
%----------------------------------------------------
% Within the \vbox do whatever you like:
% e.g., use a picture-environment:
%----------------------------------------------------
\setlength{\unitlength}{1cm}%
\begin{picture}(\ConvertToUnitlength{\paperwidth},
\ConvertToUnitlength{\paperheight})(0,0)%
% Inside this picture 0,0 is the bottom left corner.
% Unit is cm.
% If you wish to use length-parameter or \dimexppr, you can use \ConvertToUnitlength.
% With recent LaTeX \ConvertToUnitlength is not really needed, but
% you can use it for hiding ( and ) belonging to a \dimexpr
% from the scanning for a )-delimiter of a \put-command.
% You can also use eso-pic's \LenToUnit for this purpose.
% If you need to learn about length-parameters of page-layout, see the documentation of the package "layout".
\put(\ConvertToUnitlength{\dimexpr 1in+\ifodd\thepage\oddsidemargin\else\evensidemargin\fi\relax},
\ConvertToUnitlength{.5\dimexpr\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)+\ht\strutbox\relax})%
{%
\hbox to\textwidth{\copyright\ 2022 John Doe \hfill Department of Mathematics}%
}%
\end{picture}%
%----------------------------------------------------
}%
}%
\par
\vskip 1.5em
}
\makeatother
\begin{document}
\maketitle
Text goes here\footnote{A footnote} and\footnote{Another footnote}
\lipsum[2]
\newpage
Text goes here\footnote{A footnote} and\footnote{Another footnote}
\lipsum[2]
\end{document}
답변2
또는, 조잡한 해킹을 좋아하고 텍스트가 제목 페이지에만 나타나도록 하고 제목 페이지에 각주가 포함되어 본문과 각주를 분리하는 규칙이 그려지면 제목 페이지를 마무리합니다. 를 통해 저작권 표시가 포함된 마지막 "각주"를 배치하기 직전에 \newpage
사용할 수 있습니다 . hyperref를 사용 중인 경우에는 -environment로 래핑해야 합니다 . 이것이 / 와 어떻게 상호작용하는지 모르겠습니다 .\footnotetext
\newpage
NoHyper
\raggedbottom
\flushbottom
\documentclass[twoside]{article}
\usepackage{lipsum,hyperref}
\title{A sample title}
\author{John Doe}
\makeatletter
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
% If you want this on every page, use \AddToShipoutPicture.
% If you want this on the title-page only, use \AddToShipoutPicture*.
\par
\vskip 1.5em
}
\makeatother
\begin{document}
\maketitle
Text goes here\footnote{A footnote} and\footnote{Another footnote}
\lipsum[2]
\begingroup
\makeatletter
\long\def\@makefntext#1{\noindent#1}%
\begin{NoHyper}%
\footnotetext{\par\vspace*{\dimexpr\footskip-2\baselineskip\relax}{\normalsize\copyright\ 2022 John Doe \hfill Department of Mathematics}}%
\end{NoHyper}%
\endgroup
\newpage
Text goes here\footnote{A footnote} and\footnote{Another footnote}
\lipsum[2]
\end{document}