
で "外部参照を目立たせる「
以下に記述した新しいコマンドは非常に役立ちました。\myautoref コマンドで外部ファイルにページ番号を追加したいのですが、フォーラムでトピックが見つからないようです。
ページ番号参照の追加を手伝ってくれる人はいますか?
\documentclass{article}
\usepackage{xcolor}
\usepackage{xr-hyper}
\usepackage{hyperref}
\externaldocument[A-]{extfile} %(A)
\makeatletter
\newcommand{\myautoref}[2][A-]{%
\@ifundefined{r@#1#2}{% Nope A-#2 isn't there
\@ifundefined{r@#2}{%
}{%
\autoref{#2}%
}%
}{%
{\pending{#1#2}}%
}%
}
\newcommand{\pending}[1]{\color{red}\autoref{#1} from "file.tex"}
\makeatother
\begin{document}
Using \myautoref{sec:vis} and \myautoref{sec:vis}, but \myautoref{localsection}
\section{Local section}\label{localsection}
\end{document}
extファイル.tex
\documentclass{article}
\begin{document}
\section{A section} \label{sec:vis}
\end{document}
答え1
\pageref
の定義内でマクロを使用することをお勧めします\pending
。
\autoref
ちなみに、外部でコンパイルされたファイルにある項目を相互参照するために使用したい場合は、hyperref
外部ファイルを読み込む必要があります。つまり、extfile.tex
次のようになります。
\documentclass{article}
\usepackage{hyperref} % <- new
\begin{document}
\section{A section} \label{sec:vis}
\end{document}
メイン ファイルは次のようになります。
\documentclass{article}
\usepackage{xr-hyper}
\externaldocument[A-]{extfile}
\usepackage{xcolor}
\usepackage[colorlinks,allcolors=red]{hyperref}
\makeatletter
\newcommand{\myautoref}[2][A-]{%
\@ifundefined{r@#1#2}{% Nope A-#2 isn't there
\@ifundefined{r@#2}{}{\autoref{#2}}%
}{{\pending{#1#2}}}}
\makeatother
\newcommand{\pending}[1]{\color{red}\autoref{#1} on page~\pageref{#1} of ``file.tex''}
\begin{document}
Using \myautoref{sec:vis}, but \autoref{localsection}.
\section{Local section} \label{localsection}
\end{document}
答え2
すでに示唆されているように:\pageref
または拡張可能なコンテキストでは: \getpagerefnumber
(requires refcount
) パッケージ。
\documentclass{article}
\usepackage{refcount}
\usepackage{xcolor}
\usepackage{xr-hyper}
\externaldocument[A-]{extfile} %(A)
\usepackage{hyperref}
\makeatletter
\newcommand{\myautoref}[2][A-]{%
\@ifundefined{r@#1#2}{% Nope A-#2 isn't there
\@ifundefined{r@#2}{%
}{%
\autoref{#2} on page \pageref{#2}%
}%
}{%
{\pending{#1#2}}%
}%
}
\newcommand{\pending}[1]{\color{red}\autoref{#1} from "file.tex" on page \getpagerefnumber{#1}}
\makeatother
\begin{document}
Using \myautoref{sec:vis} and \myautoref{sec:vis}, but \myautoref{localsection}
\section{Local section}\label{localsection}
\end{document}
autoref
苦情を防ぐために、\usepackage{hyperref}
外部ファイルに追加することをお勧めします:
\documentclass{article}
\usepackage{hyperref}
\usepackage{blindtext}
\begin{document}
\blindtext[5]
\section{A section} \label{sec:vis}
\end{document}