すでに多くの人がこの質問をしていると思いますが、正しい答えを見つけることができません。
tcbtheorem に与えたラベル/キーを追跡したいのですが、この問題が発生した場合のベスト プラクティスがわかりません。ドキュメントのどこかにセクションまたは章を配置したいのですが、PDF の余白セクションにラベル/キーを配置しても問題ありません。
私はそのアイデアを見ました。PDF の余白部分にラベル/キーを配置するのは良いことです。
しかし、そのように解決しようとしたところ、\label{}を使用したときに期待どおりの結果が得られました(以下のコードを参照)。
また
% Command to automatically display the reference
\newcommand{\autoNameref}[1]{\nameref{def:#1}}
\begin{document}
\tcblistof[\section*]{def}{List of Defenition}
正常に動作します。
しかし、マージン セクションやその他の場所で、 def:Pi または def:TestRef の指定された参照を確認できません。次のように \label すると、
{for example Pi\label{def:Pi2}}
これは間違った方向に進んでいます。以前の努力をすべて行ったのに、なぜすべてにラベルを付ける必要があるのでしょうか。
多分そうしなくてはならない
\usepackage{nameref}
\usepackage{showkeys}
\usepackage{showexpl}
これを別の方法で開始しましたが、それに関する情報は見つかりませんでした。また、tcolorbox のマニュアルで多くの時間を検索しました。 tcolorbox - マニュアル
ヒントや解決策があれば教えていただければ幸いです。
助けてくれてありがとう。
大丈夫だと確信したので、前文をできるだけ短くしようとしました。
次のコード:
\documentclass[12pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage{nameref}
\usepackage{showkeys}
\usepackage{showexpl}
% Math packages + Access additional mathematical symbols
\usepackage{amsmath,amsfonts,amsthm,amssymb,mathtools}
% Hyperlinks and PDF properties
\usepackage{hyperref,theoremref}
% Colored boxes and tcolorbox configurations
\usepackage[most,many,breakable]{tcolorbox}
% Libraries for diagrams and plots
\usepackage{tikz-cd}
\usepackage{pgfplots}
\usetikzlibrary{
% tcolorbox some boxes
arrows,
calc,
shadows.blur}
% Conditional commands
\usepackage{xparse}
% Dummy text generator
\usepackage{lipsum} % For generating placeholder text
% store a big set of sentences
\unpacklipsum[1-100]
\ExplSyntaxOn
% unpack \lipsumexp
\seq_new:N \g_lipsum_sentences_seq
\cs_generate_variant:Nn \seq_set_split:Nnn { NnV }
\seq_gset_split:NnV \g_lipsum_sentences_seq {.~} \lipsumexp
\NewDocumentCommand{\lipsumsentence}{>{\SplitArgument{1}{-}}O{1-7}}
{
\lipsumsentenceaux #1
}
\NewDocumentCommand{\lipsumsentenceaux}{mm}
{
\IfNoValueTF { #2 }
{
\seq_item:Nn \g_lipsum_sentences_seq { #1 }.~
}
{
\int_step_inline:nnnn { #1 } { 1 } { #2 }
{
\seq_item:Nn \g_lipsum_sentences_seq { ##1 }.~
}
}
}
\ExplSyntaxOff
\setlength{\parindent}{1cm}
\tcbset{
BandarolGroundStyle/.style={
attach boxed title to top left={xshift=1cm,yshift*=1mm-\tcboxedtitleheight},
varwidth boxed title*=-3cm,
boxed title style={frame code={
\path[fill=tcbcolback]
([yshift=-1mm,xshift=-1mm]frame.north west)
arc[start angle=0,end angle=180,radius=1mm]
([yshift=-1mm,xshift=1mm]frame.north east)
arc[start angle=180,end angle=0,radius=1mm];
\path[left color=tcbcolback!60!black,right color=tcbcolback!60!black,
middle color=tcbcolback!80!black]
([xshift=-2mm]frame.north west) -- ([xshift=2mm]frame.north east)
[rounded corners=1mm]-- ([xshift=1mm,yshift=-1mm]frame.north east)
-- (frame.south east) -- (frame.south west)
-- ([xshift=-1mm,yshift=-1mm]frame.north west)
[sharp corners]-- cycle;
}
,interior engine=empty
},
fonttitle=\bfseries,
label separator=:
},
defstyle/.style={
enhanced,
before skip=2mm,
after skip=2mm,
colback= #1!5,
colframe= #1!80!black,
colbacktitle= #1!75!black,
boxrule=0.5mm,
BandarolGroundStyle
}
}
%================================
% DEFINITION BANDAROLLED THEOREMS
%================================
% list inside={def} maybe a good idea but check it later
% \tcblistof[\section*]{def}{List of Defenition}
\newtcbtheorem[number within=section, list inside={def}]{Definition}{Definition}{defstyle=red, title={#2},#1}{def}
%================================
% xparse commands for theorems:
%================================
% reason:
% https://tex.stackexchange.com/questions/48355/latex-command-with-optional-arguments
% It is also possible to use optional Arguments:
% r = required Argument
% o = optional Argument
% O = optional Argument if empty default value
% Order of the Attributes (Ref, Titel, Body)
% not working because of \MainAttributes in command...
% \newcommand\MainAttributes{O +m +m}
% Order so it is correct with the newtcbtheorem initialisation
% not working because of \MainOrder in command...
% \edef\MainOrder{\{\#2\}\{\#1\}\#3}
% solutions:
% https://tex.stackexchange.com/questions/551429/how-to-use-newdocumentcommand
% https://tex.stackexchange.com/questions/139614/you-cant-use-macro-parameter-character-in-restricted-horizontal-mode
% https://tex.stackexchange.com/questions/393622/using-key-values-in-newdocumentcommand
% to less time maybe a revisit later...
%================================
% DEFINITION BANDAROLLED THEOREMS
%================================
\NewDocumentCommand {\dfn} {O +m +m}{
\begin{Definition}{#2}{#1}#3
\end{Definition}}
% Customize the format for displaying keys and labels
\renewcommand*\showkeyslabelformat[1]{\normalfont\small\ttfamily#1}
% Command to automatically display the reference
\newcommand{\autoNameref}[1]{\nameref{def:#1}}
\begin{document}
\tcblistof[\section*]{def}{List of Defenition}
\label{test}
\lipsum[1]
\dfn[Pi]{A defined Number }{for example Pi}
\lipsum[2]
\nameref{def:Pi} \ref{def:Pi}
\begin{LTXexample}[pos=r, width=0.5\linewidth]
\dfn[TestRef]{RefTest}{TextRefTest}
\end{LTXexample}
\end{document}
答え1
ラベルはありますが、何らかの理由で showkeys が を使用しているため、tcolorbox のタイトルの後ろに隠れています\rlap
。これを余白に移動できます。
\documentclass[12pt,a4paper]{book}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage{showkeys}
\usepackage{hyperref}
\usepackage[most,many,breakable]{tcolorbox}
\newtcbtheorem[number within=section, list inside={def}]
{Definition}{Definition}{
frame empty,coltitle=red, %to remove the background
title={#2},#1}{def}
\begin{document}
\section{A}\label{test}
\section{B}\label{longertest}
\begin{Definition}{A defined Number }{Pi}
for example Pi
\end{Definition}
\renewcommand*\showkeyslabelformat[1]
{%
\normalfont\small\ttfamily
\llap{\fbox{#1}\hspace{\marginparsep}}%
}
\begin{Definition}{A defined Number }{ratio}
for example the golden ratio
\end{Definition}
\ref{test}, \ref{def:Pi}
\end{document}