नया हवाला आदेश विराम चिह्नों को निगलता है
मैंने - संयोजन के shorttitle
बजाय दिखाने के लिए एक नया हवाला दिया । समस्या यह है कि यह इसके बाद विराम चिह्न को निगल जाता है।author
year
मैंने उपयोग करने की कोशिश की \DeclareCitePunctuationPosition
, लेकिन कोई फायदा नहीं हुआ।
मैं इसे कैसे ठीक करूं?
\documentclass{article}
\usepackage{biblatex-chicago}
\DeclareCiteCommand{\citeabbr}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\textit{\printfield{shorttitle}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCitePunctuationPosition{\citeabbr}{r} % doesn't work
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Howlett1975,
title = {Dictionary of Medieval Latin from British Sources},
shorttitle = {DMLBS},
editor = {Howlett, D.R.},
date = {1975/2013},
publisher = {Oxford University Press},
location = {Oxford},
addendum = {DMLBS},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\usepackage{hyperref}
\begin{document}
\citeabbr[s.v.]{Howlett1975}; this cite command has swallowed my semicolon.
\end{document}
जवाब
biblatex
अवांछनीय डबल विराम चिह्न या विराम चिह्नों से बचने के लिए एक बहुत ही परिष्कृत प्रणाली है।
विशेष रूप biblatex
से एक वाक्य-समाप्ति अवधि (पूर्ण विराम) के बाद किसी भी विराम चिह्न को दबा देगा। इसलिए '।;' बस '' बन जाता है। 'समस्या' यह है कि आप एक संक्षिप्त नाम के बाद एक अल्पविराम या अर्धविराम को दबाना नहीं चाहेंगे, इसलिए # sv; ' पूरी तरह से ठीक है और 'sv' की जरूरत नहीं है। चूंकि '।' अनिवार्य रूप से दो कार्य हैं, आपको इसके biblatex
साथ मदद करनी होगी और यह बताना होगा कि जब आप टाइप करते हैं तो उसका क्या मतलब होता है .
। डिफ़ॉल्ट रूप से माना जाता biblatex
है कि .
यह एक अवधि है। यदि आप एक संक्षिप्त नाम दर्ज करना चाहते हैं तो आप कह सकते हैं \adddot
या बस .\isdot
।
इसलिए, निम्नलिखित 'sv;' प्रदर्शित करता है। बस ठीक।
\documentclass{article}
\usepackage{biblatex-chicago}
\DeclareCiteCommand{\citeabbr}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\printfield[emph]{shorttitle}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\begin{filecontents}{\jobname.bib}
@book{Howlett1975,
title = {Dictionary of Medieval Latin from British Sources},
shorttitle = {DMLBS},
editor = {Howlett, D.R.},
date = {1975/2013},
publisher = {Oxford University Press},
location = {Oxford},
addendum = {DMLBS},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\usepackage{hyperref}
\begin{document}
\citeabbr[s.v.\isdot]{Howlett1975}; this cite command has swallowed my semicolon.
\end{document}
यदि .
आपके पोस्टनोट्स समाप्त होने वाले सभी postnote
शब्द संक्षिप्त नाम हैं, तो आप इसे फ़ील्ड प्रारूप को संशोधित करके स्वचालित कर सकते हैं (मूल परिभाषा को इसमें पाया जा सकता है chicago-notes.cbx
)
\DeclareFieldFormat{postnote}{% Changed for page compression option
\ifboolexpr{%
togl {cms@comprange}%
and
test {\ifpages{#1}}%
}%
{\iffieldundef{pagination}%
{\mkcomprange{#1}}%
{\mkcomprange[{\mkpageprefix[pagination]}]{#1}}}%
{\iffieldundef{pagination}%
{#1}%
{\mkpageprefix[pagination]{#1}}%
\isdot}}%
तब आप \isdot
हर बार जब आप s.v.
एक पोस्टनोट में उपयोग करते हैं तो लिखने से बच सकते हैं । लेकिन निश्चित रूप से इसका मतलब है कि .
पोस्टनोट के अंत में एक वाक्य-समाप्ति अवधि माना जाता है, इस तरह से मान्यता प्राप्त नहीं होगी।
यदि आप s.v.
बहुत बार उपयोग कर रहे हैं , तो आप इसके लिए एक आसान कमांड परिभाषित कर सकते हैं जो इसकी आवश्यकता से बचा जाता है \isdot
।
\documentclass{article}
\usepackage{biblatex-chicago}
\DeclareCiteCommand{\citeabbr}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\printfield[emph]{shorttitle}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\NewBibliographyString{sv}
\DefineBibliographyStrings{english}{
sv = {s\adddot v\adddot},
}
\newcommand*{\sv}{\bibstring{sv}}
\begin{filecontents}{\jobname.bib}
@book{Howlett1975,
title = {Dictionary of Medieval Latin from British Sources},
shorttitle = {DMLBS},
editor = {Howlett, D.R.},
date = {1975/2013},
publisher = {Oxford University Press},
location = {Oxford},
addendum = {DMLBS},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\usepackage{hyperref}
\begin{document}
\citeabbr[\sv]{Howlett1975}; this cite command has swallowed my semicolon.
\end{document}